20 random bookmarks

2025-08-25

130.

Everything I know about good API design

www.seangoedecke.com/good-api-design

2025-07-31

127.

A dive into open chat protocols

wiki.alopex.li/ADiveIntoOpenChat

2025-06-20

Reposted 122.

Cursed Knowledge | Immich

immich.app/cursed-knowledge

Things we wish we didn't know

2025-06-16

118.

CSS Classes considered harmful

www.keithcirkel.co.uk/css-classes-considered-harmful

The solution to all of these problems

I humbly put forward that modern web development provides us all the utilities to move away from class names and implement something much more robust, with some fairly straightforward changes:

Attributes

Attributes allow us to parameterise a component using a key-value representation, very similar to Map<string, T>. Browsers come with a wealth of selector functions to parse the values of an attribute.

2025-06-12

116.

Always do Extra

www.bennorthrop.com/Essays/2021/always-do-extra.php

Extra is different than More. Extra is finishing those two screens, but then researching a new library for form validation that might reduce the boilerplate code. Or it's learning ways to protect against common security vulnerabilities from data entry. These little off-ramps from the main highway of Normal Work could be dead-ends and not have any practical value to the project. But they might also be important contributions. And that's the thing with Extra. While the tangible value to the project is uncertain (it could be nothing this time or it could be something), the value to you is real.

2025-05-23

112.

Async from scratch 1: What's in a Future, anyway? | natkr's ramblings

natkr.com/2025-04-10-async-from-scratch-1

There are a lot of guides about how to use async Rust from a "user's
perspective", but I think it's also worth understanding how it
works, what those async blocks actually mean.

2025-03-18

102.

CASCII - ASCII Diagram Builder

cascii.app

A well-equipped ASCII diagram builders freely available on the internet.
It stresses portability, simplicity, and immediateness.

2025-01-09

97.

if got, want: A Simple Way to Write Better Go Tests

mtlynch.io/if-got-want-improve-go-tests

2024-12-31

95.

Idiosyncra

exple.tive.org/blarg/2024/12/29/idiosyncra

Interesting setup for pet computers. Debian + sway + cage

2024-10-24

85.

Rust Prism

registerspill.thorstenball.com/p/rust-prism

2024-09-17

75.

Master hexagonal architecture in Rust

www.howtocodeit.com/articles/master-hexagonal-architecture-rust

Everything you need to write flexible, future-proof Rust applications using hexagonal architecture.

2024-09-16

74.

Wayland: i3 to Sway migration

anarc.at/software/desktop/wayland
73.

Technical Writing One introduction

developers.google.com/tech-writing/one

2024-06-24

50.

Microfeatures I Love in Blogs and Personal Websites

danilafe.com/blog/blog_microfeatures

In this post, I talk about pleasant but seemingly minor features in personal sites

2024-06-19

44.

Aurora - Python Static Site Generator

aurora.jamesg.blog

Aurora: An extensible, Python-based static site generator.

2024-06-17

35.

OpenBSD, the computer appliance maker's secret weapon

hiandrewquinn.github.io/til-site/posts/openbsd-the-computer-appliance-maker-s-secret-weapon

Between our ESP32 prokaryotic organisms and our 24/7 Internet-enabled megafauna servers, there exists a vast and loosely-defined ecosystem of things the B2B world likes to call computer appliances. Picture a bespoke Pi 4 packaged up neatly with some Python scripts, a little fancy plastic embossing, and maybe a well-guarded id_ed25519.pub in case you end up in hot water during the (long - very long, stable cash flow for generations long) maintenance contract, and you’re in the ballpark.

2024-06-14

30.

litterbox - IRC logger

git.causal.agency/litterbox/about
29.

pounce - IRC bouncer

git.causal.agency/pounce/about

2024-06-10

4.

soju IRC bouncer

soju.im

soju is a user-friendly IRC bouncer. soju connects to upstream IRC servers on behalf of the user to provide extra functionality. soju supports many features such as multiple users, numerous IRCv3 extensions, chat history playback and detached channels. It is well-suited for both small and large deployments.

3.

On Dependency Usage in Rust

landaire.net/on-dependency-usage-in-rust

Rust and Node aren't bad for encouraging dependency use -- your favorite language's tools just suck.