Real-time community signal for AI tools. The MVP is a single status board where users can check recent reports and submit Slow, Error, or Down without signing in.
- Next.js 16 App Router
- React 19
- TypeScript 6 with
ES2025 - Tailwind CSS 4
- Redis via
REDIS_URLwith Docker Compose locally - Vercel Web Analytics for traffic only
- Vitest
- Node
>=20.9.0 - pnpm
10.30.3
The package manager is pinned in package.json.
pnpm install
cp .env.example .env.local
docker compose up -d redis
pnpm devOpen http://localhost:3000.
Redis is required for local development. Without REDIS_URL, the app fails fast instead of falling back to process memory.
Create .env.local from .env.example.
NEXT_PUBLIC_APP_URL=http://localhost:3000
REDIS_URL=redis://localhost:6379.env.local is ignored by git. Keep local and production secrets out of the repository.
Redis is required at runtime. The app does not use an in-memory fallback.
Local development uses Docker Compose with redis:8.2.5-alpine:
docker compose up -d redisProduction can use Upstash Redis by setting REDIS_URL to the TLS Redis connection string:
REDIS_URL=rediss://default:<PASSWORD>@<DATABASE>.upstash.io:6379If Redis is unavailable, report APIs return 503 instead of silently dropping to process memory.
Set these environment variables in production:
NEXT_PUBLIC_APP_URL=https://notjustyou.dev
REDIS_URL=rediss://default:<PASSWORD>@<DATABASE>.upstash.io:6379The app is designed for Vercel. Enable Vercel Web Analytics if you want traffic and referrer data.
pnpm dev # start local dev server
pnpm build # production build
pnpm start # start production server after build
pnpm lint # eslint
pnpm test # vitest/status board/privacyprivacy notes/api/summaryrecent 10 minute community report summary/api/reportreport submission with 3 minute same-service dedupe/api/officialofficial service surface status summary
- Provider tabs
- Product surface cards
Slow,Error,Downreports- Recent 10 minute report counts
- Community state from absolute report counts
- Same-service dedupe for 3 minutes per fingerprint
- 5 second polling when visible
- 30 second polling when hidden
- Optimistic report updates
- Surface-level official status adapters for Claude, Cursor, Gemini Web, Gemini API, and mapped OpenAI surfaces
- Unmapped or uncertain official status surfaces omit the official badge
- Anthropic: Claude Code, Claude.ai, Claude Cowork, Claude API
- OpenAI: Codex CLI, Codex App, ChatGPT, OpenAI API
- Google: Gemini CLI, Antigravity, Gemini Web, Gemini API
- Cursor: Cursor IDE, Cursor CLI
- Anthropic: Statuspage components for Claude Code, claude.ai, Claude Cowork, and Claude API
- OpenAI: Statuspage components for CLI, App, Conversations, and Chat Completions
- Google: Workspace Gemini for Gemini Web, Cloud Vertex Gemini API for Gemini API
- Cursor: Statuspage components for IDE and CLI
- Gemini CLI and Antigravity stay unmapped until there is a reliable official source
- No account or login is required.
- Reports are stored in Redis as service/status counters in minute buckets.
- Same-service dedupe uses a short-lived fingerprint derived from request metadata.
- Vercel Web Analytics is used for page views and referrers only.
- A minimal
/privacypage explains what the MVP stores.
- Run
pnpm lint,pnpm test, andpnpm buildbefore opening a pull request. - Service surfaces live in
lib/catalog.ts. - Report options are intentionally limited to
Slow,Error, andDown. - Keep official status and community reports separate in UI and API changes.
MIT