Frequently Asked Questions
Common questions about APSO, organized by category.
General
What is APSO?
APSO is a code generation platform that creates production-ready backend applications from a declarative schema. Unlike traditional Backend-as-a-Service platforms, APSO generates real code that you own and can customize.
How is APSO different from Firebase or Supabase?
| Aspect | Firebase/Supabase | APSO |
|---|---|---|
| Code ownership | No | Yes - 100% yours |
| Vendor lock-in | High | None |
| Customization | Limited | Unlimited |
| Self-hosting | Limited/No | Yes |
| Database | Proprietary | Standard PostgreSQL |
What languages/frameworks does APSO support?
- TypeScript: NestJS with TypeORM
- Python: FastAPI with SQLAlchemy
- Go: Gin with GORM
Can I use APSO with my existing database?
Yes. APSO generates standard TypeORM migrations that work with any PostgreSQL database. You can point your generated backend at an existing database.
Is APSO open source?
The APSO CLI and generated code are open source. The APSO Cloud platform is a managed service with free and paid tiers.
Technical
What database does APSO support?
APSO supports PostgreSQL 14+. All generated code uses standard SQL through the ORM layer, making it compatible with any PostgreSQL-compatible database (including CockroachDB, YugabyteDB, etc.).
How does authentication work?
APSO follows a “Bring Your Own Auth” (BYOA) philosophy. We recommend Better Auth for new projects, but you can integrate any auth provider that issues JWT tokens:
- Better Auth (recommended)
- Auth0
- Clerk
- Firebase Auth
- Supabase Auth
- Custom JWT
Can I customize the generated code?
Yes, in multiple ways:
- Extensions Pattern: Add custom controllers, services, and modules in the
extensions/directory - Template Overrides: Customize code generation templates
- Direct Modification: Edit any generated file (though it may be overwritten on regeneration)
How do I add custom endpoints?
Add custom controllers in src/extensions/controllers/:
// src/extensions/controllers/reports.controller.ts
@Controller('reports')
export class ReportsController {
@Get('summary')
getSummary() {
return { total: 100 };
}
}What happens when I regenerate code?
- Files in
src/entities/,src/modules/, andsrc/common/are regenerated - Files in
src/extensions/are preserved - Migrations are additive (existing migrations aren’t modified)
- Configuration files can be selectively regenerated
How does multi-tenancy work?
APSO implements organization-based multi-tenancy:
- Every user belongs to an organization
- JWT tokens include
organizationId - All queries are automatically scoped by organization
- Data isolation is enforced at the ORM level
Can I deploy APSO backends anywhere?
Yes. Generated code is standard Node.js/Python/Go and can run anywhere:
- APSO Cloud (managed)
- AWS, GCP, Azure
- DigitalOcean, Render, Railway
- Docker/Kubernetes
- Your own servers
Pricing
Is there a free tier?
Yes. APSO Cloud offers:
- Free: 1 project, 1M requests/month
- Pro: $25/month, unlimited projects, 10M requests
- Team: $100/month, team features, 100M requests
- Enterprise: Custom pricing
What counts as a request?
Each API call to your APSO backend counts as one request. Static assets, health checks, and metrics endpoints are not counted.
Can I self-host for free?
Yes. The CLI and generated code are free to use. Self-hosting on your own infrastructure has no APSO-related costs.
Security
Is my data secure?
APSO Cloud implements:
- SOC 2 Type II compliance (in progress)
- Data encryption at rest and in transit
- Regular security audits
- Automatic backups
- DDoS protection
Where is my data stored?
APSO Cloud data is stored in your chosen region:
- US East (Virginia)
- US West (Oregon)
- EU (Ireland, Frankfurt)
- Asia Pacific (Singapore)
Can I use APSO for HIPAA/PCI compliance?
For regulated workloads, we recommend self-hosting with your own compliance controls. Contact us for Enterprise plans with additional compliance features.
How are secrets managed?
- Environment variables are encrypted at rest
- Secrets are never logged
- Access is audited
- Rotation is supported via API
Troubleshooting
My build is failing
Common causes:
- Invalid schema: Check
.apsorcsyntax - Missing dependencies: Run
npm install - TypeScript errors: Check custom code in
extensions/
Run apso validate to check your schema.
API requests are slow
Check:
- Database connection pooling
- Missing indexes (add to entities)
- N+1 query problems (use relations)
- Enable query logging to identify slow queries
Authentication isn’t working
Verify:
- JWT_SECRET is set and matches auth provider
- Token format matches expected claims
- Token isn’t expired
- organizationId claim is present
Database connection issues
Check:
- DATABASE_URL format is correct
- Database is accessible from your network
- SSL mode matches your database config
- Connection pool isn’t exhausted
Getting Help
Where can I get support?
- Documentation: You’re here!
- Discord: discord.gg/apsoÂ
- GitHub Issues: github.com/mavric/apso/issuesÂ
- Email: support@apso.cloud
How do I report a bug?
- Search existing GitHub issues
- If new, create an issue with:
- APSO version (
apso --version) - Steps to reproduce
- Expected vs actual behavior
- Relevant logs
- APSO version (
How do I request a feature?
Open a GitHub issue with the “feature request” label. Include:
- Use case description
- Proposed solution
- Alternative approaches considered