Docs / Ecosystems

Open documentation actions

Ecosystems

Supported language ecosystems and what Better Fullstack scaffolds for each one.

Better Fullstack uses one CLI for multiple ecosystems. Each ecosystem has its own scaffold surface, toolchain, and compatibility rules.

For product stacks that span languages, use Multi-Ecosystem mode. It models the project as stack parts, such as frontend:typescript:next, backend:go:gin, backend.orm:go:gorm, and database:universal:postgres.

EcosystemBest forNotes
TypeScriptFullstack web, APIs, workers, desktop, and the largest web integration matrix.Web options are TypeScript-first.
React NativeExpo mobile apps with navigation, UI, storage, testing, push, OTA, and deep linking.Uses the React Native ecosystem surface instead of TypeScript web frontend categories.
RustBackend services, CLI apps, GraphQL/gRPC, Rust web frontends, and strongly typed libraries.Uses Cargo; templates are conditional by selected Rust options.
PythonAPI and AI-oriented services with framework, ORM, validation, queue, GraphQL, and quality choices.Uses uv; Python AI is a separate multi-select category.
GoAPI services, gRPC, CLIs, logging, ORM, and Go auth helpers.Uses Go modules; GoBetterAuth is selected with global --auth go-better-auth.
JavaSpring Boot, Quarkus, or plain Java projects with Maven/Gradle, persistence, auth, libraries, and tests.Java uses Maven or Gradle wrappers when a build tool is selected.
ElixirPhoenix and Phoenix LiveView apps with Ecto, Absinthe, realtime, jobs, testing, quality, and deploy choices.Uses Mix; a few schema-level options stay disabled until templates catch up.
.NETASP.NET Core services with EF Core or Dapper, Identity, Minimal APIs or Hot Chocolate, SignalR, jobs, and tests.Uses the .NET SDK; testing and observability are multi-select categories.

Default CLI baseline

Accepting defaults creates a TypeScript web project. The package manager follows the package manager used to launch the CLI.

{
  "ecosystem": "typescript",
  "frontend": ["tanstack-router"],
  "backend": "hono",
  "runtime": "bun",
  "database": "sqlite",
  "orm": "drizzle",
  "auth": "better-auth",
  "api": "trpc",
  "cssFramework": "tailwind",
  "uiLibrary": "shadcn-ui",
  "testing": "vitest",
  "addons": ["turborepo"],
  "versionChannel": "stable",
  "aiDocs": ["claude-md"]
}

Runtime and package manager are separate choices. For example, a generated TypeScript project can use npm, pnpm, Yarn, or Bun for installs while selecting Bun as the application runtime.

Shared options are not universal

Some flags are global because they are stored in one project config, but not every flag applies to every ecosystem. Use the ecosystem pages below for what is generated, and use Reference Options for exact CLI values.