The problem
For every user who writes a 1-star review, dozens silently delete your app. The users who care enough to give feedback rarely have a good way to do it.
Here is what most indie devs rely on today:
- App Store reviews - biased toward extremes. You hear from the delighted and the furious, never the majority in between. And Apple's review system gives you one reply, no conversation.
- Support email - friction kills response rates. Users have to leave your app, open Mail, compose a message, describe the problem with no context. Less than 1% bother.
- Google Forms / Typeform - same problem, different wrapper. A web link in your app settings that nobody clicks.
- Enterprise SDKs - Instabug, UserVoice, and similar tools are built for teams of 50+. Per-MAU pricing means your bill grows before your revenue does.
The feedback you actually need - "this button doesn't work on my iPhone 13" or "I expected X but got Y" - never arrives.
What PingKit is
PingKit is a lightweight, privacy-first in-app feedback SDK for iOS. It gives your users a native SwiftUI modal to send text and screenshots, while you get a dashboard to triage everything. Two lines to integrate:
How it works
The flow is simple:
- Your user taps a "Send Feedback" button (you place it wherever makes sense)
- A native SwiftUI sheet appears with a text field and optional screenshot attachment
- The SDK sends the feedback to the PingKit API (Cloudflare Workers at the edge)
- You see it instantly in the dashboard, get a webhook notification, and triage it
The SDK ships with zero third-party dependencies. It is fully open source, so you can audit every line that ships inside your app.
Key features
Native SwiftUI modal with theming
The feedback modal matches your app's look. Set accent color, background, corner radius, and font via a simple theme struct:
Screenshot attachment
Users can attach a screenshot from their photo library. Screenshots are always user-initiated (no auto-capture). All EXIF metadata is stripped before storage for privacy. Images are stored privately and served via time-limited signed URLs.
MCP integration for AI coding tools
PingKit ships an MCP server so Claude Code, Cursor, Codex, Windsurf, and any MCP-compatible tool can read, search, and triage your feedback without leaving the editor. Ask your AI assistant things like "What are users saying about v2.3?" or "Mark all dark mode feedback as resolved."
Headless mode for custom UI
Don't want the built-in modal? Call PingKit.submit() directly from any view, including UIKit:
Privacy by default
- Open source SDK with zero dependencies
- No analytics, no tracking, no background data collection
- No network calls until the user taps Send
- EXIF metadata stripped from all screenshots
- API keys stored as SHA-256 hashes
- Data auto-deleted after 6 months
Pricing
$9.99/mo flat. Unlimited projects, unlimited feedback, unlimited team members. No per-MAU pricing, no usage tiers, no surprise bills. Cancel anytime from the dashboard.
That is less than one cup of coffee per week. Your users' feedback is worth more than that.
Get started
Read the full documentation for integration details, or jump straight to the code: