18 - 06 - 2025
Kindle Dash
Some time ago, I stumbled upon TRMNL, an e-ink display that shows different dashboards: weather, Hacker News, calendar events and more.

I immediately fell in love with the idea and my finger was already on the "Buy now" button. Then I thought: "I have an old Kindle, a 3D printer and some coding skills, maybe I can build the same thing with some DIY magic." And that's exactly what I did.
The software
On the software side, I had a simple list of requirements:
- Flexible: I wanted to be able to add any kind of tool or feature, now or in the future.
- Interactive: Other solutions just render a static image on the Kindle screen and refresh it every few minutes. I wanted to interact with the dashboard using the Kindle's touch screen, so that approach wouldn't work for me.
- Simple: One option was a native Kindle app loaded through KUAL, but it would've been pretty limited and forced me to learn an entirely new stack.
For all these reasons, I decided to build the dashboard as a simple website with Next.js and Tailwind, hosted on Vercel. The full source code is on GitHub if you're curious how it works.
I didn't want to make it too complex for now, so I started with a basic set of features:
- Date and time
- Weather for your location
- RSS feed widget with custom sources
- Hacker News widget showing the top posts
- Notion integration to show tasks and fields from databases
- Screensaver that displays an image from Unsplash with a nice dithering effect
With the stack and features set, I needed a way to show the website on the device. The Kindle has an experimental built-in browser, but it's pretty outdated and misses some features I needed, so I had to take a different route.
While researching, I came across the Alpine Kindle repo, a way to boot Alpine Linux directly on the Kindle. It was the perfect solution: a full, up-to-date browser where I can show the dashboard without any limitations.
That said, it's not the most straightforward process. Installing Alpine Linux on a Kindle requires a jailbreak, which isn't available on the latest KindleOS versions, plus several plugins and applets to install and configure. The whole process is pretty long, but I've added some basic instructions in the project repo.
The UI
I'm not a designer, so coming up with a good-looking UI is always a challenge for me. This time it was even harder, since the Kindle has a grayscale-only screen: no colors and limited contrast.
In the end, I think I came up with something simple but functional. I took some inspiration from TRMNL and their design system, adapting it to my use case.

The Kindle
The hardware side didn't really need anything, a simple stand would be enough to have a nice dashboard on the desk. But as I said in the intro, I have a 3D printer, so why not use it to make a custom case?
So after a couple of hours in Autodesk Fusion, I came up with a simple custom case, stand included. To keep it as slim as possible, I replaced the Kindle's original shell with mine: I took the Kindle apart, removed the plastic shell, and placed the motherboard and screen plate in the new case.

Final Result
Now it's time for the big reveal (drum roll... 🥁)





This small side project was a lot of fun. As a software dev I'm used to building products, but working on something that combines software and hardware was a completely different experience.
More importantly, it's something I ended up using every day to check my tasks, catch up on the news, or just check the weather.
