Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Open source web app to self-publish and sell books, built with React, Next.js, Node.js, Express, Mongoose, MongoDB.
Builder Book is an open-source boilerplate web app for self-publishing and selling books or other online content, built on Next.js, React, Material-UI, Node.js, Express, Mongoose, and MongoDB.
Builder Book is an open-source full-stack web application that turns Markdown files in a GitHub repository into a live, sellable online book. Its input is a GitHub repo containing introduction.md and chapter-N.md files with YAML frontmatter; its output is a book website with user authentication (Google OAuth), purchasing with Stripe, and an admin dashboard for managing books. The project is maintained by Kelly Burke and Timur Zhiyentayev of Async Labs, and it powers production sites such as Builder Book, SaaS Boilerplate, Work in Biotech, and Async. The open-source app itself lives in the builderbook folder, while the book folder contains chapter-by-chapter codebases for purchasers of the Builder Book course.
introduction.md or chapter-N.md; after connecting a GitHub repo, the app reads the frontmatter fields title, seoTitle, seoDescription, and isFree to render each page. A "Sync with Github" button pulls in updated content.isFree: true and adding excerpt makes a chapter private with a free preview).http://localhost:8000/oauth2callback.isAdmin: true in MongoDB) get dedicated pages for adding, editing, and viewing book details, plus control over which GitHub repo is synced.primary and secondary theme colors inside lib/context.js; the repo documents four styling approaches: inline styles, page-scoped style objects, shared/importable styles from components/SharedStyles.js, and global styles in pages/_document.js.NEXT_PUBLIC_ are available client-side; all others are server-only.docker-compose-dev.yml), an Elastic Beanstalk config, and a detailed Heroku deployment guide with buildpacks (subdir-heroku-buildpack and heroku/nodejs) and a PROJECT_PATH env var.server/google.js, server/github.js, server/stripe.js, server/aws.js, server/mailchimp.js) isolate each integration so you can study internal and external API patterns, Express sessions, cookies, and async/await.The README walks through the full setup: clone the repo, run yarn, create a .env file with values for MONGO_URL, MONGO_URL_TEST, SESSION_SECRET, GOOGLE_CLIENTID, GOOGLE_CLIENTSECRET, and more, then start with yarn dev. To publish a book, you create a GitHub repo with introduction.md or chapter-N.md files that have frontmatter metadata, connect GitHub in the app, add a book via the admin panel, and click "Sync with Github" whenever content changes. Without env values for a feature, that feature silently doesn't work — e.g., Google login, purchasing, or GitHub sync.
The Builder Book code is free and open source under the MIT License. The optional Builder Book course, which teaches you how to build the project from scratch, is sold at https://builderbook.org.
Yes, all code in the repository is released under the MIT License, and the live demo is publicly accessible. If you want to learn how to build it from scratch, the Builder Book book is a paid product sold separately.
The browser side uses Next.js, React, and Material-UI. The server uses Next.js, Node.js, Express.js, Mongoose.js, and MongoDB. It also integrates with Google OAuth, GitHub API, Stripe, AWS SES, and Mailchimp.
Yes. Each book is backed by a GitHub repo that contains Markdown chapter files. The app's "Connect Github" flow imports that repo, and the "Sync with Github" button pulls content updates into the app.
In the chapter's frontmatter metadata, remove isFree: true and add an excerpt field. The excerpt becomes the public preview, and the full content is only shown after the user pays via Stripe.
