20 ms·
Show HN: I made a CMS that uses Git to store your data
I'm excited to finally launch Outstatic, an open source static website CMS that doesn't require a complicated setup or signing up to a third-party service!
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!
- shivekkhurana 4y agoI found something similar but more flexible while looking for alternatives: https://frontaid.io/ https://frontaid.io/
- quickthrower2 4y agoWell done on getting such a good domain name. I like the idea too!
- sixhobbits 4y agoLooks nice but I am not sure how "does not require signing up to a third party service" is compatible with the get started page which starts with "requires a github account and a vercel account"
- AndreVitorio 4y agoYou're right. What I meant is, you don't need a third-party CMS provider. I suck at writing copy. 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.
- stjohnswarts 4y agoNeat project. Can you eventually just make it optionally self hosted with say gitlab or other software that is "self hostable" ?
- AndreVitorio 4y agoThanks. I think it can be done. But right now I'm mainly focusing on making this stable enough with the current Github setup before moving on to supporting other alternatives.
- stjohnswarts 4y agoGotcha, what you have looks great nonetheless. Congratulations! I'm just one of those who likes self hosting on cloud based solutions.
- deleted 4y ago[deleted]
- ssddanbrown 4y agoA bit off-topic, but out of interest, I noticed your GitHub readme states the below, accompanied with a large GIF of showing someone how to press the star button: > 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.
- quickthrower2 4y agoProbably Github itself gives stargazers updates on what they starred
- yebyen 4y agoMisleading users for GitHub stars... that's a paddling! 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.
- deleted 4y ago[deleted]
- spapas82 4y agoIirc netlify cms uses a similar way to store data?
- syrusakbary 4y agoThis is awesome. I was looking for something similar (either fully static or a headless CMS) for using it on the Wasmer website blog [1], which is already using Next.js. We'll give it a try... thanks for the great work! [1]: https://github.com/wasmerio/wasmer.io https://github.com/wasmerio/wasmer.io
- AndreVitorio 4y agoAwesome, let me know how it goes!
- syrusakbary 4y agoWill do! Tomorrow we are trialing it :)
- Y_Y 4y agoI always thought it would be cool to have a FOSS project that was wiki-based. People could submit edits which would be run through CICD, and accepted automatically if they improved performance (after passing tests). Contributing to projects has certainly gotten easier since the pathches-to-mailing-list era but it could certainly have less friction. As well I think it would feel more "competitive" especially if you're optimising individual functions (== wiki pages) for speed.
- deleted 4y ago[deleted]
- liveoneggs 4y agoEver used fossil? https://www2.fossil-scm.org/home/doc/trunk/www/index.wiki https://www2.fossil-scm.org/home/doc/trunk/www/index.wiki
- julvo 4y agoLooks amazing! Interesting to see the fully integrated approach. Working on gitpaper.com, which takes the bring-your-own-static-site-generator (byossg TM) route. Really like the idea of keeping content in git, especially for smaller projects.
- breck 4y ago
- lagrange77 4y agoDoes it directly (client side js) talk to github, or is there an intermediate layer like serverless functions involved?
- AndreVitorio 4y agoMainly client side. Some functions go through next's api folder.
- tr3ntg 4y agoThis is really cool. Not only is it great technically (combo of open source and git-powered is so convenient) - you’ve also done a stellar job of designing the UI. This looks like a CMS an individual would choose over others based on UX alone.
- AndreVitorio 4y agoThank you! I really appreciate it :)
- zoover2020 4y agoWell done! How flexible is this when it comes to custom integrations such as custom previews, styles etc?
- AndreVitorio 4y agoYou can build your frontend as you wish. It is still very early so previews are not yet a thing.
- anonyme-honteux 4y agoThe right way to manage documentation is to have some kind of a wiki, not to use git. 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.
- preya2k 4y agoI totally disagree. Git is a great way to store documentation. Also „Git“ and „Wiki“ are not opposites. You can have a wiki AND store content in git at the same time.
- anonyme-honteux 4y agoGreat in which sense? I would argue that git is easy because you are already familiar with it, but it doesn't make shared documentation simple. How could he do that? Do you think that Linus Torvalds had a use case similar to Wikipedia in mind when he designed git? Sure you could build Wikipedia on top of git, it would just be shitload of unnecessary suffering compared to the hipster technology called PHP+MySQL.
- dxchester 4y agoThis sounds cool. We wrote a git-based CMS[0] that is a little different. It has a nice-enough UI for creating and editing markdown documents, which are stored in git. And then it has a JSON API so that your main site can fetch the content and style / format however it likes. Users log in with OAuth or local passwords and their edits end up as git commits that are attributed to them. [0]: https://github.com/frameable/junco-cms https://github.com/frameable/junco-cms
- preya2k 4y agoThe lack of options in this space really baffles me. 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.
- britzkopf 4y agoPardon my ignorance, but i've recently been trying to decide on a cms service and it seems like there are too many options (strapi, prismic, contentful, ghost, cockpit, forestry, etc...) What am i missing here?
- lytedev 4y agoNetlifyCMS is abandoned?
- kyrra 4y agoCheck the commit history on the project. Last real commit was mid April.
- preya2k 4y agoYeah, they've also "officially" said this on their forums. See: https://answers.netlify.com/t/is-this-project-dead/70988 https://answers.netlify.com/t/is-this-project-dead/70988 https://github.com/netlify/netlify-cms/discussions/6503 https://github.com/netlify/netlify-cms/discussions/6503
- netsharc 4y agoGeez the first few responses of that forum thread is just an exhausting read of "We've relayed your message to $SOMEWHERE_ELSE and we are waiting for a response.".
- seanwilson 4y ago
- leerob 4y agoThis is awesome, nice work. I was able to get an example deployed and working in a few minutes!
- deleted 4y ago[deleted]
- superkuh 4y agoThe best CMS is your native filesystem and using web pages that are and use files.
- deleted 4y ago[deleted]
- jeksn 4y agoGave it a shot and seems really nice and lightweight. Tried running it off the example blog but suddenly all the collections just disappeared. Even though everything was in git. Will keep trying it out but will obviously not do anything production worthy until it's a bit more stable and thoroughly tested.
- AndreVitorio 4y agoHey, Thanks for trying it out! 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
- fny 4y agoYou mean like gollum?
- deleted 4y ago[deleted]
- podviaznikov 4y agoMine is always the same combination, but Apple Notes instead of GitHub[1]. So it's Apple Notes, Next.js and Vercel. [1] https://montaigne.io https://montaigne.io
- deleted 4y ago[deleted]
- phodo 4y agoCan you speak a bit more as to how you are extracting the data from Apple Notes / iCloud into next?
- edmcnulty101 4y agoAnytime I see something that's in JavaScript that doesn't have to be, I immediately close the page. There's literally a hundred languages you can choose.
- randomguy0 4y agoWhat makes JavaScript such a terrible fit compared to the other 100 languages you have in mind?
- edmcnulty101 4y agoAsync by default. Promise chains. Strange unpredictable typing. Many more strange things. It was half ass browser language originally with improvements bolted on.
- simjnd 4y ago> Uses Git to store your data 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.
- powera 4y ago> Git is not a data store but a version control system, it can't store data. Data is stored on your disk By the same theory, you don't store data in MySQL, you store it on a disk.
- simjnd 4y agoOh yeah didn't think about it this way, you're right my bad.
- simonhamp 4y agoThis is so unbelievably wrong. 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.
- simjnd 4y agoYou're right my bad
- pzrsa 4y agolove the design of this, nice work!
- shcheklein 4y agoReally glad to see this coming. Sharing my experience of using Git for rendering docs and blog at Iterative. We've build a similar engine for the https://dvc.org/doc https://dvc.org/doc and https://iterative.ai/blog https://iterative.ai/blog (internally it's Git + DVC for images + Gatsby + Markdown deployed on Heroku (only for APIs) + Cloudflare + S3). 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.
- olah_1 4y agoDoes this mean that writers use a branch and merge based workflow? 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.
- simonhamp 4y agoHave you seen Gitamic? (https://statamic.com/addons/simonhamp/gitamic https://statamic.com/addons/simonhamp/gitamic) I'm planning to add branching and merging soon
- AndreVitorio 4y agoRight now Outstatic pushes straight to your main branch. I built it for personal use so I didn't get that far, but you are not the first to suggest this. 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.
- nico 4y agoCool concept. Does anyone know of something like Datomic but that runs on top of Postgres? ie. Postgres + change history/management.
- refset 4y agoOne of these Postgres-based implementations of SQL:2011's temporal versioning might get you close enough: - https://github.com/nearform/temporal_tables https://github.com/nearform/temporal_tables - https://github.com/xocolatl/periods https://github.com/xocolatl/periods - https://github.com/scalegenius/pg_bitemporal https://github.com/scalegenius/pg_bitemporal - https://github.com/arkhipov/temporal_tables https://github.com/arkhipov/temporal_tables I haven't used any of them but I work on https://xtdb.com https://xtdb.com which is also implementing SQL:2011's temporal features :)
- nikodotio 4y agoI believe datomic does theoretically run on top of Postgres. Do you mean something with sql query syntax?
- grzm 4y agoThe on-prem version can use PostgreSQL as a backing store, but it’s essentially blob storage of serialized data: the schema in Postgres isn’t the logical representation of the corresponding Datomic schema.
- capitainenemo 4y agoThe fact that you can update and check in a single page at a time seems to make svn without needing to pull the whole repo seems to make subversion rather well suited to wikis in my mind. Not to mention you don't usually need the more advanced git or mercurial features. I wonder if anyone has tried that.
- smt88 4y ago> update and check in a single page at a time Git also enables this, so I don't understand your point.
- capitainenemo 4y agoYou can work on and commit your article page A all day long without having to update the rest of the wiki while your fellow author works on page B and does the same. 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.
- tannhaeuser 4y agoNot only that, but SVN (mod_dav_svn) is the reference, or only, implementation for full-featured WebDAV, an HTTP extension protocol for resource-/file-based CMS to live at the same endpoint as your site. Though git doesn't require a full clone anymore for access to a single file since about two years.
- capitainenemo 4y agoAh? Narrow/shallow work well now? I can just grab one file and edit/check in without grabbing the rest or having history issues? Good to know. Had tried it a few years ago without success.
- pxtail 4y agoI think that it was very good idea to make post edit interface very similar to Wordpress one - plenty of people will be familiar with it right away!
- AndreVitorio 4y agoYou're the first person to mention it! I love Wordpress, that's where a lot of the ideas for Outstatic came from.
- juunpp 4y ago"Own your data" But it seems to require a Github and a Vercel account: https://outstatic.com/docs/getting-started https://outstatic.com/docs/getting-started
- AndreVitorio 4y agoIf you add code to Github and host it on Vercel, isn't ownership still yours?
- juunpp 4y agoSeeing that Github is exploiting FOSS for its own commercial interests and possibly violating licenses (Copilot), it's not exactly the kind of ownership that I envision when somebody says "own your data". 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.
- AndreVitorio 4y agoIn my opinion, code I add to Github is still mine. Guess we'll have to agree to disagree here. Self-hosting would be awesome indeed, but I think doing it would be quite complicated because of the authentication part, which is needed to push changes to a git provider.
- juunpp 4y agoI don't know how much you want to get into this, but since we're already on this topic: https://www.netlifycms.org/docs/external-oauth-clients/ https://www.netlifycms.org/docs/external-oauth-clients/ https://docs.gitea.io/en-us/oauth2-provider/ https://docs.gitea.io/en-us/oauth2-provider/ NetlifyCMS allows you to define your own backends, and Gitea now has OAuth2 support. Should be able to adopt a similar strategy and allow Gitea to be used as a backend.
- lnoir 4y agoCongrats on building and shipping Outstatic :-) 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