Turn user feedback into better products.
Collect feedback from your users, right where it happens: inside your website or Flutter app. Planish captures the context and gives your team everything it needs to improve.
Reports stay on the device until they’re submitted.
A report is only as useful as its context.
The best products aren’t built once. They’re refined continuously, one report at a time. Yet by the time a report reaches a developer, it has been forwarded, rewritten and stripped of everything that would help act on it.
- Page
- /invoices/1042
- Version
- 2.4.1 · build 318
- Pointed at
- button “Save invoice”
- Browser
- Chrome 130 · macOS
- Error
- TypeError in computeTotal
- Just before
- GET /api/tax-rates → 404
Every thought deserves a place.
Whether someone spots a bug, has an idea or a question, or wants to share an observation, they do it inside your website or app.
- 1Choose what to share: a bug, an idea, a question.
- 2Point at what matters: select an element, add a note, annotate the screenshot.
- 3Send it. Planish captures the relevant context automatically.
<script src="/widget/v1.0.0.js?s=be7c9cd1" data-key="pl_…">One script tag, any site. Your colours and logo, or a headless mode with your own form.builder: Planish.builder()iOS and Android, opened by a button or a shake. Open source (MIT).Not just what’s broken.
One place to make your product better.
Point to what matters.
No more vague descriptions or screenshots without context. Point directly at an element to describe a problem, suggest an improvement or explain what you’d like to see.
Each pin a tester drops arrives as an element, not a guess: its CSS selector, its visible text and the tester’s note.
That gives developers and AI agents a precise starting point for finding the relevant code.
- Selector
form#invoice button[type=submit]Copy- Text
- “Save invoice”
- Element
- button
- Selector
div.invoice-total > spanCopy- Text
- “€ NaN”
- Element
- span
The full technical picture.
No more “which version?” What the page or the app was doing comes with every report.
It lands with the right person.
No forwarding. Screenshot first, then the pins, the error and stack trace, and a log timeline that jumps to “around the error”. Status, priority, assignee and comments, autosaved.


Give your coding agent the full picture.
No more rewriting reports or hunting for missing context. Planish gives Claude Code, Cursor or Codex a structured brief: what the user said, what they pointed at, the error and what the app was doing, so your agent, or your developer, gets straight to the problem.
Copy a ready-to-use brief, or connect through MCP.
# Harbor 2.4.1 (staging, 9f3c1e2) — bug — /invoices/1042 — 2026-10-21 14:02 **Message**: Nothing happens when I click Save. ## Summary - 1 error(s), 1 warning(s) in the log timeline - Error: TypeError: Cannot read properties of undefined (reading 'rate') ## Pointed at on the page 1. `form#invoice button[type=submit]` (button "Save invoice") 2. `div.invoice-total > span` (span "€ NaN"): Total shows NaN ## Timeline (6 of 6 entries) 14:02:13.019 INFO [http] GET /api/tax-rates 404 (212 ms) 14:02:13.020 ERROR [uncaught] TypeError: … reading 'rate' 14:02:19.442 INFO [click] button "Save invoice"
Secrets stay on the device.
Passwords, tokens and masked areas are removed on the device before a report is sent. What’s left reaches Planish Cloud only when the report is submitted.
[data-planish-mask] areas are blanked in the screenshot. The rest of the report travels over HTTPS to Planish.Free to start.
Move to Team when your testers and apps grow.
- 1 app
- 3 members
- 500 reports a month
- Reports kept 60 days
- 250 MB of screenshots and logs
- Unlimited apps
- 5 members
- 10,000 reports a month
- Reports kept 365 days
- 10 GB of screenshots and logs
Both plans: the web widget, the Flutter package, the AI brief and the MCP endpoint.
Questions
Is the key on my website a secret?
No. It can only send reports, never read them, and Planish only accepts reports from the sites you list. Load the widget in test and staging builds, not in production.
Does it replace Sentry or Crashlytics?
No. They watch crashes in production; Planish is for what people see and report. The Flutter package chains error handlers, so both keep working.
Can I use Planish without an account, or with my own backend?
In Flutter, yes: the package is free and open source (MIT) and can send reports by email, to your own API or to Planish Cloud. The web widget always sends to Planish Cloud, so it needs an account.
What happens to my data?
Submitted reports are stored on servers in Paris, France (Hostinger). Each app keeps them as long as you set, up to 60 days on Free and 365 days on Team; older ones are erased every night. You can delete your account and all its data yourself.
Does Planish send reports automatically?
No. Reports stay on the device until they’re submitted: by the tester from the form, or by your own code calling Planish.send() (the web widget’s headless mode, or the Flutter API). Drafts, including automatic ones, never leave the device.
Can I self-host Planish?
Not yet. Planish Cloud is hosted only; meanwhile the Flutter package can send to your own API.
Which platforms?
Any website; Flutter on iOS and Android. Web and desktop builds of a Flutter app compile but are not tested yet.
What about the screenshot on mobile?
It covers Flutter content; platform views (maps, web views, native video) appear blank.
Give testers a button. Give developers the full story.
Free to start. One script tag or one Flutter package.