Sync
Data from services without APIs, in your databases
A shared runtime for syncing services without public APIs to Notion and Finapp.
You sign in. It does the rest.
Sign in and complete two-factor authentication yourself in Chrome. The CLI reads the service’s internal API from your signed-in profile and moves data to Notion or Finapp. One runtime, ten syncs.
What you can do with Sync
Banks → Finapp
T-Bank, Sber, Alfa, Yandex, Ozon and Halva. Rules match transactions to categories and wallets; each run leaves a stage manifest.
Lab results → Notion
Invitro results go to health databases with reference ranges and aliases.
Google Photos
Download new photos and videos in their original form, transcribe speech locally and send preview rows to Notion.
Engine
Browser sessions and profiles, locks, retries, timeouts, private storage, snapshot deltas and a command registry in one package.
Notion as a destination
A custom client handles pacing, retries, property comparison and idempotent upserts, identifying columns by ID so renames do not break it.
And more
Rutracker links, an offline Notion mirror, daily Claude settings history, Movies and Music.
And more
- Bun
- Playwright
- pnpm workspace
- tests for every sync
- knip
Under the hood
Sign in yourself in a real browser; the CLI then reads the service’s internal API from that signed-in profile. Sessions, locks, retries, private storage and snapshot deltas live in one package used by Movies, Music and seven other syncs.
- TypeScript
- Bun
- Playwright
- Notion API
- Supabase
- Banks → Finapp: T-Bank, Sber, Alfa, Yandex, Ozon and Halva with category and wallet matching rules
- Invitro lab results → Notion health databases
- New Google Photos originals and local speech transcription
- Rutracker, an offline Notion mirror and daily Claude settings history
