Skip to content
Back to all articles
Startup Engineering

Shipping a Privacy-First React Native App Solo in 3 Months

How I designed, built and shipped Arcov, an end-to-end encrypted app for couples, from first commit to the App Store and Google Play in about three months.

Harsh TuwarAuthor
2026-07-15
7 mins
startupfull-stackStartup Engineeringproductivity

In March I made the first commit on Arcov, a private app for couples: daily mood check-ins, a shared daily question, letters, a photo and voice-note vault, and small rituals like a "buzz" or a "hug" you can send your partner.

About three months later, version 1.0 was live on the App Store and Google Play. Today it has 200+ users, grown entirely organically, and 12 releases behind it. I built it alone, end to end. Here's what that actually involved, and what I'd do the same way again.

Pick a stack that lets one person move fast

  • React Native with Expo for one codebase on iOS and Android. Expo Router for file-based navigation, React Query for server state, Zustand for the little global state that's left.
  • Supabase for Postgres, auth, real-time and edge functions. I self-host it, which costs more setup but gives me full control over the data, and that matters for a privacy app.
  • Reanimated and Skia for animations, charts and a drawing canvas.

The rule I followed: every tool had to remove work, not add a system I'd have to maintain. One person can't afford two of anything.

Privacy is a design decision, not a feature

Arcov holds the most private things two people share, so it's end-to-end encrypted: notes, letters, photos and voice notes are encrypted on the device before they're uploaded. The server stores blobs it can't read.

That decision shapes everything else:

  • Key recovery. If only the device holds the key, losing your phone means losing your memories. Arcov uses partner-based recovery (your partner's device can help restore your access) with a 12-word recovery phrase as a fallback.
  • Features get harder. Anything the server would normally compute (search, previews, summaries) has to either happen on the device or work on data that isn't sensitive.
  • Trust has to be earned in the UI. Biometric lock, data export (JSON/CSV) and real account deletion aren't nice-to-haves in this category.

If you're building anything personal, decide on your privacy model before you write the schema. Retrofitting encryption is a rewrite.

The backend is mostly scheduled work

What surprised me is how much of a "simple" consumer app is background work. Arcov has 25+ edge functions: notifications for every interaction, daily nudges, a weekly summary, a monthly relationship report, streak and reminder jobs, billing reconciliation, widget actions.

The database has gone through 120+ migrations. Treating migrations as code from day one, never editing production by hand, is the only reason that's manageable alone.

Native when it matters

Home-screen widgets are the one place I had to go fully native, with separate iOS and Android widget implementations wired into the React Native app. It took longer than any other feature, and it was worth it: a widget is the app being present without being opened.

Release like a team, even when you're one person

  • Over-the-air updates. I run a self-hosted OTA update server, published automatically from release branches by GitHub Actions. JavaScript fixes reach users on their next launch without waiting for store review.
  • Telemetry from day one. New Relic gives me crash reporting and session data. Arcov runs at 99.9%+ crash-free sessions, and I know that because I measure it, not because I hope it.
  • A changelog users can see. Every release ships with notes in the app. It keeps me honest about what actually shipped.

Growth without ads

Every user so far came organically: app store optimization, short-form video and genuinely helpful conversations in communities where couples talk about long distance and staying connected. It's slower than paid ads, but every user who arrives that way actually wanted the thing.

What I'd tell someone shipping solo

  1. Choose boring, integrated tools and say no to anything that needs its own maintenance.
  2. Decide your data and privacy model first. It's the most expensive thing to change.
  3. Automate releases early. Shipping should be a non-event.
  4. Measure crashes and usage from the first build. You can't fix what you can't see.
  5. Ship, then listen. Real users will tell you what matters faster than any roadmap.

Learn more at arcov.app, or try it on the App Store and Google Play.

Topics Covered

startup
full-stack
Startup Engineering
productivity

Enjoyed this article?

Explore more content

View All Articles