Skip to content
Back to skills

Codebase Guide

ASecurity

Master guide for this TanStack Start e-commerce application. Use when onboarding, exploring architecture, or needing context about how systems connect.

  • 666 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added February 8, 2026
databasestypescriptgobashsqlreacttestingdebuggingapidatabasefrontend

Works with

  • cli
  • api

Security analysis

A100/100

Scanned February 10, 2026

npx -y skills add majiayu000/claude-skill-registry --skill codebase-guide --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Codebase Guide?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Codebase Guide
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-codebase-guide/badge)](https://www.skillsdirectory.com/skills/majiayu000-codebase-guide)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: codebase-guide
description: Master guide for this TanStack Start e-commerce application. Use when onboarding, exploring architecture, or needing context about how systems connect.
---

# Codebase Guide

Master reference for this TanStack Start e-commerce application.

## Quick Reference

| Need                | Skill        |
| ------------------- | ------------ |
| Create API endpoint | `api-routes` |
| Build admin page    | `admin-crud` |
| Add form            | `forms`      |
| Modify database     | `database`   |
| Add translations    | `i18n`       |
| Write tests         | `testing`    |
| Fix checkout issues | `checkout`   |
| Security review     | `security`   |
| Debug issues        | `debugging`  |

## Architecture Overview

```
┌─────────────────────────────────────────────────────────────────┐
│                         Frontend                                 │
├──────────────────┬──────────────────┬──────────────────────────┤
│   Customer UI    │    Admin UI      │      Shared UI           │
│   /$lang/*       │    /admin/*      │   /components/ui/*       │
│                  │                  │                          │
│  • Product pages │  • Dashboard     │  • Button, Input, Card   │
│  • Cart/Checkout │  • Orders table  │  • Dialog, Badge, Tabs   │
│  • Account       │  • Product CRUD  │  • FNForm (forms)        │
└────────┬─────────┴────────┬─────────┴────────────┬─────────────┘
         │                  │                      │
         ▼                  ▼                      ▼
┌─────────────────────────────────────────────────────────────────┐
│                      State Management                            │
├──────────────────┬──────────────────┬──────────────────────────┤
│     Zustand      │   React Query    │    TanStack Form         │
│                  │                  │                          │
│  • useCartStore  │  • Server state  │  • Form validation       │
│  • useAuthStore  │  • Caching       │  • Field management      │
│  • localStorage  │  • Mutations     │  • Submit handling       │
└────────┬─────────┴────────┬─────────┴────────────┬─────────────┘
         │                  │                      │
         ▼                  ▼                      ▼
┌─────────────────────────────────────────────────────────────────┐
│                       API Layer                                  │
│                    /routes/api/*                                 │
├──────────────────┬──────────────────┬──────────────────────────┤
│   Auth APIs      │   CRUD APIs      │    Webhooks              │
│                  │                  │                          │
│  • /auth/login   │  • /products     │  • /webhooks/stripe      │
│  • /auth/logout  │  • /orders       │  • /webhooks/paypal      │
│  • /auth/me      │  • /customers    │                          │
└────────┬─────────┴────────┬─────────┴────────────┬─────────────┘
         │                  │                      │
         ▼                  ▼                      ▼
┌─────────────────────────────────────────────────────────────────┐
│                     Server Layer                                 │
│                      /src/server/*                               │
├──────────────────┬──────────────────┬──────────────────────────┤
│   Business Logic │   Utilities      │    Integrations          │
│                  │                  │                          │
│  • orders.ts     │  • auth.ts       │  • stripe.ts             │
│  • products.ts   │  • api.ts        │  • paypal.ts             │
│  • checkout.ts   │  • rate-limit.ts │  • cloudinary.ts         │
└────────┬─────────┴────────┬─────────┴────────────┬─────────────┘
         │                  │                      │
         ▼                  ▼                      ▼
┌─────────────────────────────────────────────────────────────────┐
│                      Database Layer                              │
│                  Drizzle ORM + PostgreSQL                        │
├──────────────────┬──────────────────┬──────────────────────────┤
│   Auth Tables    │   Store Tables   │    Order Tables          │
│                  │                  │                          │
│  • users         │  • products      │  • orders                │
│  • sessions      │  • variants      │  • orderItems            │
│  • customers     │  • collections   │  • checkouts             │
└──────────────────┴──────────────────┴──────────────────────────┘
```

## Tech Stack

| Layer        | Technology                   | Purpose                       |
| ------------ | ---------------------------- | ----------------------------- |
| Framework    | TanStack Start               | SSR/SSG with Vite + Nitro     |
| Router       | TanStack Router              | File-based routing            |
| Database     | Drizzle + PostgreSQL         | Type-safe ORM                 |
| State        | Zustand                      | Client state with persistence |
| Server State | React Query                  | Caching, mutations            |
| Forms        | TanStack Form + FNForm       | Validation, field management  |
| UI           | Radix + shadcn + Tailwind v4 | Accessible components         |
| i18n         | i18next                      | Multi-language (en, fr, id)   |
| Payments     | Stripe + PayPal              | Checkout processing           |
| Media        | Cloudinary                   | Image upload/optimization     |
| Email        | SendGrid                     | Transactional emails          |

## Directory Structure

```
src/
├── routes/                    # File-based routing
│   ├── $lang/                 # Localized customer pages
│   │   ├── index.tsx          # Homepage
│   │   ├── products/          # Product catalog
│   │   ├── cart.tsx           # Shopping cart
│   │   ├── checkout/          # Checkout flow
│   │   └── account/           # Customer account
│   ├── admin/                 # Admin dashboard
│   │   ├── index.tsx          # Dashboard home
│   │   ├── products/          # Product management
│   │   ├── orders/            # Order management
│   │   └── login.tsx          # Admin login
│   └── api/                   # REST API endpoints
│       ├── auth/              # Authentication
│       ├── products/          # Product CRUD
│       ├── orders/            # Order management
│       ├── checkout/          # Checkout flow
│       └── webhooks/          # Payment webhooks
├── components/
│   ├── ui/                    # Reusable UI (shadcn pattern)
│   │   ├── button.tsx
│   │   ├── card.tsx
│   │   ├── fn-form.tsx        # Centralized form component
│   │   └── ...
│   ├── admin/                 # Admin-specific components
│   │   ├── products/          # Product management UI
│   │   ├── orders/            # Order management UI
│   │   └── media/             # Media library
│   └── checkout/              # Checkout components
├── hooks/
│   ├── useAuth.ts             # Authentication state
│   ├── useCart.ts             # Cart state (Zustand)
│   ├── useCheckout.ts         # Checkout state
│   └── useDataTable.ts        # Admin table state
├── lib/
│   ├── auth.ts                # Auth utilities
│   ├── api.ts                 # Response helpers
│   ├── stripe.ts              # Stripe client
│   ├── paypal.ts              # PayPal client
│   ├── rate-limit.ts          # Rate limiting
│   ├── csrf.ts                # CSRF protection
│   ├── i18n.ts                # i18n setup
│   └── utils.ts               # General utilities
├── db/
│   ├── index.ts               # Database client
│   └── schema.ts              # Drizzle schema
├── server/
│   ├── orders.ts              # Order business logic
│   └── products.ts            # Product business logic
└── i18n/
    └── locales/               # Translation files
        ├── en.json
        ├── fr.json
        └── id.json
```

## Key Patterns

### 1. API Routes

All API routes use TanStack Router server handlers:

```typescript
export const Route = createFileRoute('/api/resource')({
  server: { handlers: { GET, POST, PATCH, DELETE } },
})
```

### 2. Authentication

Session-based with HTTP-only cookies. Check with `requireAuth(request)` or `requireAdmin(request)`.

### 3. Localized Content

Database stores JSONB: `{ en: "English", fr?: "French", id?: "Indonesian" }`

### 4. Forms

Use `FNForm` component for all forms. Supports grid layouts, validation, custom fields.

### 5. State

- **Zustand**: Cart, auth (persistent)
- **React Query**: Server data (cached)
- **TanStack Form**: Form state

### 6. Security

- Rate limiting on all endpoints
- CSRF tokens for mutations
- Input validation
- Timing-safe comparisons

## Common Tasks

| Task              | Files to Modify                              |
| ----------------- | -------------------------------------------- |
| Add API endpoint  | `src/routes/api/`                            |
| Add admin page    | `src/routes/admin/`, `src/components/admin/` |
| Add customer page | `src/routes/$lang/`                          |
| Modify schema     | `src/db/schema.ts`, run `yarn db:generate`   |
| Add translation   | `src/i18n/locales/*.json`                    |
| Add utility       | `src/lib/`                                   |
| Add hook          | `src/hooks/`                                 |

## Development Commands

```bash
yarn dev          # Start dev server (port 3000)
yarn build        # Production build
yarn test         # Run tests
yarn typecheck    # Type checking
yarn db:generate  # Generate migrations
yarn db:migrate   # Apply migrations
yarn db:studio    # Database GUI
yarn locales:scan # Scan for translation keys
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.