How to pick the right tech for your project
You asked AI to build you something. It did. It works. Fantastic.
A week later you want to add one small thing - a contact form, dark mode, a second language - and AI tells you it needs to rewrite half the project.
That’s not AI being dramatic. That’s the technology you started with not being designed for what you’re trying to do now. Developers call this “refactoring.” It sounds like a planned, professional activity. It’s not. It means “everything needs to be redone because the foundation was wrong.” Same energy as calling a house fire a “surprise renovation.”
The good news: one conversation before you start building can save you from most of this.
The prompt that saves you from starting over
Before your first real prompt, ask AI this:
I want to build [X]. It needs to [do Y]. In the future I mightwant to add [Z]. What technology should I use and why? Explainit like I'm not a developer.One question. It shifts what AI recommends from “whatever works right now” to “what will still work in three months when your project is twice the size you planned.”
Most people skip this. I skipped this. Multiple times. I’ll save you the tuition. (If you want to get better at prompting in general, I wrote a separate guide on how to talk to AI.)
A simple landing page? Don’t overthink it
If you’re building a portfolio, a landing page for your side project, or a “coming soon” page, you don’t need anything fancy. You might see people online arguing about React versus Vue versus Angular. You don’t need to know what any of those words mean. Not yet.
Every website on the internet runs on two things: HTML and CSS. HTML is the structure - what goes where on the page. HTML is the skeleton. CSS is the look - colors, fonts, spacing, everything visual. AI handles both.
A prompt that works:
I'm building a simple landing page for [my project]. No useraccounts, no database, no backend. Just a clean, modern pagewith [hero section, features, and a contact form]. Use HTMLand Tailwind CSS. Here's a design reference for the visualstyle I want: https://ui.shadcn.comThat last part matters more than it looks. shadcn/ui is a collection of pre-designed buttons, cards, forms, and other elements that look good together. It’s technically built for React, but you’re not installing it here - you’re pointing AI at the visual style so it knows what “modern and clean” means to you. AI will recreate that look in plain HTML and CSS. Instead of spending three rounds describing what you want, you give it a reference and it gets it right the first time.
For a simple page, you’re done. HTML, CSS, a design reference. If AI suggests a framework anyway, ask why. Sometimes it knows something you don’t. But if your page just needs to look good and sit there, don’t overcomplicate it.
A web app? That single file won’t hold
At some point, your project outgrows a landing page. You want user accounts. A dashboard. Data that persists between visits. Buttons that do more than scroll down.
Your single HTML file is about to become a problem.
Imagine everything you own in one room. Bed, kitchen, desk, TV, wardrobe - all in a studio apartment. Works fine when you have ten things. Now add 200 things. You move the couch, the TV falls. You add a shelf, it blocks the light. You can’t change anything without accidentally breaking something else.
That’s what a single file feels like when your project grows. Every piece of your page lives in the same place. Change one thing, break another. AI can’t help you efficiently either, because everything is tangled together like earphones in a pocket.
The fix: components. A component is a piece of your page that lives in its own box. The navigation bar is one component. The login form is another. The user profile card is a third. You change the login form, the navigation doesn’t move. Nothing tangled.
A framework is what gives you components. It’s the difference between a studio apartment and an actual building with rooms, walls, and doors. Same stuff, just organized so you can find things and renovate one room without the ceiling caving in.
Here are the frameworks you’ll hear about most:
React - The most popular framework. AI has been trained on enormous amounts of React code, which means it writes it really well. If your app needs buttons that do things, data that changes on screen, user accounts - React is a safe bet. Not necessarily the best in every situation, but the one where AI will give you the most reliable results.
Next.js - If your project has more than two or three pages and needs to show up on Google, Next.js is React with those problems already solved. It handles navigation between pages, page loading speed, URL structure, and a lot of the boring infrastructure you don’t want to think about.
Astro - This blog runs on Astro. It’s built for content-heavy sites like blogs, docs, and marketing pages. Fast by default because it ships minimal code to the browser. But if you need some interactive pieces - a search bar, a form, a calculator - it handles those too. It just doesn’t load interactivity you don’t need.
There are others - Vue, Svelte, Angular, Remix - and you might stumble into heated debates about which one is “the best.” It doesn’t matter. They all solve the same problem in slightly different ways. Pick one that AI handles well and move on.
The prompt for this stage:
I'm building a web app where users can [describe what they do].It will need [user accounts / a database / multiple pages /real-time updates]. This project will grow over time - I plan toadd [list future features]. What framework do you recommend andwhy? Explain the tradeoffs so someone without a technicalbackground can evaluate them.That instruction changes what you get back. AI defaults to developer-speak. If you don’t ask for plain language, you’ll get an answer full of words like “server-side rendering” and “hydration” and you’ll nod along without understanding whether it’s the right call. Tell AI to explain it like you’re five. I do this every time and I’m not embarrassed about it. I’d rather feel stupid for ten seconds than pick the wrong framework for three months.
A native app? Think twice
At some point you’ll want to build something that lives on your phone. An icon on the home screen. An app that feels “real” in a way a website never quite does.
I get the appeal. I’ve been there. I built three native apps for Mac. An email client, a time tracker, and a chat app. They all work. None of them shipped.
I wrote about this in detail in another post so I won’t repeat the whole story. The short version: native development is a completely different speed. The same prompt that gives you a working web page in thirty seconds can take hours to sort out as a native app. And when something breaks, figuring out why without understanding the platform is painful.
It’s not impossible. People build native apps with AI every day. But before you go there, ask yourself honestly:
- Can this just be a web app? Most things can. And a web app works on every device already.
- Do I have weeks, not days? Native takes longer. Period.
- Am I ready for 80% of my time to go toward things that aren’t the fun part? Platform quirks, permissions, build errors that make no sense. On Mac, your app needs to be signed through an Apple Developer account ($99/year) or nobody can open it. On iOS, it’s worse - you’re dealing with provisioning profiles, App Store review, and a certification process that feels like applying for a visa. That’s the game.
If you said yes to all three, go ahead. If you hesitated on any of them, build it for the web first. You can go native later, but be honest with yourself: “later” means rebuilding it from scratch in a different language for a different platform. It’s not a conversion, it’s a new project. Starting with web is still the right call because you’ll learn what your project actually needs before committing to the harder path.
Plan first, build second
There’s one more thing that will save you from a lot of pain, and most people learn it too late: ask AI to plan before it starts building.
When you tell AI “build me a dashboard,” it starts writing code immediately. It picks a file structure, makes decisions about how things connect, and builds the first thing that works. Three days later you want to add a feature and AI says it needs to restructure half the project.
Instead, before you say “build,” say “plan.” Tell AI to outline the file structure, list the components it will create, and explain how they connect. No code yet. Just the blueprint.
Before writing any code, plan the project structure first.List every file you'll create, what each one does, and howthey connect. Explain your reasoning. Save the plan to aplan.md file in the project root. I want to review itbefore we start building.This takes five minutes and saves you days. AI is better at writing code when it has a plan to follow, the same way you’d be better at assembling IKEA furniture if you looked at the instructions first. You won’t. Nobody does. But AI actually will, and that’s the whole point. You don’t have to understand every detail of the plan. You just need to see that it exists and that AI thought about the big picture before diving into line one.
Some AI tools even have a dedicated plan mode for this. If yours does, use it. If it doesn’t, the prompt above does the same thing. One thing to know: if you’re using a tool that works directly with your files (Cursor, Claude Code, Windsurf), it can actually save plan.md and reference it while building. If you’re using a chat tool like ChatGPT, copy the plan and paste it at the start of your next conversation so AI doesn’t forget what you agreed on.
And planning doesn’t stop at code. If you care about how your project looks (you should), AI can help with design decisions too - layout, typography, color, spacing. Some tools let you set up design agents that handle visual direction the same way a plan.md handles code structure. Worth knowing about before you end up with a project that works but looks like it was built at 3 AM. Even if it was.
Quick cheat sheet
If you skimmed everything above, here’s the short version.
One thing before the examples: every prompt below asks AI to keep files short and focused. When everything lives in one giant file, AI loses track of what’s where. Shorter files mean AI can read and edit them without accidentally breaking something three screens away. Think of it as giving AI a clean desk instead of a pile of papers.
A note on Tailwind CSS: if you see “Tailwind” in the prompts below, know that it needs a small setup step (AI will handle this for you). Tailwind works by putting styles directly in your HTML as class names instead of writing a separate CSS file. That’s normal. If you need any custom styling beyond what Tailwind provides, that goes in a separate CSS file. AI knows how this works - just let it set things up.
”I want a portfolio site.”
HTML + CSS + Tailwind. Point AI at shadcn for the design. You’ll be done in an afternoon.
I want to build a portfolio site with a hero section, an aboutsection, and a project grid. Use HTML and Tailwind CSS. Keepfiles short and focused. Use https://ui.shadcn.com as thedesign reference. Plan the structure first and save it toplan.md before writing any code.”I want a landing page for my startup.”
Same stack, unless you need something interactive like a calendar, live pricing calculator, or filters. If the page just sits there and looks good, HTML is fine. If users click things and stuff changes on screen, read the web app section above.
I want to build a landing page for [my product]. It needs a hero,features section, pricing, and a contact form. Use HTML andTailwind CSS. Keep files short and focused.Use https://ui.shadcn.com as the design reference. If any sectionneeds interactivity beyond a basic form, tell me before buildingand suggest the right approach. Plan the structure first and saveit to plan.md before writing any code.”I want a blog.”
A static site generator like Astro or Hugo. Your content lives in files, the site builds itself, and you won’t need a database.
I want to build a personal blog. I'll write posts in markdown.I need a homepage with a post list, individual post pages, andtags. Use Astro with Tailwind CSS. Keep files short and focused- each component in its own file.Use https://ui.shadcn.com as the design reference. Plan thestructure first and save it to plan.md before writing any code.”I want an app where people log in and do stuff.”
Now you need a framework. Tell AI upfront what “stuff” means and what you’ll want to add in six months.
I'm building a web app where users can [describe what they do].It needs user accounts, a dashboard, and [list key features].This will grow over time - I'll want to add [future features].Recommend a framework and explain why. Keep files short andfocused - each component in its own file. Plan the fullstructure first and save it to plan.md before writing any code.”I want a dashboard with real-time data.”
Next.js or React with a backend. “Real-time” means your data updates without refreshing the page, and that requires a server running somewhere - not just static files. This is one of the more complex things to build with AI, so be extra specific about what you need. Does data update every second? Every minute? Only when you refresh? The answer changes everything.
I'm building a dashboard that shows [type of data] updating[every second / every minute / on refresh]. Data comes from[source/API]. It needs [list views/charts/filters]. Recommenda tech stack including the backend and explain the tradeoffs.Keep files short and focused - each component in its own file.Plan the full structure first and save it to plan.md beforewriting any code.”I want an iPhone app.”
Read the native section above one more time. Then sleep on it. If you still want it in the morning, go for it.
I want to build a native iOS app that [does X]. Before we startcoding, tell me: what are the realistic challenges? What will Ineed (accounts, certificates, tools)? What's the simplest techstack for someone who doesn't write code? Be honest about thetime commitment.One conversation now, weeks saved later
Whether you’re using Claude, ChatGPT, Cursor, or any other AI tool - the question is the same: what am I actually building, and what should I build it with?
Every project I’ve lost died the same way. Not because the idea was bad. Not because AI couldn’t build it. Because I skipped that question at the beginning and ran into a wall when the project outgrew its own foundation.
You don’t need to become a developer. You don’t need to understand the difference between server-side rendering and client-side hydration (most developers argue about this too). You just need to tell AI where you’re going, not only where you are.
One conversation. One question. That’s the difference between building something that lasts and rebuilding something that didn’t.