Work

Products that are live or in beta. Each one can be opened, installed or read in source.

Proof of work Shipped: v2.8.11 · closed beta

Atlano

A habit, goal, balance-wheel and journaling app I build and ship solo — end-to-end.

Solo: product, design and all three codebases — mobile, web and API — plus database, billing and ops.

Problem

Habit apps count streaks but ignore whether your life is actually in balance — and most fall over the moment you go offline.

Approach

Offline-first and multi-surface: a React Native app with a local SQLite mirror, a web app, and a Hono / Postgres API sharing one typed core.

Outcome

Shipped to v2.8.11 with 2FA and multi-currency billing live — a life-balance wheel, day planner and journal on top of a real offline sync engine.

The hard parts

  • ▸ State-based delta sync with a per-user monotonic revision watermark — replaced an unbounded append-only changelog.
  • ▸ Soft-delete tombstone propagation and whole-row version-OCC conflict resolution.
  • ▸ A monorepo spanning 3 apps + 1 shared package, typed end-to-end from database to UI.

Sync wire format

{ entity, op, id, seq, version, row }

Stack, by layer

Mobile React NativeExpoexpo-sqliteoffline sync
Web ViteReactRadixLingui i18n
API HonoDrizzlePostgresWebSockets
Infra 2FA (otplib)multi-currency billingSentryDocker
atlano.app

Life balance

avg 6.8
Health 8Career 7Family 6Finance 7Growth 8Hobby 6Social 5Meaning 7

Today

Habits
Morning walk
Read 20 min
No sugar
Journal
3 apps
+ 1 shared package
Offline
state-based delta sync
2FA + billing
multi-currency
v2.8.11
shipped
Visit Atlano

This is what solo, end-to-end delivery looks like. If you need the same, let's talk.

Other products

Sidewire ↗

prototype · open source · 2026

Turns a spare Mac into a real extra display for the main one, over Thunderbolt or Wi-Fi. Virtual display, ScreenCaptureKit capture and hardware HEVC/H.264 encoding run as one pipeline; PIN pairing uses CPace over TLS 1.3.

Hard part: Two independent protocol implementations, Swift and Rust, checked against shared conformance vectors.

Swift Rust ScreenCaptureKit TLS 1.3 CPace

Ladno ↗

beta · 2026

Mobile AI negotiation trainer. A behaviour engine keeps the counterpart’s hidden state — interest, trust, patience, positions — so the AI does not simply cave. The session runs on the device; catalogue and debrief work offline.

Hard part: Two-way quality gate: at most 2 caves in 10 attacks and at most 1 stubborn session in 6 honest ones, run by a test harness.

TypeScript Expo React Native DeepSeek Azure

Word Master ↗

beta · 2026 · in Russian

Offline mobile sales and negotiation training game, built for a business trainer. Access is unlocked by signed QR passes; the app needs no server to check them.

Hard part: Passes are signed with Ed25519 and verified on the device; a Telegram bot with an allow-list issues them.

TypeScript Expo React Native Ed25519 grammY

Asset Flow ↗

beta · 2025–2026 · in Russian

Economic board game with a web companion and online multiplayer. Client and server share one game engine.

Hard part: Balance simulations run as tests inside the game engine: playability and scenarios are checked on every change.

React 19 Fastify WebSocket PostgreSQL Redis Dexie

Cost of a Decision ↗

live · 2026 · in Russian

Negotiation training card game for business owners: web app, printable deck and offline Expo app. Each card carries Harvard-method fields — interests, BATNA, objective criteria.

Hard part: Two or three phones stay in sync without a network — by card number or QR code.

React 19 Vite Tailwind 4 PWA Expo

Dobrio ↗

prototype · 2026 · in Russian

Kindness journal where each entry grows a personal tree. A Kindness Pass link or QR carries a good deed on to the next person, no signup needed. Backend, claim pages and a Telegram Mini App with a bot.

Hard part: Deed graph in Postgres on recursive CTEs, with an atomic claim-and-continue transaction.

Next.js PostgreSQL Drizzle Telegram Mini App

Vereign

Vereign AG · 2018–2025

Cross-platform mobile apps shipped to the App Store and Google Play; I owned the mobile side. A corporate Outlook plugin on Microsoft AppSource with a matching Chrome extension, and a Personal Data Wallet for self-sovereign identity with verifiable credentials.

React Native Expo Office.js TypeScript Credo-TS