About

One codebase, every device.

String is built by Do It And Be Done, a small shop that makes tools we wanted to use ourselves. It started because every reminders app we tried either pushed a subscription on day one or was vague about what it learned from us along the way.

How it is built

One shared Kotlin codebase compiled for each platform, rather than two apps that drift apart.

Kotlin Multiplatform

Domain logic, use cases and repositories live in a shared module and compile for both Android and Wear OS. A reminder behaves the same wherever you open it.

Compose Multiplatform

The interface is Compose, with Compose for Wear OS on the watch. A browser build compiles to WebAssembly and is in development.

SQLDelight

Typed SQL against a local SQLite database, with checked migrations so an update never eats your data.

MVI architecture

Intents in, state out, pure reducers. Side effects go through use cases, which keeps behaviour predictable and testable.

Offline-first storage

Every reminder is written to your device first. That write is the source of truth, which is why the app is instant and works in a tunnel.

Firebase, optionally

Authentication and Firestore power sync and sharing. They sit behind a repository boundary, so the app works perfectly well without them.

How we try to earn your trust

Plain answers about what the app does with your data. No guessing required.

We wrote down exactly what it collects

The privacy policy lists every service that receives anything, what each one gets, and how long it is kept. It also has a section on what String does not collect — which is most of what apps in this category usually do.

No analytics and no ads

There is no analytics SDK in the app and no advertising SDK. Nothing counts what you tap. The only thing String sends about itself is a crash report when it breaks.

It works without an account

No sign-up wall. Open it and start writing. Signing in is what turns sync on, and it is entirely your choice.

Every permission is explained

The download page lists every permission String asks Android for and why — including the microphone, which is only ever used for voice notes that stay on your device.

Tell us what is wrong with it

String is in closed testing, which is exactly when feedback is worth most.

Found a bug?

Email us with your device, Android version, and what you expected to happen. A screenshot or a screen recording saves everyone a round trip.

string-support@doitandbedone.com

Want it to do something it does not?

Tell us. We are small enough that a good suggestion from a tester can land in the next build.

string-support@doitandbedone.com

Questions?

We read everything that comes in.