Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Open-source resume builder with drag-and-drop editing, Google Fonts, and multiple templates, built on Next.js and MongoDB.
OS Resume is an open-source, oversimplified resume builder built with Next.js and MongoDB that lets anyone create a professional resume in about 15 minutes through a drag-and-drop editor. The project is maintained on GitHub by Vishwajeet Raj and currently has 92 stars.
OS Resume is a web application that accepts user profile data through structured forms and produces a formatted, styled resume document rendered from one of several built-in template designs. It runs on Next.js with a MongoDB database, uses Clerk for authentication, and is distributed as a free, open-source repository that developers can self-host after configuring a few environment variables.
shared/utils/templateCatalog.js; adding a new component there makes it appear in the app automatically.resumes collection when an API request hits /api/resumes?template=true.npm run seed inserts demo content into MongoDB for local development.components/templates/, adding a preview image in public/templates/, registering it in the template catalog, and rendering it in pages/editor/[id].js.npm install or yarn, and connect it to your own MongoDB and Clerk credentials.After cloning the repo, you install dependencies and create a .env file with Clerk authentication keys and a MongoDB URI (for example, a MongoDB Atlas connection string ending in /osresume). The app then uses Next.js API routes to read and write resume records, while the editor page at pages/editor/[id].js renders the active template. The optional seed command populates the database with demo entries.
Yes. The repository is open-source and available on GitHub. You only need to provide your own MongoDB database and Clerk credentials when self-hosting.
The project is built with Next.js, React, MongoDB, Tailwind CSS, Formik, Yup, and react-beautiful-dnd. Authentication is handled by Clerk.
Create a template component in components/templates/, add a preview image in public/templates/, register it in shared/utils/templateCatalog.js with a title and template name, then render it in the editor page. The template record is automatically synced to MongoDB.
No. It is a web application only, accessed through a browser.
