What's Intentionally Missing

These features are absent by design, not oversight. Each omission reduces entropy and maintains correctness.

Multi-cloud abstractions

LaunchFast deploys to Fly.io. There is no abstraction layer for deploying to AWS, GCP, or Azure.

Why: Multi-cloud abstractions add complexity without value at early stage. If you need to migrate clouds, a rewrite is often cleaner than abstraction.

Database flexibility

SQLite is the only supported database. There is no configuration to swap to PostgreSQL, MySQL, or others.

Why: SQLite is sufficient for most products until significant scale. The decision is made so you don't have to make it.

Plugin system

There is no plugin, addon, or extension mechanism. Features are either in the codebase or they are not.

Why: Plugin systems add indirection and make reasoning about behavior harder. Direct code is auditable.

Configuration modes

There are no "minimal," "full," or "custom" installation modes. You get one thing.

Why: Configuration modes multiply the test surface and documentation burden. One mode is easier to support correctly.

Real-time subscriptions

There is no WebSocket infrastructure, Pusher integration, or real-time update system.

Why: Most products don't need real-time until later. Adding it prematurely increases infrastructure complexity.

Internationalization

There is no i18n framework, locale switching, or translation management.

Why: Most products launch in one language. Adding i18n infrastructure before you need it adds overhead to every string.

Multi-tenancy

There is no organization, workspace, or team abstraction. Users are individuals.

Why: Multi-tenancy affects every query and permission check. Adding it later is a deliberate migration, not a gradual addition.

The pattern

Each missing feature follows the same logic:

  1. Most products don't need it at launch
  2. Adding it prematurely increases complexity
  3. When needed, deliberate migration is better than gradual drift