Skip to main content
skill CX Codex

stack-baseline — Claude Code skill: what it does, how to install

Pins a standard tech stack for new product builds so AI agents never improvise frameworks, databases, or auth libraries.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add avelikiy/great_cto --skill stack-baseline -a claude-code
Open on GitHub

What stack-baseline does

This skill establishes a standard tech stack across product builds. It stops arbitrary tool choices. By default, it sets Next.js (App Router, TypeScript), Tailwind with shadcn/ui, Postgres via Neon, Drizzle ORM, and Auth.js. For each tier, exactly one sanctioned alternative is permitted, such as Remix or Prisma.

The skill operates on files in docs/architecture/, docs/plans/, and .great_cto/. When drafting a component layout, it writes the configuration to the architecture plan and .great_cto/PROJECT.md. If .great_cto/PROJECT.md already defines a stack, the skill leaves it alone.

Any departure from the default stack requires an explicit reason written into the ARCH document.

What it helps with

  • pin a standardized tech stack before scaffolding a new service
  • populate the components section in architectural design plans
  • prevent fragmented library selections across microservices
  • log documented exceptions when replacing default dependencies

Example prompts for the agent

  • Fill out the components section in docs/architecture/ARCH-core.md using the baseline stack
  • Pin the default stack into .great_cto/PROJECT.md for this new repository
  • Document an exception replacing Auth.js with Clerk in ARCH due to SSO requirements

How to install stack-baseline

1Skills CLI (Vercel)

npx skills add avelikiy/great_cto --skill stack-baseline -a claude-code

2Manually: put the files in place

~/.claude/skills/stack-baseline/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/stack-baseline/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about stack-baseline

How to install stack-baseline in Claude Code?

Run npx skills add avelikiy/great_cto --skill stack-baseline -a claude-code. The file will be placed at ~/.claude/skills/stack-baseline/SKILL.md.

What defaults are included in this stack?

It defines Next.js with App Router, Tailwind with shadcn/ui, Postgres on Neon, Drizzle ORM, Auth.js, Stripe, Resend, and Inngest.

Does the skill overwrite an existing stack choice?

No. Choices pinned in .great_cto/PROJECT.md take precedence and will not be overwritten by the skill.

Source text

SKILL.md · MIT
---
name: stack-baseline
description: The pinned default technology stack for SMB Product-Builder products. One source of truth so the architect, app-scaffolder, auth-engineer, and senior-dev never re-decide the stack per build — they build ON it. Covers framework, ORM/DB, auth, UI, payments/email/SMS, files, jobs, testing, hosting, and observability, with the chosen default + the one sanctioned alternative for each. Applied whenever a new product is scaffolded or a stack choice would otherwise be improvised. Re-deciding the stack every build is the biggest silent time sink; this kills it.
when_to_use: |
  Apply when:
  - architect writes the Components / stack section of ARCH-{slug}.md
  - app-scaffolder stands up a new product skeleton
  - auth-engineer or senior-dev would otherwise pick a library/provider ad hoc
  Do NOT override a choice already pinned in PROJECT.md (an existing project's stack wins).
effort: low
allowed-tools: Read, Write, Grep, Glob
paths:
  - "docs/architecture/**"
  - "docs/plans/**"
  - ".great_cto/**"
---

# Stack baseline — decide once, build on it

Every SMB product builds on the SAME proven stack unless there's a concrete reason not to.
Re-deciding framework/ORM/auth/host per build wastes the first hour of every project and
fragments the codebase across products. **This is the default; deviate only with a written
reason in ARCH.**

## The pinned stack

| Layer | Default | Sanctioned alternative | Notes |
|---|---|---|---|
| **Framework** | Next.js (App Router, TS) | Remix | Server actions + RSC; one repo front+back |
| **UI** | Tailwind + shadcn/ui | — | matches the site; design-advisor tokens map to it |
| **Charts** (dashboard/analytics) | ECharts (shipped) | Recharts | polished specs generated at **build time via Flint → compiled to native ECharts**; Flint is dev-only, never a runtime dep. Contract: `references/dashboard-viz.md` |
| **DB** | Postgres | — | the only DB; integer cents, tz-aware timestamps |
| **ORM / migrations** | Drizzle | Prisma | typed schema + SQL migrations; migration-ready-schema applies |
| **Auth** | Auth.js (NextAuth v5) | Clerk (fast path, per-MAU cost) | owned by **auth-engineer**; session + RBAC + multi-tenant |
| **Payments** | Stripe (+ Connect) | — | owned by subscription-billing-engineer / integrations-engineer |
| **Email** | Resend | Postmark | transactional; SPF/DKIM/DMARC via lifecycle-messaging |
| **SMS** | Twilio (Messaging Service) | Telnyx | 10DLC; consent via lifecycle-messaging |
| **File storage** | Cloudflare R2 / S3 | — | private buckets, presigned URLs |
| **Background jobs** | Inngest | a Postgres-backed queue | reminders, syncs, dunning |
| **Testing** | Vitest (unit) + Playwright (e2e) | — | senior-dev unit; e2e-test-engineer browser |
| **Hosting** | Vercel | Cloudflare Pages/Workers | Next.js-native; preview per PR |
| **DB host** | Neon (serverless PG) | Supabase | branchable; env-wired by infra-provisioner |
| **Observability** | Sentry | — | errors + traces on the deployed product |
| **Analytics** | privacy-light (Plausible) | — | no heavy 3rd-party trackers |

## Rules

1. **One framework, one DB, one ORM, one auth lib** across all products. Consistency >
   per-product optimization.
2. **Pin it in `.great_cto/PROJECT.md`** at scaffold time (`stack:` line) so every later
   agent reads it instead of guessing — and an existing PROJECT.md's stack always wins.
3. **Money in integer cents; timestamps tz-aware; IDs are stable** (compose with
   `migration-ready-schema`).
4. **Auth, payments, email/SMS, jobs are owned by their specialist** (auth-engineer,
   billing/integrations, lifecycle-messaging) — this skill only names the default library;
   the specialist owns the contract.
5. **Deviation needs a written reason** in ARCH's Components section (e.g. "Clerk over Auth.js
   because the customer needs SSO/SCIM on day one").

## Output

When applied, write the stack into ARCH's Components section and PROJECT.md:

```
## Stack (baseline)
framework: Next.js (App Router, TS) · UI: Tailwind + shadcn
db: Postgres (Neon) · orm: Drizzle · auth: Auth.js (→ auth-engineer)
payments: Stripe · email: Resend · sms: Twilio · files: R2 · jobs: Inngest
test: Vitest + Playwright · host: Vercel · obs: Sentry
deviations: <none | reason>
```

© avelikiy · MIT · avelikiy/great_cto

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set34

verticals A skill for Claude, Codex, Cursor and other agents: hands the agent the domain brief for one SMB industry before it writes a spec or code. CX Codex +1 ★ 107repo stars vertical-onboarding Guides the design of first-run workflows and data import for switching SMB customers away from legacy software. Keeps time-to-first-value under minutes. CX Codex +1 ★ 107repo stars ui-ux-pro-max Plan and review web or mobile interfaces with design references for styles, color, typography, accessibility, and UX checks. CX Codex +1 ★ 107repo stars test-strategy A skill for QA engineers that turns "90% coverage" into a defensible plan: what to test, why that set, and a signal that the tests actually catch bugs. CX Codex +1 ★ 107repo stars skeptical-triage This skill challenges disputed code review, security, and QA findings across three rounds before an arbiter decides the outcome. It helps prevent weak findings from blocking a release. CX Codex +1 ★ 107repo stars signing-preflight Checks before the first commit that the signing key is loaded and unlocked, and asks the operator to unlock it up front. CX Codex +1 ★ 107repo stars secrets-rotation Turns exposed tokens, passwords, or keys into an urgent tracked task to revoke and reissue them. Runs when credentials leak into chat, logs, or commits. CX Codex +1 ★ 107repo stars quant-validation This skill lays out checks for financial-ML backtests, features, and labels. Use it to assess whether a reported result survives common validation pitfalls. CX Codex +1 ★ 107repo stars

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor