Inspiration

I type the same things on my phone all day: email replies, links, code snippets, my IBAN. The usual routine is to leave the chat app, open Notes, search, copy and switch back. SnipFlow removes that detour by putting your snippets inside the keyboard, in every app.

What it does

SnipFlow is a native iOS power-snippet vault and custom system keyboard.

  • System keyboard: tap a snippet card to paste it into WhatsApp, Slack, Mail, Safari or Messages.
  • Slash commands: type /email, /iban or /meeting and the shortcut expands into the full text.
  • Smart variables: {date}, {time}, {clipboard} and {cursor} are resolved when a snippet is inserted.
  • Encrypted vault: sensitive snippets are locked with Face ID or a master PIN and encrypted with AES-256-GCM and PBKDF2 (100,000 iterations).
  • Share extension: select text anywhere in iOS and tap "Save to SnipFlow".
  • Themes: four brutalist themes (Neon Mint, Cyber Amber, Electric Cyan, Dark Violet) with matching alternate app icons.

How I built it

SnipFlow is a native iOS app written in Swift, with a keyboard extension and a share extension. All snippets are stored on the device. The keyboard extension makes no network connections and contains no third-party SDKs.

How I use RevenueCat

  • The RevenueCat SDK runs only in the main app. A single entitlement, pro_access, unlocks SnipFlow Pro.
  • Three products are mapped to that entitlement: a monthly subscription, an annual subscription with a 3-day free trial, and a one-time Founder Lifetime purchase.
  • After a purchase, a restore or a customer info refresh, the main app writes the entitlement state to a shared App Group. The air-gapped keyboard reads that flag locally, so it can switch between the free tier and Pro without ever touching the network.
  • Pro unlocks unlimited snippets and categories, the full smart variable engine, Face ID vault locking and all themes and icons.

Challenges

A keyboard with Full Access can see what people type, so I wanted the privacy promise to be enforceable in the architecture, not just in the marketing text. Keeping RevenueCat and all networking out of the keyboard extension and passing only the entitlement flag through the App Group was the key design decision.

Built With

  • app-groups
  • cryptokit
  • ios-keyboard-extension
  • revenuecat
  • share-extension
  • storekit-2
  • swift
Share this project:

Updates

Submission history