/readtomyshoe

A webapp that reads your articles to you while you're on the subway

Primary LanguageRustOtherNOASSERTION

ReadToMyShoe logo: A sneaker wearing a headset with a microphone

ReadToMyShoe

Video Demo

ReadtoMyShoe (RTMS) is a web app that lets you upload articles (via URL or via directly pasting) and listen to them later. Some features:

  • High-quality text-to-speech: RTMS uses the Google Cloud Text to Speech WaveNet voices. It's not quite human yet, but it's pretty nice.
  • Listen as a podcast: To listen to your articles from your favorite podcast app, just add INSTANCE/api/feed.xml.
  • Web version features:
    • Offline-first: All the articles in your queue are available offline. The web version of RTMS is usable even in airplane mode.
    • Saves your progress: Don't lose your place in your reading material. RTMS will save where you are. So next time you play an article, it'll resume right where you left off.
    • Lockscreen controls: Play, pause, jump 10 seconds. It's all available from the lock screen or notification bar of your mobile device.
    • Runs anywhere: Since RTMS is a web app, it runs everywhere a (modern) web browser runs.
    • Add to Homescreen: RTMS can be added to your homescreen and behave just like a native app.

RTMS is written in Rust, using yew for the frontend (compiles to WASM) and axum for the backend.

Usage

To access the web interface, simply navigate to your instance URL in your web browser. From there, you can add articles or listen to them in-browser.

You can also use the podcast interface to listen to articles. Simply add INSTANCE/api/feed.xml to your favorite podcast app (where INSTANCE is your instance's URL).

Limitations

ReadToMyShoe uses some browser features that are new and/or buggy. Some limitations of the web app are:

  • Does not work in private mode. In Firefox and Safari, RTMS will not let you Add to Queue. This is because you cannot touch local storage from a private browsing window.
  • Lockscreen controls are broken in Firefox for Android. You can still play audio in Firefox for Android, but play/pause, seek, and jump buttons are all missing.
  • Add to Homescreen is not very functional in iOS. This is a documented Safari bug. Issue. Just use the website from within Safari.

Accessibility

It is important that ReadToMyShoe be accessible to the visually impaired and others who rely on text-to-speech for reading. If you have an accessibility issue while using ReadToMyShoe, please open up a Github Issue at this link. If you don't have a Github account, please email me at rtms-a11y@mrosenberg.pub

Running your own instance

To set up your own instance of ReadToMyShoe, check out the Getting Started page in the wiki.

Licenses

All code is licensed under either of

at your option.

Images are licensed by Michael Rosenberg under the CC BY 4.0.

Thanks

A lot of the ideas and code in this crate started with Robert Krahn's fantastic template. Thanks

Also, big thanks to my friend Sharon Ye for her immense help in the design of the logo.