Every Letworks app is offline-first on purpose. Your books, shows, music and files stay on your device, or on a server you run, unless you turn on something that leaves it. This page is the plain account of what that means for each app, including the parts that aren't flattering.
No analytics or tracking codeNo ad code in any app todayNo account with usNo Letworks server
Our approach, in short.
Letworks builds small apps, not a company with a data business to run. Leaflet, Wavelet and Triplet are offline-first. Hamlet runs on hardware you own. There's no Letworks server, so there's nothing on our side collecting your library, your listening or your reading.
Some features do go online, and only when you use them: fetching a feed, looking up a cover, syncing to your own Google Drive or your own server. Each of those is a direct line between your device and that one destination. Every one of them is listed below.
The principles behind this are on the About page, as the lines we won't cross. This page is the detail. If you only read one section, read the one for the app you use.
No ad code or ad networks, today (see Ads & payments for what's planned)
No crash-reporting code that sends data off your device
No account system or server run by us
No sale or sharing of personal data with anyone
Leaflet privacy policy
Leaflet is an ebook and feed reader. This section explains what Leaflet accesses and what it does with it.
Summary
Everything under What none of the apps do applies. Your library, bookmarks, highlights and feeds are stored on your device unless you turn on one of the optional sync features below.
Files you import
When you add a book (EPUB, MOBI, AZW3, PDF or plain text), Leaflet copies it into its own storage on your device and reads its text, cover and metadata there. Book files are never uploaded by Leaflet itself. The only way a book reaches Google Drive is if you put it there and open it from Leaflet.
Lookups you ask for
If you search for a book's cover or details, Leaflet asks Google Books and Open Library. If you open an author's page, it asks Open Library for a short bio. These requests carry the title or name you're looking up and nothing else. They're sent from your device directly, never through us.
Feeds
If you subscribe to an RSS or Atom feed, Leaflet fetches it directly from the site that publishes it. Alerts for new articles are created on your device. Nothing passes through a Letworks server.
Optional Google Drive
Off by default
If you connect Google Drive, Leaflet asks for the drive.file scope on Android, and will on iOS once that version ships. That means it can only see files and folders you pick through Google's own picker. It can't browse, read or change anything else in your Drive. Leaflet uses that access for two things: opening book files from the folder you chose, and keeping one sync file (leaflet_library_sync.json) there. That file holds your library details, bookmarks, highlights, reading progress and feed list. It never holds book files.
One exception, stated plainly: Leaflet's Linux build, which isn't released yet, currently asks for full Drive access, because Google's picker doesn't work there. That gets fixed or disclosed before a Linux build ships.
Leaflet can sync the same library details, bookmarks, highlights and progress to a Hamlet server you configure yourself. That data goes only to the address you enter: a server you or someone you trust controls, not one we operate. We have no access to it.
Local storage
Your library, reading progress, bookmarks, highlights and reading stats are stored in the app's private storage on your device. You can export them to a backup file (JSON) at any time. Uninstalling the app removes them.
Wavelet is a podcast and audiobook player. This section explains what Wavelet accesses and what it does with it.
Summary
Everything under What none of the apps do applies. Your audiobooks, podcasts, playback progress and bookmarks are stored on your device unless you turn on one of the optional sync features below.
Files you import
When you add audiobooks, Wavelet reads them from wherever you picked them to get chapters, cover art and details. That happens on your device.
Podcast feeds and episodes
When you subscribe to a podcast, Wavelet fetches its RSS feed and episodes directly from the podcast's host, never through a Wavelet server, because there isn't one. The host sees the request the way any website sees a visitor. Alerts for new episodes are created on your device.
Lookups you ask for
Podcast search and the Top Podcasts list come from Apple's public podcast directory. The list is the same for everyone in your country, and your search terms go to Apple, not to us. Looking up an audiobook's cover or details asks Google Books and Open Library. These lookups only happen when you open those screens.
Optional Google Drive
Off by default
If you connect Google Drive, Wavelet asks for the drive.file scope on Android, and will on iOS once that version ships. That means it can only see files and folders you pick through Google's own picker. It can't browse, read or change anything else in your Drive. Wavelet uses that access for two things: playing audiobook files from the folder you chose, and keeping sync files there with your library details, playback positions and bookmarks. The sync files never contain audio.
One exception, stated plainly: Wavelet's Linux build, which isn't released yet, currently asks for full Drive access, because Google's picker doesn't work there. That gets fixed or disclosed before a Linux build ships.
Optional self-hosted sync
Off by default
Wavelet can sync your library and playback progress to a Hamlet server you configure yourself, and stream or download from it. That data goes only to the address you enter: a server you or someone you trust controls, not one we operate. We have no access to it.
Other cloud providers
Dropbox, OneDrive, Nextcloud and Proton Drive appear in the app as "coming soon". They don't work yet, and no data is sent to them.
In the car
With Android Auto, or CarPlay once the iOS version ships, Wavelet shows playback controls and what's playing on your car's screen through the phone's own car framework. Nothing extra leaves your phone for this.
Local storage
Your listening progress, bookmarks, library details and listening stats are stored in the app's private storage on your device. You can export them to a backup file (JSON) at any time. Uninstalling the app removes them.
Triplet is a music player for files you already own. It's coming very soon to open beta. This section explains what Triplet accesses and what it does with it.
Summary
Everything under What none of the apps do applies. Your music is never uploaded anywhere. Your playlists, favourites and play history stay on your device unless you turn on Google Drive sync.
Your music folders
You choose the folders Triplet can read, through your system's own folder picker. Triplet reads tags, cover art and lyrics from the files where they sit. It never copies your music into the app, and it never sends it anywhere. Triplet makes no network requests to find lyrics, covers or recommendations.
Optional Google Drive
Off by default
If you connect Google Drive, Triplet asks for the drive.appdata scope. That's a hidden folder only Triplet can see. It can't see any of your own files in Drive at all. Triplet keeps your playlists, favourites, play counts and play history there, so they follow you between devices. Your music is never uploaded.
Dropbox, OneDrive and Nextcloud appear in the app as "coming soon". They don't work yet, and no data is sent to them. Triplet doesn't connect to Hamlet yet. When it does, this section will say so.
In the car
With Android Auto, Triplet shows playback controls and what's playing on your car's screen through Android's own car framework. Nothing extra leaves your phone for this.
Local storage
Your library index, playlists, favourites and listening stats are stored in the app's private storage on your device. You can export them to a backup file (JSON) at any time. Uninstalling the app removes them. Your music files stay exactly where they were.
Hamlet is a server for books, audiobooks and podcasts that you run yourself, on hardware you control. It's in development.
Read this if you run Hamlet
When you run Hamlet, you are the data controller for whatever your server stores: your media, the accounts you create, and the progress of everyone you give access to. Letworks doesn't operate, access, host or receive anything from your server. This section describes what the Hamlet software does. If you share your server with other people, telling them how you handle their data is up to you.
What the software does
Hamlet keeps your library index, chapters, covers, accounts and playback positions in a database file on the machine you run it on. Passwords are stored hashed, never in plain text. Apps sign in with access tokens that expire. Hamlet has no cloud dependency, no analytics and no telemetry, and it doesn't contact any Letworks server. Nothing leaves the machine unless you set it up to.
Several people, one server
The first account created on a new server is its admin. Each account has its own sign-in, playback positions and progress. The media files are shared between accounts; the per-person state is not.
Source code
Hamlet isn't open source yet. A licence hasn't been chosen for any Letworks app, and we'd rather decide it properly than promise it early. When that changes, this section will say so.
This is the one place where "no ads" needs an asterisk. Here's the whole thing, before it ships rather than after.
The apps are free during the beta. After launch, as described on the About page, each app unlocks one of two ways: pay a small one-time price, or watch one ad, once. There will never be a subscription.
Today
No Letworks app contains ad code or payment code. Nothing on this page about "no ads" is out of date yet.
When the ad option ships
Showing an ad means including an ad provider's code in the app, and that code will see some basic device information to deliver the ad. We'll name the provider here before release, with a link to its privacy policy.
Ads will be requested as non-personalised, with no advertising ID and no profile, because we don't build one. The ad plays once, when you choose it, and never again.
If you pay instead, the ad code never runs for you.
Hamlet will never have ads.
Payments
One-time purchases go through Google Play or Apple's App Store, which handle payment details under their own policies. We never see your card or bank information.
When either of these ships, this section, the comparison table and each app's policy will be updated, with a new date at the top.
Third parties & who else sees data
No Letworks app uses analytics vendors or data brokers. The only outside parties are the ones a feature has to talk to, and only when you use that feature.
Party
Involved with
Why
Google Play / Apple App Store
Leaflet, Wavelet, Triplet
Distribution and, after launch, one-time purchases. Handled under Google's and Apple's own privacy policies. We don't choose what they collect.
Google Drive
Leaflet, Wavelet, Triplet (optional)
Only if you connect Drive and sign in with Google yourself. drive.file for Leaflet and Wavelet, drive.appdata for Triplet.
Feed publishers & their hosts
Leaflet, Wavelet
Feeds, articles and episodes are fetched directly from the address you subscribed to.
Apple podcast directory
Wavelet
Podcast search and the Top Podcasts list. Receives your search terms and your country, only when you use search.
Google Books, Open Library
Leaflet, Wavelet
Cover and detail lookups you start, and author pages in Leaflet. Receives the title or name you're looking up.
A Hamlet server you configure
Leaflet, Wavelet (optional)
Only if you connect to one. It's run by you or whoever you trust with it, never by us.
An ad provider
Leaflet, Wavelet, Triplet (planned)
Not in any app today. It will be named here before the optional ad unlock ships. See Ads & payments.
Dropbox, OneDrive, Nextcloud, Proton Drive
Shown as "coming soon"
Not functional yet. No data is sent to these services today.
Security practices
Having very little to protect is the first line of defence. Here's the rest.
Google Drive, Apple, Google Books and Open Library are always reached over HTTPS.
Feeds and Hamlet are reached over HTTPS when the other end supports it. Leaflet and Wavelet also allow plain HTTP, because some older feeds still use it and a Hamlet server on your home network often does too. Anything sent over plain HTTP can be read by others on that network, so put Hamlet behind HTTPS if it's reachable from outside your home.
Google sign-in tokens are kept in your device's secure storage.
Hamlet stores passwords hashed and uses expiring access tokens. Because it's self-hosted, encryption at rest depends on how you've set up your own machine and disk.
Leaflet, Wavelet and Triplet have no account with us, so there are no Letworks-held passwords to leak in the first place.
Found a security issue? Please report it to support@letworks.dev before disclosing it publicly, and we'll work with you on a fix and a timeline.
Children's privacy
Letworks apps don't knowingly collect personal information from children, and they have no account system or data collection that would do so. They aren't directed at children under 13, or under 16 where a stricter local threshold applies, such as parts of the EU.
If a parent or guardian believes a child's information has reached an optional Google Drive connection or a self-hosted server, contact support@letworks.dev and we'll help however we can. Note that Drive data lives in the user's own Google account, and self-hosted data lives on the operator's own server. Both are outside what we can reach or delete.
Your rights (GDPR & CCPA)
EEA / UK: GDPR
If you're in the EEA or UK, you have the right to access, correct, delete, restrict, object to and port your personal data. Because almost everything on this page lives on your own device, your own Google account or a server you control, most of those rights are already in your hands. Deleting the app removes its local data. Your Google Account controls Drive access. And running your own server gives you direct control of everything on it.
California: CCPA / CPRA
Letworks doesn't sell personal information, doesn't share it for cross-context behavioural advertising, and hasn't done either in the past 12 months. California residents can ask for more detail about the limited data described here by contacting us below.
Exercising a right
Email support@letworks.dev with your request and which app it concerns. We'll respond within 30 days.
Data retention & deletion
On-device data (Leaflet, Wavelet, Triplet): kept until you delete it, clear the app's storage or uninstall.
Optional Google Drive data: kept in your own Drive until you delete the sync files, or remove the app's access from your Google Account settings. To clear Triplet's hidden app folder, use Drive's settings, under Manage apps.
Self-hosted sync and Hamlet data: kept on the server until you delete it there.
One thing to know about sync: if you delete something on one device while sync is on, it can come back from the synced copy the next time sync runs. To delete something everywhere, delete it with sync turned off, then delete the Drive sync file or the record on your Hamlet server too.
Letworks doesn't keep a copy of any of this on its own infrastructure. Beyond emails you send us, there's nothing on our side to keep or delete.
Changes to this policy
This page was last updated on September 29, 2026. If anything material changes, such as a new feature that handles data differently, a new third party, or the ad option shipping, we'll update the relevant section and the date at the top before the change reaches you. It's worth a re-read before you turn on an optional feature like Google Drive or self-hosted sync.
Contact
Questions, a data request or a security report: one inbox handles all of it, and we read every message.