Skip to Content
🚀 APSO is now in public beta. Get started →

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?

AspectFirebase/SupabaseAPSO
Code ownershipNoYes - 100% yours
Vendor lock-inHighNone
CustomizationLimitedUnlimited
Self-hostingLimited/NoYes
DatabaseProprietaryStandard 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:

  1. Extensions Pattern: Add custom controllers, services, and modules in the extensions/ directory
  2. Template Overrides: Customize code generation templates
  3. 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/, and src/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:

  1. Every user belongs to an organization
  2. JWT tokens include organizationId
  3. All queries are automatically scoped by organization
  4. 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:

  1. Invalid schema: Check .apsorc syntax
  2. Missing dependencies: Run npm install
  3. TypeScript errors: Check custom code in extensions/

Run apso validate to check your schema.

API requests are slow

Check:

  1. Database connection pooling
  2. Missing indexes (add to entities)
  3. N+1 query problems (use relations)
  4. Enable query logging to identify slow queries

Authentication isn’t working

Verify:

  1. JWT_SECRET is set and matches auth provider
  2. Token format matches expected claims
  3. Token isn’t expired
  4. organizationId claim is present

Database connection issues

Check:

  1. DATABASE_URL format is correct
  2. Database is accessible from your network
  3. SSL mode matches your database config
  4. Connection pool isn’t exhausted

Getting Help

Where can I get support?

How do I report a bug?

  1. Search existing GitHub issues
  2. If new, create an issue with:
    • APSO version (apso --version)
    • Steps to reproduce
    • Expected vs actual behavior
    • Relevant logs

How do I request a feature?

Open a GitHub issue with the “feature request” label. Include:

  • Use case description
  • Proposed solution
  • Alternative approaches considered
Last updated on