Kudobox

Read and decide

Permission that actually stops things

Your customer ticks where you may use their words: website, social media, advertising. Those ticks are not a note in a field. They decide what every channel is allowed to serve, on every request, forever.

Start collecting

How it works

  1. They choose the places, one by one

    Website, social media, advertising — separately, because somebody happy to appear on your site may not want to be in a paid advert.

  2. The sentence and the date are kept

    The exact words they agreed to, with the timestamp, stored beside the testimonial and included in your export.

  3. Every channel asks before it serves

    A testimonial that did not consent to the website cannot be served by a widget, a hosted wall, or the API, however many times it has been approved. A testimonial that did not consent to social cannot be made into an image or a clip.

What it will not do

Every page on this site carries this list. It is the part that says what you are actually buying.

  • It will not let an approval override a refusal.
  • It will not put an author's email address in any public answer, ever.
  • It will not treat silence as permission.

Which plan

Every plan.

Every gate in this product reads a capability from the plan table, never a plan's name, so what a plan carries is one list in one file. See the pricing section.

Where it lives: lib/consent.ts · app/api/v1/testimonials/route.ts

This is running now

Open a project and use it. Nothing on this page is a roadmap.

Start collecting