Changelog · Help centre · Feedback · Bug reports · Status
Write it once.
Ship it
everywhere.to your site.to a feed.to search results.
- No card to create an account
- First widget live in ten minutes
- Cancel any time
A changelog, a help centre, a feedback board, a bug reporter and a status page — all living on your own site. Write it here, paste one line of script, and your customers stop having to ask.
$25 a month. Every widget, no seats, cancel any time.
Product · Pricing · What's new
Changelog
Filters on the changelog
Narrow a long changelog to just the releases you care about.
Faster public pages
Cached reads, so a launch-day spike never reaches the database.
Help centre
Billing
Account
Feedback board
Ticket system
Save button does nothing on the settings page
Reproduced it — a caching bug. Fix goes out this week.
Status page
Uploads are failing
One subscription, five things your customers stop having to ask for
5
widgets, one subscription
1
line of script to add one
3.5 KB
is the whole embed
0
third-party cookies
Right now
Everything your customers want to know is somewhere they cannot look.
None of it is missing. It is written down — in a Slack thread, in your sent mail, in a spreadsheet, in a shared inbox. It is just nowhere a customer can reach, which is why they keep asking you instead.
The release notes are in a Slack thread three people saw.
A changelog on your own domain, with a feed anyone can follow.
The answers are in your sent mail — the same six, forty times over.
A help centre a search engine can quote from, before anybody writes to you.
Feature requests sit in a spreadsheet nobody has opened since March.
A board where the vote count does the arguing for you.
Bug reports arrive as "it doesn't work" and die in a shared inbox.
A form that catches the page it broke on, and a thread the reporter can watch.
When something breaks, forty people write to ask whether it is just them.
A status page that already says it is not, and shows what you are doing about it.
Five widgets, one subscription
Five widgets that answer the questions before they ever reach you.
Changelog
Every release — dated, versioned, tagged. With an RSS feed, so people can follow along without you sending a single email.
Filters on the changelog
Narrow a long changelog to just the releases you care about.
Faster public pages
Cached reads, so a launch-day spike never reaches the database.
Help centre
Questions and answers as a real FAQ: grouped, searchable, and marked up so Google can show the answer directly in the result.
Feedback board
Let people ask for things and vote on each other's ideas. New submissions wait for your approval before anyone else sees them.
Ticket system
A form that catches which page it broke on, and a private thread with whoever reported it. You answer, you set the status, they watch it change.
Save button does nothing on the settings page
Status page
One line that says whether you are up — and we check each of your services every five minutes to work out whether that line is true. The uptime figure is measured, not typed in.
Uploads are failing
One line of script
One line, and it is on your site
Paste the script where you want it. It renders inside a shadow root, so your CSS and ours never meet.
Your page, before
<div class="content">…</div>
<script src="localhost:3000/embed/your-slug" async></script>Your page, after
Filters on the changelog
Narrow a long changelog to just the releases you care about.
Faster public pages
Cached reads, so a launch-day spike never reaches the database.
How it works
Three steps, and the last one is a copy and paste.
Write it
Markdown, in the app. Headings, lists, code, images, tables.
Style it
Your accent colour, your corner radius, your font. Light and dark are handled for you.
Embed it
One script tag. It renders inside a shadow root, so your CSS and ours never meet.
Or skip the embed: every widget has a page we host for you.
The details
The parts you would have had to build yourself.
Reads the room
Dark mode follows the page it sits on, not the visitor's laptop — so a light site never turns your widget grey-on-white.
About 3.5 KB
That is the whole embed. It loads async and ships no framework, so it cannot hold up your page.
Indexed on purpose
Sitemap, canonical URLs, a permalink per entry and FAQ structured data. Being found is most of the point.
Spam has a bad day
A honeypot field, per-IP rate limits, and moderation on by default. Nobody puts anything on your page but you.
No third-party cookies
Votes are remembered in the visitor's own browser. Nothing follows anyone anywhere.
Four languages
English, Danish, Swedish and Norwegian. The widget speaks your company's language, not the reader's — a Swedish help centre stays Swedish for everyone.
Uptime that was measured
List the services behind your product and each one is checked every five minutes from outside. The percentage on your status page is what happened, not what somebody remembered to write down.
It tells your team where they are
Slack, Microsoft Teams or Google Chat. A service going down sends one message when it changes — not one every five minutes it stays down.
Your data, on one click
Everything the account holds, as JSON, whenever you want it. Deleting the account removes all of it and cancels the subscription first, in that order.
What it looks like
on your customers' own website
Changelog
Every release — dated, versioned, tagged. With an RSS feed, so people can follow along without you sending a single email.
Every release, dated and tagged, on your own domain — the day it ships.
Filters on the changelog
Narrow a long changelog to just the releases you care about.
Faster public pages
Cached reads, so a launch-day spike never reaches the database.
Help centre
Questions and answers as a real FAQ: grouped, searchable, and marked up so Google can show the answer directly in the result.
The answer in the search result, before anyone opens a ticket.
Feedback board
Let people ask for things and vote on each other's ideas. New submissions wait for your approval before anyone else sees them.
What people want, ranked by how many of them want it.
Ticket system
A form that catches which page it broke on, and a private thread with whoever reported it. You answer, you set the status, they watch it change.
The person who found it can see you looking at it.
Save button does nothing on the settings page
Status page
One line that says whether you are up — and we check each of your services every five minutes to work out whether that line is true. The uptime figure is measured, not typed in.
Measured uptime, per service. Not a number somebody typed in.
Proof
Every page below is one of our own widgets.
We sell five things and run all five of them ourselves, on this site, through exactly the code a customer's page uses. There is no separate version for us. If our changelog breaks, we find out before you do — and if our status page says we are up, something went and checked.
Our changelog
Every release, dated and tagged. Written in the app, read from the widget.
Open itOur help centre
The questions we are asked most, grouped and searchable.
Open itOur roadmap
What is planned and what shipped, with votes open.
Open itOur bug form
Report something here and you get a private thread, no account.
Open itOur status page
Four services, checked every five minutes, measured uptime.
Open itIntegrations
It tells your team where your team already is.
A bug report nobody sees until somebody opens the dashboard is a bug report that waits until tomorrow. Paste one webhook and every widget on this page can post into the channel you already have open.
Slack
Incoming webhook. One paste, and it posts as your own app.
Microsoft Teams
Workflows or a classic connector — both URLs are accepted.
Google Chat
A webhook on any space in your Google Workspace.
Seven things worth interrupting somebody for
- Somebody reports a bug
- A reporter replies to you
- Somebody sends in an idea
- You publish a release or an answer
- You open, update or resolve an incident
And nothing on votes. A channel that pings on every upvote is a channel that gets muted.
No OAuth, no app to install and nothing to review. You create the webhook in your own workspace and paste the URL; we store it encrypted and never show it again.
The maths
Three support emails a week cost you more than a year of this.
6 min
reading it, understanding it, and writing an answer you have written before
156
times a year, if that one question arrives three times a week
15 hours
of somebody's year, spent retyping what a page could have said once
$300
is what Upvoo.io costs for that entire year
Use your own numbers rather than ours. There is no hourly rate anywhere at which fifteen hours of a person's time is worth less than three hundred dollars — and the help centre is one widget out of five.
Six minutes is our estimate for one support reply, start to finish. Everything else follows from it.
Pricing
One plan. Twenty-five dollars.
Twenty-five dollars, once a month, for all five widgets on every site you run.
That is the whole price — not per widget, not per seat, not per visitor.
No per-widget pricing, no seat counting, no tier you find out about later.
- Changelog, help centre, feedback board, bug reports and status page
- As many widgets and entries as you like — the free plan has one
- Hosted page and embed for each one
- RSS, permalinks, search and filtering
- Your colours, your radius, your font
- Remove the Upvoo.io badge
- Four languages, picked per widget
- No card to create an account
- Cancel any time
- Every widget included from the first day
Before you ask
Do my visitors need an account?+
No. Voting is remembered by a token in their own browser — there is nothing to sign up for and nothing for you to administer.
Will it slow my site down?+
The embed is around 3.5 KB, loads asynchronously and renders in a shadow root. It cannot block your page and it cannot fight your stylesheet.
Can I use it without embedding anything?+
Yes. Every widget also has a page we host and keep fast, so you can simply link to it from your navigation.
What if my customers do not read English?+
Pick the widget's language from four: English, Danish, Swedish and Norwegian. It belongs to the widget rather than to whoever is looking at it, so a Swedish changelog reads Swedish to every reader, wherever they are.
Why is it only $25?+
Because it is one product, built by one person, sold to a lot of them. There is no sales team in the price, no seats to count, and no enterprise tier keeping the good parts back.
What happens if my traffic takes off?+
Nothing happens to your bill. Public pages are served from a cache rather than the database, so a launch-day spike costs us rendered HTML — not a per-visitor bill we would have to pass back to you.
Your product moved this week. Your website should say so.
Set up the first widget in a few minutes and put it live today.
$25 a month · every widget · cancel any time