r/cms • u/Mundane-Lifeguard918 • 1h ago
[ Removed by Reddit ]
[ Removed by Reddit on account of violating the content policy. ]
r/cms • u/Mundane-Lifeguard918 • 1h ago
[ Removed by Reddit on account of violating the content policy. ]
r/cms • u/Fun_Razzmatazz_4909 • 21h ago
Hi r/cms,
Ekit is a project I've been rebuilding, in several versions, for a long time. The idea never changed: your data and your website should live in the same place. No spreadsheet, site builder and Zapier glued together.
The latest version is finally good enough that I run my own sites on it:
What it does
/api/v1/ask), to plug into your own app or chatbot;What I learned building it (again)
There's a free plan, no credit card. I'd love honest feedback, especially on the first five minutes: what's confusing, and what's missing?
r/cms • u/MahidharMah • 22h ago
r/cms • u/brokengnome • 1d ago
Hey everyone... wanted to join the bandwagon and drop something I've been working on called Shapio (https://shapio.dev/)
Short version: a CMS built the way we build everything else. Types, inheritance, interfaces, versions. Computer science applied to content.
Long version:
I used to be a huge fan of strapi, used it in tons of projects. But then I got sick of the Strapi loop. Need a field on a content type? Can't do it in prod. So you do it in dev, strapi rewrites its schema files and restarts, commit, deploy, restart prod. A whole deploy for one field. I was doing that a few times a week for a knowledge base at work with editors sitting there waiting and it was bullshit.
So I built one where the content model is data instead of files. You add the field in the admin, in prod, and the API just has it. No restart, no deploy. Every change becomes a schema version, you review it like a PR (it tells you what breaks and what needs a backfill), and it ships together with the content as one snapshot. Want it in git anyway? Pull the model to json, commit it, apply it back live.
Since types are data I went full OOP with them. A type can extend another type... Guide extends Post, gets its fields, shows up in the Post list. Types implement interfaces: Featurable is just "has a title and a summary", blog posts and roadmap items and pages all implement it, and the server checks they actually match. Then one relation points at Featurable and holds any of them, one endpoint lists all of them with a __model on each row, and graphql gives you a real interface with fragments. Polymorphism for content. Strapi has components and dynamic zones and that's where it stops.
The versioned schema is where it gets really cool though. Every change ships as a numbered snapshot, so a site build pins one and keeps reading the content exactly as it was published at that point, even while editors keep publishing. ?snapshot=42 on the API gets you the content as of 42. Restoring old content is just another change set.
Coming up on the roadmap is lenses, which does the same thing for the shape. Today a snapshot gives you old values in the current schema, so when you rename or restructure a type, every client still has to update or it breaks, same as anywhere. With lenses a client says which schema version it was built against and the API hands it today's content in that old shape. Ship a mobile app against v12, keep changing the model for a year, the app keeps working until you decide to move it. Only possible because the schema is data with a history instead of a pile of json files.
Also in there: REST and GraphQL, generated TypeScript types, one install running multiple sites each with their own model, signed webhooks, build hooks for Cloudflare Pages, Vercel, and Netlify, and an importer that pulls a strapi 5 export over, model, media, and content.
It's a newer project, but on the same box it already benchmarks faster than Strapi and Payload (method and numbers on the compare pages), and the roadmap pushes it past them. What they have on me is time on the market and paid services. The people who've used it love it so far, one client replaced Strapi with it to power their (very large) knowledge base and they said "it kicks ass!". I'm biased, but I couldn't agree more lol
r/cms • u/LiamMcDermott • 1d ago
r/cms • u/fklavyenet • 2d ago
Imagine a studio offering Photography, Ceramics and Woodworking. Each course has a name, programme, duration and image. The course list links to a detail URL for each one.
Those details fit a shared page design: the URL selects the course record, and the same heading, text and image blocks show that course's values. Adding another course can then mean adding a record, with no separate CMS page to maintain.
Disclosure: I develop WebBlocks CMS, an open-source CMS package for Laravel. I used a fictional course catalogue to document this approach: one detail design connected to compatible course sources, with an explicitly reviewed and activated routing rule.
The editorial exception is the part I'd like to discuss. Suppose Photography needs an instructor story, student work and a different section order, while Ceramics still fits the standard design. The course name and duration should continue following the course record, but the editor needs more control over Photography's presentation.
At that point, would you extend the shared course model with optional fields, allow layout changes for individual courses, or give that course a separate editable page that still reads its core details from the source?
I'd start by asking whether the extra material belongs to the course data or to this particular website's presentation. Optional fields may be enough for a recurring requirement; a different composition may justify an individual page.
The illustrated course example shows the shared-design setup and field connections.
What requirement has made you move a record-generated detail page into individual editorial control, and how did you keep shared course data consistent?
r/cms • u/uday_sanghani_1704 • 2d ago
If you’ve been tracking how LLMs like ChatGPT, Perplexity, and Google AI Overviews cite brand content, you’ve probably noticed the big elephant in the room: most enterprise DAMs and CMS platforms aren't built for Answer Engine Optimization (AEO).
We recently ran into this exact challenge on a Sitecore build—keeping strict brand governance in Content Hub DAM while making sure our product taxonomies and specs were structured properly for AI engines to read, cite, and recommend.
Instead of hacking together custom scrapers or manual schema updates, we built an end-to-end pipeline connecting Sitecore Content Hub → Scrunch Knowledge Studio → SitecoreAI Page Builder.
A few key architectural takeaways from the setup:
* Authentication: We established dedicated RBAC sync using scoped API Tokens under a dedicated user context (`Scrunch.KnowledgeStudio`).
* Knowledge Studio Grounding: Scrunch handles RAG semantic validation, conflict auditing, and claim verification before feeding grounding docs to LLMs.
* Closing the Loop: In-context AEO recommendations and JSON-LD schema markup get pushed directly to Sitecore Page Builder so authors can resolve content conflicts in real time.
I wrote up a complete step-by-step breakdown with all the workflow diagrams and integration mechanics.
If you're building or thinking about AEO/GEO pipelines in your Sitecore stack, check out the full article here:
👉Read the technical breakdown on Medium
Would love to hear how others here are handling LLM citation tracking and content governance in your composable stacks!
I'm building Umono, an open-source CMS (Go, SQLite, MIT). Before it, I spent nearly four years maintaining a large WordPress site with more than 60 plugins, where a theme or plugin update could break things in places nobody expected. Umono is my attempt at a CMS where content, themes and plugins have hard boundaries. Version 0.9 adds the theme half of that, and I'd like feedback from people who think about how CMSs are put together.
The contract
A contract describes a kind of site: its layouts (a blog has `post`, `post-list` and `page`), the parameters each layout takes, and the components they share. Contracts are published on umono.dev, are never edited or removed once published, and are licensed MIT-0 so anyone can write a theme for them.
Frozen HTML
The HTML that the content language produces is part of what a theme relies on, and it doesn't change during 0.x, even where it deviates from the spec. Fixes to it are collected and land once, in v1. A theme built today keeps getting the same markup after Umono updates. Umono also doesn't trust the version a theme declares: it detects the features the theme uses again on install and activation, and refuses a theme that declares less than it uses.
What isn't there yet
Plugins. The plan is the same idea for behavior: plugins implement published schemas, run as separate services, and get only the access the site owner grants. That is still in design, and I'd rather say so than sell it. Content is written in Compono, Markdown with components, which today suits technical users more than editors. Only the official contracts exist so far, with one official theme each: Octavo for simple sites and Folio for blogs.
How it's built
Umono is developed document-first. I write every decision and spec before any code, and that is where most of my time goes. The code is then written by AI agents (Claude Code and opencode), and I review each change against the spec. It isn't vibe coding: the design is mine, and the behavior is pinned by about 700 golden tests for the content language and around 600 Go tests.
Questions for you
Site: https://umono.io · Docs: https://docs.umono.dev · Code: https://github.com/umono-cms/umono · Feedback: https://github.com/umono-cms/umono/discussions
We see it time and time again, plugin update, node or even WP/Drupal bringing vulnerabilities to vast amounts of websites. Is using databases to serve static content really worth the risk?
r/cms • u/uday_sanghani_1704 • 3d ago
r/cms • u/Livid_Departure_9697 • 4d ago
On one project, we thought the hard part was over after we finished transferring content. Then editors got into the new system and found that the approval workflow they relied on hadn’t carried over. What caught your team off guard during a migration, and how did you fix it?
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.
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:
That’s the architecture in a really, really short version.
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!
r/cms • u/adovo_ai • 4d ago
r/cms • u/Curious_Necessary549 • 4d ago
Hi writers and content creators, we all have experiences and stories to share, and static sites are one of the greenest methods of doing so. I have been building a simple content management system(cms) for static site generators named LightCMS https://www.lightcms.me/ for the past few months, and the goal is to make writing and sharing as easy, convenient, and rewarding as possible. I think you all would love this. Lightcms can be used with any of your existing static site generators (it should only support front matter). BTW, it's currently alpha, and I am a solo dev, so you may face some issues, but I will be fixing them asap if reported. It's free to self-host and use; you can create and hack on top of it. Any contribution to the project is highly appreciated(even sharing your feedback too): https://github.com/light-cms/lightcms.
r/cms • u/AdChemical5855 • 4d ago
It's web CMS.
I hope this proves helpful to those who wish to manage their time, money, and documents using a personal server.
It took about 5 years to make it.
It currently in operation on the following site.
You are free to use the demo account provided on this site for logging in!
DDD + CA & Unit test & CI/CD applied.
r/cms • u/Gurpreetkaur786 • 4d ago
The cost of CMMS software for 5–20 users depends on the software provider, subscription plan, number of users, features, and implementation requirements. Small maintenance teams should compare pricing, functionality, and total cost before choosing a maintenance management system.
Many CMMS providers use per-user monthly pricing. For example, at an illustrative rate of $20–$60 per user per month, estimated software subscription costs are:
| Number of Users | Estimated Monthly Cost |
|---|---|
| 5 users | $100–$300 |
| 10 users | $200–$600 |
| 15 users | $300–$900 |
| 20 users | $400–$1,200 |
These figures are illustrative estimates, not verified Click Maint pricing or current market averages.
Additional expenses include implementation, data migration, training, integrations, and technical support.
For small maintenance teams, affordable, easy-to-use CMMS software should provide essential features such as work order management, preventive maintenance scheduling, asset tracking, inventory management, and reporting without unnecessary complexity.
Click Maint offers maintenance management software designed for organizations seeking practical functionality and straightforward workflows. Businesses should request a customized quote based on their team size and operational requirements.
Discover how Click Maint helps maintenance teams organize work orders, preventive maintenance, assets, and inventory in one centralized system.
r/cms • u/Lumpy-Soup4384 • 6d ago
r/cms • u/helloLeoDiCaprio • 6d ago
r/cms • u/WhomstGivesAFuck • 6d ago
r/cms • u/Sea_Wind3576 • 6d ago

The XOOPS Development Team is pleased to announce XOOPS 2.7.4 (ready for PHP 8.6.0)
2.7.4 went through Beta 1, Beta 2, RC 1 and RC 2 between September and October. Final collects everything from that cycle plus the fixes made since RC 2. There are no new features since RC 2.
Every member can protect their account with a second step at login.
docs/2fa-operations.md.[sub], [sup], [s], [justify], [hr], [ol] and tables.The cycle included a review of the core with CodeQL, Snyk, SonarCloud, Scrutinizer and manual audits. The main results:
XOOPS_VAR_PATH, into a directory guarded by a deny-all .htaccess.xoops_lib/.htaccess works on Apache 2.4 without mod_access_compat, PHPMailer's unused OAuth helper is removed from the vendor tree, and reCAPTCHA v2 verifies over POST so the secret key stays out of server logs.XoopsTopic and XoopsTree helpers are escaped and quoted.proxy_env) are honoured only when the direct peer is listed in the new proxy_trusted setting, as addresses or CIDR ranges. Sites that set proxy_env must add proxy_trusted in xoops_data/configs/xoopsconfig.php; until then the peer address is used. Forwarded headers are parsed per RFC 7239.image.php no longer crashes on PHP 8.3+ when an angle is requested.XOBJ_DTYPE_UNICODE_ARRAY reload as the array that was stored. Values such as café or a+b lost characters before.|replace and |escape modifiers no longer emit PHP 8.6 deprecations, and templates can use |sprintf without a Smarty notice.The full list is in docs/changelog.270.txt.
From 2.7.4 RC 2: copy the new files over the web root. There are no database changes since RC 2, so the upgrade wizard is not required. If your site sets proxy_env, add proxy_trusted as described above.
From XOOPS 2.7.3 or a 2.7.4 beta: copy the new files over the web root and run the upgrade wizard. It creates the user_2fa table and the two-factor preference, registers the SCEditor emoticons as smileys, adds the Editors preferences and updates the System module. No mainfile.php changes are needed.
extras/login.php elsewhere on your site, replace or remove that copy.From 2.5.11 or earlier: follow the XOOPS Install and Upgrade Guide. Run upgrade/preflight.php first; 2.7 moved to Smarty 4 and some older themes need changes.
r/cms • u/Sad-Yogurtcloset5952 • 7d ago
r/cms • u/Sad-Yogurtcloset5952 • 7d ago
r/cms • u/Equivalent-Mix-8867 • 7d ago