This boilerplate is written to be extended by Claude Code. Three things make that work, and this page sets them up and checks them.
1. Install Claude Code
Follow Anthropic's install guide for Windows, macOS or Linux. You can use it in a terminal or inside VS Code.
2. Open the project and trust it
cd C:\code\myapp
claudeThe first time, Claude Code asks whether you trust this folder. Say yes.
Every command asks for permission?
That means the folder is not trusted. Until it is, Claude Code ignores the project's own settings: the allowed commands and the hooks in .claude/settings.json. We hit this on purpose: the first feature prompt in an untrusted folder took 7 turns and built nothing, because every uv run waited for approval. Open the folder again and accept the trust prompt.
3. What Claude reads
- CLAUDE.md (135 lines), loaded on every session: where a feature goes, the one helper to use for each job, and the rules the checks enforce.
- 14 skills in
.claude/skills/. They load on their own when a task needs them: billing, credits, emails, AI, the panel, realtime, translations, deploy and more. - Commands:
/new-feature,/ship(runs every check and summarizes),/deploy,/add-task,/add-panel-page,/add-language,/add-gateway. - Hooks: every Python file Claude edits is formatted, and before Claude says it is done, it runs
uv run poe checkwhen code changed.
4. Ask one question, check the answer
I just opened this project. In at most eight lines: what is this codebase, where does a new feature go, how do I run the checks before I finish, and what are the things I must never do here? Do not change any file.
This is the answer we got on a fresh copy (9 seconds):
- What it is: a Django 5.2 SaaS boilerplate (uv, HTMX, Alpine, Tailwind, allauth, Stripe, django-q2, Claude via
apps/ai) that you extend by prompting, with English and Arabic (RTL) built in.- New feature: run
uv run python manage.py startfeature <name>. This createsapps/<name>/and wires it into settings, URLs, the sidebar and the e2e tests. Keep views thin, put the logic inservices.py, and inherit models fromBaseModel.- Drop-in files like
panel.py,schedules.py,costs.py,api.py,emails.pyandrouting.pyare auto-discovered, so you never edit a central registry.- Checks: run
uv run poe checkbefore finishing (lint, format, templates, RTL, migrations, tests with an 80% coverage gate).- Never import
django.core.mail,django_qoranthropicin an app. Usesend_email,@task/enqueueandcomplete()instead.- Never put a secret in code or the database, or log one. Never hand-edit a migration.
- Never use physical CSS like
ml-ortext-left(usems-,text-start), inlinestyle=""oronclick=.- Never ship untranslated text: wrap every user-facing string, then run
poe messagesandpoe translations.
(Shortened slightly; the full answer is in the run's evidence.) Check for three things:
- It names
startfeatureandservices.py. - It names
uv run poe check. - It names the imports it must never use.
If all three are there, Claude read CLAUDE.md. A generic answer like "it is a Django project, run python manage.py test" means it did not. Then you are in the wrong folder, or the tool does not load CLAUDE.md. Ask:
Read CLAUDE.md in the project root first, then answer my last question again.
Cursor and Copilot
They work too, but they do not load CLAUDE.md by convention. Point them at it (add it to their rules file, or start each chat with "read CLAUDE.md"). The skills and hooks are Claude Code features.
What it costs
On a Claude subscription, these sessions use your plan, not API credit. The times and dollar figures in these docs are Claude Code's own list-price estimate per session, so you can compare: this question was $0.14.
Next: Build Your First Feature.