self-hosted · multi-SCM · v0.155.1
Your repositories. Your terms.
A hosting shell around real version control - Fossil, git, Mercurial, Jujutsu and Lore - for code, and for everything else people version: drafts, layers, takes, masters. It does not implement its own VCS, and it does not ask to own your work.
What it gives you
Six things, and the reason each one is there.
Choose your favorite SCM... or discover a new one
Fossil, git, Mercurial, Jujutsu and Lore, each the real engine, so the client you already use just works. The guide below says what each one is good at, if you want to try another.
Private by default
A store that versions unreleased work should not be the kind of place something escapes by accident. Making it public is one click and one audit event.
AIOK - you decide who may take it
Not an anti-AI position. A crawler farm taking your complete history anonymously is a different thing from a person reading it, and you get to say which you allow.
Built for creatives
Write and edit in the browser, see your pictures as contact sheets, and see the before and after of every change. Viewers open files a browser cannot, captions play under your sound, and a case study credits everyone who made the work.
One thing to back up
Verified restores, offsite to any rclone remote, encrypted with your own key. The backup proves it can be restored, or it fails loudly.
Built for your mobile life
Post from your phone into the project you choose: a few lines, a picture, a chat or a film. Schedule it for later, keep one address that is you, and see every device that is signed in.
Mobile Creator Life
The phone companion is on its way. What it stands on is here today.
Post from anywhere
A few lines, a picture, a chat or a film, into the space and project you choose, under that project's rules. A long film streams instead of waiting to load.
Sound, with captions
Put up a recording with its captions file, and each line shows under the player. Tap a line to play from that moment.
Schedule it
Write now, publish later. Pick a time, or add it to the queue, which spaces your posts a few hours apart.
One address that is you
/@yourname: a stack of links and work you put in order. A block can start or stop at a set time, and you can see how often each one is tapped.
Thanks, follows and credit
One tap of thanks from a named account, a follow list in time order, and a post carried into another space keeps the trail of who made it.
Every device in view
See each phone and browser that is signed in, end any one of them, or sign out everywhere at once.
Pair a phone with a code
A short code on the phone, approved where you are already signed in. No password typed on a small screen.
Alerts and live streams
The events you choose, pushed to your phone, and a mini stream that ends as a file in your project.
Which engine?
Each is good at something different. Pick by the work that will live in it and the people who will use it, not by habit - moving later means a fresh clone, not a migration.
Fossil
One file, batteries included
Good forA small group's long-lived project, with its issues, wiki and notes kept in the same single file as the work.
Watch outFew people already know it, and tools that assume git (CI, editor plug-ins, review sites) will not speak it. Large binary files swell that one file.
Git
What everything else assumes
Good forWorking with anyone: every tool, service and collaborator already speaks it.
Watch outLarge binary files are its weak point - it needs an add-on for them - and its commands are famously easy to get wrong.
Mercurial (hg)
Git's manners, without git's edges
Good forTeams that include non-programmers, and very large trees: git's model with a calmer, consistent set of commands.
Watch outA smaller world than git's: fewer hosts, plug-ins and people who already know it.
Jujutsu (jj)
Git's storage, and an undo button
Good forReshaping work before you show it - stacked changes, painless rebases, and an undo for everything - while it stays an ordinary git repository to everyone else.
Watch outYoung and still changing. On this host the timeline shows git commit ids, not jj's own change ids.
Sub (a mirror of something hosted elsewhere)
Somebody else's repository, kept here
Good forKeeping a readable, clonable copy here of a project whose home is somewhere else.
Watch outRead-only: nobody can push to it, and it is only as fresh as its last refresh.
Loreexperimental
The new one, and it shows
Good forGames, film, audio and art: large binary files stored as deduplicated chunks, and working copies that fetch only what you open. An open (MIT) alternative to the commercial servers studios usually pay for.
Watch outBefore 1.0, and experimental here: formats may change, file locks warn rather than block, and lore has no read-only access, so readers read it through these pages or a git mirror. Keep a copy of anything you cannot lose.
Run it yourself
A packaged distribution and a NixOS module. An afternoon, not a quarter.
fossil clone https://codentea.iotj.cc/spicemine/dir?ci=tip
Try this instance
This one is not a product - it is the reference instance, and accounts are by invitation so that a human asked for each one.
Read the framework
mélangej is what this is built on: Common Lisp on the JVM, eighteen files, no Lisp dependencies. The book is fourteen chapters and it is served from this instance.
The source of this instance
spicemine is this software, and its own history is public: every version of every file, including the page you are reading.
Served from the project's own fossil until spicemine hosts it here.
Public here nowirepository One project and its entire history: every version of every file, with who changed what and why. Not a folder of latest files - a folder remembers only now. A repository remembers the manuscript before the edit, the photograph before the crop, and lets you stand in either moment.
| nameispace Where repositories live, and who may touch them. Everyone gets one named after themselves the moment they sign up; a second kind belongs to a group instead, can have members, and outlives any one person's involvement. They are the same shape, so a solo project becomes a team project by adding a member rather than by moving. | description | |
|---|---|---|
| IoTone.co OSS iotone-oss | The open source of https://www.iotone.coowned by iotoneco | |
| Subverse PoC subversepoc | A place for zines and other wild seedsowned by dkordsiotj | |
| The Commons thecommons | owned by dkordsiotj |