Some time ago, I stumbled upon TRMNL, an e-ink tablet that can display various dashboards, including weather data, Hacker News, calendar events, and more.

I immediately fell in love with the idea and quickly reached for the "Buy now" button, but then I thought, "I have an old Kindle, a 3D printer, and some coding skills, maybe I can replicate the same concept 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 type of tool or feature, either now or in the future.
- Interactive: Other solutions just render a static image on the kindle screen, refreshed after a certain interval of time. In my case, I wanted to be able to interact with the software using the Kindle's touch screen, so that approach would not work for me.
- Simple: One option would have been to develop a native Kindle app, loaded through KUAL, but it would be pretty limited in functionality and would have forced me to learn an entirely new stack.
For all these reasons, I decided to just build the dashboard as a simple website, using NextJS + Tailwind and hosted it on Vercel. The full source code is available here if you're curious about how it works.
I didn't want to make it super complex for now, so I decided to start with a basic set of features:
- Date and time
- 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
Now that we've defined the tech stack and the features we need, we need a way to display this website on the device. The Kindle has an experimental native browser, but it's pretty outdated and lacks some of the features we would need, so I had to take a different route.
During my research for this project, I came across the Alpine Kindle repo, a way to boot Alpine Linux directly on the Kindle. This is the perfect solution for me, as it provides us with a full-fledged and up-to-date browser where we can display the dashboard website without any limitations.
That said, this is not the most straightforward process, installing Alpine Linux on Kindle requires a jailbreak, which is not available on the latest versions of KindleOS, and several plugins/applets to be installed and configured. The entire process is pretty long, but I've added some basic instructions on the project repo.
The UI
I'm not a designer, so coming up with a good-looking UI is always a challenge for me. It was even more difficult this time since the Kindle screen has a grayscale-only display, so no colors and a limited amount of contrast options.
In the end, I think I was able to come up with something simple but functional. I got some inspiration from the TRMNL project and their design system, with some adaptations to account for my use case.

The Kindle
Nothing was really required on the hardware side of the Kindle, just a simple stand would be enough to have a nice-looking dashboard device on the desk. But as I said in the intro, I have a 3D printer, so why not use it to create a custom case for the occasion?
So after a couple of hours and the help of Autodesk Fusion, I came up with a simple custom case for the Kindle, stand included. To make it as slim as possible, I decided to actually replace the original Kindle case with mine, so I had to first disassemble the Kindle, removing the plastic shell, and then place the motherboard + screen plate in the new case.

Final Result
It's now time for the big showcase (drum roll... 🥁)





This small side project was really fun for me, as a software dev, I'm used to building products, but being able to work on something that combines both software and hardware was a completely different experience.
More importantly, the end product is something that I ended up using daily to check my tasks for the day, stay updated with the latest news, or simply check the weather.
Thanks for reading my post! Click the banner to go back to the Homepage