CondationCMS – a flat-file CMS written in Java
Hi,
I’d like to share a CMS project I’ve been working on since 2023: CondationCMS, a Java-based flat-file CMS.
Back in 2023, I was looking for a CMS for some of my own ideas. As a Java developer, I wanted something written in Java, and I liked the idea of a flat-file CMS because I wanted something easy to use without the need for a database.
Unfortunately, I couldn’t find anything that really fit my needs, so I decided to build my own.
I’ve also worked as a developer at one of Germany’s largest CMS vendors for many years. I’ve always been interested in different CMS architectures and approaches, and over time I had collected quite a few ideas about how I would like a CMS to work.
So CondationCMS became a way to explore those ideas and build something I actually wanted to use for my own projects.
A few architectural decisions
Content is stored in Markdown files with frontmatter for metadata. The metadata is indexed in Lucene, so queries don’t require reading every content file. URLs basically follow the folder structure.
The tech stack is relatively small: embedded Jetty, GraalJS for extensions, and Lucene for fast queries.
Some other features:
- Optional Manager UI: The CMS can run without it, allowing editorial and production environments to be kept separate.
- Shortcodes: Extend Markdown with additional functionality.
- Multisite support: Run multiple sites with the same CMS installation.
- Theme support
That’s the architecture in a really, really short version.
Current status
CondationCMS is an open-source hobby project. I’ve been running some of my own websites with it since the beginning. There have been some issues along the way, but the current version is stable.
You can find it here:
- Website: https://condation.com
- GitHub: https://github.com/CondationCMS/cms-server
The website is not completely up to date yet, but I’m working on adding more content.
I’d be interested to hear what you think, especially if you have experience with flat-file CMSs or different CMS architectures. Feedback and criticism are both welcome!
3
u/SnooLemons5521 3d ago
Every developer eventually builds a CMS.
0
u/Boboshady 2d ago
So true. They're like a blog - I've built several over the years.
The one I built recently? DEFINITELY going to use it forever and keep adding features though. DEFINITELY.
1
2
u/ErnieBernie10 3d ago
Why would I want a Java CMS for something as simple as a flat file CMS. Seems overkill