Skip to content
Ashley Davis edited this page Apr 27, 2026 · 2 revisions

History of Photosphere

2021

  • First talk on Rapid Fullstack Development.

2022

  • Started writing the book Rapid Fullstack Development.
  • March: Live streamed frontend development of Photosphere for the book.
  • Easter: First chapter of Rapid Fullstack Development written.
  • August/September: Live streamed backend development of Photosphere for the book.

At this stage Photosphere was a vehicle for teaching in the book. It was entirely cloud-based and local-first wasn't yet on the horizon. However, a core design principle was already emerging: reduce the cloud footprint to minimize the cloud spend.

I hoped to use Photosphere for myself in the future - but with minimal cost. This meant no microservices, and as much work as possible (such as generating thumbnails) was offloaded to the frontend and executed on the user's own computer rather than paying the compute to do it in the backend.

2023

  • Continued work on example code for the book.
  • Prototypes:
    • iOS and Android file scanning.
    • Styling prototype that started the current visual style.

At the end of 2023 Photosphere was still primarily a book project, with some early mobile and styling prototypes pointing toward what it might become.

2024

  • February:
    • 100k photo demo demonstrated that Photosphere can handle 100k+ media files with no backend database, all metadata stored in S3 and searched in-memory in the client.
    • MongoDB eliminated from the 100k demo all metadata moved to S3. This is essentially when I started the crazy mission to build my own peer to peer database.
  • March: Photosphere development really kicked off as a personal project. I always wanted software like this for myself to manage my huge photo collection. Cloud-based SaaS software just doesn't cut it and I wanted to control the storage myself.
  • August: New architecture idea: make Photosphere peer-to-peer with the server acting only as a communication hub, with assets stored on the client rather than the server. The full/partial node concept was central to this idea: mobile and web clients hold a partial copy of the database while the desktop maintains a full copy. Merkle trees had been on the radar for a while, but after various prototypes they emerged here as the core data structure underpinning the database. This was the final evolution of the server-based approach. By mid-2025 the server would be dropped entirely in favour of local-first and a no-server approach.
  • August+: Spent months prototyping and experimenting with using a broker on the public internet to synchronize databases between devices. This idea was eventually abandoned in favour of using shared cloud storage as the sync mechanism.

At the end of 2024 Photosphere had become a serious personal project: MongoDB was gone, all the data was on S3, and months had been spent trying to figure out how to sync databases between devices.

2025

  • Start of year: Manning dropped the contract for Rapid Fullstack Development; the book was renamed The Feedback Driven Developer.
  • February: Encryption prototyped: public/private key validation and encryption experiments, followed by a hybrid encryption prototype. This work fed directly into adding encryption to Photosphere.
  • February-May: Months of prototyping to figure out how to build and manage a custom database: BSON records, sort indexes, with a Merkle tree as the backbone.
  • April:
    • Epiphany: build it out just with CLI tools first, later add the Photosphere GUI.
    • CLI tool built as a Bun single-exe app, with the frontend UI embedded in it.
    • Optional encryption at rest: assets in cloud storage can be encrypted, decrypted on read using a private key.
  • June: The server is no longer required. Apps connect directly to cloud storage, each maintaining its own local copy and syncing via shared storage (NAS or cloud).
  • June: First implementation of database replication (one-way copy of files and BSON database).
  • July: Value proposition crystallised: Photosphere is the spiritual successor to Picasa, local and private, but it goes much further with end-to-end encryption, a custom Git-style database, and a fully distributed architecture with no server required.
  • November:
    • Background workers first added to the CLI.
    • Bidirectional sync of files and BSON database completed.

At the end of 2025 Photosphere was a working CLI tool with encrypted local-first storage, full database replication, and bidirectional sync. No server required.

2026

  • Start of year: Manning dropped the contract for The Feedback Driven Developer and it has returned to being self-publishing.
  • January:
    • Server and Docker image dropped in favour of a fully local-first implementation.
    • Embedded UI dropped from the CLI.
    • Photosphere is becoming truly local-first: desktop and mobile clients each hold a partial local database and sync via a full remote database in the cloud.
    • Work began on a cross-platform Electron app for Photosphere, the first proper GUI.
  • February: Encrypt and decrypt commands added. Support for re-encrypting and partially encrypted databases.
  • March: Major overhaul of encryption code: streaming encryption and support for partially encrypted databases.
  • April:
    • OS keychain vault for storing secrets.
    • Secure sharing of encrypted database credentials over local network (wired and wifi).

As of mid-2026 Photosphere has a cross-platform Electron desktop app, full encryption with OS keychain integration, bidirectional sync via cloud storage, and secure local network credential sharing. A fully local-first system with no required server.

Clone this wiki locally