Stack template / typescript

SolidStart + oRPC + Drizzle Starter

Solid Start, Fullstack SolidStart, SQLite, Drizzle, oRPC, and Better-Auth form a single app configuration where one frontend framework owns the UI and server boundary. Better Fullstack can scaffold this exact compatibility-checked selection.

01 / selection

Stack at a glance

RoleTechnologyRepository descriptionScope
FrontendSolid StartFull-stack Solid framework with SSRPrimary frontend
BackendFullstack SolidStartUse SolidStart's built-in server routesProject-wide
RuntimeNoneNo specific runtimeProject-wide
DatabaseSQLiteFile-based SQL databaseProject-wide
ORMDrizzleTypeScript ORMScoped to the backend
APIoRPCTypesafe APIs Made SimpleScoped to the backend
AuthenticationBetter-AuthThe most comprehensive authentication framework for TypeScriptScoped to the backend
CSSTailwind CSSUtility-first CSS frameworkScoped to Solid Start
UI libraryNoneBuild custom componentsProject-wide

02 / architecture

How the pieces fit

  • The frontend and backend are separate primary stack parts.
  • The selected frontend framework owns the server boundary through its self backend.
  • Drizzle is scoped to the backend.
  • oRPC is scoped to the backend.
  • Better-Auth is scoped to the backend.
  • Tailwind CSS is scoped to Solid Start.

03 / output

What gets generated

The virtual generator produced 53 files across 22 directories. The output is a workspace.

Top-level entries

  • ./.gitignore
  • ./AGENTS.md
  • ./CLAUDE.md
  • ./README.md
  • ./apps
  • ./bunfig.toml
  • ./package.json
  • ./packages
  • ./tsconfig.json
  • ./turbo.json

Representative files

  • README.md
  • apps/web/package.json
  • package.json
  • packages/api/package.json
  • packages/auth/package.json
  • packages/config/package.json
  • packages/db/package.json
  • packages/env/package.json

04 / create

Create command

This is the canonical Bun command generated for the selection.

bun create better-fullstack@latest my-app --ecosystem typescript --frontend solid-start --css-framework tailwind --ui-library none --backend self --runtime none --api orpc --auth better-auth --payments none --email none --file-upload none --logging none --observability none --feature-flags none --realtime none --job-queue none --caching none --rate-limit none --i18n none --search none --vector-db none --file-storage none --cms none --effect none --ai none --state-management none --forms react-hook-form --validation zod --testing vitest --animation none --database sqlite --orm drizzle --db-setup none --package-manager bun --git --web-deploy none --server-deploy none --install --addons turborepo --examples none --ai-docs claude-md agents-md

05 / builder

Open in the builder

Open this exact selection →
fe-w
solid-start
rt
none
be
self-solid-start
ui
none
api
orpc

06 / checks

Compatibility notes

Compatibility checked against Better Fullstack types version 2.3.0.

The generated record has 0 graph issues and 0 disabled selected options. This is a compatibility check, not a claim that this exact scaffold received a runtime smoke verification.

  • Runtime is intentionally set to none.
  • Ui Library is intentionally set to none.

07 / fit

When to choose this shape

Choose this shape when one framework should own the UI, server routes, and application boundary.

08 / next

Related stacks and guide

09 / faq

Questions

Is this combination supported?

It passes the repository's compatibility analysis, selected-option checks, stack graph validation, project schema parsing, and virtual generation. That result is described here as compatibility checked.

Does it generate one app or separate parts?

One frontend framework owns the UI and server boundary. The actual generated output uses a workspace layout.

How can I customize the selection?

Open the generated builder link above. Its query parameters reproduce this selection, and the builder can change compatible options before generating a new command.

Patreon