Analysis updated 2026-06-24
Publish a personal blog with every post written in two or more languages
Host a static site on any plain web server without a runtime
Lazy-load Twitter embeds or Prism.js code highlighting only on pages that declare them
Use SPA-style article navigation with prefetch to avoid white-flash transitions
| zeta-sharp/swallow | 0xhassaan/nn-from-scratch | a-little-hoof/dsr | |
|---|---|---|---|
| Stars | 0 | 0 | 0 |
| Language | Python | Python | Python |
| Setup difficulty | moderate | moderate | hard |
| Complexity | 2/5 | 4/5 | 5/5 |
| Audience | developer | developer | researcher |
Figures from each repo's GitHub metadata at analysis time.
Needs Python 3.14 and Poetry, and every article must have a translated version for each configured language or the build fails.
Swallow is a static site generator, sometimes shortened to SSG, written in Python with the Alpine.js library for the browser side. A static site generator takes Markdown files plus templates and produces plain HTML pages, which you can host on any web server. The author describes Swallow as minimal and fast, and the project's tagline is about conveying your words without walls of language. It is released under the MIT license and runs on Python 3.14 with Jinja2 templates. The distinguishing feature is multi-language blogging. If you want to publish the same article in several languages, you write one Markdown file per language with a suffix like _en.md or _ja.md. Every article must have a translated version for each configured language, otherwise the build will fail. The README notes that a default-message fallback for missing translations is being considered for a future update. Swallow also does on-demand loading of extensions on the client side. Instead of always shipping every helper script, the generator inspects each article's frontmatter for an extensions list, like Twitter or codeblock, and only loads the matching scripts (for example the Twitter embed widget or Prism.js for code highlighting) when an article actually needs them. The third main feature is an SPA-like transition between articles: when you follow an internal link, only the main content area swaps in, with prefetching to avoid blank white screens. Installation has four steps: clone the repo, run poetry install to fetch Python dependencies, run swallow init to enter settings such as the target output directory, then write articles in the markdown folder. Each article uses YAML frontmatter with required fields for per-language title and summary, a date that becomes the article's ID and file name, optional tags, optional extension declarations, and an optional draft flag that tells Swallow to skip generation. The author welcomes contributions for new extensions, new themes, and bug fixes, and plans to add a CONTRIBUTING.md later.
Minimal Python static site generator with multi-language Markdown blogging, per-article extension loading, and SPA-like page transitions.
Mainly Python. The stack also includes Python, Jinja2, Alpine.js.
MIT license, so you can use, modify, and redistribute it freely as long as you keep the copyright notice.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.