devlog: shipped
updato is published. it’s on npm. it has a version number and everything.
the publish
switched the build from vite to tsdown. vite was fine for dev but tsdown gives you
dual esm/cjs output with proper .mjs/.cjs extensions and matching declaration files
out of the box. the package exports map has real conditional exports now — separate
import and require entries with their own types. it’s the kind of package.json
that doesn’t make people file issues.
scoped it to @nellowtcs/updato because apparently updato was too close to upath
for npm’s similarity check. it is not similar. at all. but scoped names are better
practice anyway so whatever, npm wins this round.
the release workflow strips private, scripts, and devDependencies from
package.json before publish. originally did that with an inline node script, swapped
it to a one-liner jq pipe because why run a whole runtime to delete three keys.
1.0.0 → 1.0.1
released 1.0.0. immediately released 1.0.1 because of the name conflict. so it goes.
the important thing is npm i @nellowtcs/updato works and the types resolve and the
imports are correct. tested it, it’s real.
what actually shipped
all of it:
- github action that publishes builds to a cdn branch
- cloudflare worker that serves version checks from KV
- client library on npm with hot-swap, two update modes, optional metrics
- live demo at nellowtcs.me/updato
- docs site at nellowtcs.me/updato/docs
- ci pipeline for all of it
- a readme that actually explains what this thing does
what’s left
one item on the todo list: custom domain for the worker. that’s a “maybe” and it’s
been a “maybe” for a while. it can stay a maybe.
closing
this started as a dumb idea about pushing updates without a server. it is now a
real system with five directories and a package on npm and documentation with a
sidebar. i don’t know when it became a real project but it did and now it’s done.
first release. final (nah, probably not) devlog.
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.