ameyanagi/tanstack-start-elysia/init-tanstack-elysia
Claude Code and agent skill by ameyanagi/tanstack-start-elysia
- community
- ext:[{"type":"config","description":"Configuration overrides"}]
Checking that the SKILL.md file is still in the repository.
Initialize a full-stack monorepo with TanStack Start + shadcn/ui frontend (Bun, Biome, tsc) and ElysiaJS backend with Better Auth (username + password), Drizzle ORM (PostgreSQL), and Eden Treaty for end-to-end type safety. Includes a justfile task runner and Docker production setup. Use when creating a new full-stack project, scaffolding a monorepo, or setting up TanStack Start with ElysiaJS.
Install
npx vskill@latest install ameyanagi/tanstack-start-elysia/init-tanstack-elysiaSemi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard
SKILL.md
Initialize TanStack Start + ElysiaJS Monorepo
Create a production-ready Bun workspace monorepo with a TanStack Start frontend and ElysiaJS backend.
For detailed configuration file contents, see references/stack-details.md.
Prerequisites
Verify these tools are installed before proceeding:
If any required tool is missing (bun, just, jj), stop and inform the user. Docker is optional — warn if missing but continue.
Step 1: Initialize Version Control
Create .jj/.gitignore with content /* so git ignores jj metadata.
Step 2: Scaffold the Frontend
Run the shadcn create command to scaffold a TanStack Start project:
After scaffolding completes:
- Remove the nested git repository created by shadcn (the project uses the root-level jj/git repo):
``bash rm -rf frontend/.git ``
- Remove ESLint configuration if present (the project uses Biome instead):
- Delete
eslint.config.jsor.eslintrc.*if they exist - Remove
eslint,@eslint/*, andprettierpackages frompackage.jsondevDependencies - Remove any eslint/prettier scripts from
package.json
- Install Biome and additional dependencies:
``bash cd frontend && bun add -d @biomejs/biome vitest jsdom cd frontend && bun add @elysiajs/eden @tanstack/react-query better-auth ``
- Create
frontend/biome.jsonwith the configuration from stack-details.md section "Biome Configuration (Frontend)".
- Auto-fix the scaffolded code to conform to Biome rules (formatting, imports):
``bash cd frontend && bunx biome check --write --unsafe . ``
- Update the
namefield infrontend/package.jsonto"@repo/frontend".
- Create
frontend/src/lib/auth-client.tswith the Better Auth client from stack-details.md section "Better Auth Client".
- Create
frontend/src/lib/api.tswith the Eden Treaty client from stack-details.md section "Eden Treaty Client".
- Create
frontend/vitest.config.tsandfrontend/src/__tests__/smoke.test.tsfrom stack-details.md section "Frontend Test Configuration".
- Update
frontend/tsconfig.json:
- Add
"@repo/backend/*": ["../backend/*"]tocompilerOptions.paths(needed for Eden Treaty type imports) - Remove
eslint.config.jsandprettier.config.jsfrom theincludearray if present
- Merge these scripts into
frontend/package.json(preserve existing scripts from scaffolding):
``json { "scripts": { "check": "biome check .", "check:fix": "biome check --write .", "typecheck": "tsc --noEmit", "test": "vitest run" } } ``
Step 3: Create Root Workspace
- Create
package.jsonin the project root from stack-details.md section "Root Package JSON".
- Run
bun installfrom the project root to link workspaces:
``bash bun install ``
Step 4: Scaffold the Backend
- Create
backend/package.jsonfrom stack-details.md section "Backend Package JSON".
- Install backend dependencies:
``bash cd backend && bun install ``
- Create the backend application structure:
`` backend/ ├── src/ │ ├── app.ts # Elysia app (without listen) │ ├── index.ts # Entry point (app.listen) │ ├── auth.ts # Better Auth config │ ├── db/ │ │ ├── index.ts # Drizzle client │ │ └── schema.ts # App-specific schema │ └── routes/ │ └── health.ts # Health check endpoint ├── scripts/ │ ├── generate-openapi.ts │ └── validate-openapi.ts └── tests/ └── health.test.ts ``
- Write
backend/src/db/index.tswith the Drizzle client from stack-details.md section "Drizzle Client".
- Write
backend/src/auth.tswith the Better Auth config from stack-details.md section "Better Auth Server Config".
- Write
backend/src/routes/health.tswith the health endpoint from stack-details.md section "Health Route".
- Write
backend/src/app.tswith the Elysia app from stack-details.md section "Elysia App".
- Write
backend/src/index.tswith the entry point from stack-details.md section "Backend Entry Point".
- Write
backend/drizzle.config.tsfrom stack-details.md section "Drizzle Config".
- Create
backend/biome.jsonfrom stack-details.md section "Biome Configuration (Backend)".
- Create
backend/tsconfig.jsonfrom stack-details.md section "Backend TSConfig".
- Write
backend/scripts/generate-openapi.tsfrom stack-details.md section "OpenAPI Generation Script".
- Write
backend/scripts/validate-openapi.tsfrom stack-details.md section "OpenAPI Validation Script".
- Create
backend/.gitignorefrom stack-details.md section "Backend Gitignore".
- Write
backend/tests/health.test.tsfrom stack-details.md section "Backend Tests".
- Auto-fix the backend code to conform to Biome rules (formatting, imports):
``bash cd backend && bunx biome check --write --unsafe . ``
Step 5: Generate Better Auth Schema & Initial Migration
- Generate the Better Auth database schema:
``bash cd backend && bunx @better-auth/cli generate --config ./src/auth.ts --output ./src/db/auth-schema.ts ``
- Import the generated auth schema in
backend/src/db/schema.ts. See stack-details.md section "App Schema" for the pattern.
- Start the dev PostgreSQL database:
``bash docker compose -f docker-compose.dev.yml up -d ``
- Wait for PostgreSQL to be ready, then push the schema to the database:
``bash cd backend && bunx drizzle-kit push ``
Step 6: Generate Initial OpenAPI Schema
Step 7: Create the Root Justfile
Create justfile in the project root with the content from stack-details.md section "Justfile".
Key recipes:
set dotenv-loadto read.envdevspawns dev database, frontend, and backend in paralleldev-frontend/dev-backend/dev-dbfor individual servicescheckruns all linters, formatters, type checkers, and OpenAPI validationfixauto-fixes lint and format issuesgen-apigenerates OpenAPI schemadb-push/db-migrate/db-studiofor database management
Step 8: Create Docker Configuration
- Create
docker-compose.dev.ymlfrom stack-details.md section "Docker Compose Dev". - Create
frontend/Dockerfilefrom stack-details.md section "Frontend Dockerfile". - Create
backend/Dockerfilefrom stack-details.md section "Backend Dockerfile". - Create
docker-compose.ymlin the project root from stack-details.md section "Docker Compose Production". - Create
frontend/.dockerignoreandbackend/.dockerignorefrom stack-details.md section "Dockerignore Files".
Step 9: Create Root Configuration Files
- Create
.env.examplefrom stack-details.md section "Environment Template". - Copy
.env.exampleto.env:
``bash cp .env.example .env ``
- Create
.gitignorefrom stack-details.md section "Gitignore". - Create
.editorconfigfrom stack-details.md section "EditorConfig". - Create
.vscode/extensions.jsonfrom stack-details.md section "VS Code Extensions". - Create
.vscode/settings.jsonfrom stack-details.md section "VS Code Settings". - Create
.github/workflows/ci.ymlfrom stack-details.md section "GitHub Actions CI". - Create
README.mdfrom stack-details.md section "Project README".
Step 10: Run Install and Verify
- Install all workspace dependencies:
``bash bun install ``
- Run checks:
``bash just check ``
- Run tests:
``bash just test ``
- Run dev servers:
``bash just dev `` Verify:
- Frontend at http://localhost:3000
- Backend at http://localhost:3001
- API docs at http://localhost:3001/docs
- Stop the dev servers after verification.
Final Project Structure
Report the final status to the user, including any warnings or errors encountered during setup.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/init-tanstack-elysia/SKILL.md
Popularity
- Repository stars
- 2
- 7-day trend score
- 5
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 11 Apr 2026, 6 months ago.
Extension points
configConfiguration overrides
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/ameyanagi/tanstack-start-elysia/init-tanstack-elysia)