This file provides guidance to WARP (warp.dev) when working with code in this repository.
Project status
- Stack chosen: Node.js + React (Next.js, TypeScript, TailwindCSS, shadcn/ui).
- This repository currently contains product documentation only; app code is not yet committed.
- Key docs:
- README.md: product overview and suggested next steps
- docs/prd.pt-BR.md: full PRD (Português)
Quick start (one-time bootstrap when adding code)
- Create the web app (Next.js + TS + Tailwind + App Router):
- pnpm: pnpm create next-app web --ts --eslint --tailwind --app --src-dir --import-alias "@/*"
- npm: npx create-next-app@latest web --ts --eslint --tailwind --app --src-dir --import-alias "@/*"
- Initialize shadcn/ui in apps/web:
- cd web && npx shadcn@latest init -y
- Apply the provided theme (from user):
- npx shadcn@latest add https://tweakcn.com/r/themes/cmgi4z2cz000204kzfypcdjtq
- Add components as needed (examples):
- npx shadcn@latest add button card input textarea badge dropdown-menu dialog
Common commands (web app)
- Dev server: npm run dev --prefix web
- Build: npm run build --prefix web
- Start (prod): npm run start --prefix web
- Lint: npm run lint --prefix web
- Tests (all): npm run test --prefix web
- Tests (single file): npm run test:run --prefix web -- src/components/ui/button.test.tsx
- Tests (by name): npm run test --prefix web -- -t "renders with text"
- Coverage: npm run test:coverage --prefix web
Tests (Vitest + RTL)
- Install (once, in web): pnpm --filter web add -D vitest @testing-library/react @testing-library/jest-dom jsdom @types/jsdom
- Run all tests: pnpm --filter web vitest
- Single test file: pnpm --filter web vitest run src/components/Button.test.tsx
- Single test name: pnpm --filter web vitest -t "renders the button"
- Coverage: pnpm --filter web vitest run --coverage
High-level architecture (from PRD, mapped to Node.js + React)
- Web application (Next.js, App Router)
- UI: React + Tailwind + Radix primitives via shadcn/ui; theme imported from the provided registry item
- Folders: app/ (routes/layouts), components/ (UI), lib/ (client utilities), styles/
- MVP routes now scaffolded: /dashboard, /writer, /scheduler, /crm, /analytics; API stubs under /api
- Future: server actions or API routes for light backend needs during MVP
- Backend and services (Node.js; staged rollout)
- Phase 1 (MVP): Next.js API routes for scheduling, drafts, and basic analytics
- Phase 2: Separate services as scale demands
- Content AI service
- Scheduler/Queue (publishing, auto-RT/DM, evergreen)
- CRM & Lead service (lists, profiles, interaction history)
- Lead Finder agent (background worker)
- Analytics pipeline/service
- Notifications/Email service
- Integration layer: Official X (Twitter) API client with rate limiting and guardrails (compliance-first)
- Data
- Initial: hosted DB (e.g., Postgres) for CRM entities, schedules, analytics aggregates, content drafts
- Strict per-account data isolation to support multi-account
- Browser extension (later)
- Complements the web app; communicates with backend for profile sidebar, improved quote view, AI actions on selected text
What to do next (from README.md)
- Map the MVP across pillars and decide initial service boundaries (API routes vs dedicated service)
- Specify integrations and API rate-limit constraints for X API
- Sketch initial data schema for CRM and scheduling
AI rules and ecosystem files
- No CLAUDE.md, Cursor rules (.cursor/rules/ or .cursorrules), or Copilot instructions (.github/copilot-instructions.md) were found at the time of writing. Add them later if adopted and reflect important constraints here.