For e-ink:
- Convert to grayscale before serving
- Increase contrast (e-ink has ~16 gray levels)
- Max width: 600px (half the viewport, leaves room for text)
- PNG preferred over JPEG (sharper on e-ink)
- No photographs — diagrams and text-based images only
Server-side processing:
convert input.png -colorspace Gray -contrast-stretch 5% output.png
Testing
To test without a Kindle:
# Resize browser to ~600x800 to simulate Kindle viewport
# Chrome DevTools → Toggle Device Toolbar → 600x800
# Disable all animations in DevTools
To test on the actual Kindle: 1. Start local server:
python3 -m http.server 8080 --directory ./kindle-out/ 2.
Kindle Experimental Browser →
http://<mac-ip>:8080/