# Happiness Dashboard

> Evidence framework data dashboard with DuckDB. Write SQL in markdown to create visualizations.

- Skill: `majiayu000/happiness-dashboard` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/happiness-dashboard`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/happiness-dashboard/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/happiness-dashboard

---


# Happiness Dashboard

An interactive data dashboard using Evidence framework - write SQL queries in markdown to create visualizations.

## Tech Stack

- **Framework**: Evidence
- **Database**: DuckDB (embedded)
- **Frontend**: Svelte
- **Package Manager**: pnpm
- **Output**: `build` directory
- **Dev Port**: 3000

## Setup

### 1. Clone the Template

```bash
git clone --depth 1 https://github.com/Eng0AI/happiness-dashboard-template.git .
```

If the directory is not empty:

```bash
git clone --depth 1 https://github.com/Eng0AI/happiness-dashboard-template.git _temp_template
mv _temp_template/* _temp_template/.* . 2>/dev/null || true
rm -rf _temp_template
```

### 2. Remove Git History (Optional)

```bash
rm -rf .git
git init
```

### 3. Install Dependencies

```bash
pnpm install
```

### 4. Process Data Sources

```bash
pnpm run sources
```

## Build

```bash
pnpm run build
```

Generates static site in `build/` directory.

## Deploy

### Vercel (Recommended)

```bash
vercel pull --yes -t $VERCEL_TOKEN
vercel build --prod -t $VERCEL_TOKEN
vercel deploy --prebuilt --prod --yes -t $VERCEL_TOKEN
```

**Important:** Deploy from project root, not `build/` directory.

### Netlify

```bash
netlify deploy --prod --dir=build
```

## Data Sources

CSV files in `sources/happiness_score/`:
- `hs2024.csv` - Current year happiness data
- `hsArchive.csv` - Historical happiness data

## Notes

- **Use pnpm** (not npm) - `.npmrc` has `shamefully-hoist=true` for Evidence compatibility
- **Build locally** - Vercel/Netlify build can timeout due to DuckDB compilation (40+ min)
- Uses CSV files, no database setup needed
- Never run `pnpm run dev` in VM environment

