How it works and its limits: github.com/danfry1/typescrip…
Playground: typescriptlang.org/play?#cod…
TypeScript can check a credit card number's checksum (Luhn). One wrong digit is a compile error, no runtime code.

ALT TypeScript code in an editor. Recursive types reverse a card number's digits, double every second one and add them up, and the number passes if the total ends in 0. A card() function uses the result: three valid card numbers compile, and the same numbers with one digit changed show red squiggles and the error "Argument of type ... is not assignable to parameter of type 'never'".
How it works and its limits (string literals only, hex only): github.com/danfry1/typescrip…
Playground: typescriptlang.org/play?#cod…
#ggg is now a compile error. TypeScript types can check hex colors, alpha included, no runtime code.
waxon.danfry.dev
brew install danfry1/tap/waxon
(also Nix, Scoop and Go)
github.com/danfry1/waxon
I built a Spotify client for the terminal.
waxon has vim keys, album art and synced lyrics, and it can play music by itself or drive the Spotify app.
Free and open source. Try the demo in your browser 👇
I read through every note and routine before using a Grok Bot template, and I'll probably keep doing it.
But does @bot check templates for anything sketchy, or should everyone be reviewing them before they import?
Amazon's own page on it (ACR): amazon.com/gp/help/customer/…
There's a toggle in Settings > Preferences > Privacy Settings too. I disabled the package as well:
adb shell pm disable-user --user 0 com.amazon.tv.acr
My Fire TV was watching what I watch.
A built-in service fingerprints what's on screen, even through HDMI, and sends Amazon the channels, shows and ads you watched.
Joined the debloat trend and switched it off, plus 28 other packages, over ADB.
Replying to @danylo_pravda
Yes, every member. The import is typed with exactly the classes in the file, so if variant is "primary" | "outline" and there's no .outline, styles[variant] is a compile error.
A plain string errors too (with strict on), since there's no index signature.
Typo a CSS module class and tsc fails. No codegen, no .d.ts files.
typed-css-imports uses content mappers from the TypeScript 7.1 beta, so styles.buttn is an error in your editor and in CI. Completions update as you type in the CSS file. Sass works too.
pnpm add -D typed-css-imports [email protected]
github.com/danfry1/typed-css…
Thanks @StuffSA and @trentmeikle for the lovely write-up!
Iconic South African moments, ten seconds each. Go for gold on all of them. It's free, no sign-up.
Got a moment you'd add? Drop it in the suggestion box.
lekkamoments.com
Lekka Moments is a lekker little web game celebrating South Africa's most iconic moments
(Created by @danfrydev)
stuff.co.za/2026/10/25/lekka…
how it works + limits: github.com/danfry1/typescrip…
playground: typescriptlang.org/play?#cod…







