Introduction
Apso is a backend development platform that generates production-ready APIs from schema definitions. Define your data model once, and Apso generates a typed backend you can run locally, customize in code, and deploy with your own infrastructure choices.
Why Apso?
Ship faster. Stop writing repeated CRUD code. Define your schema, generate your backend, and focus on the product behavior that makes your application useful.
Own your code. Apso generates standard NestJS, FastAPI, or Go code that you own completely. No vendor lock-in, no runtime dependencies.
Build with a stable source of truth. Your .apsorc file gives your team and AI assistants one place to reason about entities, fields, relationships, authentication, and tenant boundaries.
Who Should Start Here
Start here if you are:
- Building the first backend for a product.
- Replacing a fragile prototype with code you can keep.
- Using an AI coding assistant to create backend infrastructure from product requirements.
- Comparing hosted BaaS speed with code generation and ownership.
What You Get
When you run apso generate, you get:
- Complete REST API — All CRUD endpoints with filtering, pagination, and sorting
- Type-safe SDK — Auto-generated TypeScript client matching your schema
- Multi-tenancy — Data isolation at the organization level, configurable scoping
- Authentication — Better Auth integration or bring your own auth solution
- Database migrations — TypeORM migrations managed automatically
- OpenAPI spec — Auto-generated API documentation
Quick Example
{
"service": {
"name": "my-api",
"description": "My SaaS backend"
},
"entities": {
"Project": {
"fields": {
"name": { "type": "string", "required": true },
"description": { "type": "string" },
"status": { "type": "string", "enum": ["active", "archived"] }
}
}
}
}# Generate and run
apso generate
npm run start:dev
# Your API is now live at http://localhost:3000
# GET /projects
# POST /projects
# GET /projects/:id
# PATCH /projects/:id
# DELETE /projects/:idWho Uses Apso?
- Startup engineers building MVPs and early-stage products
- Full-stack developers who want to ship backends fast
- Teams evaluating backend-as-a-service with code ownership
The Effective Workflow
Use Apso as a loop, not a one-time scaffold:
- Describe the smallest useful domain model in
.apsorc. - Generate the service with
apso generate. - Add product-specific behavior in
src/extensions/. - Validate schema changes with
apso migrate. - Connect your frontend through REST or the SDK.
- Deploy once the generated API matches the way your users work.