Hi there! Welcome to my digital garden. This website is a collection of some of my experiences as a software engineer.
This blog is built with Maudit, a Rust-based static site generator. The site is structured as a standard Rust binary that uses Maudit as a library:
.
├── Cargo.toml # Rust project manifest
├── src/
│ ├── main.rs # Entry point: routes, content sources, build options
│ ├── content.rs # Markdown entry types (ArticleContent, PageContent)
│ ├── layout.rs # Shared HTML layout with SEO meta tags
│ └── routes/ # One file per route
│ ├── index.rs # Homepage (post listing)
│ ├── article.rs # Blog posts (/entries/[slug])
│ ├── about.rs # About page
│ ├── courses.rs # Courses page
│ ├── reading.rs # Reading list (GoodReads)
│ ├── open_source.rs # Open-source projects
│ ├── not_found.rs # 404 page
│ ├── feed.rs # RSS feed (/feed.xml)
│ ├── work.rs # Redirect to /about
│ └── hidden.rs # Hidden posts (/hidden/[slug])
├── content/
│ ├── articles/ # Blog posts (Markdown)
│ └── pages/ # Static pages (Markdown with inline HTML)
├── data/
│ ├── style.css # Combined stylesheet
│ └── blog.js # Client-side JavaScript
├── static/
│ └── assets/ # Images, favicons (copied as-is to output)
└── dist/ # Build output (gitignored)
cargo install maudit-cli
Start the local dev server with auto-rebuild and live refresh:
maudit dev
This compiles the Rust binary, runs it, watches for file changes, and serves the site locally. The dev server URL will be printed in the terminal output.
maudit build
Output goes to dist/. The build includes:
/feed.xml/sitemap.xmlTypical build time is ~80ms (full) or ~20ms (incremental).
You can also preview the production build locally:
maudit preview
content/articles/ named after its URL slug
(e.g. my-new-post.md)Add YAML frontmatter:
---
title: "My New Post"
date: 2025-04-04
author: Bruno Paulino
keywords: web,rust,programming
meta_description: A short description for SEO and social previews.
meta_image: /assets/images/posts/my-new-post.jpg
---
The meta_image field is optional. If omitted, the default profile image is
used for social previews.
All commits to master trigger an integration with
Cloudflare Pages where we build and serve the
site under bpaulino.com.
Any pull request opened from a branch starting with preview- gets deployed to
Cloudflare Pages automatically and a comment with the preview URL is posted on
the PR.
This website is open-source. The content (blog posts, images) is copyright Bruno Paulino. The source code is available on GitHub.