DEV Community

Art
Art

Posted on

Where Is My Website Calling Home? — Forge CMS 2026.3.27

A git-backed, cache-resilient, privacy-first CMS - and a live proof of concept born in Wittenberg.


"Where Is My Website Calling Home?"

If you've ever installed WordPress and added a plugin - any plugin - you've probably asked yourself this question at some point.

Google Analytics. Facebook Pixel. Some random jQuery CDN. A newsletter widget that reports back to a server in Virginia.

Your website is having conversations you never started.

With Forge CMS 2026.3.27, we're doing things differently.


What Is Forge CMS?

Forge CMS is a lightweight content management system built on the Forge 4D stack. It uses SML (a declarative UI language inspired by QML) to define pages and layouts, runs on a VPS, and serves static-style content with zero JavaScript framework overhead.

No React. No Next.js. No npm install rabbit hole.

Just clean, readable markup - and now, with 2026.3.27, a proper content pipeline.


What's New in 2026.3.27

1. Git-Backed Content - Version History for Free

All page content is now loaded from a Git repository that you specify in the server config.

content_repo: https://codeberg.org/YourOrg/your-site
Enter fullscreen mode Exit fullscreen mode

That's it. Your entire website lives in a repo. You get:

  • Full version history - every edit is a commit
  • Rollback - one git revert and you're back
  • Collaboration - PRs, reviews, branches - standard Git workflow
  • Flexibility - Codeberg, GitHub, Gitea, your own Forgejo instance - whatever you trust

And if you want to switch repos at runtime? You can. Swap the config, restart - the new repo is live. This means you can set up a fallback repo (your own server, GitHub mirror, whatever) and pivot within minutes if your primary goes down.

During the writing of this article, Codeberg went fully offline - "Service unavailable."

The live site at atesti.crowdware.info kept serving without interruption - from VPS cache.

Same day as the release tag. Unplanned. Perfect.


2. Resilient Caching - The Site Stays Up

Even if the source repo becomes unreachable, Forge CMS keeps serving from its VPS-side cache.

This isn't a CDN. There's no Cloudflare account, no monthly bill, no Terms of Service to read. It's just the server remembering what it already fetched - and staying calm when upstream has a bad day.

Practically: your site survives your Git host's outage.

We tested this accidentally today. It worked.


3. Umami Analytics - Opt-In, Commented Out by Default

WordPress ships with Google Analytics baked into half its popular themes. You install a theme, you get tracking. Surprise.

In Forge CMS, analytics is a single SML element:

// Umami analytics - uncomment to enable
// Umami {
//     websiteId: "your-id-here"
//     src: "https://your-umami-instance/script.js"
// }
Enter fullscreen mode Exit fullscreen mode

Commented out. By default. On purpose.

When you do enable it, it points to Umami - an open source, self-hostable, GDPR-friendly analytics tool. No cookies. No cross-site tracking. No phone calls to Mountain View.

You know exactly what it tracks, where the data goes, and how to turn it off.

That's the deal.


Live Proof: Atesti para Dana

The first real-world deployment of Forge CMS 2026.3.27 is atesti.crowdware.info - a site for Atesti para Dana, a local currency experiment born on March 25, 2026 in Wittenberg, Germany.

The concept: every existing currency begins with debt or promise. Atesti begins with a completed act of giving - witnessed by three people. Only then is a "GUT-Schein" (goodness-certificate) issued. No debt. No promise. Just something that already happened.

The site is intentionally local-first. It's in German. It's for Wittenberg. The seed doesn't need to travel fast - it needs to land well.

But the code that serves it? That's for everyone.


The Stack, Briefly

Layer Technology
CMS engine Forge CMS (Go)
Page language SML (declarative, QML-inspired)
Content source Git repo (Codeberg / GitHub / self-hosted)
Analytics Umami (self-hosted, opt-in)
Hosting VPS (no app store, no cloud lock-in)
License GPL3 + commercial (dual)

Why This Matters

The web is full of CMS platforms that are technically free but philosophically expensive. They trade your users' attention and data for convenience.

Forge CMS makes a different trade: a little more intentionality upfront, in exchange for knowing exactly what your site does.

Git for content. Cache for resilience. Umami for honest analytics.

And when your Git host has a bad day - your site just shrugs.


Get Involved

Aho. 🌱

Our atesti site may be loading a bit slow, because it checks against the repo if there are newer versions. And when the host is slow, this will also make the website slow, even when content is cached.

Also I studied Web- and GraphicsDesign, but I am too lazy to write CSS. Just wanted to show a very basic website ;-)


Art - Wittenberg, March 27, 2026

License: GPL3 + commercial dual license

Top comments (1)

Collapse
 
artanidos profile image
Art

We just encountered a bug, because Codeberg was going to mantenance mode while I have posted this thread.
"internal server error" was rendered.

"Fixed in under a minute. Codeberg's outage was our QA team."
🌱 Aho!

For me ist was just: ./run.sh deploy ... and ofc I had to spot the log on my VPS before.

With a little help from ClaudeCLI.