New: identify your users & unlimited tags on ProGet started →
Feature request tool, no portal

Capture feature requests where users are.

Add a one-tap button to your app and collect the ideas people actually have, in the moment — sorted by tag in a calm inbox, with no public voting portal to stand up or moderate.

No portal to moderate · live in 60 seconds

app.yourproduct.com

Inbox

AllIdeasIssues
IdeaIntegrations2m

Zapier support would save us hours.

IdeaMobile2m

An offline mode for the mobile app, please.

IdeaExports2m

Let me export the inbox to CSV.

Live widget

This one’s really live.

Give it a tap — leave a feature request and watch it land.

“Requests without a portal.”★★★★★“Tags are our roadmap.”say.so“We finally see the patterns.”in-context capture“No moderation queue.”1 script · 0 deps“Requests without a portal.”★★★★★“Tags are our roadmap.”say.so“We finally see the patterns.”in-context capture“No moderation queue.”1 script · 0 deps
Built for product signal

Real requests. Less overhead.

You don't need a whole public roadmap to hear what people want. Collect requests in context and let tags show you the patterns.

Ideas in the moment

People request features when they hit the need — a one-tap launcher catches that, instead of hoping they visit a portal later.

See the patterns

Tag requests by theme and watch the same asks pile up. That's your roadmap, no upvote button required.

Know who asked

Call SaySo.identify() and each request carries the user's id and email, so you can follow up when you ship it.

Three steps, that’s it

From copy-paste to clarity.

Need a hand installing? Ask the team
01

Embed

Create a project, copy the snippet, drop it before </body>. You're live in under a minute.

02

Collect

Visitors tap the launcher, pick a type, and say their piece. It's that low-friction — so they actually do.

03

Triage

Read, tag, and resolve from your dashboard. Turn scattered comments into a ranked to-do list.

// drop this before </body>
<script src="https://trysay.so/w.js" data-sayso="PROJECT_ID" defer></script>

Launch it your way

One snippet, three ways to open it. Use whichever fits — or mix them.

Default

Floating button

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>
Anchored

Your own button

Add data-sayso to any link or button and the panel opens right next to it.

<button data-sayso>Feedback</button>
Headless

No floating button

Hide the default launcher and open only from your own triggers.

<script … data-sayso-launcher="false">
Honest pricing

Start free. Upgrade when it clicks.

No seats, no metered surprises. One flat plan when you outgrow free.

Free

For your first project.

$0

  • 1 project
  • 50 lifetime submissions
  • 3 color tags
  • Email notifications
Get started free
Most popular

Pro

For when one project isn’t enough.

$100 /year

$8/mo billed yearly · save 58%

  • Unlimited projects
  • Unlimited submissions
  • Unlimited tags
  • Identify your users
  • Email notifications
Start with Pro

Enterprise

Custom

For teams that need more than the basics.

WhitelabelingService-level agreementsLive chat support
Talk to us
Good questions

Things people ask.

Is this a public voting board?

No. Say So is a lightweight inbox for collecting requests, not a public roadmap with upvotes. If you want a calm way to gather ideas without moderating a portal, that's exactly the fit.

How do I add it?

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.

How do I prioritize requests?

Tag them by theme and the recurring asks rise to the top. Filter by tag to see how often something's requested before you build it.

Can I see who requested what?

Yes — with SaySo.identify() each submission carries the user's id and email.

Hear what to build
before you build it.

Collect feature requests in one inbox — no portal, no moderation.