Publishing from Obsidian using 11ty
I have been a long-time user of Obsidian for taking notes, mostly for writing my daily journals. And I have been using the tool for several years now, it’s fantastic and better than all other note-taking tools I have ever used.
Today, as I was writing my daily journal, I got a thought what if there’s a way to quickly publish all my writings as blog posts? And I quickly started an experiment.
Since I am already familiar with the 11ty (Eleventy) static site generator, I set up a blog by using a minimal CSS framework called PicoCSS. And as I wanted a clean look, I didn’t use any pre-built themes or starter projects – did everything from scratch. After the project was set up, I opened the same folder as a new vault from my Obsidian desktop app, and it turned out, that I can successfully create new posts from Obsidian now, without the need to open my 11ty code folder.
To enhance the functionalities, I did the following things as well:
- Set up the default location for new notes so that all notes I take get saved to the same folder. It will be easier to publish later.
- Created an Obsidian template that automatically adds all the required front matter in new posts being created.
- Installed the git plugin inside Obsidian so that it automatically keeps pushing new changes to GitHub at a specified interval.
I have made the GitHub repo public, in case you want to access the source code that I was showing in the video above. And you can check the sample site as well:
I spent only a few hours working on it, but there can be several further enhancements made to the publishing flow. For example, the way to add internal links and images can be improved.
I hope this gives you at least some idea to experiment further.
Update: 17 Feb, 2026
I worked on it a bit more and made the following changes to the GitHub repo:
- Environment-aware site metadata: moved from static
site.jsontosite.jssoSITE_URLcan be configured per environment (local/staging/prod). - SEO hardening: canonical URL, OG/Twitter metadata, and dynamic fallback image/description support were improved in the base layout.
- RSS feed added at
/feed.xmlfor subscribers and feed readers. - Client-side search added with generated
search-index.json+ search UI page + JS behavior. - Better post metadata model: support for optional
updatedandimagefields, with these reflected in post rendering and social tags. - Sitemap now prefers updated date (
updatedfallback todate) for better freshness signals. - Automated quality checks added: frontmatter validation + internal link checking + CI workflow on push/PR.
- Small UX upgrades: Search/About links in nav, RSS and GitHub in footer, and polished styles for metadata/search views.
I will keep improving it, but if you have ideas, please let me know.
Webmentions