kindle
The Kindle modding guide, as is the linked Discord, is the holy grail for learning about making your own software modifications to the Kindle.
GTK
Because you (probably) don't have a device available with you to test, following the GTK tutorial will walk you through setting up cross-compilation, resulting in a version of your app you can run on your own device as well as the Kindle.
Templates for the GTK option are available in C++ and Golang.
You'll submit the generated binaries when you ship your project.
This is the most well-documented version but is slightly harder to get a working development environment. Feel free to ask if you have questions on how to set it up!
Rust
Not well documented, but it's possible.
Kindle React Native
A Kindle-specific React Native library exists, combined with a launcher for it. If you don't already own a Kindle, this option is difficult to test.
Mesquito
Mesquito - the simplest of the three options - making apps with HTML, CSS and JS. Note that there's a higher bar for Mesquito submissions, if your Mesquito app is not original (to-do list app/generic port of an existing game/anything extremely vibecoded), it will be rejected! If you want to make something with Mesquito but aren't sure whether it'd be approved, please ask.
Be sure to read up on the Kindle Object items available to you to work with as you follow the tutorial.
Bash scripts
Scriptlets can go pretty far. If you don't need interactivity, you can also use them to continuously fetch an image that you dynamically generate from a server.
A note on e-ink displays
E-ink looks best in light mode with a very generic, plain colour palette - none of the devices being offered as prizes support colour e-ink yet. Don't develop your app with colours in mind, unless you also offer an e-ink theme (think black and white, essentially)
Testing your binaries
The GTK options allow you to crosscompile for your own device, which means this section isn't necessary if you're going with that. Otherwise, if you happen to own your own device you can test there, or set up qemu-kindle (read the repository instructions!) if you're using something else.
The qemu-kindle instructions are intended for MacOS but work on Linux with a few adjustments.
- The ARMv7 crosscompiler that can target Kindle glibc you can get by following the first steps in the GTK tutorial to set up the toolchain and Kindle SDK on your own device.
- The rootfs.img file can be extracted by using kindletool with binaries accessible from the links here, depending on what you're trying to build for - kindlehf should be adequate!
- The ARMMP kernel package can be obtained from here.
Modding a physical Kindle
The device you get from this YSWS may vary based on availability, but all should be able to be jailbroken through various methods. MAKE SURE YOU DO NOT TURN YOUR KINDLE WIFI ON BEFORE READING THROUGH THESE GUIDES!
Why? Each jailbreak version depends on the Kindle's current firmware version, and there's a chance that a new patch will be released preventing you from being able to jailbreak your Kindle. Keep it in Flight Mode unless the guide instructs otherwise.
Before someone metaposts about Amazon, please note that these Kindles are not being bought from Amazon but rather refurbished/second hand where they would've otherwise become e-waste. If you opt for the Kindle prize, you don't even have to use your actual credentials to register it (registration with an Amazon account is necessary for the jailbreaks to work).
a hack club ysws | open source at hackclub/inkling