What's true for every app
-
Offline first
Every app here is built to do its core job without an internet connection. If a page below says an app is offline, that's a structural fact about how it's built — not a setting you have to find, and not marketing language.
-
No analytics, no tracking SDKs
None of these apps embed an analytics library, crash-reporting SDK, or ad network. There's no usage telemetry being collected about how, when, or how often you use anything, by me or by any third party.
-
No accounts unless a feature genuinely needs one
Nothing here requires sign-in to use the core app. Where an optional feature involves a destination for your own data (like a backup you choose to turn on), it uses your existing Apple account — never a new account with a company you've never heard of.
-
You're the customer, not the product
There is no data-sharing or data-selling arrangement with anyone, for any app, ever. The apps are paid for by the people who use them — that's the entire business model — so there's no one else to sell you to, and no infrastructure in place to collect anything to sell in the first place.
-
What “local-only” means on this page
When an app's listing below says something is stored “locally” or “on-device,” it means the data lives in that app's own storage on your phone, is never transmitted anywhere by the app, and is deleted when you delete the app.
App by app
Anything specific to one app — permissions it asks for, an optional feature that touches the network — is listed here, pulled directly from that app's own page.
Zero network requests, ever
Wordkowski makes no network calls at runtime. It doesn't check a server for puzzles, doesn't phone home on launch, and behaves identically with Wi-Fi and cellular both switched off.
Local-only storage
Your in-progress puzzle and play statistics (games played, win streak, guess distribution) are saved on-device using Apple's standard UserDefaults storage. None of it is transmitted or backed up anywhere by the app.
No account, no profile
There's no sign-in and no account system, so there's no profile of you anywhere — on our servers or anyone else's.
Optional bug-report email
A built-in “report a bug” screen can draft an email using your device's own Mail app, pre-filled with a text snapshot of your current game state and stats. Nothing is sent automatically — you review the draft and choose to send it, addressed to [email protected].
No internet, no servers
Blockowski makes no web requests. It doesn't fetch anything, check in with a server on launch, or send anything to us or anyone else. Every solo mode behaves identically with Wi-Fi and cellular both switched off.
Linked play stays between two phones
The only networking in the app is the optional two-player mode. After you choose to host or join, the two phones connect directly to each other over your local network or direct phone-to-phone Wi-Fi, encrypted with a key only those two phones share. There is no server in the middle. They exchange only what the match needs: the display name you chose, the match settings, the garbage rows and results. Nothing from the match is kept afterward.
Two permissions: Local Network and Camera
iOS asks for Local Network access the first time you start linked play, so the app can find your friend's phone, and for Camera access the first time you tap Scan, so your phone can read the pairing code (a QR code) on your friend's screen. Blockowski shows a plain-language explanation before each. The camera is used only to read that code: pictures are never saved or sent anywhere. If you say no, every solo mode and the practice bot work exactly the same, and you can pair with a 4-digit code instead of the camera.
Everything saved stays on the device
Your settings (look, sound and control choices, plus an optional display name), your high scores, and a paused game are saved as small files in the app's private storage on your phone. The app never transmits them. As with any app, if you back up your phone with iCloud or a computer, iOS may include the app's files in that backup. Phones you have paired with are remembered by a shared secret kept in the iOS Keychain on this phone only (not synced); you can forget any of them in the app.
No account, no profile
There's no sign-in and no account system. The display name is optional text you type yourself; it never leaves your phone unless you play a friend, and then it goes only to that friend's phone.
No third-party SDKs
No analytics, advertising, crash-reporting or sign-in SDKs. Blockowski uses Apple's own frameworks and code written for the app, plus one bundled pixel font (Press Start 2P) under an open license.
Sharing is your choice
The Share button on the pause screen draws a picture of your game on the phone and hands it to the standard iOS share sheet. Nothing goes anywhere until you pick where to send it.
No other permissions
No microphone, location, contacts, photos or notifications. The “Allow my own music” option simply lets other apps' audio keep playing while you play; it doesn't read your music library.
Microphone access
Requested so you can record voice journal entries. Recorded audio is transcribed on-device and is never uploaded as part of recording or transcription.
No network requests
Recording, transcription, search, mood insights and echoes all run entirely on-device. The app contains no code that makes network requests, and nothing is sent anywhere. The only way any data leaves the device is a backup file you export yourself.
Local-only storage
Journal entries, audio, transcripts and generated insights are stored locally on your device. None of it sits on a developer-run server, because no such server exists.
Optional encrypted backup
Automatic local backup is off by default. You can turn it on, and you can export a backup file whenever you want and save it wherever you choose using the iOS share sheet. Every backup is AES-256 encrypted before it's written, using a key held in your Keychain, never a third-party account or server.
Apple Intelligence, on-device
Echoes of earlier days and some insights use Apple's on-device language model where your iPhone supports it. That processing happens on the device. Without Apple Intelligence, echoes stay off and everything else works as usual.
Optional Face ID / passcode lock
Can lock the app behind Face ID or your device passcode. Authentication is handled entirely by iOS. Szeptem never receives or stores biometric data itself.
No account, no third-party SDKs
No sign-in is ever required. There are no analytics, crash-reporting or advertising libraries in the app.
No network requests while you play
The iPad and Mac apps contain no networking code at all: nothing is downloaded, nothing phones home, and they play identically with Wi-Fi switched off. The only link out is goofflinebydesign.com on the About screen, which opens only if you tap it. The web version is fetched by your browser from glidepath.goofflinebydesign.com like any web page — fonts included, nothing loaded from third-party servers — and like any website, that request reaches the server with the usual connection details such as your IP address. After that first load the game makes no network requests: no analytics, no beacons, no ads, no cookies.
Local-only storage
On iPad and Mac, your settings are saved with Apple's standard UserDefaults, and your records (best shifts, totals, tutorial progress) and an in-progress shift are saved as small files in the app's own Application Support folder; they're deleted when you delete the app. In the web version, the same settings, records and saved shift are kept in your browser's local storage for glidepath.goofflinebydesign.com, and clearing that site's data erases them. Either way, none of it is synced, uploaded or backed up anywhere by Glidepath.
No permissions requested
Glidepath doesn't ask for the microphone, camera, location, contacts, notifications or anything else, in the apps or in your browser. Giving instructions is touch, click or keyboard only. On iPad and Mac, spoken pilot readbacks use Apple's built-in on-device speech voices; nothing is recorded or sent anywhere, and voices can be switched off in Settings. The web version shows readbacks as text, and its sound effects are generated right in your browser.
No third-party tracking code
The iPad and Mac apps are built only with Apple's own frameworks. The web version uses the open-source Preact library and bundled open-source fonts. Neither contains any analytics, crash-reporting, advertising or sign-in code.
No account, no profile
There's no sign-in and no account system, so there's no profile of you anywhere — on our servers or anyone else's.
No network requests beyond its own server
The game only ever calls its own backend at same-origin `/api/*` endpoints — confirmed directly in the frontend's fetch wrapper. There are no third-party requests of any kind. Like any website, loading the page itself reaches the server with the usual connection details such as your IP address, and standard web-server access logging applies — nothing beyond that default.
Nothing saved until you accept cookies
No cookie is set until you click Accept. Before that, or after Reject, your game lives only in server memory, identified by a random id the page holds in memory (never in a cookie or storage) — a reload or closed tab loses it, and idle unsaved games are automatically cleared after 2 hours. Accepting moves your game into a small local database on the server, keyed to a plain httpOnly session cookie, so you can come back to it; it's deleted automatically after 30 days without play. Withdrawing consent deletes that saved game and clears the cookies immediately.
No move-by-move logging
The app has an optional event logger for individual game actions, and it is turned off in this deployment — no per-move logs are written.
No permissions requested
Remik 51 doesn't ask for the camera, microphone, location, notifications, or anything else. Play is touch, click or keyboard only.
No third-party SDKs
The backend is built only on Express, better-sqlite3, cookie-parser and dotenv; the frontend only on React and a drag-and-drop library (dnd-kit). No analytics, crash-reporting, advertising or auth SDKs of any kind.
No account, no profile
There's no sign-in and no account system, so there's no profile of you anywhere — on our servers or anyone else's.
No network access at all
SecureLicense contains no network code. It never makes a network request, for any feature, and works the same in Airplane Mode.
Stored only on your iPhone
The front and back photos and the details read from them are saved only in the app's own storage, encrypted by iOS Data Protection while your iPhone is locked. They never go into your photo library, there's no iCloud sync or export, and deleting the license (or the app) removes them. Like any app's data, they are included in your own iPhone or iCloud device backup.
Camera access
Requested so you can photograph the front and back of your license. Finding the card's edges, cropping, and reading the barcode and printed text all happen on-device with Apple's Vision framework — no photo is ever uploaded.
Face ID / passcode lock
The app unlocks with Face ID, Touch ID or your device passcode, and locks whenever it goes to the background. Authentication is handled entirely by iOS — SecureLicense never receives or stores biometric data.
No third-party SDKs
No analytics, crash reporting, ads or third-party sign-in. The app is built only on Apple's own frameworks.
No account required
There's no sign-in of any kind. The only lock is your own Face ID or passcode.
Blocked from screen capture
The card and its details are excluded from screenshots, screen recordings and screen mirroring, and hidden in the app switcher, so a copy can't slip out by accident.
Not an official ID
SecureLicense stores a photo of your license for your own convenience. It isn't an official digital or mobile driver's license, isn't affiliated with any government or licensing agency, and may not be accepted in place of your physical card.
Map tiles, from Apple
Showing the map at all requires downloading map imagery from Apple, the same way Apple's own Maps app does.
Trail data, from OpenStreetMap, only when needed
Setting a leg to "Follow Paths" requests road and trail data for that area from the public Overpass API. The request contains only a geographic bounding box and a generic app identifier — no account ID, device ID, or location history. Data for areas you've already viewed is cached on your iPhone, so revisiting a familiar area works without a connection.
Location access, When In Use only
Requested only the first time you use a feature that needs it — showing your position on the map, or starting a recording. TrailTally never asks for "Always" access.
Everything else runs on your iPhone
Snapping your pins to trails, computing routes and distances, deciding when to ask which fork you took, recording your GPS track, and storing your saved routes all happen entirely on-device.
No account, no third-party SDKs
No sign-in, no analytics library, no ad network, no crash-reporting SDK. There's no server run by the developer that any of this reaches.
Anonymous diagnostics via Apple's MetricKit, opt-in
Only if you've turned on "Share iPhone Analytics" in iOS Settings, Apple's own on-device diagnostics pipeline may deliver aggregated, anonymized battery and crash data about TrailTally to the developer, roughly once a day. This is Apple's OS-level mechanism, not a third-party SDK, and it can't identify who a report came from. Off by default.
Recorded routes stay put unless you export them
Saved routes and recordings live in TrailTally's own storage on your iPhone. The only way one leaves is if you tap Export, which hands a GPX file to the standard iOS share sheet — you choose the destination.
No network requests
The app contains no code that connects to the internet. There is no server, no account and no update check run by the developer.
Everything is stored on your device
Swimmers, times, meets and backups live in the app's own storage, protected by iOS Data Protection. Deleting the app deletes them. Erase All Data inside the app also wipes everything and returns to the first-launch tour.
Nearby coach sync, only with phones you've paired
Nothing connects until you pair two coaches' phones. After that, paired phones sync automatically when they're near each other, directly over Bluetooth and peer-to-peer Wi-Fi, and you can turn automatic sync off in Settings. Times and splits are signed by the phone that recorded them and sealed between the two phones, and names are not broadcast while phones look for each other. iOS asks for Local Network access when you first pair. If you decline, the app works fully on one phone.
Camera, for pairing
Used only to scan the QR code that pairs two coaches' phones. Nothing is recorded or stored.
Face ID, optional
An optional app lock using Face ID or your passcode. It never engages while a race is running, so a lock screen can't swallow a tap.
Copying a roster needs the other coach's OK
A coach can ask a paired coach for swimmers, history and meets. The other coach sees what's requested and must approve it. It goes phone to phone over the sealed local channel and nowhere else.
Files you share in stay on the device
Meet PDFs and pictures shared to FlagLine from other apps are read on the phone. They are not uploaded anywhere. The team logo picker uses the system photo picker, so no photo-library permission is requested.
No third-party SDKs, no account
No analytics, crash reporting, ads or sign-in of any kind.
Exports go where you send them
CSV files, progress report PDFs, share-card pictures and backups leave the app only through the standard iOS share sheet, to a destination you pick. A swimmer's report or card contains only that swimmer's own times.
Zero network requests, ever
Speedowski makes no network calls at runtime. There's no URLSession or any networking code anywhere in the app — it behaves identically with Wi-Fi and cellular both off.
Almost nothing is stored, and never off-device
The only thing saved on-device is a single yes/no flag for whether you've seen the onboarding screen. Top Speed and Avg Moving Speed are session-only — they reset every time you open the app and are never written to disk or sent anywhere.
One permission: Location, while in use
Location access is requested only to compute and display your live speed on-screen. If your device is set to Approximate location, Speedowski offers a one-tap upgrade to Precise, since accurate speed can't be calculated without it.
No third-party SDKs
No analytics, no crash reporting, no ad network, no third-party auth — Speedowski has no external dependencies of any kind.
No account, ever
There's no sign-in and nothing in the app that requires one, including no optional feature that would.
GPS stops the moment you leave
Location tracking runs only while the app is open and visible on-screen. It stops completely the instant you background the app, and no ride history or route is ever kept.
No network access
Spin Thing never makes a network request. It contains no networking code and no web content, so there is nothing for it to send or receive, and it works fully in Airplane Mode.
Scores stay on your device
Rounds, names you type for the leaderboard and settings are stored only on your iPhone. They are not synced to iCloud or any server, and are removed if you delete the app.
Motion sensors, on-device
The app reads your phone's gyroscope and accelerometer to count spins and detect falls. This needs no permission prompt, and the readings are processed on the device and never saved or sent anywhere.
No other permissions
Spin Thing does not ask for the camera, microphone, location, contacts, notifications or any other access.
No third-party SDKs
There are no analytics, crash-reporting, advertising or other third-party libraries in the app.
No account required
There is no sign-in of any kind. The only thing to accept is the safety disclaimer on first launch.
Sharing is your choice
Share only happens when you tap Share and pick a destination in the iOS share sheet. Disqualified rounds can't be shared.
No network access
SonicViz makes no network requests, ever. The app contains no networking code and links no networking frameworks, and the build is checked for that automatically.
Microphone access
The microphone is the only permission SonicViz requests. It is used to analyze sound live, on the device. Audio is never uploaded or shared unless you export it yourself.
Background audio, for logging only
The audio background mode is used solely so the optional long-term level logging can keep running while the screen is locked.
Stored on your device
Saved sessions, recordings, logs and calibration settings stay in the app's own storage on your device. Nothing is kept on a developer-run server, because there isn't one.
Exports only through the share sheet
CSV, PNG, PDF, WAV and session files leave the app only when you export them through the standard iOS share sheet or Files picker, to a destination you choose.
No third-party SDKs
No analytics, crash reporting, advertising or sign-in SDKs. The app uses Apple's own frameworks only.
No account required
There is no sign-in of any kind, and nothing to create or log in to.
Not a certified meter
SonicViz is not a certified sound level meter. Readings are estimates from your device's microphone, which you can calibrate against a known reference.
This website
This website (not the apps) counts visits with a small, self-hosted tool running on my own server — no cookies, and nothing goes to a third party. It records which pages are viewed, which site linked you here, which app links get clicked, and rough device and country info, so I can tell whether anyone is actually finding these apps. Your IP address is never stored; visitors are counted using a one-way scrambled value that resets every month and can't be traced back to you. If your browser sends Do Not Track, you aren't counted at all. None of it is shared or sold, and the apps themselves still collect nothing.
Children's privacy
None of these apps are directed at children, and none knowingly collect personal data from anyone, of any age — there's no data collection to make that distinction against in the first place.
Your rights
Because these apps don't collect personal data on a server I control, there's usually nothing on my end to access, correct, export, or delete on your behalf — your data already lives only on your device, under your control. Where an app has an exception (like optional cloud backup), it's called out explicitly in that app's section above.
Changes to this policy
If this policy changes — for this business overall, or for a specific app — I'll update this page and the date at the top. I won't walk back a “no collection” commitment without being explicit about exactly what changed and why.
Contact
Questions about this policy, for any app, can be sent to [email protected].