Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: 'pnpm'

- name: Cache Turborepo
Expand All @@ -38,4 +38,4 @@ jobs:
run: pnpm install

- name: Run build
run: pnpm build
run: pnpm build
7 changes: 5 additions & 2 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: 'pnpm'

- name: Cache Turborepo
Expand All @@ -37,5 +37,8 @@ jobs:
- name: Install dependencies
run: pnpm install

- name: Run prettier check
run: pnpm format:check

- name: Run lint
run: pnpm lint
run: pnpm lint
21 changes: 12 additions & 9 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,29 @@ on:
pull_request:
types:
- closed
branches:
- main

permissions:
contents: write
id-token: write

jobs:
release:
name: Release
runs-on: ubuntu-latest
# Only run when PR is merged and has version bump label OR manually triggered
if: github.event_name == 'workflow_dispatch' || (github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'version bump'))
# Only run when PR is merged into main and has version bump label OR manually triggered
if: |
github.event_name == 'workflow_dispatch' ||
(github.event.pull_request.merged == true &&
github.event.pull_request.base.ref == 'main' &&
contains(github.event.pull_request.labels.*.name, 'version bump'))

steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: main
fetch-depth: 0

- name: Setup pnpm
Expand All @@ -29,7 +37,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: 'pnpm'

- name: Install dependencies
Expand All @@ -52,11 +60,6 @@ jobs:
- name: Test
run: pnpm test

- name: Configure npm
run: npm config set //registry.npmjs.org/:_authToken=$NPM_TOKEN
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Publish packages
run: pnpm changeset publish

Expand All @@ -71,4 +74,4 @@ jobs:
body_path: packages/errors/CHANGELOG.md
draft: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4 changes: 2 additions & 2 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: 'pnpm'

- name: Cache Turborepo
Expand All @@ -38,4 +38,4 @@ jobs:
run: pnpm install

- name: Run tests
run: pnpm test
run: pnpm test
4 changes: 2 additions & 2 deletions .github/workflows/types.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: 'pnpm'

- name: Cache Turborepo
Expand All @@ -38,4 +38,4 @@ jobs:
run: pnpm install

- name: Run type check
run: pnpm turbo type-check
run: pnpm turbo type-check
5 changes: 1 addition & 4 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

pnpm lint && pnpm turbo type-check
pnpm exec lint-staged
4 changes: 4 additions & 0 deletions .lintstagedrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"*.{ts,tsx,js,mjs,cjs}": ["eslint --fix", "prettier --write"],
"*.{json,md,css,yml,yaml}": ["prettier --write"]
}
6 changes: 3 additions & 3 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Shamefully hoist packages to fix ESLint/TypeScript tooling issues
shamefully-hoist=true
legacy-peer-deps=true
# Per docs/learnings/pnpm/ — shamefully-hoist=true and legacy-peer-deps=true
# were removed in the Tier 2 hardening. apps/web (Next.js) issues with hoisting
# should be addressed via targeted public-hoist-pattern entries in pnpm-workspace.yaml.
12 changes: 12 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,16 @@ dist/
.turbo/
.cache/
.tmp/
temp/

# Agent tooling metadata (not project source)
.claude/

# Generated files
apps/web/.source/
apps/web/next-env.d.ts

# Internal learning docs (informational, formatted manually)
docs/learnings/

*.log
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Fixed

### Security
### Security
1 change: 1 addition & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ fresh fetch https://react.dev/docs
```

Available commands:

- `fresh auth` - Authentication commands
- `fresh search [options]` - Search the web using Exa.ai
- `fresh fetch [options] <url>` - Fetch and extract content from a URL
2 changes: 1 addition & 1 deletion CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,4 +107,4 @@ enforcement ladder](https://github.com/mozilla/diversity).

For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
https://www.contributor-covenant.org/translations.
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,4 @@ pnpm turbo test # Run tests across all packages

## Questions?

Open an issue or reach out to us at **[email protected]**.
Open an issue or reach out to us at **[email protected]**.
82 changes: 43 additions & 39 deletions DESIGN.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ Design system and visual guidelines for the `@deessejs/errors` documentation web

## Tech Stack

| Technology | Version | Purpose |
|------------|---------|---------|
| Next.js | 16.x | React framework |
| Tailwind CSS | v4 | Styling |
| Geist | (Vercel) | Typography (future) |
| shadcn/ui | TBD | Component library |
| FumaDocs | 16.x | Documentation framework |
| lucide-react | 1.x | Icons |
| Technology | Version | Purpose |
| ------------ | -------- | ----------------------- |
| Next.js | 16.x | React framework |
| Tailwind CSS | v4 | Styling |
| Geist | (Vercel) | Typography (future) |
| shadcn/ui | TBD | Component library |
| FumaDocs | 16.x | Documentation framework |
| lucide-react | 1.x | Icons |

## Typography

Expand All @@ -29,6 +29,7 @@ const geist = Geist({
```

**Scale**:

- Headings: `font-bold tracking-tight`
- Body: `text-lg` for main content, `text-base` for details
- Code: JetBrains Mono (monospace)
Expand All @@ -38,14 +39,14 @@ const geist = Geist({

Using Tailwind's default palette with these semantic usages:

| Token | Usage |
|-------|-------|
| `gray-950` | Primary text (`#030304`) |
| `gray-500` | Secondary text / muted |
| `gray-300` | Borders |
| `gray-200` | Dividers, subtle backgrounds |
| `white` | Cards, elevated surfaces |
| `#f8f9fb` | Off-white body background |
| Token | Usage |
| ----------------------- | -------------------------------- |
| `gray-950` | Primary text (`#030304`) |
| `gray-500` | Secondary text / muted |
| `gray-300` | Borders |
| `gray-200` | Dividers, subtle backgrounds |
| `white` | Cards, elevated surfaces |
| `#f8f9fb` | Off-white body background |
| `blue-500` / `blue-600` | Accent color (links, highlights) |

### Dark Mode
Expand All @@ -68,10 +69,10 @@ SVG-based grid pattern for hero sections:
<svg viewBox="0 0 400 500" fill="none">
<defs>
<pattern id="grid" width="20" height="20" patternUnits="userSpaceOnUse">
<path d="M 20 0 L 0 0 0 20" fill="none" stroke="#dddddd" stroke-width="1"/>
<path d="M 20 0 L 0 0 0 20" fill="none" stroke="#dddddd" stroke-width="1" />
</pattern>
</defs>
<rect width="100%" height="100%" fill="url(#grid)"/>
<rect width="100%" height="100%" fill="url(#grid)" />
</svg>
```

Expand All @@ -92,13 +93,13 @@ SVG-based grid pattern for hero sections:
### Buttons

**Primary** (dark):

```html
<button class="bg-gray-950 hover:bg-gray-800 text-white">
Action
</button>
<button class="bg-gray-950 hover:bg-gray-800 text-white">Action</button>
```

**Secondary** (outlined):

```html
<button class="border border-gray-300 hover:border-gray-400 bg-white hover:bg-gray-50">
Action
Expand All @@ -112,7 +113,7 @@ Blueprint-style floating squares for visual interest:
```tsx
const floatingSquares = [
{ x: 300, y: 120, opacity: 1.0, delay: 0.7, duration: 4 },
{ x: 220, y: 60, opacity: 0.8, delay: 0.3, duration: 4 },
{ x: 220, y: 60, opacity: 0.8, delay: 0.3, duration: 4 },
{ x: 160, y: 160, opacity: 0.5, delay: 0.0, duration: 4 },
];
```
Expand All @@ -122,7 +123,9 @@ const floatingSquares = [
Sharp corners, syntax highlighting, filename tabs:

```html
<div class="border border-gray-300 rounded-none overflow-hidden shadow-lg bg-white/70 backdrop-blur-sm">
<div
class="border border-gray-300 rounded-none overflow-hidden shadow-lg bg-white/70 backdrop-blur-sm"
>
<div class="border-b border-gray-200 bg-gray-50/60 px-4 py-2.5">
<span class="font-mono text-[13px] text-gray-600">filename.ts</span>
</div>
Expand Down Expand Up @@ -169,18 +172,19 @@ apps/web/src/
### Spacing Scale

Use Tailwind's 4px incremental scale consistently:

- `pt-20 lg:pt-28` for hero sections
- `py-24` for section padding
- `gap-12 lg:gap-20` for large grids

## Responsive Breakpoints

| Breakpoint | Target |
|------------|--------|
| `sm` (640px) | Mobile landscape |
| `md` (768px) | Tablets |
| `lg` (1024px) | Laptops |
| `xl` (1280px) | Desktops |
| Breakpoint | Target |
| ------------- | ---------------- |
| `sm` (640px) | Mobile landscape |
| `md` (768px) | Tablets |
| `lg` (1024px) | Laptops |
| `xl` (1280px) | Desktops |

## shadcn/ui Integration

Expand All @@ -190,15 +194,15 @@ npx shadcn@latest init

### Core Components to Implement

| Component | Purpose | Status |
|-----------|---------|--------|
| Button | Primary/secondary actions | TBD |
| Card | Feature highlights, deployment options | TBD |
| Callout | Notes, warnings, tips, errors | TBD |
| Code | Syntax highlighted code blocks | TBD |
| Tabs | API reference navigation | TBD |
| Table | Parameter documentation | TBD |
| Badge | Labels, version tags | TBD |
| Component | Purpose | Status |
| --------- | -------------------------------------- | ------ |
| Button | Primary/secondary actions | TBD |
| Card | Feature highlights, deployment options | TBD |
| Callout | Notes, warnings, tips, errors | TBD |
| Code | Syntax highlighted code blocks | TBD |
| Tabs | API reference navigation | TBD |
| Table | Parameter documentation | TBD |
| Badge | Labels, version tags | TBD |

### shadcn/ui Configuration

Expand Down Expand Up @@ -235,4 +239,4 @@ Update `components.json` to match our design tokens:

---

**Last updated**: 2026-06-02
**Last updated**: 2026-06-02
Loading
Loading