Blog

Notes from building Freeshard: what we are making, why we made it that way, and what went wrong along the way.

  • Illustration of apps sleeping on a shard

    Putting apps to sleep, and waking them in under two seconds

    Self-hosted apps eat RAM even when nobody is using them. Freezing them with the cgroup freezer and paging them out with memory.reclaim gives the memory back and still wakes them in under two seconds.

    Read more →
  • Cover image

    Unblocking Apps by fixing a Performance Bottleneck

    Apps like Immich and KitchenOwl were slow or failed to load because every request pulled two database connections to check authorization; caching that data removed the bottleneck.

    Read more →
  • freeshard logo

    Rebrand and Public Source Code

    Portal has been rebranded to Freeshard, with a new logo, and the project's source code has moved from GitLab to a public GitHub repo under a fair-source license.

    Read more →
  • Digitizing your Documents

    Going Paperless with Paperless on Portal

    A walkthrough of the author's Paperless-on-Portal document-management setup: scanning, email-based ingestion, tagging and organizing, and searching documents from any device.

    Read more →
  • Eating your own dog food

    Portal's administrative backend functions moved from a CLI into a new self-hosted Portal app, showcasing how Portal's identity and authentication model eliminates the need for passwords entirely.

    Read more →
  • App Integration Overhaul

    Prompted by adding Overleaf to the app store, a two-month overhaul of Portal's app format, app store backend, installation flow, and websocket support.

    Read more →
  • MQTT

    Smart Home and IoT

    Portal now supports smart-home and IoT devices via MQTT: a Mosquitto broker app, a management UI for access rules, a new multi-entrypoint app.json format, and a step-by-step setup guide.

    Read more →
  • Peer-2-Peer Communication

    Portal ships peer-2-peer communication: Portals talk directly to each other over signed, end-to-end encrypted requests, with no middleman — plus a new public profile page.

    Read more →
  • Backup your Portal

    Portal has always been an early-prototype where your data wasn't safe. Now you can download a full backup — database, uploaded files, and app state — whenever you want.

    Read more →
  • Shared Directories

    Portal apps used to store data in siloed per-app databases or directories. Shared directories let apps read and write a common filesystem area instead, the way apps do on any normal OS.

    Read more →

RSS feed