How to Start a Project
Optional, but recommended:
- Dump all ideas, notes, and features into your AI chat interface of choice.
Ask questions like:
- Should this be a web app or a mobile app?
- What features make sense for a first version?
- What does the user flow look like?
- How could this work technically?
Iterate until you have:
- A clear outline
- A feature list
- A short description you can paste into your builder
How to Choose What to Build and Which Tool to Use
Most projects start with an idea. The exception is sponsored hackathons or competitions, where the tool is sometimes chosen first and the idea follows.
Start by asking:
- Who is the target audience?
- What is the core functionality?
Those answers determine whether the project should be a website/web app, or mobile app.
Examples:
- If the target audience is teenagers, a mobile app might make sense.
- If the idea does not translate well to mobile, a web app is usually better.
This decision is not permanent. Vibe coding moves fast enough that switching platforms later is not a major time cost.
Once the platform is chosen:
- Review your tool list
- Weigh options based on the project
Typical first choices:
- Simple websites: Lovable
- Mobile apps: Vibecode or Anything
- More complex projects: Cursor
Before committing, do a quick feasibility check:
- Can the entire idea be built with this tool?
Planning may happen in ChatGPT or Gemini.
Working Effectively With AI Tools
- Treat the AI as a collaborator
Debugging and Problem Solving
Errors are unavoidable. Take an active role when they happen.
A reliable process:
- Check logs (console logs, edge function logs, error messages)
- Use the tool’s built-in chat or discussion features
- Read the documentation for any API or integration you’re using
- If you’re still stuck, paste the error logs into an AI tool and debug conversationally
The goal isn’t just to fix it. It’s to understand what broke and why.
Basic Security Practices
If your app has users:
- Enable Row Level Security (RLS)
- This prevents users from accessing data that isn’t theirs
- If needed, ask your tool to guide you through enabling it
Backing Up Your Work
- Always sync projects to GitHub
- This gives you backups, version history, and an easier path to deployment
Design Matters
Design is the first thing users see. If your app looks like default AI output, many users will dismiss it immediately.
You don’t need to become a designer, but you do need to change defaults.
Practical Design Adjustments:
Fonts
- The default is often Inter
- Don’t keep Inter
- Pick something else from Google Fonts
- Prompt your tool to use it, or upload a .ttf directly
Gradients
- Very common default
- Best practice is to remove them entirely
Colors
- Blue and purple show up everywhere
- Avoid relying on them
- Use Coolors to generate a palette instead of guessing
Rounded Edges
- Overused in default outputs
- You don’t need to remove them entirely
- Try squared edges occasionally to change the feel
Emojis
- Remove them
- They rarely fit product interfaces
- They’re a clear signal that something is AI-generated
If you’re unsure how something should look:
- Browse Dribbble or Mobbin
- Screenshot designs you like
- Paste them into an AI tool and ask how to describe those elements in developer terms
Open Graph Tags
Open Graph tags control how your site appears when shared.
- Customize the title, description, and preview image
- Don’t leave defaults untouched
Domains and Hosting
You don’t have to use a custom domain, but you should change the default domain that the tool gives you to something that fits your project better. Sometimes the default doesn’t reflect what your project has become, and updating it helps with presentation and clarity.
If you want to self-host, here’s a simple path:
- Sync your project to GitHub.
- Connect it to Netlify (their free plan usually works fine).
- Deploy automatically from your main branch.
- If you decide to use a custom domain, you can buy one from any registrar and follow the tool’s setup guide.
All of these platforms provide specific instructions for linking your domain.
Hackathons as Practice
Hackathons are one of the fastest ways to improve at vibe coding and ship quickly.
How to Find Hackathons
- Most hackathons are posted directly on Twitter
- At least once a week:
Do targeted searches
Visit the profiles of major vibe coding tools - Search across Twitter using:
“vibe coding”
“vibe coders”
“hackathon”
“vibe coding competition”
“vibe coding contest”
“ai coding”
Contra
- Ongoing challenges with strong sponsors
- Cash prizes are common
- Smaller competitions are often advertised via posts
- Relevant subreddits:
/r/vibecoding
/r/vibecodersnest
/r/hackathon
/r/vibecodedevs
Web Search
- Google searches using:
“vibe coding hackathon”
“vibe coding competition”
“vibe coding contest” - Boolean operators help narrow results
Community
- Friends and other builders often tag each other in hackathons
- Being active increases visibility into opportunities
Vibe Coding Tech Stack
Lovable for websites or web apps. Makes it really easy to spin them up quickly with their own AI gateway and backend (rebranded Supabase).
Google AI Studio for fun prototypes. Really easy to incorporate Gemini APIs, but harder to actually publish (for now. I’ve been reassured that they’re working on this.)
Bolt for slightly more complicated websites/web apps/apps. For when you need access to the terminal.
YouWare for websites and web apps. Lets you choose your model, and has an integrated backend product in YouBase.
Replit for kind of in-between projects.
Anything for websites/web apps/mobile apps. Backend included, and makes publishing to the App Store easy.
Cursor for anything you can think of.
Anthropic Claude Code. Useful even when you aren’t working with code. Ask it to organize your files.
Rork Vibecode and Natively for mobile apps.
Wabi for mini apps
GitHub for obvious reasons (Very useful for everything. If you’re starting out, I recommend thinking of it like a gateway between your code and your deployment/hosting provider.)
Netlify for deploying and hosting. Here’s an example: you’re building in Cursor, you commit and push to GitHub, you start a new project in Netlify and adjust your settings so your project auto deploys every time you commit a change to GitHub. Easy!
ChatGPT for brainstorming, collecting my thoughts, occasionally PRDs.
Nano Banana Pro assets for your projects. Images, icons, etc.
Canva pro for their magic erase tool, and background removal tool. Use magic erase to remove image model watermarks, use the background removal tool to remove backgrounds and create transparent pngs. Also great for making favicons and open graph images.
Convex for databases
Supabase also for databases
Namecheap for domains
Google Fonts for fonts (yes, you need to change the default font on your site)
Coolors for coming up with color palettes.
Mobbin and Dribbble for ideas.
Constraints to Understand
- You don’t need expert-level technical knowledge to start
- You do need to test what you build
Have fun!