A learning layer for AI-generated code

Don't feel guilty about vibe coding. Make the code yours.

AI writes the code. Unvibe helps you understand it.

Select code, choose your explanation depth, and learn how it works without leaving your workflow.

Private Mac beta Product ready Invite access No credit card to join

useSyncedDraft.tsUNVIBE
TypeScriptReact hookEditor state
01export function useSyncedDraft(id: string) {02  const [draft, setDraft] = useState('');03  useEffect(() => {04    const next = cache.get(id) ?? '';05    setDraft(next);06  }, [id]);07  return { draft, setDraft };08}
BEGINNERDetecting change
useEffectcache lookupstate sync
First timeBeginnerIntermediateAdvanced

What this code actually does

Keeps the right draft attached to the right document.

This hook keeps the editor draft aligned with the active document. Whenever id changes, useEffect reads that document's cached draft and updates React state.
Detecting change

01 / THE PROBLEM

Your agent finished the feature.
Could you explain it tomorrow?

Using AI is not the problem. Losing the thread of your own project is.

BeforeTask complete ✓
  • ?Unfamiliar abstractions
  • ?Unexplained dependencies
  • ?Possible failure points

It works. You think.

After UnvibeContext found
What changed

Draft state now follows the active ID.

Why

Prevents state leaking across documents.

Files involved

3 modules · 1 hook · 2 call sites

Next concept

Effect dependencies

02 / ONE QUIET LOOP

From generated to genuinely understood.

Three steps. Then you keep building.

01

Select code

Choose the exact lines, file, or git change you want to understand.

02

Choose your level

Start plain, go deep, or switch level whenever the explanation misses.

03

Understand. Continue.

Ask a follow-up, test yourself, save the concept, and get back to the project.

03 / YOUR DEPTH

The same code.
Five ways in.

Good explanations meet you where you are. Change the level to compare language, execution flow, architecture, and tradeoffs.

03  useEffect(() => {04    setDraft(cache.get(id) ?? '');05  }, [id]);
Syntax + behavior

useEffect synchronizes the draft state with the selected ID.

The dependency array contains id, so React reruns this effect whenever id changes.

Depth 2/5Beginner · advances in 3s

04 / THE WHOLE THREAD

A line rarely makes sense by itself.

Move outward from expression to architecture, then turn the missing context into something learnable.

01 / 07
Line

What the expression does

Loads the saved draft for the active item, or starts empty.

05 / STAY IN FLOW

Beside the tools.
Not another place to work.

Unvibe is a Mac desktop layer designed to stay available beside your coding workflow.

UnvibeMac desktop layer
Cursor
VS Code
Terminal
Claude Code
GitHub

Tool names describe intended workflows, not partnerships or endorsements. Specific integrations may be in development.

06 / LEARN FROM REAL WORK

Your project becomes the curriculum.

No generic tutorial can know the decisions inside your repository. Unvibe ties learning to the code you actually need to maintain.

Students learning inside real projectsAI-first builders closing knowledge gapsDevelopers reviewing unfamiliar changesLeads tracing architecture and risk
my-app/├─ src/hooks/useSyncedDraft.ts├─ src/cache/drafts.ts└─ src/editor/Editor.tsx
CONCEPTEffect dependenciesSeen in 3 files
CHECKWhy can state drift?Ready to test
LEARNING EVIDENCEDevelopingComing during beta

07 / KEEP THE THREAD

Five places to keep learning moving.

The desktop companion turns each real review into a path back to understanding—without pretending you have completed a course you never took.

01

Study

A short review queue formed from concepts you have actually met in your code.

02

History

A private, chronological trail of explanations and checks you chose to keep.

03

Quiz

Fresh comprehension checks inside real explanations, where the code context is present.

04

Progress

Cautious evidence, streaks, and learning signals—never made-up mastery scores.

05

Plan

Usage, reset dates, and the Free or Pro space that fits your work.

Your sixth destination is Plan: start free, see what resets, and only upgrade when your projects need more room.

08 / PRIVATE BY DESIGN

Your code deserves a careful boundary.

Unvibe's desktop agent owns network requests. It filters likely secrets locally before approved context can be sent for an explanation.

Your selected contextOn your Mac
Local secret filter.env · keys · tokens · builds
Approved requestFiltered context only

Per-repository payload preview and consent controls are in development. No secret filter can guarantee it catches every sensitive value.

09 / PRICING

Start free. Upgrade when your projects grow.

Free helps you understand a selection — 50 explanations each month, plus your spaced study queue. Pro adds git diffs, agent briefs, nearby files, and since-last-understood compares — 100 explanations each month.

Pro annual: $72/year — about $6/month. Save 25% vs monthly.

Learn the code in front of you.

Free

$0No card required
  • 50 explanations each month
  • Selected-code explanations
  • Core explanation levels
  • Spaced study / revisit queue
  • Saved explanations and progress
  • No credit card required
Start for free

FREE INCLUDES

  • 50 explanations each month
  • Selected-code explanations and core levels
  • Study queue, saved explanations, and progress

PRO ADDS

  • 100 explanations each month
  • Git diffs, agent briefs, and nearby-file context
  • Since-last-understood compares and Expert depth

Free covers selected code and your study queue. Pro adds git diffs, agent briefs, nearby files, and since-last-understood compares. Private code is filtered locally before approved context is sent.

10 / PRIVATE BETA

The product is ready. Access is invite-only.

Join the waitlist so we know you're interested. If you want the Mac app, email preston@unvibe.site and we'll get it to you.

  • Private Mac beta — product ready
  • Waitlist first, then invite access
  • No credit card to join the list

Want the product now? Email preston@unvibe.site after you join the waitlist.

Join the waitlistThree quick details. That's all.

11 / QUICK ANSWERS

Before you request access.

Private beta is ready. Join the waitlist, then email if you want the product.

01Is Free actually usable?

Yes. Free includes the main code-explanation experience with usage and project limits. It is intended to let you experience the real product before paying. No credit card or separate AI API key is required.

02Is Pro cheaper annually?

Yes. Monthly Pro is $8 per month. Annual Pro is $72 per year — about $6 per month, a 25% savings versus paying monthly.

03What happens if I cancel?

Paid access continues until the end of the current billing period unless otherwise stated during cancellation. Your saved content is handled according to the product retention policy.

04How do I get the product?

Join the waitlist on this site, then email preston@unvibe.site and ask for private beta access. Access is invite-only while we keep the beta controlled.

PRIVATE BETA · READY NOW

AI can write the code.
Make sure it becomes yours.

Mac · Invite-only · Waitlist first · Want the product? Email preston@unvibe.site