Drop one script on your site and let anyone flag what's broken — no screenshot uploads, no ten-question forms. Every report arrives with the page URL, ready to triage.
No screenshots, no logins · live in 60 seconds
Pay button does nothing on iOS Safari.
Reset-password email never arrives.
Menu overlaps the logo on small screens.
This one’s really live.
Give it a tap — report a (pretend) bug and watch it send.
The heavy bug tools make people upload screenshots and fill forms. Say So gets the report in one tap, with the context that matters.
Visitors tap, type what broke, and send. No account, no screenshot upload, no friction — so they actually report it.
Every bug carries the page URL and browser, so you can reproduce it without playing twenty questions.
Tag by area, mark resolved, and work down a ranked list. No new Jira project to stand up.
Create a project, copy the snippet, drop it before </body>. You're live in under a minute.
Visitors tap the launcher, pick a type, and say their piece. It's that low-friction — so they actually do.
Read, tag, and resolve from your dashboard. Turn scattered comments into a ranked to-do list.
One snippet, three ways to open it. Use whichever fits — or mix them.
A tidy launcher sits in the bottom-right corner. Works out of the box — nothing to wire up.
<script src=".../w.js" data-sayso="PROJECT_ID" defer></script>Add data-sayso to any link or button and the panel opens right next to it.
<button data-sayso>Feedback</button>Hide the default launcher and open only from your own triggers.
<script … data-sayso-launcher="false">No seats, no metered surprises. One flat plan when you outgrow free.
For your first project.
$0
For when one project isn’t enough.
$100 /year
$8/mo billed yearly · save 58%
For teams that need more than the basics.
No — and that's the point. Say So keeps reporting to one tap so people actually do it. You get the message, page URL, and browser, not a heavy capture flow.
One line of HTML. Create a project, copy the <script> tag, and paste it before your closing body tag. The widget renders in a Shadow DOM so it never collides with your styles.
Into a calm inbox in your dashboard. Filter by type, tag by area, and resolve with a click. You also get an email the moment one lands.
No. w.js is a tiny vanilla script with zero dependencies, served with long cache headers. It loads after your page is interactive and stays out of the way.
Drop in one script and let your users tell you what's broken.