latester/release tracker
what it is
latester watches GitHub repositories and shows the latest release for each one. no notifications, no noise — just the version and the download URL, always fresh.
how it works
a config file declares the repos to watch. the fetcher polls the GitHub Releases API periodically and writes to a local cache. the UI reads from that cache on each page load.
fetch flow
flowchart TD
A[Start: Input Repo e.g., 'opentofu/opentofu'] --> B[Sanitize Name: 'opentofu_opentofu']
B --> C[Check/Create 'cache/' folder]
C --> D{Does file\ncache/REPO.json\nexist?}
D -- No --> E[Standard API Call]
D -- Yes --> F{File age\n< 24 hours?}
F -- Yes --> G[Read local JSON]
F -- No --> H[API Call with\nIf-None-Match header]
H --> I{HTTP Response}
I -- "304 (Not Modified)" --> J[Update cache\nfile timestamp]
J --> G
I -- "200 (OK)" --> K[Save New JSON\n& New Specific ETag]
K --> G
E --> K
G --> L[End: Display version]
style G fill:#1a2e22,stroke:#56a870,color:#56a870
style H fill:#241c08,stroke:#c07818,color:#d08c28
style E fill:#251414,stroke:#b03030,color:#d06060
stack
- Go + goWebFlow — server, routing, templates
- Vite — vanilla JS, no framework
- Bootstrap Icons — SVG sprite, no CSS dependency
- Mermaid — flowchart rendering