# blag

Blog-aware static site generator written in Python that builds a site from Markdown content and Jinja2 templates.


Source: https://findsoftware.frbit.cloud/blag/
Last reviewed: 2026-10-23
Updated: 2026-10-25
Listed since: 2026-10-23

## Record

### Links

- home: https://blag.readthedocs.io/en/latest/
- repository: https://github.com/venthur/blag
- docs: https://blag.readthedocs.io/en/latest/

### Identity

- status: active
- maintainer: Bastian Venthur
- maintainerType: individual
- parent: unknown
- firstRelease: 2021
- hqCountry: unknown

### Kind

- category: ssg
- hosting: static
- language: python
- runtime: python
- runtimeMin: python 3.10
- basedOn: unknown

### Content

- contentStore: flat-file
- databases: unknown
- adminUi: unknown
- headlessApi: unknown
- templating: jinja2
- i18n: unknown

### Rendering and deploy

- runsAs: static, local
- renderingModes: static
- installMethod: pip install, Debian package

### License

- licenseModel: open-source
- license: MIT

### Releases

- currentMajor: 2
- latestReleaseDate: 2025-04-27

### Adoption

- githubStargazers: 98
- packagistDownloads: not applicable
- npmWeeklyDownloads: not applicable
- contributors: 3
- pluginCount: unknown
- packagistMonthlyDownloads: unknown
- ecosystemsMonthlyDownloads: 186
- httpArchiveSites: unknown
- wordpressActiveInstalls: unknown
- dependentRepos: 1
- dependentPackages: unknown

### Sources

- urls: https://blag.readthedocs.io/en/latest/ (read 2026-10-23)
- urls: https://api.github.com/repos/venthur/blag (read 2026-10-23)
- urls: https://blag.readthedocs.io/en/latest/ (read 2026-10-23)
- maintainer: https://github.com/venthur/blag/blob/master/LICENSE (read 2026-10-23)
- maintainerType: https://github.com/venthur/blag/blob/master/LICENSE (read 2026-10-23)
- language: https://api.github.com/repos/venthur/blag (read 2026-10-23)
- runtime: https://blag.readthedocs.io/en/latest/ (read 2026-10-23)
- runtimeMin: https://github.com/venthur/blag/blob/master/README.md (read 2026-10-23)
- category: https://github.com/venthur/blag/blob/master/README.md (read 2026-10-23)
- templating: https://blag.readthedocs.io/en/latest/manual/ (read 2026-10-23)
- contentStore: https://blag.readthedocs.io/en/latest/manual/ (read 2026-10-23)
- installMethod: https://github.com/venthur/blag/blob/master/README.md (read 2026-10-23)
- renderingModes: https://github.com/venthur/blag/blob/master/README.md (read 2026-10-23)
- runsAs: https://blag.readthedocs.io/en/latest/manual/ (read 2026-10-23)
- runsAs: https://blag.readthedocs.io/en/latest/manual/ (read 2026-10-23)
- license: https://api.github.com/repos/venthur/blag (read 2026-10-23)
- licenseModel: https://github.com/venthur/blag/blob/master/LICENSE (read 2026-10-23)
- firstRelease: https://pypi.org/pypi/blag/json (read 2026-10-23)
- currentMajor: https://pypi.org/pypi/blag/json (read 2026-10-23)
- latestReleaseDate: https://pypi.org/pypi/blag/json (read 2026-10-23)
- githubStargazers: https://api.github.com/repos/venthur/blag (read 2026-10-23)
- contributors: https://api.github.com/repos/venthur/blag/contributors (read 2026-10-23)
- dependentRepos: https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/blag (read 2026-10-25)
- ecosystemsMonthlyDownloads: https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/blag (read 2026-10-25)

## Notes

blag is a blog-aware static site generator written in Python. It reads Markdown files from a `content` directory, copies static files over, and renders the output with Jinja2 templates into a `build` directory. A Markdown file with a date is an article and the rest are pages; articles go into an Atom feed and into the tag pages.

It is installed from PyPI with `pip install blag`. `blag quickstart` creates a configuration and starter content, `blag build` builds the site, and an integrated devserver serves it while the content is edited. The [manual](https://blag.readthedocs.io/en/latest/manual/) describes the content layout and templates.

---

Data licensed CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Attributes are recorded, never scored; absent means unknown.
Credit, in full: FindSoftware, CC BY 4.0
