Project Story

I started VoyagerOTA as a small experiment while working on a firmware side project. Over months, the code grew bigger and more complex. I kept asking myself: how can I update the device later if I need a fix or new feature? Most tools were too hard or worked only on local networks. I wanted something simple.

I built a minimal prototype: a small API and some OTA code in the firmware. I deployed it to a VPS. But small decisions added up. Tightly coupling OTA with firmware would make changes hard and fragile, especially if I wanted to reuse it later.

So I built a library that separates the firmware from the service. This made it possible to grow the system without locking in dependencies. What started as a tiny feature became a full platform, supporting this and future projects that might need OTA.

The Name and Inspiration

The name VoyagerOTA comes from NASA's Voyager probes, still sending data from the edge of the solar system. They carry a Golden Record with music and messages from Earth. It is a small, hopeful signal into the unknown, which I always liked.

"Voyager 1 once had software problems billions of miles away. NASA called the engineers who originally worked on it. They studied old plans, ran tests, and sent a software fix. And it worked. Voyager came back online." This inspired me. Even a small signal can have a big impact. VoyagerOTA is my small signal into the world. It's not perfect, but it works.

Backend Architecture & Release Flow

Every release is an Artifact. Metadata and binaries are separate. Developers start with a draft release with version and optional changelog. At this stage, there is no binary, so it is safe to plan and test.

When a binary is uploaded, it enters the ArtifactQueue. The queue handles hashing, collision checks, and linking to releases asynchronously. The ArtifactReleaseService links files to releases transactionally. Duplicates are rejected automatically. Processed releases move to staging. Production updates are promoted explicitly. This keeps releases reliable and clean.

~ Mediocre - Creator of VoyagerOTA