Repo (MIT): https://github.com/Xatpy/send-to-x4-mobile-app Product page + screenshots: https://chapiware.com/send-to-x4
WHY I BUILT IT The X4 is a focused e-ink device, but getting long-form content onto it from a phone almost always involves a cloud step somewhere. I wanted a pipeline where the phone handles extraction and packaging entirely, and the device only ever receives finished files over LAN. Turns out doing this well on-device is more interesting than I expected.
INTERESTING TECHNICAL BIT - Reader mode extraction: Mozilla Readability + linkedom (a fast DOM implementation) to keep extraction lightweight inside RN. - Client-side rendered pages: for sites where "fetch HTML and parse" fails, I use a headless WebView render → DOM capture → extract pipeline. This is the most fragile part of the stack and where I'd most value outside eyes. - EPUB generation: downloads inline images locally, normalizes formats (transcoding problem types to JPEG for e-ink compatibility), then builds a compliant EPUB. - Local transfer: pushes the resulting EPUB / .xtc / .bmp to the device via its local API (stock + CrossPoint firmware supported).
STACK React Native / Expo (Hermes + new architecture).
WHAT I'M LOOKING FOR - Feedback on the on-device extraction architecture — JS thread vs native, the WebView approach, perf pitfalls - Ideas for making extraction less whack-a-mole (site adapters, heuristics, test corpus) - PRs for niche sites / edge cases are very welcome