1. What this book is for
  2. Development workflow
    1. Your editor — getting set up for success
    2. Agentic development in editor and outside of it
    3. Type checking and linters
    4. Using the dashboard while building
    5. Seed data and seed automation
    6. Sharing dev deployments with team members
    7. Local vs. cloud development
    8. The role of MCP
  3. Structuring your codebase
    1. Early: KISS. everything in one file is fine
    2. Later: break things up into modules and subdirectories
    3. How to handle node.js runtime vs. v8 runtime
    4. Huge codebases: break your project into components
    5. When push times get slower
    6. Reducing code redundancy with custom functions
    7. The _generated directory
    8. Complex projects
      1. More than one app
      2. More that one backend
      3. Monorepo vs. seperate repos
      4. Examples:
        1. Turborepo, etc
  4. Organizing your tables and data
    1. You don’t have to type your tables, but you should
    2. Early: KISS. One schema.ts is fine to start
    3. Normalizations and JOINs
    4. JOIN ergonomics
    5. Breaking table definitions out for type sharing
    6. Eventually: placing table definitions near your function (and how to avoid circular import issues this often brings with it - e.g. by having dedicated table/validators-only files)
  5. Types and data validation
    1. Sharing validators
    2. When to use zod
  6. Users, orgs, and authentication/authorization
    1. The simplest possible thing
    2. Decide as early as you can if this is more than a side project
    3. User’s table vs. identity resolution
    4. Leveraging workos for identity resolution
    5. Authorization
    6. Introducing org/team concept
    7. Rolling out SCIM/directory sync
  7. Testing and CI/CD
    1. Convex-test
    2. Preview deployments
  8. Web apps and frameworks
    1. General framework recommendations
    2. Keeping it simple with vite
    3. NextJS and server-side rendering
    4. All in on the TanStack ecosystem
    5. Using non-react frameworks
  9. Mobile & Desktop apps
    1. Expo / React Native
    2. Swift support for iOS/MacOS
    3. Kotlin support for Android
  10. HTTP services on Convex
    1. Using HTTP actions
    2. HTTP actions vs. other convex functions
    3. Authenticating requests
    4. Streaming large request bodies
    5. Handling uploaded data
    6. Using higher-level frameworks like hono
    7. Relationship as webhooks to other services
  11. Background work
    1. Your deployment threads and you
    2. Idempotent work, at-least-once vs. at-most-once
    3. Workpool as the foundation for your background jobs
    4. Using crons for standard scheduled jobs
    5. Use workflow (durable functions) to provide more structure for sequences of work
    6. Working with AI services (agent component, etc)
  12. Project evolution
    1. Data migrations with the migration component
    2. Versioning your APIs
    3. Managing background work that spans code & data changes
  13. Building other services around Convex
    1. Support for other languages
    2. Authenticating server-to-server communications
    3. Common examples
      1. VPS running docker container python job
      2. Vercel fluid compute
      3. Cloudflare workers
  14. Computing aggregates and analytics
    1. When something simple is fine
    2. When it has to be consistent
      1. The aggregate component
      2. The lazy
    3. Computing inconsistent, lazy aggregates
    4. Utilizing convex’s analytics engine for periodic aggregates
    5. Common scenarios and recommendations
  15. Common application features & recommendations
    1. Object/file storage
    2. Full text search
    3. Vector search
    4. Payments
    5. Sending email
    6. Feature flags
    7. Mobile push notifications
    8. Collaborative editing
    9. Presence
  16. Deployment Cost & Performance Optimization
  17. Local-first, optimistic updates, and client performance
  18. Managing your Convex deployments programmatically
  19. Traffic management & abuse prevention
  20. Production readiness