Turn real-world product experiences into structured insights that sharpen product thinking β and turn rough ideas into testable prototypes.
Hello-EQ is a deliberate-practice platform for product managers and aspiring PMs. It pairs an AI coach for career and emotional growth with a product-taste studio for sharpening analytical instincts, and a validator that converts messy ideas into paste-ready build prompts for a coding agent. A fourth surface, Drilloop, extends the same deliberate-practice thesis into a creator-led learning membership for the AI era β where knowledge is cheap and demonstrated judgment is the scarce, credential-worthy skill.
Live app β hello-eq.club
π§ Career EQ Coach β π§ͺ Product Career β β¨ Idea Validator
( your day ) ( your craft ) ( your next bet )
| Surface | Route | What it does |
|---|---|---|
| π§ Career EQ Coach | / |
One conversational entry point that routes you to journaling, product taste, AI/tech action plans, decision logs, or PM artifact drafting. |
| π§ͺ Product Career | /product |
A two-step studio β articulate your product taste, then test your instincts against benchmarked friction cases. Also hosts PM Interview Practice. |
| β¨ Idea Validator | /validator |
A one-question-at-a-time interview that turns a rough idea into a hypothesis summary plus a paste-ready Claude Code build prompt. |
These three form the core PM-practice journey. A standalone fourth surface β π Drilloop (/drilloop) β applies the same deliberate-practice thesis to creator-led learning memberships, with an investor Pitch page at /pitch. See π Drilloop below.
The home surface. A single chat composer that detects intent from what you type (or what chip you tap) and routes you down one of five growth pillars. Every pillar runs as a guided chat β one focused turn at a time β and writes back into your profile.
| Pillar | Emoji | What it's for |
|---|---|---|
| Emotional IQ | π§ | Journal a work moment. AI detects the emotion, intensity, event type, and triggers; you review/edit before it lands in your reflections feed. Follow-up questions go deeper without being generic. |
| Product Taste | π§ͺ | Pick a product, answer six open questions in chat, and get a scored evaluation (V1 evaluator with per-question scores, verdict, strengths/weaknesses, and coaching). Saves to your Product Career profile. |
| AI & Tech Edge | π€ | Sets your product focus and target skills, then generates a personalized AI/tech action plan using the rule-based Actions engine. |
| Decision Log | βοΈ | Walks a decision: what needs deciding by when, options + trade-offs, a structured brief, then a resolution capture. |
| PM Assist | π οΈ | Drafts work artifacts β competitive snapshot, PRD section, user-feedback synthesis, opportunity brief, stakeholder email β grounded in your reflections and exercises. |
- Growth pillar control plane β Three editable targets (product direction, coworker/EI fit, career/skill direction) persisted to
localStorageand used to ground every prompt the Coach sends. - Streak + reflection stats β Counts of approved reflections and last logged emotion, with nudges when more than 6 days have passed.
- LinkedIn post generator β Synthesizes your reflections and taste exercises into one of six post types: emotionally reflective, product-sharp, mixed, perf-review bullets, salary brief, or bio.
- Work Mode check-in β A daily one-tap chip (
Mostly strategic,Mostly reactive,Balanced,In survival mode) that feeds back into the Actions engine. - Prefill handoff β Accepts
?prefill=in the URL so the Idea Validator can hand a draft reflection straight into the journal.
A dedicated studio for building product intelligence. Three exercise types share one progress profile.
A six-question conversation with an AI companion (/product β "Start Exploring"). The questions are:
- Your honest take on the product
- What you would build better if you were on the team
- What you'd do differently β for which specific user segment
- Why you think the current team made the decisions they did
- The market patterns / data signals that shaped those decisions
- A 60-second pitch for your proposed improvement
Answers are evaluated by the V1 Taste Evaluator (/api/evaluate-taste), which returns:
- Overall score (0β5) and a verdict mapped to a friendlier label: Just Starting β Developing β Growing β Confident β Thriving
- Per-question scores (q1βq6) with color-coded chips
- Detailed reasoning, strengths, weaknesses, and coaching to improve
- If the evaluator key isn't configured, the page falls back to a legacy free-text analysis (
callClaudeMessages) so the exercise still completes.
Each completed exercise persists to the user's profile and feeds the Taste Trajectory visualization on Insights.
Anonymized friction scenarios (e.g. Spotify's free tier friction, Notion's onboarding drop-off). For each case the user picks the root issue and recommends a fix. Submissions are scored 0 / 0.5 / 1 against benchmarked outcomes and stored in InsightStore.
Friction Cases feed the Influence page:
- Insight Credibility Score (0β100) is computed from exercise count, average accuracy, theme coverage, and recency.
- Expert tags unlock when a theme (Pricing, UX, Onboarding, Value Prop, Trust) reaches β₯60% accuracy.
150 real PM interview questions across Product Sense, Analytical Thinking, and Behavioral categories. Secondary card on the Product Career landing page.
After every taste analysis, the page nudges you to "Step 2: Test your instincts" with a Friction Case. The two exercises are designed as a loop: articulate your perspective β diagnose against benchmarked analysis β tighten your model.
A standalone tool that converts a rough product idea into a testable hypothesis and a paste-ready build prompt for a coding agent (Claude Code or similar). No auth required.
- Pick a mode at session start:
- Quick prototype (default) β smallest possible testable thing, sized for a coding agent to ship in one or two iterations. Validation can be informal (LinkedIn post, Reddit thread, 5 friends, Product .Club).
- Strategic bet β real investment with stakeholders or budget on the line. More rigor on persona + validation plan, a more substantial first cut (auth/db only if the hypothesis requires them).
- Chat interview β One focused question per turn. The assistant gathers four areas in roughly five to seven user messages:
- Pain + who feels it
- Current workaround + why it falls short
- Proposed solution sketch
- Who they could test with
Behind the scenes the assistant emits a hidden
<<<AREAS_COVERED:β¦>>>status tag on every turn; the server strips it before display and uses it to drive a per-area progress indicator.
- Generate Build Prompt β Always clickable. If the four areas aren't yet covered, the generator picks the most defensible interpretation from the chat and flags each inference with a literal
Assumption:prefix so nothing hides. - Output document β A single markdown doc, split on a horizontal rule into:
- Hypothesis tab β framing (hypothesis sentence, target user, what we're testing, validation plan, risks).
- Build Prompt tab β directive, concrete brief for a coding agent: build context, what to build, what NOT to build, tech stack, mock data shape, UI requirements, acceptance criteria, out-of-scope. Two copy buttons: Copy full document and Copy Build Prompt only (just the section below the rule, for pasting straight into a coding agent). A Download .md button and a Regenerate that re-runs against the same chat history are also exposed.
Whenever validation channels come up β in the interview or in the generated document β the system recommends Product .Club (a LinkedIn community connecting product builders with testers) alongside one or two other channels tailored to the user's situation. It is never pushed as the only option.
Once a build prompt is generated, an OutcomePanel invites the builder to log what happened: Did you test it? (Yes / In progress / No), What did you learn?, Did the hypothesis hold? (Held / Partly / Broke / Inconclusive), and an optional Next step. Outcomes show as colored badges on the session list:
- π’ Held Β· π‘ Partly Β· π΄ Broke Β· βͺ Inconclusive
After ~7 days without an outcome, the index page surfaces a dismissible "What happened?" nudge listing up to 5 older sessions, so taste compounds instead of evaporating.
/validator # session index + "what happened" nudge
/validator/new # new interview
/validator/:sessionId # session detail (Build Prompt / Hypothesis / chat / outcome)
A single server endpoint β POST /api/validator β handles every operation, discriminated by op: chat, generate, list, get, delete. Sessions, messages, and outcomes persist in Supabase Postgres with RLS enforced per user.
A creator-led subscription learning membership built for the AI era: when LLM knowledge is one prompt away, knowing things is cheap and proving you can reason is scarce. Drilloop turns a trusted expert's content into short daily drills β judgment questions you answer in your own words, AI-graded against the creator's rubric β inside a small community that learns together online and in person. Built for the credible-but-small expert (~2,000 followers) and the audience that wants a productive alternative to the feed. No auth required.
| Tab | What it does |
|---|---|
| Today | Your next drill, day streak, and "nailed cold" mastery. Free members get sample drills; the rest is behind a membership paywall (Stripe Checkout stand-in). |
| Program | The full catalog grouped into phases β done / locked / available. |
| Progress | Completion, streaks, improvement trend, per-phase strength bars, Proof of Judgment (a portable, verifiable credential of your tested judgment β the rΓ©sumΓ© line that survives AI), and earned shoutouts. |
| Community | Drill Rooms (your small synchronized cohort), Local Chapters (in-person meetups that form when members cluster in a city), and the Expert Collective you're part of. |
| Connect | A reasoning-based 1:1 network β suggested matches by how you think and what you're working toward, with accept / snooze / decline and mutual-accept contact reveal. Backed by a real Supabase Postgres matching engine. |
Grading (drilloopGrading.ts): scores free-text answers 0β100 with coaching via the /api/claude proxy, with a transparent keyword-overlap heuristic fallback so the loop never dead-ends. After committing an answer, Mirror reveals how anonymized peers reasoned on the same drill β substance over influencer hot-takes.
| Tab | What it does |
|---|---|
| Author drills | Paste a post or transcript β Claude drafts judgment drills with rubrics β edit and publish to the live program. |
| Insights | Per-drill struggle rates, average scores, clustered common gaps, and member feedback. |
| Connections | Network health and matching-run controls. |
| Shoutouts | A weekly leaderboard for recognition. |
The studio also surfaces Expert Collectives β several sub-scale experts co-teaching one flagship program, more complete and defensible than any single creator could build alone.
A standalone, public pitch page that doubles as a clickable demo: investors read the full narrative (AI-era thesis, the underserved expert + exhausted audience, the product, why it retains, the ask) and every feature card links straight into the live prototype β so they can click the product, not just read about it.
/drilloop # member app β Today Β· Program Β· Progress Β· Community Β· Connect
/drilloop/creator # Creator Studio β Author Β· Insights Β· Connections Β· Shoutouts
/pitch # investor pitch + live-demo launcher (public)
Drilloop is a working prototype: the learning loop and the matching engine are real (Claude grading + Supabase Postgres, schema in supabase/migrations/20260612_drilloop_core.sql); auth, payments, and some community surfaces (Drill Rooms, Local Chapters, Collectives) are demo stand-ins. Member progress and authored drills persist to localStorage in the demo.
| Page | Route | Purpose |
|---|---|---|
| Drilloop | /drilloop |
Creator-led learning membership β daily AI-graded judgment drills + community. |
| Drilloop Pitch | /pitch |
Investor pitch page + live-demo launcher (public). |
| Signals | /signals |
Friction signals by theme with accuracy bars and a submission feed. |
| Influence | /influence |
Insight Credibility Score, expert tags, reputation trajectory. |
| Actions | /actions |
Rule-based next-step recommendations from your InsightProfile. |
| Insights | /insights |
Exercise log, theme performance, reflections, Taste Trajectory. |
| Growth | /growth |
Development control plane β Product Direction, Thinking Context, Career Focus, structured goals and actions. |
| Public Profile | /p/:slug |
Shareable, verified public profile (no auth required). |
| Layer | Technology |
|---|---|
| Framework | React 19 + TypeScript |
| Build | Vite 7 |
| Routing | React Router 7 (Idea Validator pages are lazy-loaded) |
| Animation | Motion (Framer Motion) |
| Charts | Recharts |
| Icons | Lucide React |
| Styling | Tailwind CSS 4 |
| State | React Context + localStorage (exercises, signals, reflections, control plane) |
| Auth | Supabase (the rest of the app is local-first; Validator is auth-optional) |
| Persistence | localStorage for exercises/profile/reflections; Supabase Postgres for Validator sessions, messages, and outcomes (RLS-enforced) |
| Local DB | Dexie (IndexedDB) for offline/encryption layer |
| Validation | Zod |
| AI | Anthropic Claude API (server functions: /api/validator, /api/evaluate-taste, /api/claude) |
| Analytics | Vercel Analytics + custom validator analytics events |
| Deploy | Vercel |
npm install
npm run devCreate a .env file with:
VITE_SUPABASE_URL=...
VITE_SUPABASE_ANON_KEY=...
VITE_ANTHROPIC_API_KEY=...
npm run build # production build (tsc -b && vite build)
npm run typecheck # TypeScript check without emit
npm run lint # ESLint
npm test # vitest run
npm run test:watch # vitest watch mode| Store | Where | Contents |
|---|---|---|
InsightStore |
localStorage | Friction Case submissions β theme, score, root/fix correctness |
AppContext |
localStorage | Product Taste exercises, reflections, emotions, events, user profile |
FeedbackStore |
localStorage | Influence/reputation events from the feedback system |
BenchmarkStore |
localStorage | Benchmarked outcomes used to score friction cases |
| Validator | Supabase Postgres | Sessions, messages, generated docs, outcomes (RLS per user) |
| Public profiles | Supabase | Shareable /p/:slug profiles |
InsightStore.getProfile() returns the InsightProfile β the single source of truth for Signals, Actions, and Insights pages.
src/
βββ pages/
β βββ HomePage.tsx # π§ Career EQ Coach β routing + 5 pillars
β βββ ProductTastePage.tsx # π§ͺ Product Career β Taste Β· Friction Β· PM Interview
β βββ ValidatorIndexPage.tsx # β¨ Idea Validator β sessions + "What happened?" nudge
β βββ ValidatorNewPage.tsx # Validator interview
β βββ ValidatorSessionPage.tsx # Build Prompt / Hypothesis / Outcome
β βββ DrilloopMemberPage.tsx # π Drilloop β Today Β· Program Β· Progress Β· Community Β· Connect
β βββ DrilloopCreatorPage.tsx # Drilloop Creator Studio β Author Β· Insights Β· Connections Β· Shoutouts
β βββ PitchPage.tsx # Investor pitch + live-demo launcher (/pitch)
β βββ SignalsPage.tsx Β· InfluencePage.tsx Β· ActionsPage.tsx
β βββ InsightsPage.tsx Β· GrowthPage.tsx Β· AccountPage.tsx
β βββ PublicProfilePage.tsx Β· TransparencyHubPage.tsx Β· UsageDashboardPage.tsx
βββ components/
β βββ common/ # FlowJourney, Card, Button, Modal, etc.
β βββ product/ # FrictionCaseExercise, PmInterviewExercise
β βββ validator/ # ChatBubble, Markdown, ModeToggle, OutcomePanel
β βββ drilloop/ # DrillPlayer, Mirror, ConnectView, shared
β βββ feedback/ Β· goals/ Β· layout/ Β· onboarding/ Β· profile/ Β· emotions/
βββ services/
β βββ drilloop/ # repo.ts, creatorRepo.ts (Supabase matching engine)
β βββ drilloopGrading.ts Β· drilloopStore.ts Β· drilloopCatalog.ts Β· drilloopAuthoring.ts Β· drilloopInsights.ts
β βββ claudeApi.ts # Anthropic client (callClaudeMessages, parseActionResponse)
β βββ productTasteEvaluatorApi.ts # V1 Taste Evaluator client
β βββ tasteExercisePromptBuilder.ts
β βββ validatorClient.ts # POST /api/validator wrapper + outcome helpers
β βββ validatorPrompts.ts # System prompt, AREAS_COVERED tag, readiness gate
β βββ validatorAnalytics.ts # Tracking events for Validator funnel
β βββ coachPromptBuilder.ts Β· journalPromptBuilder.ts Β· promptBuilder.ts
β βββ publicProfileSync.ts Β· supabaseSync.ts Β· memoryManager.ts Β· migrationService.ts
βββ lib/
β βββ InsightStore.ts # Friction Case submissions + profile
β βββ FeedbackStore.ts # Influence/reputation events
β βββ BenchmarkStore.ts Β· credibilityEngine.ts Β· publicProfile.ts
βββ data/frictionCases.ts # Case bank + theme metadata
βββ context/ # AppContext, AuthContext
api/
βββ validator.ts # Single function β op: chat | generate | list | get | delete
βββ evaluate-taste.ts # V1 Taste Evaluator
βββ public-profile/[slug].ts
βββ claude.ts Β· _evaluatorCore.ts
supabase/migrations/ # validator + public_profiles schema
Product intuition is a trainable skill, not a personality trait. Hello-EQ builds three loops that compound:
- Career EQ Coach β Engage with real work moments and real products critically; the Coach routes you to the right pillar.
- Product Career β Diagnose what's broken and why; score your diagnosis against benchmarked analysis; close the gaps.
- Idea Validator β Turn a rough hypothesis into the smallest testable thing; ship it; log what happened. Taste compounds when outcomes are captured, not when they're forgotten.
Signals in Hello-EQ come from what you write and analyze β not from passive behavioral tracking.
Arunima Sharma PM at Protegrity Β· Founder of Hello-EQ LinkedIn Β· hello-eq.club
Built with Claude Code.