Skip to content

@eristack/ai-knowledge

Eristack knowledge pack for AI agents: recommend packages first, load the right Intent skills, and keep catalog facts in sync

stack-defaults

61 linesSource

Preferred Eristack app stack defaults: TypeScript, Drizzle (pgsql dialect), Express/Nest/React headless adapters, string-first money, credentials as a child of app users, doc-number token patterns. Use when scaffolding apps or choosing persistence/HTTP/frontend wiring around @eristack packages.

Stack defaults

Eristack package wiring defaults. For full app architecture (Vite, TanStack Router file-based, shadcn, layering, contracts), load architecture-recommend / read knowledge/architecture.md.

Read the Eristack-focused guide: knowledge/stack-defaults.md.

Every row below is an installed @eristack/* package, not a pattern to re-implement: pnpm add @eristack/money @eristack/jwt-auth @eristack/doc-number drizzle-orm zod — required @eristack/* peers (entity-id, data-grid, timestamp) are pulled in by pnpm / npm 7+ peer auto-install; add them explicitly if your installer does not.

Defaults to apply

ConcernPrefer
LanguageTypeScript strict, ESM
SQLDrizzle; Postgres dialect "pgsql" (not "pg")
DeployVercel + hosted Postgres (not process memory)
StoresDrizzle adapters in prod; createMemory* only for tests/demos
UsersApp-owned users table; Eristack tables are children
Money@eristack/money via Money.of("…") / Money.ofMinor
ValidationZod 4 only — peer ^4.0.0; import "zod" or "zod/v4"; no Zod 3 adapters
Auth@eristack/jwt-auth access JWT + opaque refresh
Doc numbers@eristack/doc-number token patterns + stores
Express / Nest / ReactHeadless routers/modules/hooks from package adapters

Framework wiring

Prefer patterns from Eristack examples when present:

  • Express → create*Router + require-auth style middleware
  • Nest → *Module + guard
  • React → provider/hooks only (no UI kit)

Do not invent alternate adapter shapes when an example already shows the supported one.

Persistence / Vercel

  • Never ship createMemory*Store on Vercel — cold starts and multiple instances drop or diverge state (auth, sequences, RBAC).
  • Production: Drizzle + Postgres. Local tests: memory or SQLite.
  • data-grid applyInMemory is fine for small already-loaded lists; it is not a database.

Money / auth / numbers reminders

  • No fractional JS numbers for currency
  • Round at ledger boundaries; FX rates are app-supplied
  • Refresh tokens stored hashed; reuse detection matters
  • Use next to allocate document numbers; peekNext/preview for dry runs