Product case study / Private AI system / 2026

Private AIVoice Studio

A mobile-first writing assistant conditioned on a curated personal voice corpus—built for specific output, tested model routing, and privacy-safe production use.

Anonymous client-style productNo public application link
Source material remains private
Scroll to inspect ↓

At a glance

From archive to private writing product.

Product

An installable, mobile-first AI writing studio using retrieval-based voice conditioning and server-side inference.

Problem

Generic drafts missed the author’s voice, while using the full archive would create unnecessary privacy risk.

Result

A private production deployment built from 693 clean samples, 120 approved anchors, and blind-tested model routing.

My role: product strategy, corpus curation, voice taxonomy, model evaluation, privacy requirements, infrastructure configuration, QA, and production launch.

693curated voice samples
4models blind-tested
6evaluation scenarios
120approved retrieval anchors
0raw source files deployed
01

Overview

Private AI Voice Studio generates short-form drafts in a specific personal voice. It uses curated example retrieval, prompt conditioning, and blind-tested model routing instead of generic instructions or a full archive in every request.

The result is an installable private PWA with server-side inference, protected access, local feedback, and privacy-safe source handling.

Specificity came from the system around the model—not from asking one model to “sound more personal.”

Anonymized interface / Composer and result

Voice StudioPrivate

Create a new draft

PersonalBrandGeneral
Write a concise update with a warm, direct tone and one clear takeaway.
Tone / NaturalLength / Short
Generate draft
Generated outputDraft 01

Small systems often create the clearest progress. This week, the useful change was simple: fewer inputs, sharper decisions, and one result worth keeping.

ShorterWarmerAlternate

The full writing loop, designed for mobile.

Set the context, generate a readable draft, then refine it without rebuilding the prompt. The neutral mockup uses no real source text or identifying product data.

≤5Retrieved anchors per draft
LocalHistory and feedback
PrivateAuthenticated access
ServerProtected inference
02

Problem

Generic assistants produced correct but interchangeable copy. Rhythm, restraint, humor, emotional register, and publishability varied from request to request.

Better conditioning could not come at the cost of exposing private writing. The product needed a small, controlled representation of voice—not a deployed archive.

  • Produce recognizable stylistic consistency without treating the entire archive as a prompt.
  • Separate original author voice from duplicates, overlaps, and attributed quotations.
  • Choose models through repeatable output evaluation rather than reputation.
  • Make the product usable away from the development machine without moving secrets or raw data to the client.

Before

  • Generic outputs
  • Full archive or long prompts
  • Subjective model selection
  • Local-only workflow
  • Unnecessary privacy risk

After

  • Retrieval-conditioned drafts
  • Maximum five approved anchors
  • Blind six-scenario evaluation
  • Private mobile PWA
  • Zero raw source files deployed
03

Product strategy

The strategy treated voice as evidence, not intuition: a cleaned analysis corpus, approved runtime anchors, and explicit routing rules for drafting and refinement.

Curation, retrieval, evaluation, and protected functions carried the complexity. History, favorites, settings, and feedback stayed on the user’s device.

01Clean and attribute source material
02Extract voice taxonomy and rules
03Approve safe retrieval anchors
04Blind-test model candidates
05Ship protected mobile workflow
04

Voice-conditioning system

Cleaning left 693 distinct samples after removing 2,444 duplicates or overlaps and excluding 197 attributed quotations.

I translated the corpus into a voice taxonomy and 120 approved retrieval anchors. Each request uses at most five relevant examples, keeping prompt conditioning focused and source exposure narrow.

  • Style patterns were separated from topics and identifying subject matter.
  • Retrieval anchors were stripped, reviewed, and approved before runtime use.
  • Generation rules described behavior without deploying raw workbooks or archives.
  • Feedback could improve local preferences without silently expanding the server-side corpus.
05

Model evaluation

Four AI models were compared through blind review. Candidate identities were hidden, and each model received the same six scenarios and scoring dimensions. The goal was not to identify the strongest general model; it was to find the most consistent model for this specific product.

Models were judged on voice similarity, natural mixed-language writing, originality, humor, emotional accuracy, instruction following, and publishability. Routing decisions were based on consistency across scenarios—not brand reputation or benchmark claims.

Blind review matrix

Model identities hidden during scoring
Six shared writing scenarios
CandidateVoice similarityNatural writingInstruction fitConsistencyRouting decision
Candidate A
HighDefault drafting
Candidate B
HighAlternate / refinement
Candidate C
Scenario-specificRestricted intensity mode
Candidate D
VariableNot routed
Default / Gemini 2.5 Flash LiteAlternate & refinement / Qwen 3.5 FlashRestricted high-intensity / Qwen 3.7 Plus
06

Privacy and security

Privacy set the architecture. Raw workbooks and archives stayed outside production; runtime generation used only stripped, approved anchors and generation rules.

01 / Data boundary

No raw corpus deployed

Source archives stayed outside production. Attributed quotations were excluded and only approved anchors entered runtime retrieval.

02 / Secret boundary

No client-side secrets

API keys and the private access credential existed only as server-side environment variables.

03 / Session boundary

Protected endpoints

Private access-code authentication established a secure HTTP-only session cookie required by protected API functions.

04 / Failure boundary

Rate limiting failed closed

If the shared Redis dependency was unavailable, protected generation did not silently continue without rate limits.

05 / Cache boundary

No inference caching

The service worker did not cache API responses. Application-shell behavior remained separate from private generated content.

06 / Logging boundary

Sensitive text excluded

Logs excluded prompts, corpus text, private drafts, credentials, and access credentials.

07

Technical architecture

The application uses a narrow serverless path: authenticate, retrieve a small approved context, select a model under strict routing rules, request inference, and return the response. Device-local storage handles recent history and feedback.

Request and data flow

01User device
Local history & feedback
02Mobile-first PWA
Authenticated session
03Vercel API function
Protected request
04Approved anchor retrieval
Maximum five examples
05Strict model routing
Draft / refine / restricted
06OpenRouter inference
Server-side access
07Response to device
Saved locally
Shared serverless rate limit / Upstash RedisNo raw corpus files in deploymentNo API response cache
08

Key features

01

Mobile composer

A focused short-form workflow with context, intent, tone, length, draft, and refinement controls.

02

Retrieval-based conditioning

Relevant approved anchors are selected per request instead of attaching a large static archive.

03

Tested model routing

Drafting, alternate refinement, and restricted high-intensity use follow explicit evaluation-backed routes.

04

Local product memory

Recent history, favorites, settings, and feedback remain on the user’s own device.

05

Installable PWA

The product can be installed and used as a mobile-first application independent of the development machine.

06

Private production controls

Authenticated sessions, protected functions, shared rate limits, and privacy-aware logs protect inference.

09

My role

I owned the product decisions and directed AI-assisted implementation from concept through private production launch.

Defined the product concept and scope

Designed the end-to-end user workflow

Cleaned and curated the source dataset

Created the voice taxonomy

Selected model candidates

Designed and ran blind evaluation

Set privacy and security requirements

Directed AI-assisted implementation

Configured Vercel, OpenRouter, and Upstash

Led debugging, QA, and launch

10

Challenges solved

  • Turned a noisy archive into a defensible corpus by removing duplicates, overlaps, and attributed quotations.
  • Converted stylistic intuition into a taxonomy, approved retrieval anchors, and generation rules.
  • Replaced model reputation with blind, scenario-consistent scoring.
  • Balanced specificity and privacy with no more than five approved examples per request.
  • Moved inference and secrets behind authenticated server functions.
  • Kept prompts, drafts, credentials, and source text out of logs.
11

Outcome

The final system turned a private writing archive into an installable mobile product without deploying the raw corpus. Production health, authentication, rate-limit, PWA, syntax, and bundle-security checks passed.

693clean voice samples
2,444duplicates removed
197quotes excluded
120approved anchors
4models compared
6shared scenarios
≤5examples per request
0raw files deployed
12

Technology stack

JavaScriptNode.jsPWAVercelOpenRouterUpstash RedisRetrieval-based promptingLocalStorageServerless functionsAI-assisted development
13

What I would improve next

Longitudinal quality tracking

Measure accepted, edited, and discarded drafts without retaining private content server-side.

Retrieval diagnostics

Explain which style dimensions influenced a draft without revealing source anchors.

Controlled taxonomy expansion

Add scenarios only after the same curation, attribution, and blind evaluation.

Accessibility and offline refinement

Extend keyboard, screen-reader, and application-shell testing while never caching inference responses.

Shipped outcome

“A private, production-ready AI writing application that preserved a highly specific personal voice while avoiding raw-data exposure.”

The final system was usable from mobile, independent of the local development machine, and protected by server-side authentication and rate limiting.