Design tools2026

Framing screenshots without leaving the share sheet

A free iOS app that turns plain screenshots into polished mockups, built so it starts instantly from the share sheet and works with no connection and no sign-up.

ProductFramewich
RoleDesigner and engineer
Framewich running on iPhone
The constraint

The whole point of Framewich is that framing a screenshot should take seconds. That means it has to work from the iOS share sheet, where there is very little memory to play with and no room for a slow start or a loading spinner.

It is also free, so anything that adds friction before the first result, a sign-up screen or a wait for the network, would lose people before they ever saw what the app does.

Designing around it

The share extension is kept completely free of Firebase. It reads and writes files in a shared App Group instead, so it launches instantly and cannot fail because the network is slow.

Firestore runs with offline persistence as the cache rather than as a fallback, so the app behaves the same with or without a connection. Anonymous auth happens in the background on launch, which means there is no sign-up and nothing to wait for.

What is in the app
  • The SwiftUI app and its framing and styling tools
  • A share sheet extension that stays free of Firebase entirely
  • A shared App Group so the app and the extension see the same files
  • Offline-first sync with soft deletes
  • Cloud storage for the mockups people generate
  • Unit and UI test targets, with separate debug and release configuration
Engineering

What the constraint forced

01

A share extension with no backend

Share extensions get very little memory and are terminated without warning. Keeping Firebase out of the extension entirely means it starts instantly and cannot fail because of the network.

iOSExtensions
02

Offline as the default state

Offline persistence is the cache rather than an error path, so there is no separate offline mode that can behave differently from the normal one.

Offline-firstFirestore
03

No sign-up to get to the first result

Anonymous auth runs in the background on launch, so someone can install the app and frame a screenshot without an account, an email, or a single tap of setup. The account exists, it just never asks.

OnboardingFirebase Auth
How it turned out

Framewich is live and free, works from the share sheet in a couple of taps, and needs no account to use.

It is the clearest example of building around a constraint. Almost every decision came from the share extension needing to open instantly.

Built with
Platform
SwiftSwiftUIApp GroupsShare Extension
Infrastructure
Firebase FirestoreFirebase StorageFirebase Auth