1
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# Choosing a Template
2
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
3
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## By what you're building
4
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
5
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| If you're building... | Use |
6
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
|----------------------|-----|
7
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| SaaS with user accounts, teams, billing | Full |
8
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Internal tool / admin app | Full |
9
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Public API for developers | Micro |
10
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Microservice in a larger system | Micro |
11
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Marketing site or landing page | Edge |
12
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Globally distributed API | Edge |
13
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
14
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## By your team's stack
15
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
16
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Team knows... | Reach for |
17
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
|--------------|-----------|
18
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Python | `django-nextjs`, `django-micro`, `fastapi-micro` |
19
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Ruby | `rails-nextjs`, `rails-hotwire`, `rails-micro` |
20
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| TypeScript (Node) | `nestjs-nextjs`, `nestjs-micro`, `express-micro` |
21
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| PHP | `laravel-vue`, `laravel-micro` |
22
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Java / Kotlin | `spring-angular`, `spring-micro` |
23
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Go | `go-nextjs`, `go-micro` |
24
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Elixir | `phoenix-liveview`, `phoenix-micro` |
25
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Rust | `rust-micro` |
26
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Full-stack JS (no separate backend) | `remix-full`, `sveltekit-full`, `remix-edge`, `sveltekit-edge` |
27
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
28
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## By frontend preference
29
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
30
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Frontend | Full templates |
31
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
|----------|---------------|
32
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Next.js (React) | `django-nextjs`, `rails-nextjs`, `nestjs-nextjs`, `go-nextjs` |
33
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Vue (Inertia) | `laravel-vue` |
34
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Angular | `spring-angular` |
35
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Hotwire (server-rendered) | `rails-hotwire` |
36
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| LiveView (server-rendered) | `phoenix-liveview` |
37
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Remix | `remix-full`, `remix-edge` |
38
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| SvelteKit | `sveltekit-full`, `sveltekit-edge` |
39
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
40
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## Crown jewels
41
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
42
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**`django-nextjs`** — the reference implementation. Every pattern in the catalogue was refined here first. Django 5 backend with Strawberry GraphQL, Next.js 16 frontend with Apollo Client. If you're unsure, start here.
43
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
44
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**`rails-hotwire`** — the most opinionated Rails stack. Hotwire (Turbo + Stimulus) + Tailwind CSS 4 + Pundit + Solid Queue. Zero JavaScript build complexity, full interactivity.
45
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
46
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**`fastapi-micro`** — async-native Python API. The fastest way to ship a Python microservice that can handle real load.
47
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!