Stack template / typescript

Angular + Express + Prisma Starter

Angular, Express, Node.js, PostgreSQL, Prisma, and Tailwind CSS form a split app configuration where the frontend and backend are generated as separate primary parts. Better Fullstack can scaffold this exact compatibility-checked selection.

01 / selection

Stack at a glance

RoleTechnologyRepository descriptionScope
FrontendAngularEnterprise-grade TypeScript framework by GooglePrimary frontend
BackendExpressPopular Node.js frameworkPrimary backend
RuntimeNode.jsJavaScript runtime environmentScoped to Express
DatabasePostgreSQLAdvanced SQL databaseProject-wide
ORMPrismaNext-gen ORMScoped to Express
APINoneNo API layer (API routes disabled)Project-wide
AuthenticationNo AuthSkip authenticationProject-wide
CSSTailwind CSSUtility-first CSS frameworkScoped to Angular
UI libraryNoneBuild custom componentsProject-wide

02 / architecture

How the pieces fit

  • The frontend and backend are separate primary stack parts.
  • Node.js is scoped to Express.
  • Prisma is scoped to Express.
  • Tailwind CSS is scoped to Angular.

03 / output

What gets generated

The virtual generator produced 43 files across 18 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/server/package.json
  • apps/web/package.json
  • package.json
  • packages/config/package.json
  • packages/db/package.json
  • packages/env/package.json
  • apps/server/.env

04 / create

Create command

This is the canonical Bun command generated for the selection.

bun create better-fullstack@latest my-app --ecosystem typescript --frontend angular --css-framework tailwind --ui-library none --backend express --runtime node --api none --auth none --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 postgres --orm prisma --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
angular
rt
node
be
express
db
postgres
orm
prisma
au
none
ui
none
api
none

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.

  • Auth is intentionally set to none.
  • Ui Library is intentionally set to none.
  • Api is intentionally set to none.
  • The Angular selection keeps the external API integration set to none.

07 / fit

When to choose this shape

Choose this shape when the browser frontend and API server should remain separate generated parts.

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?

The frontend and backend are generated as separate primary parts. 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