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