Because your phone shouldn't be smarter than you.
Nudge is a cross-platform screen time and dumb-scrolling manager. Browser extension (Chrome, Firefox, Edge, Brave) + React Native mobile app (iOS + Android), built on a shared TypeScript core.
| Name | Role |
|---|---|
| Marcus Webb | Orchestrator |
| Vera Stone | Product Manager |
| Theodore Krane | Project Manager |
| Dmitri Volkov | System Architect |
| Soleil Adaeze | UI/UX Designer |
| Yemi Okafor | UX Researcher |
| Nadia Chern | Frontend Lead |
| Kwame Asante | Frontend Dev |
| Raj Pillai | Backend Lead |
| Linh Nguyen | Backend Dev |
| Harriet Burns | QA Lead |
| Zach Morales | Tester |
| Felix Otter | Debugger Lead |
| Priya Mehta | Debugger |
| Oswald Kent | Code Reviewer |
| Sasha Novak | Security Reviewer |
nudge/
├── packages/
│ ├── core/ @nudge/core — rules engine, types, scoring, streaks
│ ├── snark/ @nudge/snark — comment library + mode resolver
│ ├── extension/ @nudge/extension — browser extension (MV3)
│ ├── mobile/ @nudge/mobile — React Native iOS + Android
│ └── backend/ @nudge/backend — Fastify API + Prisma + WebSocket sync
├── turbo.json
├── tsconfig.base.json
└── playwright.config.ts
| Layer | Technology |
|---|---|
| Monorepo | Turborepo |
| Language | TypeScript (strict) |
| Browser Extension | Manifest V3, Web Components, Shadow DOM |
| Mobile | React Native, Zustand, Reanimated 3 |
| Backend | Node.js, Fastify, Prisma, PostgreSQL, Redis |
| Realtime | WebSocket |
| Auth | JWT + refresh tokens |
| Payments | Paystack (Nigeria), Stripe (international) |
| CI | GitHub Actions, Playwright, Vitest |
| Hosting | Railway |
| Feature | Free | Pro |
|---|---|---|
| Site/app rules | 3 | Unlimited |
| Blocking (hard + soft) | ✓ | ✓ |
| Floating overlay pill | ✓ | ✓ |
| Session tracking | ✓ | ✓ |
| Gentle Ghost snark mode | ✓ | ✓ |
| Disappointed Parent mode | ✗ | ✓ |
| Blunt Mate mode | ✗ | ✓ |
| Full Roast mode (age-gated) | ✗ | ✓ |
| Wind-down Mode | ✗ | ✓ |
| Focus Mode | ✗ | ✓ |
| Weekly Honest Report | ✗ | ✓ |
| Streaks & Badges | ✗ | ✓ |
| Cross-device sync | ✗ | ✓ |
| Emergency Override | ✗ | ✓ |
| Tier | Price |
|---|---|
| Free | ₦0 forever |
| Pro Monthly | ₦2,500/month |
| Pro Yearly | ₦20,000/year |
| Lifetime | ₦45,000 one-time |
| Student (.edu) | ₦1,250/month |
# Install
yarn install
# Build all packages
yarn build
# Run tests
yarn test
# Dev (all packages watch mode)
yarn devcp packages/backend/.env.example packages/backend/.env
# Fill in DATABASE_URL, JWT_SECRET, PAYSTACK_SECRET_KEY, STRIPE_SECRET_KEY
cd packages/backend
npx prisma migrate dev
npx prisma generate
yarn dev- Max 200 lines per PR (Oswald's rule)
- Every PR requires a test file
- No
eval(), noinnerHTMLwith unsanitized input (Sasha's rule) - Structured logging only — no bare
console.login production - All snark copy reviewed by two non-engineers + Harriet's Cringe Rubric™
- Terms of Service
- Privacy Policy (plain English summary at the top)
- Data Processing Agreement (GDPR)
- Cookie Policy (we use none — stated explicitly)
Core promise: We never sell browsing data. Ever.
Built by a 16-person war room. Every decision debated. Every line reviewed.