Readit News logoReadit News
Posted by u/hannes_paul 3 years ago
Ask HN: Apps that are built with Git as the back end?
Hey HN, I'm working on a project that builds with git as the backend (https://github.com/inlang/inlang) and I'm looking for other projects that have a similar approach.

PS: Also apps such as VS-Code or Obsidian which work on local files and have git plugins would be interesting!

dan353hehe · 3 years ago
Tim Caswell has several projects that interact directly with git. He has a few websites served directly from a bare git repo powered by https://github.com/creationix/wheaty. Another project that uses git as a storage medium is a package server for the node.js API implemented in Lua: https://github.com/luvit/lit.

Both serve files from a git repository, and lit will actually write to the repository. There are several others that Tim has built over the years, but those are the two that I am familiar with.

dan353hehe · 3 years ago
Also spent a few minutes browsing around and found https://github.com/creationix/tedit, a web based editor that reads and writes directly to git (I think).

Like I said Tim has quite a few projects that interact directly with git.

creationix · 3 years ago
Yep, I've got lots of experience in this area. It works very well for read-only use cases and is interesting for read-write like tedit. Also it's amazing for build systems like the one built into tedit. I wish the webdev world in general would move to that model. It would save so much compute people would joke it would slow global warming.
mcprwklzpq · 3 years ago
The Office 365 backend uses git to store snapshots of documents. [1]

https://github.com/microsoft/FluidFramework/tree/main/server...

sebazzz · 3 years ago
That is not exactly what it says. It says it uses a content-adressable system and you can talk to it as if it was git.
mcprwklzpq · 3 years ago
And the content-adressable filesystem that it uses is git [1]. It uses git with a javascript implementation of it [2] or node bindings to a c one [3].

1. https://github.com/microsoft/FluidFramework/tree/main/server...

2. https://github.com/isomorphic-git/isomorphic-git

3. https://github.com/nodegit/nodegit

FrontAid · 3 years ago
Very interesting! I had a look at your "RFC 001: Core Architecture" but one question remains. You mentioned "git as the backend". As far as I understand, you don't use the word "backend" in the classic frontend <=> backend sense. Instead, you mean that Git is being used as a software repository and as a content database. Is that correct or am I missing something?

I'm already sold on the idea of using Git as a database for content and localization. But I'm obviously biased as we are working on a similar solutation ;) It is called FrontAid and it is a CMS that stores your (localized) content in a JSON file within your own repo. More information can be found at https://frontaid.io/

Using Git for content has some great benefits. Like complete version history, easy reverts (for devs at least), (feature) branch support, Git hooks, ... And of course, you own your content at all times.

PS: Both the "Editor" and "VS-Code-Extension" links in your repo are broken.

samuelstros · 3 years ago
Maintainer of inlang here:

Correct, the term git backend refers to git as a content database (with built-in version control and automation).

Regarding front aid, great to see fellow startups working on solution built on git. It took months to realize the benefits of git and the logical step to build the backend on git. sorry, use git as the content database.

PS ty, fixed the links! :)

davelondon · 3 years ago
This is an excelling CMS: https://forestry.io/

I used it as the editorial interface for a little static blog: https://www.wildernessprime.com/

coding123 · 3 years ago
That's how it should be. Most blogs and other systems should be using git, not a database. The database is overused.
CharlesW · 3 years ago
simonmales · 3 years ago
Thanks for the link. Have been toying with idea in my head for years.
georgyo · 3 years ago
extraduder_ire · 3 years ago
Etckeeper exists: https://etckeeper.branchable.com/ It puts your /etc/ directory in version control, with some automation so you don't have to manage it as much.

I don't think it really counts as an app with a backend, and it can use other VCSs as the data store (it used to default to mercurial until a few years ago), but it's up there as one of the things I install early when I'm using a new system.

It has only saved me once or twice, but each time I've been glad it's there.

saryant · 3 years ago
Twitter distributes config files across their entire fleet (hundreds of thousands of machines) using git and a cron job. Commit your config change, wait a few minutes and there it is.

Source: I’m a former tweep.

jfray2k22 · 3 years ago
That's not exactly how that worked - configuration files and build artifacts were delivered by either puppet/ansible or via Murder (bt-style p2p). If there was cron involved, it was to schedule starting the puppet client on the node. The puppet manifests and every project's source was in git, but nothing went directly from git to a machine (unless internal tooling regressed dramatically after 2013).

Source: also former Tw (2008-2013)

jtwaleson · 3 years ago
I'm using a webscraper that extracts data from some APIs, and stores all the data in a git repo periodically. Then you can see the data changing with tools like git and tig.
simonw · 3 years ago
I love that pattern. I call it "git scraping" and I've been writing about it for a few years (and building tools too): https://simonwillison.net/series/git-scraping/
ukd1 · 3 years ago
Interesting - I've been doing similar for a while (not writing about it though), but generally "self-commit" - i.e. the code in the repo commits back to itself, usuualy using github actions, or gitlab. E.g. https://github.com/ukd1/lvms-events