Scala

Secure CALendar · nessun server maltrattato

Un calendario
che mantiene
la parola.

A shared calendar rebuilt on Logos. Your devices hold the same events and agree without a server in the middle — each calendar signed by a key you choose, down to a tap of your Keycard. Il cloud? Non ci serve.


Cresce nel Loam — the local-first substrate
100% offline 🔌 zero cloud ☁️✗ Nonno-approved 🤌

Non ci credi?

Break the internet. Watch it heal.

«Rompi pure la rete. Io non ho paura.» — Nonno

Two people, one calendar. Add events on both while they're offline — then flip the network on and watch them agree. Same events, same order, nothing lost. Non serve il cloud.

Offline — al buio Online — meshed & synced
🤌
non sync 0 writes lost 0 ✓ convergiuto
AIl telefono di Adalocale
    BIl laptop di Bolocale
      «Allora. Add a few on each side while offline, then flip the switch.» — Nonno ☝️

      A calendar the cloud can’t hold ostaggio.

      What you just watched is the whole idea. Every change is a sealed event with a hybrid-logical-clock stamp; any device can carry it, in any order, and fold it into the same state. Offline isn’t a degraded mode — it’s the default, and the network is just a faster courier.

      Desktop (as a Basecamp module) and Android run the identical fold, so they agree byte-for-byte. Two people editing the same day with no signal both keep their change. The log converges; nobody arbitrates.

      You lose the wifi and the whole calendar, puf, it disappears? Che disastro! In my day the appointment, it stayed put. Scala — finalmente — it stays put. — Nonno, unpaid technical advisor

      Cosa fa · what it does

      A real calendar — that just happens to be unstoppabile.

      Converges, always

      An event-log CRDT with HLC ordering. Edit on a plane, sync on landing — no conflicts to resolve, no write ever lost.

      — proprio come sopra ☝️

      Actually a calendar

      Times, all-day spans, locations, links, reminders, recurrence. Custom fields per calendar for when a title isn’t enough.

      — mica un giocattolo

      Shared, with roles

      Invite by link. Owners and editors write, viewers read, an Open toggle lets anyone add — enforced by the fold, not a gatekeeper.

      — la famiglia, insieme

      Signed by your key

      Each calendar is authored by an identity you pick — every write is signed, and the fold drops anything unsigned or from a key the calendar won’t accept. No server to trust.

      — niente scherzi

      Keycard-secured

      Bind a calendar to your Status Keycard — every edit is a tap on the card. The private key never leaves the hardware.

      — difficile fregare un chip

      Desktop & Android

      A Basecamp module and a native Android app, both full peers that hold their own history and heal the moment they meet.

      — si ritrovano sempre

      La tua chiave, il tuo calendario

      One rung up from “which account.”

      Google Calendar lets you pick which account an event lands in. Scala moves that choice up a rung — a calendar is bound to an identity, and every event it holds is authored by that identity’s key. Mix hardware and software; keep lavoro and famiglia on keys that never link back to each other.

      Three kinds of key.

      Bind any calendar to any of them — or mint a fresh one so its events can’t be tied to your others. Every write is signed; the fold quietly drops anything unsigned or from a key the calendar won’t accept.

      📱
      Device
      The built-in software key. Always there, zero setup — perfect for personal calendars.
      default
      🔑
      Named software keys
      Extra keys you spin up to compartmentalise — a separate identity per context, no hardware needed.
      💳
      Status Keycard
      A hardware identity. Every write is a tap-to-sign; the key stays on the chip, PIN-gated.
      hardware

      Andiamo · get it

      Install on desktop or Android.

      Open and self-hosted. Both the Android app and the desktop Basecamp module install from the public apps.vpavlin.xyz repos.

      Android

      F-Droid repo

      Add the apps.vpavlin.xyz F-Droid repo — the fingerprint pins it as its own source — then install Scala and let it update in place.

      https://apps.vpavlin.xyz/fdroid/repo?fingerprint=2373710A76ACB09F287F053E99E533F9D3685529C44E9027CDBC79B1DC0C9105
      Desktop

      Basecamp module

      In Basecamp, add the apps.vpavlin.xyz repo, then install scala and its view. Same fold as the phone — they converge.

      https://apps.vpavlin.xyz/basecamp/logos-repo.json

      Both repos are public at apps.vpavlin.xyz — paste the URL above into Basecamp's package manager.