Outstatic CMS
I haven't published anything here for quite some time, so I thought I'd try something new.
Since this website isn't updated frequently, I wanted to use something static to avoid running a server, like with WordPress. I tested various systems like Docusaurus, Vitepress, and Nextra. While they all produce good-looking websites, they share the same issue: adding and editing content is hard. You either have to add the md/mdx files directly in GitHub, or integrate a tool like TinaCMS on top, which typically comes with a monthly charge. This makes it not viable for a personal website.
I started considering different aspects when deciding which software to use, and it seems that Outstatic ticks all the boxes:
-
Open Source: Preferably with an MIT license, so there are no limits on how it can be used. If the maintainer decides to stop working on it, you can always fork the project.
-
Free Hosting: It should be possible to host for free on a serverless platform like Vercel or Cloudflare. Anything that requires a dedicated server is typically a no-go.
-
Ease of Use: A CMS should have a nice web-based UI.
So, how does Outstatic work? It's a Next.js app intended for deployment on Vercel, but it works fine locally too. What sets it apart from Vitepress or Nextra is its built-in admin that you can access with your GitHub account. Any content you edit in the admin is pushed as a commit to GitHub, which then triggers a new deployment to Vercel. No database needed!
Another cool feature is the data adapter in the codebase, which makes it easy to work with the content. For instance, you can easily display the latest blog posts on the first page or create a filtered view for all blog entries with a certain tag.
Here are a few things that would be interesting to add:
-
Search: Nextra uses FlexSearch, which looks like a promising solution. While ElasticSearch and Algolia are great, they're more hassle to host. FlexSearch seems like a good solution here.
-
Additional Login Methods: GitHub works fine for me, but at work, there might be users without GitHub accounts who need to edit content. Other solutions like Vercel or TinaCMS use this limitation to charge for their product, but since Outstatic is using a GitHub key rather than the current user to push, it should be possible to add other login methods.
To sum it up: This looks like a really promising solution. Check it out at Outstatic!