Handwriting-to-Document-Converter
LIVEHybrid Vision-LLM pipeline that reconstructs handwriting into structured documents — preserving logical hierarchy, not just transcribing text.
수기 문서를 구조화된 문서로 복원하는 Vision-LLM 파이프라인 — 글자만 옮기지 않고 논리적 위계까지 보존
Role · Full-stack builder — 4-stage pipeline, Gemini integration, KaTeX math rendering, Puppeteer PDF, 71-user MVP.
Key Metrics
Why it matters
71-user MVP: 73.2% satisfaction, NPS 30+. The bet — output HTML structure instead of flat OCR text — is what made the result reusable enough for users to value it.
71명 MVP: 만족도 73.2%, NPS 30+. 핵심 베팅(평면 OCR 텍스트 대신 HTML 구조 출력)이 사용자가 가치를 느낄 만큼 결과를 재사용 가능하게 만들었습니다.
Problem
Handwritten records are high-value but their unstructured form blocks reuse. Conventional OCR returns a flat wall of characters and discards the logical hierarchy — titles, lists, nesting — that makes a document searchable and reusable. I treated the goal as structure reconstruction, not transcription: multi-image upload → Gemini 2.5 Flash HTML reconstruction → regex structure validation → KaTeX math rendering → Puppeteer A4 PDF. Validated as a product (not just a demo) with 71 real users.
수기 메모는 가치 있는 지식 자산이지만 비정형이라 재사용이 막힙니다. OCR은 평면 글자 덩어리를 반환하며 제목·목록·중첩을 버립니다. 목표를 '전사'가 아닌 '구조 복원'으로 설정 — 멀티 이미지 업로드 → Gemini HTML 복원 → regex 구조 검증 → KaTeX 수식 렌더링 → Puppeteer A4 PDF. 71명 실제 사용자로 제품 검증.
What I built
4-stage E2E pipeline: Multi-image upload → Gemini 2.5 Flash HTML reconstruction (title/list/paragraph hierarchy) → regex structure validation → KaTeX math rendering → Puppeteer A4 PDF
4단계 E2E 파이프라인: 멀티 이미지 업로드 → Gemini 2.5 Flash HTML 복원(제목/목록/문단 위계) → regex 구조 검증 → KaTeX 수식 렌더링 → Puppeteer A4 PDF
Gemini prompt: full-document layout + context analysis in a single multipart call — preserves headings, lists, nesting, inline formulas
Gemini 프롬프트: 전체 문서 레이아웃+문맥을 단일 멀티파트 호출로 분석 — 제목·목록·중첩·인라인 수식 보존
Server-side PDF: headless Chrome via Puppeteer — fixed A4 layout fidelity, independent of browser/OS
서버사이드 PDF: Puppeteer 헤드리스 Chrome — 브라우저/OS 무관한 고정 A4 레이아웃
Validated with 71 real users (MVP): 73.2% satisfaction, NPS 30+
71명 실제 MVP 검증: 만족도 73.2%, NPS 30+
Key Decisions (trade-offs)
Structure reconstruction over single-shot OCR
Per-character OCR is faster but throws away layout. Full-document layout + context analysis preserves titles/lists/paragraphs — trading raw speed for fidelity that is actually reusable downstream.
문자 단위 OCR은 빠르지만 레이아웃을 버립니다. 전체 문서 레이아웃·문맥 분석을 거쳐 제목·목록·문단을 보존했습니다.
HTML as the intermediate representation
Instead of a proprietary format, HTML is the intermediate target — web-standard, hierarchy-preserving, renders cleanly to both screen and print, so one representation serves viewing, editing, and PDF export without conversion loss.
독자 포맷 대신 HTML을 타깃으로. 하나의 표현이 변환 손실 없이 보기·편집·PDF 출력을 모두 담당합니다.
Server-side PDF via Puppeteer
Client-side PDF rendering breaks A4 layout across browsers. Headless Chrome on the server guarantees fixed-layout fidelity — at the cost of a server dependency, which is the right trade for a printed document.
클라이언트 PDF 렌더링은 브라우저마다 A4 레이아웃이 깨집니다. 서버 헤드리스 Chrome으로 고정 레이아웃 충실도를 보장했습니다.