Static site generator for Org-roam knowledge bases with automatic CI/CD deployment.
- [X] Org-roam v2 compatible - ID-based bidirectional links
- [X] Automatic publishing - Git push → live site in 3 minutes
- [X] GitHub Actions CI/CD - Zero server maintenance
- [X] Custom themes - any org theme can be applied.
- [X] Responsive design - Mobile-friendly
- [X] Fast builds - Optimized for knowledge bases
git clone https://github.com/justvipul/Org-Blog-Forge.git
cd Org-Blog-Forge
git remote rename origin upstream
git remote add origin https://github.com/YOURUSERNAME/YOURREPONAME.gitcreate .org files in the notes/ directory.
:PROPERTIES:
:ID: unique-id-here
:END:
#+title: My First Note
#+date: [2026-01-16 Fri]
* Content
Your knowledge base content here.
[[id:other-note-id][Link to other note]]
git add .
git commit -m "Add my notes"
git push origin master
- Builds your site
- Publishes to gh-pages branch
- Deploys to GitHub Pages
Add theme to your notes
#+setupfile: ../gray-theme.setup
Or globally in build file
:html-head "<link rel=\"stylesheet\" href=\"gray-theme.css\"/>"Edit build.el for:
- Custom sitemaps
- Publishing rules
- HTML templates
Place CSS/JS/images in repo root or notes/ - automatically copied to public/
├── build.el
├── build.el~
├── LICENSE.txt
├── notes
│ ├── 20260115192033-first_knowledge_base.org
│ ├── 20260115192033-first_knowledge_base.org~
│ ├── 20260115192203-linux_tips.org
│ ├── 20260115192203-linux_tips.org~
│ ├── 20260115215840-org_mode.org
│ ├── 20260115215840-org_mode.org~
│ ├── 20260115215916-basics_and_learnings.org
│ ├── 20260115215916-basics_and_learnings.org~
│ ├── 20260115215958-org_modern_test.html
│ ├── 20260115215958-org_modern_test.org
│ ├── 20260115215958-org_modern_test.org~
│ ├── 20260115220057-zathura_imp_keys.org
│ ├── 20260115220057-zathura_imp_keys.org~
│ ├── 20260115224949-org_mode_themes.html
│ ├── 20260115224949-org_mode_themes.org
│ ├── 20260115224949-org_mode_themes.org~
│ └── index.org
├── org-html-themes
│ ├── bigblow_inline.theme
│ ├── comfy_inline.theme
│ ├── darksun.theme
│ ├── gray.theme
│ ├── imagine_light.theme
│ ├── latexcss.theme
│ ├── readtheorg_inline.theme
│ ├── rethink_inline.theme
│ ├── retro_dark.theme
│ ├── simple_gray.theme
│ ├── simple_inline.theme
│ ├── simple_whiteblue.theme
│ ├── simple_white.theme
│ ├── solarized_dark.theme
│ ├── solarized_light.theme
│ ├── stylish_white.theme
│ └── white_clean.theme
├── public
│ └── index.html
├── README.org
├── rss-to-be-added-study.org
├── style.css
└── theme-readtheorg.setup
4 directories, 43 files# Install dependencies and build
emacs --batch -l build.el -f org-publish-all
# Preview locally
firefox public/index.html
# Clean rebuild
rm -rf public/ .org-timestamps/
emacs --batch -l build.el -f org-publish-all$ tree ./org-html-themes/.
./org-html-themes/.
├── bigblow_inline.theme
├── comfy_inline.theme
├── darksun.theme
├── gray.theme
├── imagine_light.theme
├── latexcss.theme
├── readtheorg_inline.theme
├── rethink_inline.theme
├── retro_dark.theme
├── simple_gray.theme
├── simple_inline.theme
├── simple_whiteblue.theme
├── simple_white.theme
├── solarized_dark.theme
├── solarized_light.theme
├── stylish_white.theme
└── white_clean.theme- Fork the repo
- Create feature branch: git checkout -b feature/amazing-theme
- Commit changes: git commit -m ‘Add amazing theme’
- Push: git push origin feature/amazing-theme
- Open Pull Request
- [ ] Add RSS Functionality rss adding learnings
- [ ] check if denote can be used for ORG Blog Forge.
- [ ] Suggestions
- [ ] make README just a landing page for all steps list.
- [X] org test file
- [X] results are populated in the public folder.
Thanks to
MIT License - see LICENSE © 2026 Vipul