Back to posts

Building Modern Web Apps Without Losing Your Mind

A practical guide to choosing your stack, structuring your project, and shipping without burnout.

· 2 min read

Starting a new web app feels exciting until you stare at a blank directory and realize you have a hundred decisions to make before writing a single line of code. Framework, styling, state management, deployment — the choices are endless, and the wrong one can haunt you for months.

Here is how I approach it, and how you can too without overthinking it.

Start with the content, not the stack

Before you pick a framework, ask what your site actually is. Is it a blog? A dashboard? A marketing page? The content dictates the technology, not the other way around.

For content-heavy sites, static site generators like Astro shine because they ship zero JavaScript by default. For interactive dashboards, you might need something more client-heavy like React or Vue. Neither is wrong — they just solve different problems.

Pick one styling system and stick with it

Tailwind, CSS modules, vanilla CSS — any of them work if you are consistent. The real productivity killer is mixing three different approaches in one codebase and wondering why nothing lines up.

I use Tailwind with daisyUI because it gives me utility flexibility plus ready-made components, all without leaving my HTML.

Structure for change, not for perfection

Your first project structure will be wrong. That is fine. Organize by feature, not by file type, so related code lives together and you can delete whole features without archaeology.

src/
  components/
  content/
  lib/
  pages/

Keep it flat. Nest only when you absolutely have to.

Ship ugly, then make it pretty

Perfectionism is the enemy of deployment. Get something live — even if it is just a single page with your name on it — and iterate from there. A live site teaches you more than a local one ever will.

The deploy button is scarier than the code. Click it anyway.

Published October 15, 2026 · Updated November 1, 2026