starting-a-projectlisted
Install: claude install-skill mickzijdel/dev-hooks
# starting-a-project
Two questions when someone wants to build something new: **what to build it with**, and **how to
get it online**. Answer the first from *what they're building*, not from a favourite framework —
then pick the simplest option that fits. They can always grow into something bigger later.
## Pick a stack — what are you building?
| What you're building | Start with |
|----------------------|-----------|
| A content website (blog, portfolio, docs, landing page) | **Astro** |
| An interactive app (dashboard, editor, tool) | **React + Vite** — Next.js if it needs a server |
| A database-backed web app (sign up, log in, CRUD your stuff) | **Rails** (or **Django**) |
| An API / backend service | **FastAPI** |
| A script, tool, or automation | **Python + uv** (or whatever's lightest) |
| A phone app | **Expo** (React Native) |
| A data app or dashboard | **Streamlit** |
| A desktop app, game, browser extension, or chat bot | see the catch-all in the full guide |
The full guide — scaffold command for each, plus styling (**Tailwind**, **shadcn/ui**),
databases (start with **SQLite**), auth, and every option's deploy target — is in
[`references/starter-stacks.md`](references/starter-stacks.md). Read it before recommending one;
don't reconstruct it from memory.
## Ship it — how to put it online
Once it works locally and they ask "how do people actually put this on the internet?", use
[`references/deploy.md`](references/deploy.md): a decision guide from static sites