Infans
com.turkbot.babytracker
Turkey turkey@nostrplebs.com A privacy-first baby tracking app with Nostr-based encrypted storage and parent-to-parent sync.
Infans is a privacy-first baby tracking app with Nostr-based encrypted data storage and parent-to-parent sync. Features: - Feeding tracking — bottle (ml/fl oz), breast (L/R/both + duration), solids - Sleep tracking — start time + duration - Weight & height — kg/lb/oz with optional height (cm/in) - Diaper tracking — wet/dirty/both - Bath tracking - Milestones — first smile, first word, etc. - Growth charts — WHO weight-for-age percentile bands (P3/P50/P97) for boys/girls - Activity trend charts — daily/weekly/monthly/yearly for all metrics - 7-day trend bar charts — feeding and sleep trends on the Summary tab - Encrypted backup — all data encrypted with NIP-44 and stored on Nostr relays as kind 30078 events - Parent sync — share data with co-parent via NIP-44 encrypted kind 30078 partner-sync events - Live timer sync — start a nap timer on one phone, stop it on the other; both parents see the running timer in real time - Notes — leave async notes for the other parent (synced inside the same encrypted payload) - Offline-first — Room database is the local source of truth; Nostr syncs in the background No telemetry, no analytics, no tracking. Your data stays yours — encrypted on Nostr relays you choose. Medical Disclaimer: Infans is a convenience tool for logging and syncing everyday baby-care records. It is NOT a medical device, medical application, or source of medical information. It does not provide medical advice, diagnosis, or treatment recommendations. Growth charts and percentile bands are derived from public WHO reference data for general informational purposes only and are not a substitute for assessment by a qualified healthcare professional. Always consult a licensed pediatrician for questions about your baby's health, growth, or development. The authors assume no responsibility for decisions made based on data displayed or stored by this app. Security Notice: This app has NOT undergone a third-party security audit. The cryptographic implementation (NIP-44 v2 encryption, key management, Nostr event signing) was written from scratch following published specifications and includes test vectors from the reference implementation, but has not been independently reviewed or verified by a security professional. No warranty is made about the fitness of this software for protecting sensitive data. Use at your own risk.
First release: Aug 23, 2026, 6 total releases.
Most recent release: Sep 6, 2026.
Appears in 1 app stack.
2,121 sats / 2 zaps received in the past year.
Sats Received
Underlying data available via MCP: app_zaps, app_releases.
Zap Count
Underlying data available via MCP: app_zaps, app_releases.
Releases
- Sep 6, 2026 2.4.1Two bug fixes since v2.4.0: - **Fix: sleep timer dying on tab switch** — a stale `forceStopTick` was firing on recomposition, stopping running timers when you switched tabs. Timers now survive navigation. - **Fix: reconnect after server-initiated websocket close** — relays that drop the connection (idle timeout, restart) now trigger a clean reconnect instead of a dead sync until app restart. No new features. No schema changes. Safe to update in place from v2.4.0. --- Infans is a privacy-first baby tracking app with Nostr-based encrypted storage and parent-to-parent sync. No telemetry, no analytics, no tracking.
- Aug 28, 2026 2.4.0## What's New ### Features - **Vaccine tracker** - Track vaccinations with type, date, next-due date, dose number, notes. New Vaccines tab in Health screen. - **QR code partner pairing** - Scan QR to link with other parent. Show My QR displays your code. - **Partner pairing options** - Three ways: QR scan, npub paste, NIP-05 paste. - **Frictionless onboarding** - Plain-English, one-tap key generation, QR-first pairing. - **Onboarding wizard** - 7-page guided flow with progress dots. - **Sleep start/stop times** - Cards show start-end range. - **Export npub** - Copy npub/NIP-05 to clipboard from Settings.
More…
- **Default relay swap** - nostr.oxtr.dev replaces relay.primal.net for new users. - **Author tracking** - Every entry shows which parent logged it. - **Haptic feedback** - Vibration on log buttons, toggle in Settings. - **Key safety warning** - Warns that losing key means data loss. ### Bug Fixes - Cross-device timer sync - no more duplicate records - Sleep trend double-counting - dedup fix ### Technical - DB migrations v4-v5 (authorPubkey) + v5-v6 (vaccines) - BackupPayload v3-v4 (vaccines) - New deps: ZXing, CameraX, ML Kit - CAMERA permission added - Aug 26, 2026 2.3.1## NIP-44 v2 Spec Compliance + Disclaimers ### Crypto Fixes (Nip44.kt) - **AES-256-GCM to ChaCha20 + HMAC-SHA256** (RFC 8439) - **Correct 2-phase HKDF**: extract salt="nip44-v2", per-message expand info=nonce - **Chunk-based padding** with calcPaddedLen - **MAC verification on decrypt** with constant-time comparison - **Minimum payload validation** (99 bytes / 132 base64 chars) - **ECDH uses raw x-coordinate** via BouncyCastle
More…
### Tags/Docs - encrypted tag: "nip44" to "nip44v2" - README: Medical Disclaimer + Security Notice - zapstore.yaml: Medical Disclaimer + Security Notice ### Tests - Nip44Test.kt: 19 tests including official spec test vector ### Breaking Change Old backups encrypted with AES-GCM (tag "nip44") will not decrypt with the new NIP-44 v2 implementation. Local Room database is unaffected. A fresh backup will be created on the next export. - Aug 23, 2026 2.3.0## Live Timer Sync Start a nap timer on one phone, stop it on the other. Both parents see the running timer in real time. ### How it works - When you start a Sleep or Breast timer, an encrypted ActiveSession event is published to your partner via Nostr (kind 30078, NIP-44 encrypted) - Your partner phone receives it and shows the timer as running with a Started by partner badge - Either parent can stop the timer — the stopper creates the record and publishes a session-ended event - The other parent phone clears the timer automatically
More…
### Edge cases handled - Partner offline at start: timer appears with correct elapsed time on reconnect - App killed on starter phone: timer still displays on partner phone until stopped - Simultaneous stop: first event wins, deduped by sessionId ### Technical - New ActiveSession data model (sessionId, label, childId, startTime, startedBy, alarmMinutes) - BackupService: publishSession/decryptSession/endSession - NostrManager: StateFlows for remote sessions, relay subscriptions, echo dedup - LiveTimer: accepts remoteSession, shows partner badge, either-side stop - No new dependencies, no new permissions, all on existing NIP-44 encryption infrastructure Version: 2.3.0 (code 51) - Aug 23, 2026 2.2.1Signed with new release keystore (old one was rotated after accidental commit). - APK signed with RSA 4096 release key - Certificate SHA-256: f1b7cbc149675677f527837375b24b8283e8e944ef0bec46c10992b80f32ce90 - versionCode: 50, versionName: 2.2.1
- Aug 23, 2026 2.2.0Same as v2.2.0 but signed with the release keystore for Zapstore certificate linking. - APK now signed with RSA 4096 release key - Certificate SHA-256: 0af0aa2793555b468fcdfc3045c44d28ef9d54aa6c0ecea730b0cbe404b95822