|
0cb4a5e…
|
anonymous
|
1 |
# Boilerworks |
|
0cb4a5e…
|
anonymous
|
2 |
|
|
0cb4a5e…
|
anonymous
|
3 |
**Production-ready project templates — assembled in seconds.** |
|
0cb4a5e…
|
anonymous
|
4 |
|
|
0cb4a5e…
|
anonymous
|
5 |
Boilerworks is a CLI that clones and configures any of 26 opinionated, best-of-breed project templates. Stop re-solving auth, permissions, Docker, CI, and admin panels from scratch. Pick a stack, run `boilerworks init`, and get straight to your business logic. |
|
0cb4a5e…
|
anonymous
|
6 |
|
|
c5c5085…
|
anonymous
|
7 |
```bash |
|
0cb4a5e…
|
anonymous
|
8 |
pip install boilerworks |
|
0cb4a5e…
|
anonymous
|
9 |
boilerworks setup # interactive wizard → writes boilerworks.yaml |
|
0cb4a5e…
|
anonymous
|
10 |
boilerworks init # clone + configure the template |
|
0cb4a5e…
|
anonymous
|
11 |
cd my-project |
|
0cb4a5e…
|
anonymous
|
12 |
docker compose up -d # full stack running in seconds |
|
0cb4a5e…
|
anonymous
|
13 |
``` |
|
0cb4a5e…
|
anonymous
|
14 |
|
|
0cb4a5e…
|
anonymous
|
15 |
--- |
|
0cb4a5e…
|
anonymous
|
16 |
|
|
0cb4a5e…
|
anonymous
|
17 |
## Installation |
|
0cb4a5e…
|
anonymous
|
18 |
|
|
0cb4a5e…
|
anonymous
|
19 |
```bash |
|
0cb4a5e…
|
anonymous
|
20 |
pip install boilerworks |
|
0cb4a5e…
|
anonymous
|
21 |
# or with uv: |
|
0cb4a5e…
|
anonymous
|
22 |
uv tool install boilerworks |
|
0cb4a5e…
|
anonymous
|
23 |
``` |
|
0cb4a5e…
|
anonymous
|
24 |
|
|
0cb4a5e…
|
anonymous
|
25 |
Requires Python 3.12+. |
|
0cb4a5e…
|
anonymous
|
26 |
|
|
0cb4a5e…
|
anonymous
|
27 |
--- |
|
0cb4a5e…
|
anonymous
|
28 |
|
|
0cb4a5e…
|
anonymous
|
29 |
## Quick Start |
|
0cb4a5e…
|
anonymous
|
30 |
|
|
0cb4a5e…
|
anonymous
|
31 |
### 1. Run the setup wizard |
|
0cb4a5e…
|
anonymous
|
32 |
|
|
0cb4a5e…
|
anonymous
|
33 |
```bash |
|
0cb4a5e…
|
anonymous
|
34 |
boilerworks setup |
|
0cb4a5e…
|
anonymous
|
35 |
``` |
|
0cb4a5e…
|
anonymous
|
36 |
|
|
0cb4a5e…
|
anonymous
|
37 |
Answer 13 questions about your project (name, template, cloud, compliance, etc.) and a `boilerworks.yaml` manifest is written to the current directory. |
|
0cb4a5e…
|
anonymous
|
38 |
|
|
0cb4a5e…
|
anonymous
|
39 |
### 2. Generate the project |
|
0cb4a5e…
|
anonymous
|
40 |
|
|
0cb4a5e…
|
anonymous
|
41 |
```bash |
|
0cb4a5e…
|
anonymous
|
42 |
boilerworks init |
|
0cb4a5e…
|
anonymous
|
43 |
``` |
|
0cb4a5e…
|
anonymous
|
44 |
|
|
0cb4a5e…
|
anonymous
|
45 |
Boilerworks clones the selected template, replaces all `boilerworks` references with your project name, and runs `git init` to give you a clean starting commit. |
|
0cb4a5e…
|
anonymous
|
46 |
|
|
0cb4a5e…
|
anonymous
|
47 |
### 3. Start developing |
|
0cb4a5e…
|
anonymous
|
48 |
|
|
0cb4a5e…
|
anonymous
|
49 |
```bash |
|
0cb4a5e…
|
anonymous
|
50 |
cd my-project |
|
0cb4a5e…
|
anonymous
|
51 |
docker compose up -d |
|
0cb4a5e…
|
anonymous
|
52 |
# Visit http://localhost:3000 |
|
0cb4a5e…
|
anonymous
|
53 |
``` |
|
0cb4a5e…
|
anonymous
|
54 |
|
|
0cb4a5e…
|
anonymous
|
55 |
One command. Full stack. No manual setup. |
|
0cb4a5e…
|
anonymous
|
56 |
|
|
0cb4a5e…
|
anonymous
|
57 |
--- |
|
0cb4a5e…
|
anonymous
|
58 |
|
|
0cb4a5e…
|
anonymous
|
59 |
## Template Catalogue |
|
0cb4a5e…
|
anonymous
|
60 |
|
|
0cb4a5e…
|
anonymous
|
61 |
26 templates across three sizes: |
|
0cb4a5e…
|
anonymous
|
62 |
|
|
0cb4a5e…
|
anonymous
|
63 |
| Size | Description | Auth | Deploy Target | |
|
0cb4a5e…
|
anonymous
|
64 |
|------|-------------|------|---------------| |
|
0cb4a5e…
|
anonymous
|
65 |
| **Full** | Apps with users | Session auth, permissions, org management | VPS, containers, Kubernetes | |
|
0cb4a5e…
|
anonymous
|
66 |
| **Micro** | API services | API-key auth | VPS, containers | |
|
0cb4a5e…
|
anonymous
|
67 |
| **Edge** | Serverless apps | Flexible | Cloudflare Workers / Pages | |
|
0cb4a5e…
|
anonymous
|
68 |
|
|
0cb4a5e…
|
anonymous
|
69 |
### Full Templates (15) |
|
0cb4a5e…
|
anonymous
|
70 |
|
|
c5c5085…
|
anonymous
|
71 |
| Name | Backend | Frontend | |
|
c5c5085…
|
anonymous
|
72 |
|------|---------|----------| |
|
c5c5085…
|
anonymous
|
73 |
| [django-nextjs](https://github.com/ConflictHQ/boilerworks-django-nextjs) | Django 5 | Next.js 16 | |
|
c5c5085…
|
anonymous
|
74 |
| [nestjs-nextjs](https://github.com/ConflictHQ/boilerworks-nestjs-nextjs) | NestJS 11 | Next.js 16 | |
|
c5c5085…
|
anonymous
|
75 |
| [rails-hotwire](https://github.com/ConflictHQ/boilerworks-rails-hotwire) | Rails 8 | Hotwire + Tailwind | |
|
c5c5085…
|
anonymous
|
76 |
| [rails-nextjs](https://github.com/ConflictHQ/boilerworks-rails-nextjs) | Rails 8 | Next.js 16 | |
|
c5c5085…
|
anonymous
|
77 |
| [spring-angular](https://github.com/ConflictHQ/boilerworks-spring-angular) | Spring Boot 3 | Angular 19 | |
|
c5c5085…
|
anonymous
|
78 |
| [go-nextjs](https://github.com/ConflictHQ/boilerworks-go-nextjs) | Go + Chi | Next.js 16 | |
|
c5c5085…
|
anonymous
|
79 |
| [phoenix-liveview](https://github.com/ConflictHQ/boilerworks-phoenix-liveview) | Phoenix 1.7 | LiveView | |
|
c5c5085…
|
anonymous
|
80 |
| [laravel-vue](https://github.com/ConflictHQ/boilerworks-laravel-vue) | Laravel 12 | Inertia + Vue 3 | |
|
c5c5085…
|
anonymous
|
81 |
| [django-htmx](https://github.com/ConflictHQ/boilerworks-django-htmx) | Django 5 | HTMX + Alpine.js | |
|
c5c5085…
|
anonymous
|
82 |
| [fastapi-nextjs](https://github.com/ConflictHQ/boilerworks-fastapi-nextjs) | FastAPI | Next.js 16 | |
|
c5c5085…
|
anonymous
|
83 |
| [spring-nextjs](https://github.com/ConflictHQ/boilerworks-spring-nextjs) | Spring Boot 3 | Next.js 16 | |
|
c5c5085…
|
anonymous
|
84 |
| [laravel-livewire](https://github.com/ConflictHQ/boilerworks-laravel-livewire) | Laravel 12 | Livewire 3 | |
|
c5c5085…
|
anonymous
|
85 |
| [go-htmx](https://github.com/ConflictHQ/boilerworks-go-htmx) | Go + Chi | HTMX + Templ | |
|
c5c5085…
|
anonymous
|
86 |
| [fastapi-htmx](https://github.com/ConflictHQ/boilerworks-fastapi-htmx) | FastAPI | HTMX + Alpine.js | |
|
c5c5085…
|
anonymous
|
87 |
| [saleor-nextjs](https://github.com/ConflictHQ/boilerworks-saleor-nextjs) | Saleor (Django) | Next.js 16 | |
|
0cb4a5e…
|
anonymous
|
88 |
|
|
0cb4a5e…
|
anonymous
|
89 |
### Micro Templates (6) |
|
0cb4a5e…
|
anonymous
|
90 |
|
|
c5c5085…
|
anonymous
|
91 |
| Name | Backend | |
|
c5c5085…
|
anonymous
|
92 |
|------|---------| |
|
c5c5085…
|
anonymous
|
93 |
| [django-micro](https://github.com/ConflictHQ/boilerworks-django-micro) | Django 5 (DRF/Ninja) | |
|
c5c5085…
|
anonymous
|
94 |
| [fastapi-micro](https://github.com/ConflictHQ/boilerworks-fastapi-micro) | FastAPI | |
|
c5c5085…
|
anonymous
|
95 |
| [nestjs-micro](https://github.com/ConflictHQ/boilerworks-nestjs-micro) | NestJS 11 | |
|
c5c5085…
|
anonymous
|
96 |
| [go-micro](https://github.com/ConflictHQ/boilerworks-go-micro) | Go + Chi | |
|
c5c5085…
|
anonymous
|
97 |
| [rust-micro](https://github.com/ConflictHQ/boilerworks-rust-micro) | Axum (Rust) | |
|
c5c5085…
|
anonymous
|
98 |
| [cherrypy-micro](https://github.com/ConflictHQ/boilerworks-cherrypy-micro) | CherryPy | |
|
0cb4a5e…
|
anonymous
|
99 |
|
|
0cb4a5e…
|
anonymous
|
100 |
### Edge Templates (5) |
|
0cb4a5e…
|
anonymous
|
101 |
|
|
c5c5085…
|
anonymous
|
102 |
| Name | Framework | |
|
c5c5085…
|
anonymous
|
103 |
|------|-----------| |
|
c5c5085…
|
anonymous
|
104 |
| [sveltekit-full](https://github.com/ConflictHQ/boilerworks-sveltekit-full) | SvelteKit | |
|
c5c5085…
|
anonymous
|
105 |
| [remix-full](https://github.com/ConflictHQ/boilerworks-remix-full) | Remix | |
|
c5c5085…
|
anonymous
|
106 |
| [hono-micro](https://github.com/ConflictHQ/boilerworks-hono-micro) | Hono (Cloudflare Workers) | |
|
c5c5085…
|
anonymous
|
107 |
| [nuxt-full](https://github.com/ConflictHQ/boilerworks-nuxt-full) | Nuxt 4 | |
|
c5c5085…
|
anonymous
|
108 |
| [astro-site](https://github.com/ConflictHQ/boilerworks-astro-site) | Astro | |
|
0cb4a5e…
|
anonymous
|
109 |
|
|
0cb4a5e…
|
anonymous
|
110 |
--- |
|
0cb4a5e…
|
anonymous
|
111 |
|
|
0cb4a5e…
|
anonymous
|
112 |
## Commands |
|
0cb4a5e…
|
anonymous
|
113 |
|
|
0cb4a5e…
|
anonymous
|
114 |
```bash |
|
0cb4a5e…
|
anonymous
|
115 |
boilerworks --help # show all commands |
|
0cb4a5e…
|
anonymous
|
116 |
boilerworks list # show all 26 templates |
|
0cb4a5e…
|
anonymous
|
117 |
boilerworks list --size micro # filter by size |
|
0cb4a5e…
|
anonymous
|
118 |
boilerworks list --language python # filter by language |
|
0cb4a5e…
|
anonymous
|
119 |
boilerworks setup # interactive wizard |
|
0cb4a5e…
|
anonymous
|
120 |
boilerworks init # generate project from boilerworks.yaml |
|
0cb4a5e…
|
anonymous
|
121 |
boilerworks init --dry-run # preview what would happen |
|
0cb4a5e…
|
anonymous
|
122 |
boilerworks init --manifest ./path/to/boilerworks.yaml |
|
0cb4a5e…
|
anonymous
|
123 |
boilerworks init --output /path/to/output |
|
0cb4a5e…
|
anonymous
|
124 |
``` |
|
0cb4a5e…
|
anonymous
|
125 |
|
|
0cb4a5e…
|
anonymous
|
126 |
--- |
|
0cb4a5e…
|
anonymous
|
127 |
|
|
0cb4a5e…
|
anonymous
|
128 |
## boilerworks.yaml |
|
0cb4a5e…
|
anonymous
|
129 |
|
|
0cb4a5e…
|
anonymous
|
130 |
The manifest file describes your project. Generated by `boilerworks setup`, editable by hand. |
|
0cb4a5e…
|
anonymous
|
131 |
|
|
0cb4a5e…
|
anonymous
|
132 |
```yaml |
|
0cb4a5e…
|
anonymous
|
133 |
project: my-app |
|
0cb4a5e…
|
anonymous
|
134 |
family: django-nextjs |
|
0cb4a5e…
|
anonymous
|
135 |
size: full |
|
0cb4a5e…
|
anonymous
|
136 |
topology: standard |
|
0cb4a5e…
|
anonymous
|
137 |
cloud: aws |
|
c5c5085…
|
anonymous
|
138 |
ops: true |
|
0cb4a5e…
|
anonymous
|
139 |
region: us-east-1 |
|
0cb4a5e…
|
anonymous
|
140 |
domain: myapp.com |
|
0cb4a5e…
|
anonymous
|
141 |
mobile: false |
|
0cb4a5e…
|
anonymous
|
142 |
web_presence: false |
|
0cb4a5e…
|
anonymous
|
143 |
compliance: |
|
0cb4a5e…
|
anonymous
|
144 |
- soc2 |
|
0cb4a5e…
|
anonymous
|
145 |
services: |
|
0cb4a5e…
|
anonymous
|
146 |
email: ses |
|
0cb4a5e…
|
anonymous
|
147 |
cache: redis |
|
0cb4a5e…
|
anonymous
|
148 |
data: |
|
0cb4a5e…
|
anonymous
|
149 |
database: postgres |
|
0cb4a5e…
|
anonymous
|
150 |
migrations: true |
|
0cb4a5e…
|
anonymous
|
151 |
seed_data: true |
|
0cb4a5e…
|
anonymous
|
152 |
testing: |
|
0cb4a5e…
|
anonymous
|
153 |
e2e: playwright |
|
0cb4a5e…
|
anonymous
|
154 |
unit: true |
|
0cb4a5e…
|
anonymous
|
155 |
integration: true |
|
0cb4a5e…
|
anonymous
|
156 |
``` |
|
0cb4a5e…
|
anonymous
|
157 |
|
|
0cb4a5e…
|
anonymous
|
158 |
See [`boilerworks.yaml.example`](boilerworks.yaml.example) for a fully annotated version. |
|
0cb4a5e…
|
anonymous
|
159 |
|
|
0cb4a5e…
|
anonymous
|
160 |
--- |
|
0cb4a5e…
|
anonymous
|
161 |
|
|
0cb4a5e…
|
anonymous
|
162 |
## What Every Template Includes |
|
0cb4a5e…
|
anonymous
|
163 |
|
|
0cb4a5e…
|
anonymous
|
164 |
Every Boilerworks Full template ships with: |
|
0cb4a5e…
|
anonymous
|
165 |
|
|
c5c5085…
|
anonymous
|
166 |
- **Auth** — session-based (httpOnly cookies), bcrypt passwords |
|
0cb4a5e…
|
anonymous
|
167 |
- **Permissions** — group-based, per-operation, checked at every endpoint |
|
0cb4a5e…
|
anonymous
|
168 |
- **Background jobs** — Redis-backed queue, retries, dead-letter handling |
|
0cb4a5e…
|
anonymous
|
169 |
- **Email** — provider-agnostic (SES, SendGrid, Mailgun, Mailpit locally) |
|
c5c5085…
|
anonymous
|
170 |
- **Admin** — authenticated management interface with CRUD for all models |
|
0cb4a5e…
|
anonymous
|
171 |
- **Docker Compose** — one command to boot the full stack |
|
0cb4a5e…
|
anonymous
|
172 |
- **CI/CD** — GitHub Actions: lint, test, build, audit |
|
0cb4a5e…
|
anonymous
|
173 |
- **AI agent shims** — CLAUDE.md, AGENTS.md, bootstrap.md |
|
c5c5085…
|
anonymous
|
174 |
|
|
c5c5085…
|
anonymous
|
175 |
--- |
|
c5c5085…
|
anonymous
|
176 |
|
|
c5c5085…
|
anonymous
|
177 |
## Infrastructure |
|
c5c5085…
|
anonymous
|
178 |
|
|
c5c5085…
|
anonymous
|
179 |
Pair any template with [boilerworks-opscode](https://github.com/ConflictHQ/boilerworks-opscode) for production Terraform: |
|
c5c5085…
|
anonymous
|
180 |
|
|
c5c5085…
|
anonymous
|
181 |
- **AWS** — ECS Fargate, RDS Postgres 16, ElastiCache Redis, ALB, Route53, ACM, S3, Secrets Manager |
|
c5c5085…
|
anonymous
|
182 |
- **GCP / Azure** — structured stubs ready for expansion |
|
c5c5085…
|
anonymous
|
183 |
|
|
c5c5085…
|
anonymous
|
184 |
Select a cloud in `boilerworks setup` and `boilerworks init` will clone and configure the ops repo alongside your app. |
|
0cb4a5e…
|
anonymous
|
185 |
|
|
0cb4a5e…
|
anonymous
|
186 |
--- |
|
0cb4a5e…
|
anonymous
|
187 |
|
|
0cb4a5e…
|
anonymous
|
188 |
## Contributing |
|
0cb4a5e…
|
anonymous
|
189 |
|
|
0cb4a5e…
|
anonymous
|
190 |
See [CONTRIBUTING.md](CONTRIBUTING.md) for the development process. |
|
0cb4a5e…
|
anonymous
|
191 |
|
|
0cb4a5e…
|
anonymous
|
192 |
Issues and PRs welcome at [github.com/ConflictHQ/boilerworks](https://github.com/ConflictHQ/boilerworks). |
|
0cb4a5e…
|
anonymous
|
193 |
|
|
0cb4a5e…
|
anonymous
|
194 |
--- |
|
0cb4a5e…
|
anonymous
|
195 |
|
|
0cb4a5e…
|
anonymous
|
196 |
## Links |
|
0cb4a5e…
|
anonymous
|
197 |
|
|
0cb4a5e…
|
anonymous
|
198 |
- Documentation: [boilerworks.dev](https://boilerworks.dev) |
|
c5c5085…
|
anonymous
|
199 |
- Product: [boilerworks.ai](https://boilerworks.ai) |
|
0cb4a5e…
|
anonymous
|
200 |
- Templates: [github.com/ConflictHQ](https://github.com/ConflictHQ) |
|
0cb4a5e…
|
anonymous
|
201 |
|
|
0cb4a5e…
|
anonymous
|
202 |
--- |
|
0cb4a5e…
|
anonymous
|
203 |
|
|
f3f6dc2…
|
anonymous
|
204 |
Boilerworks is a [CONFLICT](https://weareconflict.com) brand. CONFLICT is a registered trademark of CONFLICT LLC. |