RepoDaily · 2026-07-31 · Infrastructure / Runtime

Magic Resume: An Open-Source AI Resume Editor Built on TanStack Start

#16 Infrastructure / Runtime TypeScript +118 JOYCEQL/magic-resume Open repository

Magic Resume is a TypeScript resume editor with real-time preview, AI writing, PDF export, and Apache 2.0 source under strict commercial limits.

Repo typeInfrastructure / Runtime
Best forIndividual developers who want a self-hosted, local-first resume editor with AI writing and PDF export.
Risk levelmedium
Time to evaluate2-4 hours to clone, run pnpm dev, and test a resume end-to-end.

Primary question: Does the Apache 2.0 plus commercial-restriction license fit your intended personal vs. commercial use?

87/100

RepoDaily adoption score

RepoDaily rates this as 87/100 (strong) for adoption: evidence, installation path, production risk, differentiation, license clarity, and AI/agent fit are scored from the article sources and adoption notes.

Directional score from RepoDaily sources and adoption notes, not a benchmark.Risk: Medium
100Evidence quality

5 source(s) across 4 source category/categories, plus a RepoDaily-specific evidence module when available.

100Installability

7 workflow step(s), 6 next-action step(s), and 6 command/install signal(s) were detected.

60Maintenance confidence

Trending momentum is +118 stars, with maintenance/release/issue signals counted when present.

88Production readiness

Risk is marked medium, with 4 security note(s) and 3 explicit skip condition(s).

100Differentiation

3 opportunity lens item(s), 4 alternative(s), and 4 type-specific section(s) support differentiation.

82License clarity

License source or license wording is present.

66Agent / AI fit

3 AI/agent-related signal(s) were detected in the article text and metadata.

Project overview

Magic Resume (JOYCEQL/magic-resume) is a TypeScript online resume editor that combines a modern web stack with AI-assisted writing. The repository lists TanStack Start, Tiptap, Tailwind CSS, Zustand, Shadcn/ui, and Framer Motion as its core stack, and the README explicitly calls out features like real-time preview, custom themes, dark mode, PDF export, auto-save, and local storage.

The project positions itself as a free personal tool, with an official hosted site at https://magicv.art. However, the LICENSE file attaches commercial restrictions on top of Apache 2.0: SaaS/PaaS use, enterprise embedding, and secondary commercial development all require a separate commercial license. This makes the repo unusual for a trending open-source project, because personal and commercial rights diverge sharply.

Recent changelog entries show active iteration. Version 2.0.7 added undo/redo, storage safety checks, and custom section deletion. Version 2.0.6 shipped a Swiss resume template, resume duplication, inline title editing, and conflict resolution for resume file synchronization. The package.json shows concrete dependencies such as @google/generative-ai, puppeteer, pdfjs-dist, html2pdf.js, and sharp, which back the AI and export features.

Problem it solves

  • Job seekers often need a local, privacy-respecting resume editor rather than uploading sensitive work history to opaque third-party SaaS.
  • AI-assisted writing is increasingly expected, but many open-source resume builders lack first-class model integration.
  • PDF export quality and single-page auto-fitting are common pain points in resume tooling.
  • Self-hosting a resume editor usually requires stitching together a frontend, a state store, an AI client, and a PDF pipeline.

How it works

  1. Clone the repository with git clone git@github.com:JOYCEQL/magic-resume.git and enter the directory.
  2. Run pnpm install to install dependencies; the project pins pnpm@10.3.0 as its package manager.
  3. Run pnpm dev to start the Vite dev server and open http://localhost:3000.
  4. Edit resume content through the Tiptap-based editor; changes are stored locally using Zustand and browser local storage.
  5. Use AI-assisted writing via the @google/generative-ai dependency, with custom model support noted as completed on the roadmap.
  6. Export the result to PDF using the export pipeline that includes puppeteer, pdfjs-dist, html2pdf.js, and sharp.
  7. Deploy with pnpm build or use docker compose up -d, which builds the image and starts the container in the background.

Architecture Read

Magic Resume is a TanStack Start application built with Vite (vite dev, vite build) and a custom Node production server (node server.mjs). State management is handled by Zustand, and the editing surface is built on Tiptap with extensions for color, highlight, link, list, text-align, text-style, and underline.

PDF export is not a single library but a layered pipeline: html2canvas, html2pdf.js, pdfjs-dist, puppeteer, puppeteer-core, @sparticuz/chromium, chrome-aws-lambda, and sharp are all present in package.json. This suggests export can run in both client and server contexts.

AI capabilities are wired through @google/generative-ai and streamdown, with roadmap items for AI-assisted writing and custom models already checked off.

Deployment Notes

  • Dockerfile uses node:20-alpine as the base, enables corepack, and runs pnpm install --frozen-lockfile in a deps stage.
  • The production image runs as a non-root user nodeapp (uid 1001) under group nodejs (gid 1001).
  • The container exposes port 3000 with HOSTNAME=0.0.0.0 and CMD ["node", "server.mjs"].
  • Docker Compose is supported: running docker compose up -d builds the application image and starts the container in the background.
  • Without Docker, pnpm build produces the Vite build, and pnpm start runs node server.mjs.

Maintenance Risk

The changelog shows a single primary contributor, JOYCEQL, across v2.0.5, v2.0.6, and v2.0.7, with a small number of additional contributors (Jul1en_lin, Zpekii, Liu Zhening) appearing in v2.0.6. Bus factor is a real consideration.

The LICENSE file grants the project maintainers the right to adjust the open-source license and additional terms, and states that contributed code may be used commercially. Contributors and forks should read Section III before contributing.

Alternative Matrix

  • RxResuverse/resumake: LaTeX-style resume generation, more developer-oriented, less AI-focused.
  • Reactive Resume (AmruthPillai/reactive-resume): full-featured open-source resume builder with a larger community and broader template selection.
  • OpenResume (xitanggg/open-resume): simpler React-based resume builder focused on ATS-friendly PDF output.
  • FlowCV / Zety: commercial SaaS resume builders with polished UX but no self-hosting path.

Who should pay attention?

Good fit if

  • Developers who want a self-hosted resume editor with local storage and AI writing for personal use.
  • Teams evaluating TanStack Start, Tiptap, and puppeteer-based PDF pipelines as a reference implementation.
  • Contributors interested in resume template design, undo/redo state, or export quality improvements.

Skip for now if

  • Anyone planning to offer the software as a SaaS, PaaS, or public tool without obtaining a commercial license.
  • Enterprises intending to embed the code into closed-source products or internal business systems.
  • Users who need guaranteed long-term maintenance from a large organization rather than a primary-individual maintainer.

Risks and cautions

Medium

The codebase is modern and deployable, but the Apache 2.0 plus commercial-restriction license and single-maintainer model create adoption friction.

  • Commercial SaaS/PaaS use, enterprise embedding, and secondary commercial development all require a paid commercial license per the LICENSE file.
  • Contributors must accept that their code may be used commercially by the maintainer.
  • The project has a narrow contributor base, with JOYCEQL as the primary author across recent releases.
  • AI integration depends on @google/generative-ai, so users must supply their own model access and consider API costs.
  • The Dockerfile runs the production container as non-root user nodeapp (uid 1001), reducing privilege exposure.
  • Resume data is stored locally in the browser, which keeps personal content off remote servers by default.
  • The pnpm install step uses --frozen-lockfile in Docker, which prevents silent dependency drift during builds.
  • AI features rely on external model APIs; users should review how prompt and resume content are transmitted to the model provider.

Alternatives to compare

ApproachWhen to useTrade-off
Reactive Resume
When you need a mature, community-supported open-source resume builder with more templates and no commercial-use clause on top of MIT.Free, MIT-licensed, self-hostable.
OpenResume
When you want a lightweight React resume builder focused on ATS-friendly PDF export.Free and open-source.
resumake
When you prefer LaTeX-based resume generation with deterministic styling.Free and open-source.
FlowCV
When you want a polished hosted SaaS resume builder and do not need self-hosting.Commercial, subscription-based.

What this trend reveals

Template Marketplace

The roadmap lists more resume templates and more export formats as unchecked items. A contributor could build a template pack aligned with the Swiss template pattern introduced in v2.0.6.

Check the generate:template-snapshots.ts script and confirm whether templates are registered through a pluggable schema before contributing.

Import Pipeline

Importing PDF and Markdown is on the roadmap. pdfjs-dist and turndown are already dependencies, which lowers the engineering cost of a Markdown/PDF import feature.

Prototype a Markdown importer using turndown and confirm the resume store schema accepts imported sections.

Self-Hosted Career Site

Online resume hosting is on the roadmap and not yet complete. A self-hosted hosting mode could pair with the existing Docker deployment.

Review server.mjs and the TanStack Start routing setup to determine whether a public hosting mode can be added cleanly.

Best next action

Run it locally and stress-test export

The fastest way to evaluate Magic Resume is to run it locally with realistic content and verify PDF export quality, AI writing, and undo/redo before deciding whether to adopt or contribute.

  1. Clone the repo and run pnpm install with pnpm@10.3.0.
  2. Run pnpm dev and open http://localhost:3000.
  3. Create a resume with multiple sections, including custom sections added through the SidePanel.
  4. Trigger undo/redo and verify storage safety checks introduced in v2.0.7.
  5. Export to PDF and inspect single-page auto-fit, typography, and white background unification.
  6. If you plan any commercial use, contact the maintainer for a commercial license before deploying.

RepoDaily verdict

Magic Resume is a capable TanStack Start resume editor with AI writing, real-time preview, and a layered PDF pipeline, but its Apache 2.0 plus commercial-restriction license makes it best suited for personal self-hosting rather than SaaS deployment.

Sources