You can access the documentation here: Outstatic Documentation.
I invite you to start by deploying our example blog to Vercel and giving it a try. I think you'll be pleasantly surprised at how easy and fun it is to use Outstatic.
Please, let me know what you think. This is the first public version of the project and all feedback is welcome.
If you dig the project feel free to leave a star on Github. I appreciate your support!
Statically generated websites are everywhere and have been popular for many years. Gatsby, Next, Hugo, Jekyll, 11ty, Astro, etc.
Yet, there is a lack of visual editing interfaces for Markdown/Frontmatter/MDX content.
Netlify CMS has been the best solution in this space, and despite many thousands of stars it’s abandoned now.
Tina CMS seems nice, but requires a subscription/cloud account.
Why are there not more alternatives?
Will take a closer look at Outstatic for sure.
After I've launched people pointed the existence of those CMSs. I really built this as something to scratch my own itch, halfway through I decided it could be a library.
But as someone else mentioned, it's quite hard to think of a business model around this. I'll keep working on it just so that I can use it in my own blog. If other people want to use it, that's great.
Bugs do appear to still be tracked and tagged though, so it's a confusing state of affairs.
I've noticed this too (https://github.com/netlify/netlify-cms/releases) with lots of open issues which makes me very nervous about using it for client projects. Netlify CMS is more than good enough for solo and small sites but it feels like it never took off like it should even with the backing of Netlify. Netlify's recent pricing changes to their hosting where they charge per Git user who trigger commits isn't great here either.
> Why are there not more alternatives?
Maybe it's hard to make money from? There's quite a few commercial offerings where some try to offer a slice of it as open source.
I'd love an active open source alternative to WordPress with a basic site builder i.e. you can drag and drop pre-built page sections to create new pages and get a live preview before you deploy. Unfortunately, WordPress is still the safe open source choice for ease-of-use of the editors for basic business sites.
Ones that I've used include:
- Statamic https://statamic.com
- Jigsaw https://jigsaw.tighten.com/
Flat File CMS are typical CMS systems (often times written in PHP) that run on the server, but use files (often Markdown/Frontmatter) as their data backend (instead of a DB like Wordpress, Drupal, etc.) – if you're looking for a really nice Flat File CMS take a look at Kirby (https://getkirby.com) or Statamic.
What OP is building (I think) and what others like Netlify CMS and Tina CMS do, are Frontend Applications (typically SPA) that output a set of content files, which can then be fed into a static site generator (like Next.js, Astro, Hugo, Jekyll), which will built a website from it. Often these content files live on Git – so the common interface between a SSG and the "static CMS" is often Git (or a local folder on your file system). So it's a "smaller" concept than flat file CMS. Typically these "static CMS" only care about content and have nothing to do with templating, etc.
It feels like today it is a too risky water to dip toes into.
I’m not sure if the right thing to do is build a web editor or smooth out git workflows so that non-technical people can open content files with desktop software to make changes to the content.
See: https://answers.netlify.com/t/is-this-project-dead/70988 https://github.com/netlify/netlify-cms/discussions/6503
> The project is constantly improving with new changes being implemented on a daily basis. You can keep up by hitting the Star button!
I'm seeing this as a trend, but how does this actually work? Are you scraping user details from their profile pages, and are you sure that's allowed? Are you using some mechanism in GitHub to update users that have starred? Without understanding the actual mechanism used to keep users up-to-date, as hinted, it feels like misleading users to gain stars.
Maybe it's like the YouTube Like and Subscribe, except for the part where they contact you for new releases. It's a lot less pushy to tell people to star your repo than asking them to subscribe to issues and become a contributor on equal footing.
You need something like "stars" or "project member" as part of your contributor ladder.
Did you know that YouTube channels cannot get a non-randomized URL or be searchable by the channel title unless you have 1000 subs? (How do you get 1000 subs when nobody can search for or find your channel unless you hand them a link? I guess by pounding pavement...)
As an OSS maintainer, I don't think that stars do anything except for number go up, but you'd be surprised the things that "number go up" can help with.
[1]https://docs.github.com/en/account-and-profile/setting-up-an...
But it seems to require a Github and a Vercel account: https://outstatic.com/docs/getting-started
From the above Outstatic FAQ:
> Can I host my Outstatic website on a provider other than Vercel?
> We specified Vercel on the documentation as it is the only platform we've tried Outstatic on. I don't see why it wouldn't work on other platforms such as Netlify or your own preferred setup.
Doesn't seem like deploy is baked into the library, it's just in the documentation as an example (a bit misleading and had to read the FAQ to figure this out). They are helping you setup Vercel's "deploy" from github that's available to any github repo, not specific to Outstatic CMS. You can setup a Github action to deploy anywhere you want.
As many people here have mentioned in this thread, Netlify CMS was a big player in this space but has since been abandoned. If a project like that, backed by a company with resources, can get abandoned so easily, it doesn't give me confidence that a self-proclaimed side-project will have longevity.
Don't know much about Vercel, but I'd be skeptical.
I think it'd be an improvement over this project to make those dependencies optional. For example, if I wanted to self-host. I'm using NetlifyCMS for a project and I agree with others that the whole space could use a bit of innovation.
> doesn't require a complicated setup or signing up to a third-party service!
Is it (a) "Your Content", (b) all the data that Github gets from hosting "Your Content" or (c) both.
With respect to people who upload data to Github, under the Github Terms of Service,^1 specifically the license that these people grant to Github, there is almost nothing that Github cannot do with "Your Content".^2^3
Anything that falls under "applications, software, products and services" is fair game. If the product is [whatever], they have granted Github a license to use their content for it. If the service is [whatever], they have granted Github a license to use their content for it. No one knows what products or services Microsoft may choose to pursue through Github in the future.
1. https://docs.github.com/en/github/site-policy/github-terms-o...
2. The one potential prohibition is the sale of "Your Content." But, as in the case of Facebook, it would make little sense to sell user generated content. It is the company's largest asset. Of course, nothing prohibits Github from giving away or otherwise transferring Your Content to a third party, not as part of a sale. As long as this activity is part of "applications, software, products or services" offered by Github, it is permitted. As above, that could be anything, and we have no way to predict what Microsoft may choose to do in the future.
3. However Github is explicitly permitted to transfer "Your Content" to "partners" such as
Internet Archive
Software Heritage
The Long Now
piql
Stanford University
Bodleian Libraries
GH Torrent
GH Archive
Microsoft Research
Bibliotheca-Alexandrina
We have no idea what if any terms Github requires of its partners with respect to "Your Content".You may have no direct relationship with those partners and thus no means of limiting what they can do with "Your Content".
To be truthful, some of those partners may have fewer commercial incentives than Microsoft, hence the risk of objectionable uses may be lower. But then we are left wondering why Microsoft needs to be an intermediary between the content owners and the "partners" who can store Your Content for future generations, at no cost to you, e.g., Internet Archive.
No doubt, by acting as an (unnecessary) intermediary, sitting in between "Your Content" and anyone who wishes to access it, Microsoft is collecting and generating vast amounts of data that fall outside of "Your Content". Obviously, this data is outside of your control. Do you "own" it.
I wonder if anyone has tried that.
Git also enables this, so I don't understand your point.
Apparently git now has better narrow/shallow support though. Will have to check that piece out again. I wonder if the large file support is a bit less hackish now. It always felt like such a kludge compared to mercurial.
I think you meant "Uses GitHub to store your data"?
Git is not a data store but a version control system, it can't store data. Data is stored on your disk or on your Git server. In the case of your CMS it seems like it requires GitHub specifically, other Git servers won't work.
Git absolutely is a data store. It just so happens that its primary use-case is version-controlled code.
There's no reason why it can't be other data - even binary. Other text that isn't code is absolutely fine.
Also, if it's in GitHub, it's almost certainly is using Git. Though I haven't tried this service out yet, my guess is GitHub is being used as a known central Git repo source with a reasonably well developed ecosystem and security mechanics as well as being the most widely adopted Git VCS platform on the market.
But in theory you could use any Git repo on any platform (or no platform)... it sounds like it will just need to end up on GitHub currently to make use of the orchestration this service provides.
Does anyone know of something like Datomic but that runs on top of Postgres? ie. Postgres + change history/management.
- https://github.com/nearform/temporal_tables
- https://github.com/xocolatl/periods
- https://github.com/scalegenius/pg_bitemporal
- https://github.com/arkhipov/temporal_tables
I haven't used any of them but I work on https://xtdb.com which is also implementing SQL:2011's temporal features :)
Do you mean something with sql query syntax?
We'll give it a try... thanks for the great work!
That would be amazing and it is the one major thing missing from other options like Statamic.
Nobody understood my needs around this when I was looking for solutions.
I'm planning to add branching and merging soon
If you want to chat about how this may work in terms of UI/UX, please let me know. I think the idea is interesting. I'm @AndreVitorio on twitter.
Some people have been using Outstatic without Vercel, and there's a section in the FAQs about it. But since this is the first version of the library and I haven't tested it with other services, I felt putting Vercel as a requirement would avoid people running into pitfalls with other services.
But oAuth is only setup with Github for now. So unfortunately that's pretty much a requirement.
I plan on adding support for other git providers in the future.
There's literally a hundred languages you can choose.
It was half ass browser language originally with improvements bolted on.
Git is terrible at managing documentation, it was designed for her bazaar-style software projects like the Linux kernel, which is very much a completely different use case.
Now you can mostly use any technology to do anything du maybe this software is great but I wouldn't mention git as more than an implementation detail personally.
Yes, at this stage I wouldn't advise anyone to try using this in production, it's the first version of a side project after all. But I'm really surprised by the response so far. I'll definitely keep improving it.
Let me know if you manage to figure out what went wrong, and if you get any error messages/logs. I'm available on twitter @AndreVitorio
So it's Apple Notes, Next.js and Vercel.
I built something similar a fews back, mainly for myself: UI for creating/editing content and generated static output. It fully integrated Git into the workflow and handled publishing to your own subdomain (free hosting). It was pretty minimalist but worked fairly well. Originally I built it for desktop, then later decided I needed it available anywhere and rebuilt it as a web app.
I eventually stopped working on it though because I ran into problems with the browser implementation of Git provided by the library Isomorphic-Git (it could only handle simple merges). I also stopped writing, and since I had no users besides myself I lacked motivation to resolve outstanding issues
The app still exists and even very recently it crossed my mind to revisit it. You might just have inspired me to do so.
Edit: fix typo
Really like the idea of keeping content in git, especially for smaller projects.
It's been working really great. GitHub PRs + preview applications give a very powerful collaboration / review framework. It works extremely well for folks who understand Git / GitHub enough - engineers, technical writers, etc.
It's starts breaking unfortunately for the marketing team, less tech savvy folks. I was trying to find a solution CMS that would work for them, but haven't seen so far something that would satisfy our needs. Two things that we are usually missing:
- we need a way for people to come and review it (ideally GitHub / Notion / GoogleDoc style). Where you would be able to comment on a line, suggest and edit, etc, etc - we need a way to handle assets better (using Git for blog was not scalable - started breaking the workflow). So far we ended up using DVC for this, but it complicates the workflow.
- there are merge conflicts that are happening - that's not easy to resolve in CMS
Nonetheless, even a tool that would prepare and generate a PR using an online editor is already a very decent step to my mind. Eager to try the tool.