Shake-to-report for mobile apps
Shake the phone. Get the whole bug.
Squawk turns a tester's shake into a bug report you can act on: the annotated screenshot, the log tail and the device details, in your inbox or Slack within seconds. Open source, one wrapper, no native setup.
Free while in beta. Sign in with GitHub or a magic link, name a project, and your key is on screen.
Works with
- FlutterAvailable now
- React NativeComing soon
- iOSComing soon
- AndroidComing soon
it arrives here
No native project edits, no Info.plist, no manifest changes.
Works offline. Reports wait and send when the network is back.
Pen, arrows and text labels, drawn on a still of the screen.
Apache-2.0 SDK. Reports stored in the EU.
How it works
Three steps, and none of them are yours to maintain.
-
Step 1
const key = String.fromEnvironment( 'SQUAWK_API_KEY', ); void main() { runApp( Squawk( apiKey: key, child: const MyApp(), ), ); }Install and wrap your app.
Add the package, wrap your app, and pass your project key at build time. No native project edits, no manifest changes, no Info.plist.
-
Step 2CheckoutSubtotal38.00Shipping4.00Total62.00 wrong totalPay 62.00Report sent to your inbox
Testers shake to report.
The screen is captured first, then annotated as a still image, so drawings stay where they were drawn. Pen, arrows and text labels. Works offline; reports wait and send when the network is back.
-
Step 3Inbox 2 open3 openTotal is wrong on checkout 12:30Keyboard covers the note field 11:58Avatar never loads offline 09:41
Read it in your inbox.
Every report opens with the screenshot and everything you need to reproduce. Get notified by email, Slack or a webhook. Resolve it in one keystroke, or from the Slack message itself, and the two stay in step.
Every report
What arrives with every report.
The annotated screenshot
What the tester saw, with the broken part circled by the person who found it.
The log tail
The last stretch of console output and errors leading up to the shake, captured on its own. Opt out with one flag for sensitive apps.
Device and app info
Model, OS version, app version and build number, on every report.
The build mode
Every report is stamped debug, profile or release, so reports from testers and from the public are easy to tell apart.
The deal
Open where it should be, paid where it costs us.
Apache-2.0, open source
The capture SDK is open source. The Flutter package is on pub.dev today. The hosted inbox and delivery are what you pay for.
Free while in beta
Everything is free while the beta runs, and a free tier stays free at launch. Paying is only ever about putting reports into your team's workflow.
Stored in the EU, deleted for real
Reports live in EU storage and are deleted automatically when their retention ends. Deleting one yourself is immediate: the row and the screenshot go the same day, with no soft-delete limbo.
Pricing
Free to collect. Paid when it joins your workflow.
Free
$0 forever
For your first project. Collecting feedback is never punished, so reports are never capped.
- 1 project
- Unlimited reports
- 30-day retention
- Email notifications
- The full SDK
Pro
$15 a month, flat per workspace
For teams and studios that want every report inside the tools they already work in. Not per seat, not per report.
- Unlimited projects
- 1-year retention
- Slack and webhook delivery
- Linear and GitHub, when they ship
Free for everyone while the beta runs. Billing arrives after, announced by email first.
Your first report is one build away.
Squawk is free while in beta. Wrap your app, ship a test build, and the next shake lands in your inbox.
$ flutter pub add squawk
$ flutter run --dart-define=SQUAWK_API_KEY=sqk_yourkey