BoilerWorks

boilerworks / docs / guide / templates.md
Source Blame History 98 lines
6f83112… anonymous 1 # Template Catalogue
6f83112… anonymous 2
6f83112… anonymous 3 26 production-ready templates across 10 stacks. All ship with real code — no stubs, no TODOs.
6f83112… anonymous 4
6f83112… anonymous 5 ## Full Templates
6f83112… anonymous 6
6f83112… anonymous 7 Apps with user auth, group permissions, and full admin interface.
6f83112… anonymous 8
6f83112… anonymous 9 | Template | Backend | Frontend | Auth | Jobs |
6f83112… anonymous 10 |----------|---------|----------|------|------|
6f83112… anonymous 11 | `django-nextjs` | Django 5 | Next.js 16 (GraphQL/Apollo) | Session | Celery |
6f83112… anonymous 12 | `rails-nextjs` | Rails 8 | Next.js 16 (GraphQL/Apollo) | Session | Solid Queue |
6f83112… anonymous 13 | `rails-hotwire` | Rails 8 | Hotwire + Tailwind | Session | Solid Queue |
6f83112… anonymous 14 | `nestjs-nextjs` | NestJS | Next.js 16 (GraphQL/Apollo) | Session | Bull |
6f83112… anonymous 15 | `laravel-vue` | Laravel 12 | Vue 3 (Inertia) | Session | Horizon |
6f83112… anonymous 16 | `spring-angular` | Spring Boot | Angular 19 | Session | Spring Scheduler |
6f83112… anonymous 17 | `go-nextjs` | Go | Next.js 16 (GraphQL) | Session | — |
6f83112… anonymous 18 | `remix-full` | Remix | — | Session | — |
6f83112… anonymous 19 | `sveltekit-full` | SvelteKit | — | Session | — |
6f83112… anonymous 20 | `phoenix-liveview` | Phoenix | LiveView | Session | Oban |
6f83112… anonymous 21
6f83112… anonymous 22 ### What's in every Full template
6f83112… anonymous 23
6f83112… anonymous 24 - **User model** with `has_secure_password` / bcrypt
6f83112… anonymous 25 - **Group-based permissions** — Pundit / CanCan / custom
6f83112… anonymous 26 - **Concerns/mixins**: Auditable, SoftDeletable, ExternalId (UUID), Versionable
6f83112… anonymous 27 - **Business models**: Items, Categories, FormDefinitions, FormSubmissions, WorkflowDefinitions, WorkflowInstances
6f83112… anonymous 28 - **Admin dashboard** with CRUD for all models
6f83112… anonymous 29 - **PostgreSQL 16** (primary) + **Redis 7** (cache + jobs)
6f83112… anonymous 30 - **Mailpit** (dev email catcher)
6f83112… anonymous 31 - **Docker Compose** (dev) + **Dockerfile** (prod, multi-stage)
6f83112… anonymous 32 - **Health check** at `/up` or `/health/`
6f83112… anonymous 33 - Tests with real database — never mocked
6f83112… anonymous 34
6f83112… anonymous 35 ---
6f83112… anonymous 36
6f83112… anonymous 37 ## Micro Templates
6f83112… anonymous 38
6f83112… anonymous 39 API-key auth only. No user management, no frontend. Lean, fast, deployable.
6f83112… anonymous 40
6f83112… anonymous 41 | Template | Stack | Auth |
6f83112… anonymous 42 |----------|-------|------|
6f83112… anonymous 43 | `django-micro` | Django 5 REST | API key |
6f83112… anonymous 44 | `fastapi-micro` | FastAPI + async | API key |
6f83112… anonymous 45 | `nestjs-micro` | NestJS REST | API key |
6f83112… anonymous 46 | `rails-micro` | Rails 8 API | API key |
6f83112… anonymous 47 | `laravel-micro` | Laravel 12 API | API key |
6f83112… anonymous 48 | `spring-micro` | Spring Boot | API key |
6f83112… anonymous 49 | `go-micro` | Go + Chi | API key |
6f83112… anonymous 50 | `express-micro` | Express + TypeScript | API key |
6f83112… anonymous 51 | `phoenix-micro` | Phoenix API | API key |
6f83112… anonymous 52 | `rust-micro` | Axum | API key |
6f83112… anonymous 53
6f83112… anonymous 54 ### What's in every Micro template
6f83112… anonymous 55
6f83112… anonymous 56 - API key auth middleware
6f83112… anonymous 57 - Items CRUD endpoint
6f83112… anonymous 58 - Health check
6f83112… anonymous 59 - PostgreSQL 16 + Redis 7
6f83112… anonymous 60 - Docker Compose + Dockerfile
6f83112… anonymous 61 - OpenAPI / Swagger docs (where framework supports it)
6f83112… anonymous 62
6f83112… anonymous 63 ---
6f83112… anonymous 64
6f83112… anonymous 65 ## Edge Templates
6f83112… anonymous 66
6f83112… anonymous 67 Cloudflare-native. No servers, no Docker — deploys to the global edge.
6f83112… anonymous 68
6f83112… anonymous 69 | Template | Platform | Runtime |
6f83112… anonymous 70 |----------|----------|---------|
6f83112… anonymous 71 | `sveltekit-edge` | Cloudflare Pages | SvelteKit + adapter-cloudflare |
6f83112… anonymous 72 | `remix-edge` | Cloudflare Pages | Remix + adapter-cloudflare |
6f83112… anonymous 73 | `nextjs-edge` | Cloudflare Pages | Next.js + @cloudflare/next-on-pages |
6f83112… anonymous 74 | `astro-edge` | Cloudflare Pages | Astro + adapter-cloudflare |
6f83112… anonymous 75 | `hono-edge` | Cloudflare Workers | Hono |
6f83112… anonymous 76 | `worker-edge` | Cloudflare Workers | bare Worker API |
6f83112… anonymous 77
6f83112… anonymous 78 ### What's in every Edge template
6f83112… anonymous 79
6f83112… anonymous 80 - Cloudflare Workers / Pages deploy config (`wrangler.toml`)
6f83112… anonymous 81 - D1 (SQLite) or KV bindings
6f83112… anonymous 82 - Local dev with `wrangler dev`
6f83112… anonymous 83 - GitHub Actions deploy workflow
6f83112… anonymous 84
6f83112… anonymous 85 ---
6f83112… anonymous 86
6f83112… anonymous 87 ## Ports
6f83112… anonymous 88
6f83112… anonymous 89 All templates use standardised ports to avoid collisions when running multiple projects:
6f83112… anonymous 90
6f83112… anonymous 91 | Service | Port |
6f83112… anonymous 92 |---------|------|
6f83112… anonymous 93 | App | 3000 (frontend) / 8000 (backend API) |
6f83112… anonymous 94 | PostgreSQL | 5432 |
6f83112… anonymous 95 | Redis | 6379 |
6f83112… anonymous 96 | Mailpit (SMTP) | 1025 |
6f83112… anonymous 97 | Mailpit (UI) | 8025 |
6f83112… anonymous 98 | MinIO (S3) | 9001 |

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button