Rıdvan Karadağ

How would I start a new Frontend project?

August 7, 2026

In addition to my full-time job, I love creating projects, offering mentorship, and running freelance projects. It taught me a lot about 0-1 processes. And I'll try to share my experience and tricks here.

Before you even dare to ask, you might rather ask this question to an AI Agent, but let's discover my recipe as well to see if it makes things any easier.

And no, this is not a bulletproof recipe; it depends on the requirement, project, idea, your knowledge base, and your clients' knowledge base.

I'm starting this with these assumptions:

  • It's going to be a 0-1 project; we don't take over an existing project. Everything starts from scratch, and the goal is either building the MVP or a better version, but we're not building a tech company here (yet)
  • It's going to be deployed from day 1; you don't build it for yourself, someone should see it!
  • We don't want to create any extra cost; we'll try to avoid as much as possible.
  • We want to keep things as simple as possible but also as easy as possible for LLM tools.
  • It's going to be a UI-focused project, something the users are going to interact with.

Engine is on

I've been building UIs with React for many years now, and teaching it as well. So, my natural choice is biased. Anything would work here. But given its popularity, LLM tools would choose it as well.

My tip here is always to check react.dev before starting a new project, especially https://react.dev/learn/creating-a-react-app. If you're still using Create React App (CRA), update your knowledge or change your AI model. Also, try to adapt TypeScript from the very first moment. Don't be lazy; you won't write much code anyway.

Full Stack Framework

Reading the link above will give you all the explanation, so we have a couple of alternatives here. Go with Next.js unless you have a strong reason not to. Alternatively, I can also recommend checking Astro, which isn't mentioned in the list but will make you happy. The others are also promising, but considering LLM friendliness and some other topics I'll mention, Next.js would be the strongest choice.

Also, you'll have a full-stack framework now, which means at this stage you don't need to maintain another repo/project/language to create your backend. We'll go MVP with Next.js, hold tight!

Starting from 0.5

Who said you need to start from complete zero? An LLM tool, but not me. Gather your requirements and challenges, and solve most of them or the most crucial ones with https://vercel.com/templates/next.js. You can also get inspired for the remaining challenges.

Just be careful about the starter you choose; make sure it's up to date. We're expecting at least matching major versions of React/Next.js.

Make up time

I'm a big fan of CSS Modules, but I am a bigger fan of Tailwind. I can be a bit biased, but it still perfectly matches our goals. Go with it.

Second, use Shadcn; LLM tools support it, and it's easy and efficient. Build your components by basing them on Shadcn ones. You won't need another adventure.

Let's do the first deployment

If you've stuck with JavaScript libraries and frameworks so far, good news: you can also use Vercel for deployments. For Free. And you can easily connect your GitHub repo to Vercel, enable continuous deployment, and get your URL in minutes. And honestly, the free tier will be more than enough for a while. Until then, you don't need to consider anything.

I want to save my data

I assume our MVP involves some real Backend work, so we'd need to save that damn data. You can use anything if you have experience; if not, go with PostgreSQL. Another cool thing you can get for free is a PostgreSQL instance from NeonDB via the Vercel Marketplace. In minutes you'll have your instance created and environment variables set in your repo. The left is finding a nice ORM tool to manage your database connection properly. Drizzle or Prisma, choose one, go ahead. Both will work seamlessly, and you can check if there's any starter that has already chosen one of them.

Personally, it's the first place I start investing after the initial version; my generic next step is buying my own DB instance from AWS RDS. But keep monitoring and don't do it until you really need it. (Also, I'll share more in the next steps part)

I wish my users could authenticate

This is probably the part I don't have any strong preferences. I quickly scanned my repos and realized I've been sticking with next-auth, which has become Better Auth now. https://better-auth.com/

You can also try Clerk or Auth0, but at this stage you don't even need to think more.

No, I actually wish I could charge them

Stripe. That's it. There are many starters already, and even a marketplace integration. One thing to consider: you don't need to build plan/checkout pages. Try to use Stripe's pre-built screens at this stage. It'd also be easier for the users to manage their subscriptions. You can also later check RevenueCat for more customized paywalls and A/B tests.

It's going somewhere, but I need to store files, images

Use Vercel Blob Store; 1 GB of disk space is really nice to start with for FREE. https://vercel.com/storage/blob, also just one click to integrate with.

Can I send my users emails, too?

Just don't spam them much, but use Resend. Easy to integrate and use. You'll have 100 Emails per day and 3000 per month in your Free Tier. You'll need to have your domain set up at that moment; don't forget.

I want to create/maintain my content

Either creating a whole blog or managing/editing the website content, you might need a Content Management System.

Now we can jump into the headless CMS world. Here I'd choose Strapi, BUT it's not free, or it's only free when you self-host it. So I can here recommend Contentful as a free-tier alternative https://www.contentful.com/

Here's another trick: analyze what you want to make dynamic; if it's something simple and won't change so often, you don't need to maintain any other integration. You can use any LLM tool right now to create an administration page of your specific content. You can already store it in your PostgreSQL integration. Understand the requirements nicely.

How do I speed things a bit up?

There are hundreds of optimizations on any application. But start small: what happens whenever a user visits your page? Does it redownload all the assets and images, or send new network requests?

Make sure you have a proper cache policy for the assets. And then check your network requests; if you call them often, let's say in every reload, is it really necessary?

Then your data: every request goes to a server that has your DB and pulls the data from the DB; it might not have changed for a while. And maybe won't so often. Alternatively, you could also store this information in memory key/value storage, such as Redis. So instead of always getting the data from the DB, you can use the DB to write, then write the information also to Redis and always get it from Redis. Now you're also moving into the world of Distributed Systems, and every solution we introduce has pros and cons, but don't worry. With a minimal implementation, you'll already see great results.

And for the Redis Integration, you can use Upstash Redis on the Vercel Marketplace and start integrating in minutes.

Analytics/Errors

You'll need to keep track of the analytics data and see the errors your users faced. Plus, you might want to set up dashboards to see any important data about your website. Here's my favorite tool, PostHog. Free to install and easy to integrate. Supports all the things I mentioned above and even more.

What's next then?

I hope this covered your version 0.1 already :) I realized I promoted Vercel a lot, yet I want to mention that I have no cooperation with them. I might try to be an individual or agency partner, but at least for now I'm sharing these as a consumer.

The logical next step is for you to check the metrics and see if there are any anomalies. If not, it's time to read more about what you have implemented. You already have your base; it's time to improve it. But don't change anything until you really need it or you know what you're doing.

My biggest recommendation here is to apply for the AWS Startup program, for yourself or advise it to your client. The free tier + startup credits are more than enough to build a proper architecture. You can move everything we discussed above to Amazon Web Services. Already mentioned AWS RDS for databases, then Amplify for deployment, Cognito for authentication, and S3 for storage, and so on.

In the meantime, I'd recommend studying CI & CD more, investing more time in automating things, and putting even more focus on QA practices. Basically, you'd want a proper test setup, following the Testing Pyramid, with a linter, formatter, and type checkers implemented. You're working in a pull-request-driven flow where each PR goes through a couple of GitHub workflows, and you only merge if everything is green! If your setup gives you trust, you can run more experiments, test different folder structures or even architectures.

What's neeeext then?

Share your experience with me: how it went, what could have been improved, what was terrible to experiment with. So I can maintain it better and give personalized feedback! Also subscribe to my newsletter, and tell me what you want to see more, so I can continue to share my experience!

Previous
All projects