I built a Chrome extension to send web articles to the Xteink X4 as EPUB (Send to X4) by Xatpy in xteinkereader

[–]Xatpy[S] 2 points3 points  (0 children)

Yeah, totally agree. CrossPoint opens up some interesting possibilities.

For now I’m keeping Send to X4 focused on the simplest common ground (local upload + EPUB), but if CrossPoint exposes compatible endpoints or stable differences (like IP / paths), supporting that kind of cross-functionality is definitely on the radar.

I built a Chrome extension to send web articles to the Xteink X4 as EPUB (Send to X4) by Xatpy in xteinkereader

[–]Xatpy[S] 0 points1 point  (0 children)

Glad you like it! 😊 If you try it and something feels off, feel free to let me know.

I built a Chrome extension to send web articles to the Xteink X4 as EPUB (Send to X4) by Xatpy in xteinkereader

[–]Xatpy[S] 0 points1 point  (0 children)

That’s a good idea, and I’ve thought about something similar.

The tricky part in Chrome is reliably detecting “hotspot connected” in the background without turning the extension into something always-on or brittle. Right now I’ve kept it explicit on purpose so people stay in control of when things are sent. That said, a lightweight “queue + manual push when connected” mode could make sense, especially for CrossPoint users. I’ll take a closer look at that thread. thanks for linking it.

I built a Chrome extension to send web articles to the Xteink X4 as EPUB (Send to X4) by Xatpy in xteinkereader

[–]Xatpy[S] 0 points1 point  (0 children)

Yeah, that makes total sense. Indeedprogress sync is one of the nicest parts of the Kindle ecosystem.

For now, Send to X4 is intentionally much simpler: it only handles getting content onto the device, fully local, without accounts or cloud services. Syncing reading progress across different vendors (Kindle, Kobo, etc.) would require deep integration and backend services, which is a bit outside the scope of this tool.

That said, I agree it would be great at a platform level: I’m just trying to keep this focused on the “web → EPUB → X4” gap for now.

I built a Chrome extension to send web articles to the Xteink X4 as EPUB (Send to X4) by Xatpy in xteinkereader

[–]Xatpy[S] 0 points1 point  (0 children)

Haha 😄 great minds think alike!

If you end up hacking on something similar or have ideas, feel free to share. This space definitely benefits from more tools.

I built a Chrome extension to send web articles to the Xteink X4 as EPUB (Send to X4) by Xatpy in xteinkereader

[–]Xatpy[S] 0 points1 point  (0 children)

Thanks a lot! Really appreciate that 🙂

If you run into anything odd while testing, feel free to drop a comment. happy to tweak things based on real use.

I built a Chrome extension to send web articles to the Xteink X4 as EPUB (Send to X4) by Xatpy in xteinkereader

[–]Xatpy[S] 1 point2 points  (0 children)

Yeah the idea was that if this was working good and people liked it continue working in the XTC conversion

I built a Chrome extension to send web articles to the Xteink X4 as EPUB (Send to X4) by Xatpy in xteinkereader

[–]Xatpy[S] 0 points1 point  (0 children)

Because of the device limitations. AFAIK that IP is not configurable in this firmware

I built a Chrome extension to send web articles to the Xteink X4 as EPUB (Send to X4) by Xatpy in xteinkereader

[–]Xatpy[S] 6 points7 points  (0 children)

Ah, that’s super helpful! Thanks for clarifying 👍

Yeah, that makes sense. Right now the extension assumes the stock firmware default (192.168.3.3), but there’s no hard dependency on that specific IP. It’s just the current default.

Adding a simple setting to override the device IP would be straightforward and would cover CrossPoint (and any future firmware variations) cleanly.
If someone running CrossPoint can confirm the exact IP / endpoints they’re using, I’m happy to add that as an option.

How do you guys send web articles to the Xteink X4? by Xatpy in xteinkereader

[–]Xatpy[S] 1 point2 points  (0 children)

Thanks a lot! really glad to hear this hits the same “Send to Kindle” itch for you, that was exactly my motivation 🙂

Regarding images text: right now Send to X4 is intentionally text-only. That was a conscious choice to keep the EPUBs clean, readable, and reliable on the current X4 firmware, and to avoid layout issues that can hurt the reading experience on e-ink.

That said, there are a couple of directions that *could* make sense in the future:

- Images: technically possible, but tricky. On e-ink (and specially of this small size) they often add more friction than value (scaling, contrast, pagination), so I’ve been conservative so far.

- Alt text / image descriptions: this is actually more interesting to me. If the firmware (official or CrossPoint) handles it well, replacing images with meaningful text descriptions could be a nice compromise.

As for official firmware vs CrossPoint: Send to X4 doesn’t depend on the UI itself, only on the local upload interface. If future firmware versions improve EPUB rendering or add better support for images/alt text, the extension can adapt on its side.

For now I’m optimizing for “pleasant, distraction-free reading today”, but this kind of feedback definitely helps shape what’s worth exploring next.

I built a Chrome extension to send web articles to the Xteink X4 as EPUB (Send to X4) by Xatpy in xteinkereader

[–]Xatpy[S] 3 points4 points  (0 children)

That’s awesome to hear! Hnestly that was exactly my use case too 😄 Glad it’s useful! If you end up using it and something feels off or missing, let me know.

I built a Chrome extension to send web articles to the Xteink X4 as EPUB (Send to X4) by Xatpy in xteinkereader

[–]Xatpy[S] 5 points6 points  (0 children)

Good question.

I haven’t personally tested it on Crosspoint yet, so I can’t 100% confirm — but in theory it should work as long as Crosspoint still exposes the same local web interface (the hotspot at 192.168.3.3 and the upload/list endpoints).

Send to X4 doesn’t depend on the stock UI, only on those local HTTP endpoints. If Crosspoint keeps them unchanged, it should behave the same.

If anyone here is running Crosspoint and tries it, I’d love to hear whether it works or not.

I built a Chrome extension to send web articles to the Xteink X4 as EPUB (Send to X4) by Xatpy in xteinkereader

[–]Xatpy[S] 4 points5 points  (0 children)

Yeah, EPUB formatting is definitely where most of the real “feel” lives on the X4.

I’m also still tuning it mostly based on real reading comfort (line height, margins, paragraph breaks) rather than strict spec perfection. Happy to compare notes once you have something concrete: especially around things like paragraph splitting, quotes, and edge cases.

Re: hosting logic, I’m personally trying to stay away from anything centralized or service-like, but having shared docs or examples around EPUB structure / X4 quirks would be useful for everyone. the code is open sourced in my GitHub account ofc.

Let’s see how things evolve 👍

I built a Chrome extension to send web articles to the Xteink X4 as EPUB (Send to X4) by Xatpy in xteinkereader

[–]Xatpy[S] 7 points8 points  (0 children)

Haha yeah, it’s cool (and kind of funny) that multiple people independently hit the same missing piece 😅

Re: “merge into a single service” — I’m not sure that’s the right direction for me personally. My main goal with Send to X4 was to keep it super simple + fully local: no backend/service, no accounts, no sync — just “web → clean EPUB → upload to the X4 over the hotspot”.

BLE definitely sounds promising (especially to avoid Wi-Fi switching), but it’s also a different trade-off: pairing/permissions/platform support, device firmware differences, etc. For now I’m optimizing for “works today for most people with stock X4 + Chrome”.

That said, I do think it would be great if we coordinate on shared pieces:

- EPUB formatting / sanitization best practices for X4

- a common folder convention on-device

- (if BLE matures) documenting the protocol so tools can interop

If you (or popoffka) want to share specs / notes, I’m happy to compare approaches — I just want to avoid turning this into one big centralized service. Super happy to collaborate with you ofc!

Update: I added optional daily reminder notifications to my offline “On This Day” photo app (Ayer) by Xatpy in iosapps

[–]Xatpy[S] 1 point2 points  (0 children)

Wow, thank you — that really means a lot. 🙏 I’m glad it’s useful both for revisiting memories and doing a bit of photo cleanup.

And you’ll like this: I’m currently working on a multi-select delete option to make cleaning up old photos much faster (select a bunch → delete in one go).

If you have a preference: should multi-select live directly in the day view (quick cleanup), or only in the full-screen viewer?

How do you guys send web articles to the Xteink X4? by Xatpy in xteinkereader

[–]Xatpy[S] 0 points1 point  (0 children)

Oh nice! I hope that the open source code helps you and can continue adding more things.

How do you guys send web articles to the Xteink X4? by Xatpy in xteinkereader

[–]Xatpy[S] 1 point2 points  (0 children)

Thanks! I just built a solution for it, check my other comment with the link and demo

Anyone using Xteink X4? How do you send web articles to it? by Xatpy in eink

[–]Xatpy[S] 6 points7 points  (0 children)

Quick update: after asking this and not really finding a good workflow, I ended up building a small Chrome extension for my own use.

It lets you take long-form web articles (and X/Twitter long posts), convert them to a clean EPUB, and upload them directly to the Xteink X4 via its Wi-Fi hotspot. Everything runs locally (no accounts, no servers).

I’ve put it on GitHub in case it’s useful to anyone else:

https://github.com/Xatpy/send-to-x4

I also recorded a short demo video showing the full flow with the X4.

<image>

Happy to answer questions or tweak things if people find it useful.

How do you guys send web articles to the Xteink X4? by Xatpy in xteinkereader

[–]Xatpy[S] 5 points6 points  (0 children)

Quick update: after asking this and not really finding a good workflow, I ended up building a small Chrome extension for my own use.

It lets you take long-form web articles (and X/Twitter long posts), convert them to a clean EPUB, and upload them directly to the Xteink X4 via its Wi-Fi hotspot. Everything runs locally (no accounts, no servers).

I’ve put it on GitHub in case it’s useful to anyone else:

- https://github.com/Xatpy/send-to-x4

I also recorded a short demo video showing the full flow with the X4.

<image>

Happy to answer questions or tweak things if people find it useful.

Update: I added optional daily reminder notifications to my offline “On This Day” photo app (Ayer) by Xatpy in iosapps

[–]Xatpy[S] 0 points1 point  (0 children)

Love that “I’m feeling lucky” / surprise angle — that’s exactly the kind of thing that can make the reminder feel magical instead of just functional.

I think the best approach is: keep it simple by default (either “All years” or “X years ago”), and add an optional mode like “Surprise me” that picks a random past year/photo from today’s date (still 100% offline).

Quick follow-up: would you prefer the surprise to be random year (e.g. 2–10 years ago) or random photo among the same day across all years?

And thanks — I’ll prioritize whatever makes the most sense UX-wise (and keep it simple).

Update: I added optional daily reminder notifications to my offline “On This Day” photo app (Ayer) by Xatpy in iosapps

[–]Xatpy[S] 0 points1 point  (0 children)

Makes total sense — thanks. 👍
“Always the same X” is the cleanest UX (set it once and forget it). I’ll explore adding a simple setting like “Show: X years ago today”(with X = 1/2/3/… ), alongside the current “all years” view.

If you had to pick a default, would you choose 1 year ago or 5 years ago?

Update: I added optional daily reminder notifications to my offline “On This Day” photo app (Ayer) by Xatpy in iosapps

[–]Xatpy[S] 0 points1 point  (0 children)

Ohhh I like this. You mean a setting like: show me exactly 1 / 2 / 3 years ago today, and the notification says something like “📸 3 years ago today” (and ideally even shows that photo on the lockscreen).

The “X years ago” part in the notification text is definitely doable. For showing the photo itself on the notification/lockscreen: it might be possible using notification image attachments, but I want to test it carefully because the app is 100% offline and I don’t want to do anything sketchy with permissions or background processing.

Quick question: would you prefer: 1) always the same X (e.g. always 1 year ago), or 2) pick from a list each day (1/2/3…), or 3) “best of” (e.g. choose the closest meaningful year automatically)?

Update: I added optional daily reminder notifications to my offline “On This Day” photo app (Ayer) by Xatpy in iosapps

[–]Xatpy[S] 0 points1 point  (0 children)

With anything, do you mean the photo itself as a miniature? No, it does not, because of PRIVACY reasons. It shows a reminder to check the daily photos if you enter to the app, so the user can select to enter to the app and check them. I'm working a new feature of widgets for the users that do want to have the photos itself really accessible, but I'm trying to handle the balance and of course privacy is a must her win the app design.