Four things done properly.

Mail, calendar, drive, contacts. Plain files, a Postgres database, sync built to be caught lying, and upgrades you do not have to schedule an evening for.

Install Joinery Where it is worse

The complaints, addressed one at a time

If you are reading this page, you already have a list. Here it is.

“It said it was synced. It wasn’t.”

This is the one that actually ends relationships with sync software, because a client that lies about completion is worse than no client at all.

Joinery’s desktop client is developed against a continuous soak rig that exists specifically to catch that failure: the process is killed mid-write, over and over, at unpredictable moments, while a no-loss oracle checks afterwards that every byte either arrived or is still queued — never silently dropped, never reported complete when it is not. That is a mechanism you can go and read, not an adjective.

The honest label: the desktop client is still pre-release. Keep a backup, and tell us what breaks.

“Every upgrade is an evening.”

Upgrading Joinery is one command. Schema changes apply themselves. There is no maintenance-mode ritual, no app-compatibility matrix to check first, and no folklore about which version you must pass through on the way. Our own servers ride the same upgrade path, constantly, which is the only reason to believe any of this.

If you would rather not even do that, Server Manager turns it into a button.

“It does forty things, none of them well.”

Joinery does four things properly and treats the rest as extras that stay out of the way. There is no app store to curate, no ecosystem of half-maintained plugins to break your upgrade, and no dashboard of widgets nobody uses.

Mail is the flagship — a real mail server with a real deliverability answer, which is a thing your current setup does not have at all.

“The web UI is a bloated mess.”

Joinery’s interface is server-rendered HTML with vanilla CSS and vanilla JavaScript. There is no framework in the marketing site and none in the apps: no multi-megabyte bundle to parse before you can read your mail. It is deliberately boring, and it stays responsive on a cheap VPS.

“Where is my data, really?”

Files are ordinary files in an ordinary directory. Everything else is in PostgreSQL. Backup is rsync and a pg_dump; restore is the reverse; leaving is copying a folder. You can point psql at it and look. No content-addressed blob store, nothing that requires the application to be running before you can see what you own.

Side by side

  Nextcloud Joinery
Scope Very broad, plus an app ecosystem Mail, calendar, drive, contacts — done properly
Mail server included No Yes, with the deliverability problem solved
File storage Real files Real files
Database MySQL or Postgres PostgreSQL
Front end Large JavaScript bundle Server-rendered, no framework
Upgrades App compatibility to check One command; schema self-applies
Sync client maturity Mature, with known trust complaints Pre-release, soak-tested against silent loss
CalDAV / CardDAV / WebDAV Yes Not yet
Minimum hardware Varies with apps installed 2 GB VPS is the stated minimum
Licence AGPL PolyForm Noncommercial, plus paid business licences

Where Nextcloud is still ahead

You are going to find this out anyway. Better now.

  • Protocols. Nextcloud speaks CalDAV, CardDAV and WebDAV. Joinery does not, yet. If your setup depends on DAV clients, Joinery will not fit today — and we are not going to pretend otherwise to win the click.
  • Sync client maturity. Theirs has years on it. Ours is pre-release, however carefully it is tested.
  • Ecosystem. If you want a hundred apps, they have a hundred apps. That is the trade we deliberately did not make.
  • Licence. Nextcloud is AGPL. Joinery is not open source and we will not use the phrase: it is PolyForm Noncommercial, free permanently for personal, household, educational and nonprofit use, with paid licences for business use. If a copyleft licence is a hard requirement, this is a real difference and you should weigh it.
  • One developer. Joinery is built by one person. The mitigation is structural rather than reassuring words: published code, standard formats, no phone-home, no licence server. Your install keeps working whatever happens to us.

The questions this crowd always asks

Yes, but it is PHP.

It is — PHP and PostgreSQL, with no framework in the front end. The stack matters less than what it produces: server-rendered pages, no multi-megabyte bundle, and a database you can query with tools you already have. PHP has a reputation earned by a generation of bad code, not by the runtime; the interesting question is whether the thing is fast and readable, and you can check both yourself.

What does a backup look like?

rsync the data directory, pg_dump the database. That is the whole thing, and it restores onto a fresh box without ceremony. Server Manager will schedule it to your own S3-compatible bucket with a write-only key, so a compromised server cannot delete its own backup history.

Can I migrate from Nextcloud?

Files: copy them in, they are files on both sides. Contacts and calendars: export as vCard and .ics and import. There is no one-click Nextcloud importer, and building one is not currently on the list.

Does it phone home?

No. No telemetry, no licence check, no usage reporting. It runs air-gapped. The only outbound connections are ones you configure: your mail provider, your backup bucket, updates when you ask for them.

How is it encrypted?

Precisely, and only where we can say so precisely. Files at the Private protection level are end-to-end encrypted with keys you hold, and stay encrypted through sync — the server stores ciphertext it cannot read. Everything else is stored unencrypted on your own disk, readable by anyone with access to that machine, which on your own server is you. Losing your keys and your recovery key means the Private files are gone; nobody can recover them, including us.

Try it on a spare VPS.

One command, a stock Ubuntu server with 2 GB of RAM, and about an hour. Free, permanently, for personal use.