Blog
Notes from building Freeshard: what we are making, why we made it that way, and what went wrong along the way.
-
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 → -
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 → -
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 → -
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 → -
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 →