All projects

Handwriting-to-Document-Converter

LIVE

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

LLMAI Agent

Key Metrics

71
MVP users
73.2%
Satisfaction
30+
NPS
4 (E2E)
Pipeline stages

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

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으로 고정 레이아웃 충실도를 보장했습니다.

Stack

Gemini 2.5 FlashKaTeXNode.js / ExpressReact / TypeScriptPuppeteerDocker