Next Steps¶
You've finished the Quickstart and have a working Ferro app. Here's where to go next, based on what you're building.
Learn by Use Case¶
Building an API¶
For REST APIs with FastAPI, Starlette, or similar:
- Models & Fields — field types, constraints, and defaults
- Relationships — foreign keys, back-references, many-to-many
- Queries — filtering with lambda predicates, ordering, and pagination
- How-To: Pagination — efficient offset and cursor pagination
- How-To: Testing — fast, isolated tests with in-memory SQLite
Data Processing¶
For ETL pipelines and bulk workloads:
- Mutations —
bulk_createand bulk update/delete for throughput - Transactions — make multi-step writes atomic
- Queries — filter in the database, not in Python
Production Deployment¶
When you're ready to ship:
- Connections & Databases — connection URLs and pool configuration
- Migrations — the Alembic workflow for evolving schemas
- How-To: Multiple Databases — working with more than one database
- How-To: Testing — a test suite you can trust before deploying
Common Patterns¶
Recipes for things most applications need:
- Testing — per-test database isolation and fixtures
- Pagination — offset- and cursor-based pagination
- Timestamps —
created_at/updated_aton every model - Soft Deletes — flag rows as deleted instead of removing them
- Multiple Databases — connecting to more than one database
- Migrating from SQLAlchemy — a side-by-side translation guide
Reference Material¶
- API Reference — complete documentation for every public class and method: Model, Queries, Fields & Types, Relationships
- Concepts — how Ferro works under the hood: Architecture, Identity Map, Type Safety
- Roadmap — what's implemented today and what's planned
Get Help¶
- GitHub Issues — report bugs or request features
- GitHub — star the repo to follow releases
The best way to learn from here is to build something real — a blog, a ticket tracker, an inventory API — and reach for the guides above as questions come up.