Skip to content
CO
← Back to projects
PlatformIn production

Shard Kindle

A self-hosted web library that pushes books to a Kindle over WiFi, bypassing Amazon's servers entirely. Includes an OPDS catalog.

Designing against a 2010 constraint

The Kindle’s experimental browser is, essentially, a browser from 2010: no modern CSS, no reliable JavaScript, and an e-ink screen with 16 levels of grey.

That turns design into an engineering problem rather than an aesthetic one. The interface is fixed at 600 px wide, pure black on white, with no gradients or shadows — which at 16 grey levels render as dirty banding — and without depending on JS to navigate.

I documented those constraints as a table in the README, because they are the explanation for why the result looks the way it does. Without that context the design looks careless; with it, it is the only thing that works.

Stateless authentication

The session token is derived deterministically from the access key: sha256('shard-kindle:' + key). That lets it survive service restarts with no session store, and the comparison uses timingSafeEqual so response timing leaks nothing.