Lagrange is a minimalist Jekyll theme for running a personal blog or site for free through GitHub Pages or on your own server, created by Paul Le.
What is Lagrange?
Lagrange is a Jekyll theme designed to be 100% compatible with GitHub Pages, taking Markdown posts and YAML front matter and producing a static website via Jekyll. It includes layouts for posts, pages, a home page, and an archives page, and can be customized through _config.yml and a settings.yml data file. The theme is open-sourced under the MIT License and supports both GitHub Pages hosting (via forking the repository) and local installation with bundle install and jekyll serve.
Key Features
- GitHub Pages compatibility — Fork the repository, rename it to
USERNAME.github.io, and your site is live with no additional hosting costs. - Sass/SCSS and data files — Use Jekyll's built-in Sass/SCSS preprocessor and the
_data/settings.ymlfile to customize colors, site settings, menu pages, and social links without editing HTML templates. - Disqus commenting — Enable Disqus comments on posts by setting
disqus.commentsto true in_data/settings.ymland entering your Disqus shortname. - Google Analytics — Add your Google ID under
google-IDinsettings.ymlto track site statistics. - MathJax LaTeX support — Display mathematical equations in posts using LaTeX syntax, included out of the box.
- RSS feeds — Supports both Atom via the jekyll-feed plugin and RSS 2.0 via an included
rss-feed.xmltemplate with auto-discovery. - Social media icons — Font Awesome icons are included; you can change which icons appear and what accounts they link to in
settings.yml. - Syntax highlighting — Provides syntax highlighting through fenced code blocks powered by Rouge, or embed code snippets via Gist.
Who is it for?
- Personal bloggers — Publish a free blog on GitHub Pages by forking the repository, editing
settings.yml, and adding posts to the_postsdirectory. - Developers and technical writers — Write posts in Markdown with fenced code blocks and syntax highlighting, or embed code via Gist.
- Academics and researchers — Publish lecture notes or research posts with LaTeX-rendered mathematical equations through MathJax.
- Jekyll beginners — The theme is designed as a base for customization, and everything can be done through the GitHub code editor without installing Jekyll locally.
Use cases
- Free personal site — Host a personal blog or portfolio at
USERNAME.github.iowithout paying for web hosting. - Project documentation — Use the page layout and menu system to create documentation pages alongside blog posts.
- Math-heavy content — Publish math or science content with LaTeX equations rendered client-side by MathJax.
- Local development testing — Run
bundle installandjekyll serveto preview the site locally athttp://localhost:4000.
How does Lagrange work?
For GitHub Pages, fork the Lagrange repository, rename it to USERNAME.github.io, and edit _data/settings.yml to personalize the site. Add posts as files named YYYY-MM-DD-name-of-post.md in the _posts directory, and Jekyll automatically rebuilds the site on each commit. For local installation, download the source, run bundle install, then jekyll serve to launch a local server.
Pricing
Lagrange is completely free and open source software distributed under the MIT License. You may use it however you want, including for commercial purposes.
FAQ
Is Lagrange free?
Yes, Lagrange is completely free and open source. It is distributed under the MIT License, so you can use it for personal or commercial projects without paying anything.
Does Lagrange work with GitHub Pages?
Yes, Lagrange was built to be 100% compatible with GitHub Pages. Fork the repository, rename it to USERNAME.github.io, and your site will be ready immediately.
Does Lagrange support comments?
Yes, Lagrange supports Disqus comments. Activate them by setting disqus.comments to true in _data/settings.yml and entering your Disqus shortname.
Can I use LaTeX in Lagrange?
Yes, Lagrange includes MathJax out of the box, so you can display mathematical equations in your posts using LaTeX syntax.
How do I add new posts to Lagrange?
Create a file in the _posts directory with the naming convention YYYY-MM-DD-name-of-post.md and include YAML front matter specifying the layout, title, author, categories, tags, and image.








