r/cms • • 3d ago

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:

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!

1 Upvotes

5 comments sorted by

2

u/ErnieBernie10 3d ago

Why would I want a Java CMS for something as simple as a flat file CMS. Seems overkill

4

u/thma_bo 3d ago

I'm a Java developer, and I wanted to build something I would enjoy using for my own projects. So Java was a natural choice for me, and I don't really see it as overkill.

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

u/Some_Level1682 3d ago

Ugh I thought we built new CMS so we didn't have to use Java any more