3 ms·
I expect the bigger risk to dynamic database-backed CMS platforms right now is that AI assistance makes static site generator tools run against a version contro
by simonw 7mo ago
I expect the bigger risk to dynamic database-backed CMS platforms right now is that AI assistance makes static site generator tools run against a version controlled repository of content less intimidating for most users... and static sites are cheaper to run (especially in this era of badly coded scrapers flooding the internet) and much less likely to fall vulnerable to security problems.
I expect we'll see a further wave of CMS interfaces which provide a nicer editing experience on top of flat files stored in Git.
Maybe the strategic move for platforms like WordPress (and maybe Django too! The Django admin remains a very popular CMS platform) is to invest more in separation of admin editing from serving, such that there's an obvious path to edit your content in the CMS but deploy it as static files.
My own blog uses the Django admin and serves the site via Django (albeit behind a 15m Cloudflare cache to handle traffic spikes) but I have a scheduled GitHub Action that backs up the content to a Git repository: https://github.com/simonw/simonwillisonblog-backup https://github.com/simonw/simonwillisonblog-backup - it's not much of a stretch from that to having the Git repository feed content to a static site generator.
- pjmlp 7mo agoDepends on the company level, on my line of business, what companies care about are headless CMS, with AI workflows, and oriented towards MACH. Ah, and all of them have partnerships with Vercel, and possibly Netlify. Sitecore, Contentful, Sanity, Storybrook,... If anything, they killed the need for backend skills, you get a ready made SaaS, program interactions with AI, and if anything requires backend like logic, it is taken care by Vercel or Netlify functions.
- deleted 7mo ago[deleted]
- threetonesun 7mo agoThere's Tina CMS for editing files in Git, but honestly editing flat files is probably the least interesting or complicated part of an enterprise CMS, and IMO there's rarely a good reason to interact with files directly versus a database that publishes files.
- huijzer 7mo agoI ran git-based blogs for years and have gone back to CMS. The instant preview and the instant publishing really make it a lot more pleasant to work with it. With Git, my read-eval-print loop so to say was a minute which is just too long. Fixing a typo then takes 2 minutes.
- simonw 7mo agoNow I'm imagining a static site editing tool that runs the exact same templates client-side to power an accurate preview that are then used by the static page build process.
- nimonian 7mo agoI am building _exactly_ this for my org for the past month, using Nuxt Content. A "draft" is a row in a database with live preview. Users can click a button to make a checkpoint (git commit, by GitHub API, but they don't know that). When they click "publish", the PR for their draft is merged. Writers in my team can use a nice Tiptap editor with custom components. I get the change management of git. The API for reading content and editing drafts is also exposed over MCP meaning AI can collaborate in the authoring process from anywhere that can connect to MCP. Loving it so far.
- huijzer 7mo agoI’ve tried to build that but GitHub doesn’t allow secrets to be stored inside browser so you can’t commit.
- simonw 7mo agoGitHub's content API is available over CORS: https://tools.simonwillison.net/cors-fetch#method=PUT&url=https%3A%2F%2Fapi.github.com%2Frepos%2Fsimonw%2Fdatasette%2Fcontents%2FREADME.md&bodyType=json&json=%7B%22message%22%3A%22my+commit+message%22%2C%22committer%22%3A%7B%22name%22%3A%22Monalisa+Octocat%22%2C%22email%22%3A%22octocat%40github.com%22%7D%2C%22content%22%3A%22bXkgbmV3IGZpbGUgY29udGVudHM%3D%22%7D&headers=%5B%7B%22key%22%3A%22Accept%22%2C%22value%22%3A%22application%2Fvnd.github%2Bjson%22%7D%2C%7B%22key%22%3A%22Authorization%22%2C%22value%22%3A%22Bearer+%3CYOUR-TOKEN%3E%22%7D%2C%7B%22key%22%3A%22X-GitHub-Api-Version%22%2C%22value%22%3A%222026-03-10%22%7D%5D https://tools.simonwillison.net/cors-fetch#method=PUT&url=ht... I've built client-side apps that store a GitHub token in localStorage and send them with fetch() for creating Gists and that works fine: https://tools.simonwillison.net/terminal-to-html https://tools.simonwillison.net/terminal-to-html
- huijzer 7mo ago> and static sites are cheaper to run (especially in this era of badly coded scrapers flooding the internet) Is that really such a problem for the average Joe? I'm running multiple blogs via a Rust CMS [1] on the cheapest Hetzner server, and have had no problems with the scrapers or load or anything. Have also gotten to the HN front page without issues talking about that you shouldn't put a site behind Cloudflare since most don't need it [2]. Now of course, for businesses or something who depend on the service to be online, it's different. But I'm talking about regular Joe's blog here. [1]: https://github.com/rikhuijzer/fx https://github.com/rikhuijzer/fx [2]: https://news.ycombinator.com/item?id=45965060 https://news.ycombinator.com/item?id=45965060
- simonw 7mo agoI had to add a Cloudflare CAPTCHA to my blog's search feature, but that's because I have faceted search which is a worst case scenario for bad crawlers.
- dedge 7mo ago[dead]