Decode is a shame-free, zero-friction technology companion for anyone who has ever felt left behind by tech. Paste any confusing piece of technology — a notification, a bill, a suspicious text, an error message — and get an immediate plain-language explanation.
No account. No login. No judgment. Just answers.
🔗 Live at decode-tech.vercel.app
You describe anything confusing about technology. Decode tells you:
- What this is — plain language, no jargon
- What you should do — specific, actionable steps
- What to watch out for — scam flags, hidden fees, predatory patterns
Low-income adults, seniors, first-generation students, recently incarcerated individuals, youth in under-resourced schools — and anyone who has ever felt made to feel slow by a device, a bill, or a website. Built by someone from these communities, not for them.
- Frontend: Next.js 16 + TypeScript
- AI: OpenRouter (openrouter/auto) — production API, free tier
- Hosting: Vercel
- Analytics: PostHog (privacy-first, ad-blocker-resistant reverse proxy)
- Database: None — stateless by design in V1
You'll need an OpenRouter API key and a PostHog project key. No credit card required for either.
Create a .env.local file in the project root:
OPENROUTER_API_KEY=sk-or-xxxxxxxxxxxxxxxx
NEXT_PUBLIC_POSTHOG_KEY=phc_xxxxxxxxxxxxxxxx
NEXT_PUBLIC_POSTHOG_HOST=https://us.i.posthog.comThen install and run:
npm install
npm run devApp runs at http://localhost:3000. No second terminal needed.
src/
├── app/
│ ├── about/
│ │ └── page.tsx # About page — mission and trust-building
│ ├── api/
│ │ └── decode/
│ │ └── route.ts # POST route with input validation + rate limiting
│ ├── share/
│ │ └── [id]/
│ │ └── page.tsx # Shared answer view — read-only
│ ├── layout.tsx # Root layout with PostHog provider
│ └── page.tsx # Homepage — main decoder interface
├── components/
│ └── PostHogProvider.tsx # Analytics provider with reverse proxy
├── lib/
│ ├── decode.ts # OpenRouter API call with retry logic
│ ├── posthog.ts # PostHog initialization
│ ├── prompt.ts # System prompt — the tone engine (most important file)
│ └── share.ts # URL-safe Base64 encode/decode for share links
├── types/
│ └── decode.ts # Shared TypeScript types
└── middleware.ts # Rate limiting — 10 requests/min per IP
- Shame-free tone — baked into the system prompt, non-negotiable
- Zero friction — no account, no onboarding, first interaction requires nothing
- Privacy-first — no input data stored, no ads, ever
- Accessible — WCAG 2.1 AA contrast ratios, 16px minimum font size, keyboard navigable
- Works anywhere — library computer, older phone, slow connection
- Core decoder interface
- Shame-free system prompt / tone engine
- OpenRouter production backend
- About page
- Accessibility pass (WCAG AA colors + font sizes)
- Share link feature
- Vercel deployment
- PostHog analytics with ad-blocker-resistant reverse proxy
- Reading level selector
- Topic categorization + analytics dashboard
- SMS / low-bandwidth version
- Community org embed widget
- Beta launch