App Factory is an AI-native software factory that empowers ambitious small teams to build enterprise-grade applications. Combining Domain-Driven Design (DDD), GraphQL, reusable architecture, intelligent agents, and code generation, it transforms lean teams into high-performance software organizations capable of delivering production-ready business applications at scale.
AppFactory is based on the WebApp project, which is a basic template for generating web applications with integrated AI.
Declarative core
- Declarative Kanban, list, form, and calendar views
- Reusable field components, relationships, avatars, and localized labels
- Insights dashboards: KPIs, gauges, and charts from declarative definitions
Search
- Natural-language global search: an AI interpreter turns questions into validated, typed search plans, with automatic fallback to plain text when no provider is configured
- PostgreSQL full-text search (
tsvector/ts_rank) and trigram (pg_trgm) indexes, tuned to stay fast at 100,000+ records per model - Contextual, in-app help for the search bar
Security and accounts
- Access/refresh token session renewal with rotation and reuse detection
- Step-up re-authentication (password/MFA) for critical operations
- Session activity tracking and read-only user log reporting
Platform
- In-app and browser push notifications
- Read-only MCP reports for authorized users
- Attachment storage with authenticated previews
- FastAPI, GraphQL, SQLModel, PostgreSQL, and Alembic
- Preact, Signals, Tailwind CSS, Vite, and CJ Router
Browser
└─ Preact dashboard
├─ GraphQL API ── FastAPI services ── PostgreSQL
├─ Attachment API ── local filestore
└─ MCP endpoint ── read-only reports
The canonical model definitions live in:
backend/app/domains/system/data/system_models.json— models and fieldsbackend/app/domains/system/data/system_model_schemas.json— view layouts
cd backend
cp .env.example .env
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python scripts/setup_database.py
uvicorn main:app --reloadThe API is available at http://localhost:8000, with GraphQL at
http://localhost:8000/graphql.
scripts/setup_database.pyrecreates the configured database. ReviewDATABASE_URLbefore confirming the operation. A successful run also installspg_trgm, creates all required trigram/FTS GIN search indexes, and verifies them against PostgreSQL before reporting completion.
cd frontend
npm ci
npm run devThe development server is available at http://localhost:3000 and proxies API
requests to the backend.
cd backend
docker compose up --buildThis starts PostgreSQL and the backend. Run the frontend separately with Vite for the best development experience.
| Task | Command |
|---|---|
| Backend tests | cd backend && .venv/bin/pytest -q |
| Backend migrations | cd backend && .venv/bin/alembic upgrade head |
| Frontend tests | cd frontend && npm test -- --run |
| Frontend lint | cd frontend && npm run lint |
| Production build | cd frontend && npm run build |
Start with the documentation index, or jump directly to:
- Database setup
- Declarative views
- Data format
- Frontend guide
- Backend guide
- GraphQL reference
- Insights format
- Global search design
- MCP reports
- Error handling guide
- Quality and testing guide
The seed credentials are intended for local development only. Replace default passwords and secrets before exposing any environment outside your workstation.
See the backend license file.