Meet.

Navigation

HomeAboutBlog

Social

GitHubTwitter
HomeAboutBlog
Back

How I Scaffold a Project (Fast, Clean, and Production-Ready)

Feb 26/2 min read

Every time I start a new project, I follow one rule:

Get to production as early as possible.

Not perfect code. Not perfect architecture. Just something live.


1. Deploy First, Figure Out Later

Most people wait until things are "ready" to deploy.

That's a mistake.

I prefer to:

  • Spin up the project
  • Push it to GitHub
  • Deploy immediately (even if it's just a blank page)

Why?

  • You test real environments early
  • You catch deployment issues immediately
  • You enforce discipline between prod and dev

Branch Strategy

# initialize repo
git init

# create main branch
git checkout -b main

# push initial commit
git add .
git commit -m "initial commit"
git remote add origin <your-repo-url>
git push -u origin main

# create dev branch
git checkout -b dev
git push -u origin dev

Rule:

  • main → always production-ready
  • dev → active work

2. Always Start with a README

Before writing real code, I write a README.

Yes — before anything else.

Example README Structure

# Project Name

## What is this?
Short description of the product.

## Problem
What problem are we solving?

## Tech Stack
- Next.js
- tRPC
- Prisma
- PostgreSQL

## Features (v1)
- Auth
- Dashboard
- API

## Setup
npm install
npm run dev

This helps you:

  • Think clearly
  • Avoid scope creep
  • Document from day one

3. My Go-To Stack (T3 Stack)

I default to the T3 Stack because it removes decision fatigue.

👉 create.t3.gg

Create a Project

npx create-t3-app@latest my-app

Follow prompts:

  • TypeScript → Yes
  • tRPC → Yes
  • Prisma → Yes
  • Tailwind → Yes
  • App Router → Yes
cd my-app
npm install
npm run dev

4. Deploy Immediately (Vercel)

Once it runs locally → deploy.

Install Vercel CLI

npm i -g vercel

Deploy

vercel

Follow prompts → done.

Now you have:

  • Live URL
  • Real environment testing
  • Instant feedback loop

5. Keep It Boring (At First)

When scaffolding:

  • No over-engineering
  • No fancy abstractions
  • No premature optimization

Just ship something small.

Boring code that ships > clever code that doesn't.


6. My Typical Flow

# 1. create app
npx create-t3-app@latest my-app

# 2. enter project
cd my-app

# 3. git setup
git init
git checkout -b main

# 4. first commit
git add .
git commit -m "initial scaffold"

# 5. push
git remote add origin <repo>
git push -u origin main

# 6. deploy
vercel

# 7. create dev branch
git checkout -b dev
git push -u origin dev

Final Thought

Scaffolding isn't about structure.

It's about momentum.

If you can:

  • See your app live
  • Understand what you're building
  • Iterate fast

You're already ahead.

This is how I start. Everything else evolves.

I've used this approach across startup environments where shipping fast mattered more than perfect architecture.

Next

How shadcn/ui is the New Bootstrap