Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

110 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Hello-EQ

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


The Three Surfaces

🧠 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.


🧠 Career EQ Coach

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.

Routing pillars

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.

What the Coach also surfaces on the home page

  • Growth pillar control plane β€” Three editable targets (product direction, coworker/EI fit, career/skill direction) persisted to localStorage and 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.

πŸ§ͺ Product Career

A dedicated studio for building product intelligence. Three exercise types share one progress profile.

Step 1 β€” Product Taste Analysis

A six-question conversation with an AI companion (/product β†’ "Start Exploring"). The questions are:

  1. Your honest take on the product
  2. What you would build better if you were on the team
  3. What you'd do differently β€” for which specific user segment
  4. Why you think the current team made the decisions they did
  5. The market patterns / data signals that shaped those decisions
  6. 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.

Step 2 β€” Friction Cases

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.

PM Interview Practice

150 real PM interview questions across Product Sense, Analytical Thinking, and Behavioral categories. Secondary card on the Product Career landing page.

The bridge

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.


✨ Idea Validator

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.

How a session runs

  1. 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).
  2. 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.
  3. 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.
  4. 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.

Product .Club is always one of the channels

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.

"What happened?" feedback capture

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.

Routes & API surface

/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.


πŸ” Drilloop

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.

Member experience β€” /drilloop

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.

Creator Studio β€” /drilloop/creator

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.

Investor Pitch page β€” /pitch

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.


Other Surfaces

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).

Tech Stack

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

Local Development

npm install
npm run dev

Create 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

Data Architecture

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.


Project Structure

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

Philosophy

Product intuition is a trainable skill, not a personality trait. Hello-EQ builds three loops that compound:

  1. Career EQ Coach β€” Engage with real work moments and real products critically; the Coach routes you to the right pillar.
  2. Product Career β€” Diagnose what's broken and why; score your diagnosis against benchmarked analysis; close the gaps.
  3. 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.


Author

Arunima Sharma PM at Protegrity Β· Founder of Hello-EQ LinkedIn Β· hello-eq.club


Built with Claude Code.

About

Hello-EQ's Idea Validator turns a rough product idea into a sharp, testable hypothesis and a paste-ready build prompt through a short, one-question-at-a-time AI interview.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages