The static blog generator that does exactly what it needs to. Nothing more.
Project description
BoumWave
The static blog generator that does exactly what it needs to. Nothing more.
Why BoumWave?
Static site generators were built in an older era. They've become overcomplicated with:
- Tag management
- Complex pagination
- Search functionality
- Modules and plugins everywhere
- 200-page documentation
But what's really the purpose of a static site generator?
- You prepare your HTML template
- You write your article in markdown
- Boum, you generate it
- Done
That's exactly what BoumWave does.
The goal: simplify the conversion from markdown to your template without having to copy-paste the template every time and manually update all the meta tags (Open Graph, Twitter Card, JSON-LD, canonical links...).
You initialize it, you design your template, you don't even need to read docs, and boom your blog is generated.
No documentation needed. The configuration file and templates contain detailed comments explaining what everything does. Just read the files.
If you want to add other features to your blog, like an about page or a contact page, that's not the job of a static site generator. You can add them easily yourself.
Features
- Simple: 4 commands, that's it
- Multilingual: Native support for multiple languages
- Your design: Full HTML templates, do whatever you want
- Automatic SEO: Open Graph, Twitter Card, JSON-LD without thinking
- Markdown: Write in markdown, get HTML
- Fast: Generates your pages in a flash
- Zero complex configuration: One simple, clear TOML file
Quick Start
# Install BoumWave
uv add boumwave
# Initialize your project
# this will create a boumwave.toml file
bw init
# Create the basic structure
bw scaffold
# Create your first post
bw new_post "My Awesome Post"
# Edit content/my_awesome_post/my_awesome_post.en.md
# Generate the HTML
bw generate my_awesome_post
# Done. Your post is in posts/en/my-awesome-post/
Installation
With uv (recommended)
uv add boumwave
Usage
1. Initialize a project
bw init
Creates a boumwave.toml file with all the configuration.
2. Create the structure
bw scaffold
Creates the necessary folders and example templates:
templates/post.html: The template for individual blog post pagestemplates/link.html: The template used to generate each post link in your indexindex.html: Your blog homepage with a list of all posts
About index.html: BoumWave generates a default index.html file, but you can bring your own. Just make sure it contains the markers <!-- POSTS_START --> and <!-- POSTS_END --> where you want the post list to appear. BoumWave will automatically insert your posts there, sorted by date.
You can customize all paths by editing the boumwave.toml file.
3. Create a post
bw new_post "Post Title"
Creates a folder with a markdown file for each configured language.
4. Generate HTML
bw generate post_name
Generates HTML with:
- Your template applied
- Open Graph meta tags
- Twitter Card
- JSON-LD for search engines
- Canonical link
- Automatic index.html update
Configuration
One file: boumwave.toml
No hidden default values. Everything is explicit. You know exactly what's configured.
Philosophy
Do one thing, do it well.
BoumWave doesn't handle:
- Comments (use Disqus, Giscus...)
- Search (add it yourself if you want)
- Analytics (Google Analytics, Plausible...)
- Deployment (use GitHub Pages, Netlify...)
- Tags and categories (Why use that in 2025 ?)
BoumWave handles:
- Markdown to HTML conversion
- Templates
- SEO meta tags
- Multilingual support
- Automatic index.html links
The rest is your site. Do what you want with it.
Why the name?
BoumWave is a combination of my username BoumTAC and the word "weave", which means to interlace or connect threads together. A static site generator weaves a link between a template and a text file, bringing them together into a final page.
But here's the funny part: when I started the project, I made a typo and wrote "wave" instead of "weave". It has a completely different meaning, but I kept it. The waves in the logo now make perfect sense, and it makes for a nice story.
Sometimes the best names come from happy accidents.
License
MIT
Contributing
Contributions are welcome! Open an issue or a PR.
Author
Created for those who just want to write.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file boumwave-0.1.0.tar.gz.
File metadata
- Download URL: boumwave-0.1.0.tar.gz
- Upload date:
- Size: 18.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cdb8c9b58a45741bf558094364e28b3414b5b420407fa4152320707390814c6a
|
|
| MD5 |
0b64d314e596827766ac2233f7f6a11e
|
|
| BLAKE2b-256 |
59f8e44f83015b26c7ba688021f4e2199c49fe6129296c3155c0e44a3e6c3800
|
File details
Details for the file boumwave-0.1.0-py3-none-any.whl.
File metadata
- Download URL: boumwave-0.1.0-py3-none-any.whl
- Upload date:
- Size: 26.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
42c45ce769dad8c5b7dde276b05a95fb44595bf35f2aa9579f0a924301bf670d
|
|
| MD5 |
b7b9cd4f4f13c979e0a6f9414cd44208
|
|
| BLAKE2b-256 |
c029c3853fc1819f0836b72d43915474b3bc27e43acddd05975d5cf18e2685f5
|