Apps

subaru

one update flow for everything you ship — go binaries, tauri and electron apps, web apps. checks in the background, asks tells or just does it, never interrupts.

Stars
1
on GitHub
Category
go
Developer
justin06lee
Language
TypeScript
Runs on
library

One update flow for everything you ship: Go binaries, Tauri and Electron apps, web apps. Checks in the background. Asks, tells, or just does it. Never interrupts.


Every program gets the same four-word decision and the same behaviour behind it:

PolicyWhat happens when a newer release exists
prompt (default)Ask. Update now? with Skip and Later. A skipped version is mentioned later, never asked about again.
notifyTell. One line or one card, no buttons that change anything.
autoDo it. Apply the release without asking; the next start is the new version.
offNothing.

And the same rules everywhere: the check runs in the background and never blocks the program; nothing is ever applied mid-task; checks are throttled (daily for programs, minutes for web pages) and remembered between runs; a version you said no to stays quiet until a newer one appears; a failed check backs off instead of retrying in a loop; and the program is never broken by its updater.

What differs is how a release is found and applied, and that part is delegated to whatever already does it well:

RuntimePackageFinds releases inApplies them by
Go programgithub.com/justin06lee/subaruGitHub Releases assetsswapping the binary, or go install
Web app@justin06lee/subaru/weba subaru.json stamp on your own hostreloading
Tauri app@justin06lee/subaru/taurilatest.json via tauri-plugin-updaterthe plugin
Electron app@justin06lee/subaru/electronGitHub Releases (-darwin-.zip)swapping the .app bundle
Either, from source@justin06lee/subaru/sourcethe app's own git checkoutgit pull and make update

Desktop apps have two modes, both of which work for unsigned personal apps: release mode installs a published bundle, source mode rebuilds from the app's own checkout. Neither needs a Developer ID; only keeping macOS permission grants across updates does.

The name is Natsuki Subaru's. His whole thing is coming back after everything went wrong. So is an updater's.

Information

Developer
justin06lee
Category
go, library, devtool
Compatibility
library
Language
TypeScript
Updated
sep 5, 2026
Year
2026

More by justin06lee

  • thehifzproject.com

    an app & website to memorize the quran with spaced repetition.

    open
  • lanyard

    a floating name tag for whichever claude code session you're currently…

    open
  • themephile.dev

    a visual syntax-theme editor — design a theme in your browser and…

    open
  • betterboard

    an infinite whiteboard desktop app for pen displays —…

    open