BeLikeNative Big Wins
Complete Report

v1.6.3 | Sprints 18-25 complete | 127 tests | 8/8 build checks | April 27, 2026

Where we are: 15+ features shipped, 111/119 audit findings fixed, onboarding V2, upgrade modal, FAB with usage state, selection toolbar, milestones, streaks, prompt discovery, result preview, context menu sync, 127 tests, automated ship pipeline. The conversion plumbing works. The codebase is clean.

What this report covers: Every improvement idea, shipped or not, rated 1-10, organized by status. Plus 12 NEW ideas focused on making the side panel a sticky daily-use product, not a settings drawer. Full brand spec, visual design language, and sticky loop architecture.

Brand IdentityDesign Language for All New Components

Color System

Primary
Pressed
Dark BG
Light BG
Warning
Danger
Pro
Panel BG

Typography

Side panel: Instrument Sans (already loaded). Weights: 400 body, 500 labels, 600 section headers, 700 card titles.
Indicator/content scripts: System font stack (no network request). -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif
Monospace (stats/counts): Tabular numerals via font-variant-numeric: tabular-nums on any number display.

Component Specs

Cards: bg: white, border: 1px solid #e2e8f0, border-radius: 12px, padding: 16px, shadow: 0 1px 3px rgba(0,0,0,0.04). Hover: border-color: #24d580 with 150ms transition.
Buttons (primary): bg: #24d580, color: white, border-radius: 10px, height: 44px, font-weight: 600. Hover: bg: #1aab66. Press: transform: scale(0.98). Disabled: opacity: 0.5.
Badges: font-size: 11px, font-weight: 600, border-radius: 6px, padding: 2px 8px. Starter: bg: #f0fdf4, color: #16a34a. Pro: bg: #eef2ff, color: #6366f1.
Tab bar: Active tab underline: 2px solid #24d580. Inactive: color: #64748b. Active: color: #0f172a, font-weight: 600. 200ms transition on underline position.
Spacing: 16px between cards, 12px internal padding, 8px between label and value. Consistent 16px horizontal margin.

Micro-interactions

Tab switch: Underline slides left/right (not jump) via CSS transform: translateX() with 200ms ease-out.
Card expand: Accordion expand/collapse via max-height transition, 250ms ease.
Counter increment: Number changes use a 300ms count-up animation (CSS @keyframes, not JS interval).
Success state: Brief green flash (background: #f0fdf4 fading to white over 600ms) when a correction is confirmed.
Streak fire: 🔥 emoji does a subtle 200ms bounce (transform: scale(1.3) -> scale(1)) when streak increments.
Toast entry: Slide up from FAB position with 200ms ease-out + 10% opacity fade-in.

ArchitectureThe Sticky Loop

Every feature must feed into this cycle. If a feature doesn't connect to this loop, it doesn't ship.

Select Text
->
Fix / Rephrase
->
See Value (diff preview)
->
Save to Notes

Stats Update
->
Streak / Milestone
->
Level Up
->
Hit Limit

Upgrade
->
Unlock Packs
->
More Value
->
Daily Habit

Status: Shipped (Sprints 18-25)What's Done

#FeatureSprintStatus
1Onboarding V2 "Honest Theater" (6 Acts)18, 22SHIPPED
2Limit-Hit Upgrade Modal21SHIPPED
3FAB Redesign (usage badge, color states)21SHIPPED
4Floating Selection Toolbar21SHIPPED
5Smart Auto-Reselect After Processing21SHIPPED
6Post-Correction Micro-Toast21SHIPPED
7Toast Priority Queue23SHIPPED
8Milestone System (6 thresholds + review CTA)23SHIPPED
9CWS Listing Rewrite (value-led copy)23SHIPPED
10L1 Tooltip Personalization23SHIPPED
11Context Menu Dynamic Sync23SHIPPED
12Uninstall Feedback URL23SHIPPED
1324h Modal Dismiss Persistence24SHIPPED
14Toolbar Shortcut ID Mapping24SHIPPED
15Daily Streak System (7/30-day milestones)24SHIPPED
16Prompt Discovery Card in Side Panel24SHIPPED
17Result Preview Toggle (wired)24SHIPPED
18Dark Mode (side panel: always light, indicator: system)20, 22SHIPPED
19Build Verification Script (8 checks)25SHIPPED
20background.ts Decomposition (18 modules)25SHIPPED
21Indicator Decomposition (17 files)25SHIPPED
22127 Tests, 0 Failures25SHIPPED

New Ideas: Side Panel UX RevolutionMake It a Daily-Use Product

The side panel is the most underused surface in Chrome extensions. It persists across page navigations. It stays open while the user browses. It's a companion, not a popup. These 12 ideas transform it from "settings drawer" to "writing command center."

NEW #01
Notes Tab: Personal Writing Workspace
10/10
Effort
3h
Impact
Retention
Stickiness
Extreme

The insight: Main tab = configuration (open once). Prompts tab = browsing (open sometimes). Notes tab = YOUR content (open daily). Users who store personal content in a tool don't uninstall it.

What's inside Notes:

Quick Draft pad: Text area at top. User writes, pastes, or drafts. One-tap "Fix with BLN" button sends content through correction pipeline. Result appears inline as a diff. This is the "scratch pad for non-native speakers" that doesn't exist anywhere else.
Recent Corrections feed: Last 15 corrections as compact cards: timestamp, original (strikethrough, muted), corrected (green), shortcut used, one-click re-copy. FIFO rotation, max 15 free / 50 pro. Each card is proof the product works.
Saved snippets: Star icon on any correction saves it permanently. "Email closings I always use," "My standard intro paragraph." These become the user's personal writing library inside BLN.

Visual Spec

Tab icon: Pencil or note icon, same weight as Main (grid) and Prompts (book) icons.
Draft pad: White background, 1px border #e2e8f0, 12px radius, 100px min-height, auto-grows to 200px max. Placeholder: "Draft something, paste text to fix, or save a snippet..." in #94a3b8.
"Fix with BLN" button: Below draft pad, full-width, 44px height, BLN green. Only shows when draft has >10 characters.
Correction cards: White background, left border 3px #24d580, 10px radius. Original text in #94a3b8 with strikethrough. Corrected text in #0f172a. Timestamp in #94a3b8 mono. Copy icon top-right, star icon next to it.

Why this is the stickiest feature: Every saved snippet, every correction history entry, every draft is personal data the user created inside BLN. Switching to Grammarly means losing their writing library. That's the switching cost that retains users through any competitor feature comparison.
NEW #02
Writing Level Progression System
10/10
Effort
2.5h
Impact
Habit
Stickiness
Extreme

The Duolingo principle applied to writing. Users don't just accumulate corrections. They level up. Levels are based on total corrections + streak consistency + variety of shortcuts used.

LevelNameRequirementBadge Color
1Beginner0 corrections#94a3b8 gray
2Explorer25 corrections#22c55e green
3Writer100 + 3-day streak#3b82f6 blue
4Wordsmith500 + 7-day streak + 3 shortcuts used#8b5cf6 purple
5Native1000 + 30-day streak + 5 shortcuts used#f59e0b gold

Visual Spec

Level badge replaces the current "0/180 today" text in the header. Shows: level icon + "Level 3: Writer" + XP progress bar to next level. Progress bar: 4px height, border-radius: 2px, bg #e2e8f0, fill with level color gradient. On level-up: the entire header does a 600ms glow animation in the new level's color.
Level-up toast: Special MilestoneToast variant with level badge, new title, and share button. "You've reached Level 3: Writer! 🎉"

Why 10/10: Levels create identity. A user who is "Level 4: Wordsmith" doesn't think "should I try a competitor?" They think "I'm almost Level 5." The level badge visible in the side panel header is a constant reminder of their investment. This is the retention mechanic that Duolingo proved works for language learning applied directly to writing improvement.

NEW #03
Pack Names: Profession-First (Backend Data Fix)
10/10
Effort
30min
Impact
Trust
Risk
None

Rename "magnifier" to Recruiter. "scales" to Paralegal. "compass" to Startup Founder. "feather" to Copywriter. "heart" to Healthcare. Users scan names, not descriptions. A Korean developer looking for help with technical writing should see "Developer" not "telescope." 30 minutes in MongoDB. Zero code risk. Massive comprehension gain.

NEW #04
"Most Used" Smart Section + Function Reduction
10/10
Effort
2h
Impact
Personalization
Risk
Low

Two changes in one:

A) Most Used section: Above Main Functions, show user's top 3 shortcuts ranked by actual usage count. Track in bln_shortcut_usage: { [id]: count }. Each row: shortcut key badge + name + count + "Run" button. Before 10 total corrections, show "Your most-used shortcuts will appear here."

B) Reduce default view from 9 to 5: Show Rephrase, Translate, Grammar, Quick Reply, Simplify. Collapse Distill, Punctuation, APA Citation, MLA Citation into "Show more" expander. Persistent: if user expands once, stays expanded (stored in chrome.storage.local).

Visual Spec

Most Used section header: "YOUR TOP SHORTCUTS" in #64748b, font-size: 11px, font-weight: 600, letter-spacing: 0.06em.
Each row: height: 44px, border-bottom: 1px solid #f1f5f9. Key badge: bg: #0f172a, color: white, border-radius: 6px, width: 28px, height: 28px, centered number. Usage count: color: #94a3b8, font-variant-numeric: tabular-nums. "Run" button: ghost style, color: #24d580, appears on row hover only.
"Show more" toggle: color: #64748b, font-size: 12px, chevron rotates 180deg on expand (150ms ease).

NEW #05
Per-Site Context Switching
9/10
Effort
3h
Impact
Intelligence
Risk
Medium

The side panel API supports per-site panels. Use sidePanel.setOptions({ path, tabId }) to show different content per domain. On Gmail: highlight "Draft a Quick Reply" and "Make Professional." On LinkedIn: highlight "Connection Request" and "Comment on Post." On generic sites: show default view. A small domain chip at the top of the side panel shows: "📧 Gmail Mode" or "💼 LinkedIn Mode." The user feels the extension understands WHERE they're writing, not just WHAT they're writing.

Implementation: Not separate HTML files per site. One panel, conditionally rendered sections. Read chrome.tabs.query({ active: true }) on panel mount, extract hostname, match against known domains, set a context state that reorders/highlights relevant shortcuts and shows site-specific prompt suggestions.

NEW #06
Try-It Previews on Pack Cards
9/10
Effort
2h
Impact
Conversion
Risk
None

Critical while database shows 0 prompts. Every pack card gets a hardcoded before/after example. Even with zero live prompts, the card demonstrates value:

Legal: "The client want to proceed despite risk" -> "The client wishes to proceed notwithstanding the identified risks"
Recruiter: "We looking for someone good" -> "We're seeking a candidate who excels in this role"
Copywriter: "Our product is very good and you should buy it" -> "The tool that 10,000 writers trust to ship faster"

Visual Spec

Before text: color: #94a3b8, text-decoration: line-through, font-size: 12px, italic.
Arrow: color: #24d580, "→" character, centered.
After text: color: #0f172a, font-weight: 500, font-size: 12px.
Container: bg: #f8fafc, border-radius: 8px, padding: 10px, inside the pack card below the description.

NEW #07
L1 Pattern Insights ("Your Korean Habits")
9/10
Effort
3h
Impact
Differentiation
Risk
Low

No competitor does this. BLN knows the user's L1 from onboarding. Every L1 has predictable error patterns. Korean speakers drop articles. Spanish speakers add unnecessary pronouns. Japanese speakers struggle with plural/singular. Show a small "Your Patterns" card on the Notes tab or Main tab that says: "As a Korean speaker, you tend to: drop articles (a/the), confuse prepositions (in/on/at), use present tense instead of past." This is static content per L1 (already partially built in onboarding-data.ts which has 16 L1 languages with patterns). Display it as educational content, not correction feedback.

Why 9/10: This makes the user feel understood at a linguistic level. "This tool knows that Korean speakers drop articles" is a fundamentally different value proposition than "this tool fixes grammar." It's the "fingerprints of your first language" brand thesis made tangible in the UI.

NEW #08
Smart Welcome State (0-5 corrections: guided, not generic)
8/10
Effort
1.5h
Impact
Activation
Risk
None

For users with bln_total_corrections < 5, replace the Writing Templates card with a guided "First Steps" card. Three steps with checkmark states: 1) Select text on any page, 2) Press your shortcut (shows configured key), 3) Paste the result. Progress: "2/5 corrections to unlock your writing stats." After 5 corrections, card morphs into the Writing Templates card with a 600ms cross-fade. The transition feels like leveling up.

NEW #09
Usage Dashboard Header (replaces "0/180 today")
8/10
Effort
2h
Impact
Engagement
Risk
Low

Replace the plain "0/180 today" progress bar with a compact dashboard showing: level badge (from #02) + daily usage ring (circular, not linear) + streak fire + total lifetime corrections. For free users near limit: ring turns amber then red, "Upgrade" link appears. For pro users: green ring, "Unlimited" badge, lifetime stat.

Visual Spec

Layout: 64px height row. Left: circular usage ring (32x32px SVG, stroke-dasharray for progress). Center: "Level 3: Writer" + "847 lifetime" stacked. Right: "🔥 5-day streak" vertically centered.
Ring colors: #24d580 (20+), #f59e0b (5-19), #ef4444 (1-4), pulsing red (0).
Lifetime counter: font-variant-numeric: tabular-nums, font-weight: 700, color: #0f172a.

NEW #10
Custom Function: Structured Input + Validation
8/10
Effort
1h
Impact
Quality
Risk
None

Replace raw text area with structured form: Name field (40 char max, required) + Prompt textarea (500 char max, char counter) + ${text} variable hint ("Use ${text} where selected text should go") + warning if ${text} missing + Save button. Current state (screenshot 3) shows a jailbreak prompt pasted with no limits. This is both a UX and security problem.

NEW #11
Pinned Functions + Site-Specific Defaults
7/10
Effort
2h
Impact
Power Users
Risk
Low

Star icon on each function row. Pinned functions move to top. Combined with per-site context (#05): user can pin different functions per site. On Gmail: "Draft Reply" and "Professional" are pinned. On Slack: "Casual" and "Simplify" are pinned. Pro-only: free users get 2 pins, pro gets unlimited. Stored in bln_pinned: { [hostname]: shortcutId[] }.

NEW #12
Social Proof Footer: Live Community Stats
7/10
Effort
1h
Impact
Trust
Risk
None

Replace the current footer ("Sharing the ❤️ of Language...") with a live stat: "8,247 writers improved 47,000+ sentences this week." Pull from a simple backend endpoint that aggregates anonymized usage counts (already tracked via analytics). Updates weekly. The footer becomes social proof instead of a tagline. The user feels part of a community of non-native speakers all improving together.

Execution PriorityWhat to Build Next

Sprint 26 (2h, highest ROI)

#03 Pack profession naming (30min, backend)
#04 Most Used + function reduction (2h)
#10 Custom function validation (1h bonus)

Sprint 27 (dedicated, architecture)

#01 Notes Tab with draft pad + recent corrections + saved snippets (3h)
#02 Writing Level progression system (2.5h)
#09 Usage dashboard header (2h)

Sprint 28 (differentiation)

#06 Try-It previews on pack cards (2h)
#07 L1 Pattern Insights (3h)
#05 Per-site context switching (3h)
#08 Smart Welcome State (1.5h)

Original Big Wins ReportRemaining Items Not Yet Shipped

#IdeaOriginal RatingStatus
7Writing History + Favorites Panel8/10-> Folded into Notes Tab (#01)
8One-Click Tone Presets8/10NOT STARTED (Sprint 28+)
10Proactive Grammar Hints (Gemini Nano)8/10NOT STARTED (requires origin trial)
11Multi-Paragraph Batch Mode8/10NOT STARTED
12Deep-Link Prompt Pack Auto-Load8/10NOT STARTED
13Per-Site Settings Memory7/10-> Folded into Per-Site Context (#05)
1455-Locale CWS Listings7/10NOT STARTED (agent task)
15Weekly Progress Email Digest7/10NOT STARTED (backend)
17Keyboard Shortcut Customization6/10NOT STARTED
20Referral / Invite System6/10NOT STARTED (backend)