Skip to content

Technology Stack

zhengyang edited this page Aug 8, 2026 · 5 revisions

The browser is the application

CVForge uses Next.js 16.2 with the App Router and Turbopack. React 19.2 powers the editor experience, while TypeScript keeps document data and tool inputs explicit.

Most editor surfaces are client components because document state, file reading, preview updates, and export all happen in the browser.

The production site is a static export hosted with GitHub Pages.

A small interface layer

Tailwind CSS v4 provides layout and styling through shared design tokens. Reusable controls follow the shadcn style pattern, with Base UI for interaction behavior and Lucide React for icons.

GSAP and local React Bits inspired components add focused motion where it helps the interface.

Documents stay structured

The editors store content as typed document objects. Form controls update those objects directly, and the preview renders the same state.

PNG export uses html to image in the browser. PDF export uses browser printing with the same DOM and pagination as the live preview. JSON import and export provide a portable copy of the structured document.

Deep Agents at the center

Agent Mode uses LangChain Deep Agents and LangGraph as its runtime. CVForge adds document tools, Zod schemas, editor state, and a concise system prompt around that framework.

Deep Agents manages the model loop, tool messages, parallel tool execution, conversation state, virtual files, delegation, and automatic context summarization.

LangChain integrations connect to OpenAI, Anthropic, Google, and DeepSeek transports. OpenAI compatible services cover providers such as Z.AI, MiniMax, Qwen, Moonshot, xAI, Mistral, Groq, Ollama, and OpenRouter.

Tools make edits predictable

Each document tool has a Zod input schema. A successful call produces a LangGraph state update, while a pure executor applies the requested change to the document.

This separation keeps model output away from direct form mutation. It also lets several independent tool calls complete in one model turn.

References become virtual files

PDF text is extracted with PDF.js. Markdown and text files are read directly in the browser.

Deep Agents stores uploaded content in its StateBackend virtual filesystem. The agent uses file tools to list, search, and read only the material it needs. Uploaded files remain read only and keep their original names.

Scanned PDFs require OCR and are not currently supported.

Markdown and export

Assistant replies and reasoning content render with React Markdown and GitHub Flavored Markdown support.

The document preview is captured locally for lossless high resolution PNG export. PDF export prints the same preview DOM so text remains selectable and the layout stays consistent.

Storage without a database

Document state, Agent Mode messages, uploaded references, project instructions, context usage, and the latest change record use sessionStorage.

LLM configuration and interface language use localStorage.

There is no application database and no account system.