M cenaly.ru

Free · numbers computed server-side

Show real numbers instead of “someone just bought this”

A small badge in the corner: “14 orders today”, “7 appointments this week”, “★ 4.8”. The numbers are computed by our backend from your own orders, bookings and appointments — the settings have no free-text field at all. For sites where the numbers genuinely exist.

  • Aggregates computed from real events, nothing else
  • No names, no cities, no products — they aren’t in the public file by design
  • Stale data stays hidden: older than 36 hours means silence

No card. A minute to sign up, another for the tag.

Social proof
One tag for every widget7 of 12 are freeShadow DOM — layout-safeLabels in 45 languagesTwo clouds: AWS and Russia
fact types: orders, table bookings, appointments and average rating
4
maximum data age — beyond that nothing is displayed at all
36 h
days of rating history, and never fewer than 5 ratings inside it
90
for the widget: it is part of the platform, not a notification service
$0

How it works for the visitor

  1. 1

    The visitor opens a page

    Nothing jumps out immediately: you set the first delay, and by default the widget lets people look around first.

  2. 2

    A number appears in the corner

    “14 orders today” or “★ 4.8 from 37 ratings”. The wording is assembled by the system from the fact type and the number, plurals included.

  3. 3

    The badge leaves on its own

    It stays for a few seconds and disappears; the next one comes no sooner than the silence you configured — 45 seconds by default.

  4. 4

    Closing it counts as an answer

    The ✕ switches the badges off for the rest of the visit. A hidden tab never spends an impression: the cycle waits for the visitor to come back.

Set up in three steps

1

Sign up and add your site

A free Cenaly.ru account and your site domain in the "My website" section.

2

Paste one tag

One line before </body> — in your theme, in a Tilda or Wix HTML block, in Shopify's theme.liquid. It serves every widget.

3

Switch widgets on in the admin

Each widget is a toggle and a settings form. Changes reach your site without touching code; CDN cache is five minutes.

The tag

<script src="https://cdn.cenaly.ru/site/v1.js" data-domain="your-site.com" async></script>

One tag for all widgets. `data-domain` is your site; everything else lives in the admin.

What the social proof widget does

Count what actually happened

Four fact types: orders today or this week, table bookings, service appointments and the average rating over 90 days. Only a real event moves the counter — there is no manual entry of “purchases” anywhere. Best where the flow exists but visitors can’t see it.

Make lying structurally impossible

There is no “badge text” field: the wording is built from the fact type and the number. The public projection contains no free-form strings apart from dates and a time zone, so a guest’s name has nowhere to go. Best for anyone who wants their numbers to be checkable.

Retire stale numbers automatically

Data older than 36 hours is never shown, and “today” is checked against the venue’s own calendar: at 00:10 yesterday’s twelve orders stop being today’s. Best for venues with closing days and uneven demand.

Keep a decency threshold

A number below your threshold is not shown at all (3 by default). The average rating has its own floor — 5 ratings over 90 days — and it cannot be lowered: “★ 4.0 from two reviews” works against you. Best for new and seasonal businesses.

Stay out of the visitor’s way

Up to 4 badges per visit, the pause counted from when the previous one left, no impressions spent on a hidden tab, the ✕ silencing the rest of the session, and animation that respects “reduce motion”. Best for sites with long sessions.

Place it where it belongs

Any of the four corners, your accent colour, URL patterns, device and schedule. If one of our buttons is already at the bottom, the badge rises above it instead of sitting on top. Best for sites running several widgets.

Where it pays off

A delivery storefront

“14 orders today” on the menu page tells the visitor the kitchen is working right now.

A salon with online booking

“7 appointments this week” on a service page shows demand without a single invented review.

A restaurant taking bookings

“Booked 5 times today” belongs exactly where the guest is choosing between you and the place next door.

Rating on a service card

“★ 4.8 from 37 ratings” comes from your own reviews of the last 90 days and appears only from 5 ratings up.

Campaign landing pages

URL patterns keep the badges on paid landing pages and out of the blog.

A chain of venues

Every location has its own numbers, so a badge on a venue page speaks about that venue, not the group total.

How it looks on your site

Colour, position and labels adapt to your site. The widget lives in a Shadow DOM — your styles don't break it, and it doesn't break yours.

Where it goes

Exact menu names and plan requirements, taken from each platform’s own help center.

Sites built with our website builder ship with the widgets already wired — nothing to paste.

Step-by-step guides per platform — in the help center →

Pricing

Free

  • The widget is free — no impression limits, no site limits, no “notification packs”
  • Numbers are computed by our backend at the moment of the event; no data source to buy
  • It works on your Cenaly.ru storefront too: one toggle covers both surfaces
  • There is no manual event entry, so there is nothing to meter by volume

Why free

Widgets are the door into the Cenaly.ru platform: requests, chats and orders from your site land in the same admin as everything else, and some owners later buy extensions. We charge nothing per visitor, request or site; only products with our own running costs stay paid.

Add it for free

With and without

Without the widget With the widget
Where the number comes from ✕ The badge arrives by webhook and its contents are on the sender’s conscience The number is computed server-side when an order, booking, appointment or review happens
Badge text ✕ The text is written by the site owner and the visitor cannot verify it There is no “badge text” field: wording is assembled from the type and the number
Stale data ✕ Yesterday’s figures keep being shown as today’s Nothing older than 36 hours is shown, and “today” is checked against the venue calendar
Personal data ✕ The notification carries a real person’s name, city and purchase The public file holds numbers and dates only — names are absent by design
Cost ✕ A social proof service is another subscription The widget is free and covers your site and your storefront at once

Honest about the limits

  • It shows only what happened: with no orders, bookings or appointments there are no badges at all, and that is not a fault.
  • An order rung up at the till straight into a closed status doesn’t reach the badge: this is about the guest flow on the site, not the shift’s revenue.
  • The average rating is published from 5 ratings over 90 days. You can raise your own threshold, never lower it.
  • There is no custom badge text and there never will be: the missing field is exactly what makes the numbers verifiable.
  • Badge wording ships in four languages (en, ru, ka, tr) — on other site languages it falls back to English.
  • “3 slots left” is not calculated here: live availability is the job of the appointment widget, not of the social proof badge.

Who it's for

  • Venues taking online orders and table bookings
  • Salons and studios running appointments through Cenaly.ru
  • Anyone whose demand is real but invisible on the website

What social proof is and why people stopped trusting it

Social proof on a website means short messages about what other people have already done: how many orders today, how many bookings this week, what the average rating is. It works for a simple reason — being somewhere others have already been feels safer.

The category damaged its own reputation. In most tools the badge is arbitrary text delivered by webhook, and several of them let you type events in by hand. Visitors sense it, and “Maria from Kazan just bought this” produces suspicion instead of trust.

Our badge is built differently at the schema level: the number is computed by the backend when the order, booking, appointment or review happens, and the public file contains no free-form text fields at all — an invented purchase physically has nowhere to live. Stale data retires itself: nothing older than 36 hours is shown, and “today” is checked against the venue’s calendar.

Questions and answers

What if there are no orders today?

Then there is no badge. The widget stays quiet until the number clears the decency threshold (3 by default), and that is deliberate: advertising emptiness hurts more than silence.

Does it show customer names?

No. Only aggregates go out — counts of orders, bookings and appointments, plus the average rating and how many ratings it is based on. Names, cities and products are absent from the public projection by schema, not by promise.

Can I write my own badge text?

No, and that is the point of the widget. Any free-text field turns social proof into a fiction tool; the wording is assembled by the system from the fact type and the number.

Where do the numbers come from?

From your own events: an order reaching “placed”, a table booking or an appointment being created, a review arriving. The recalculation happens at that moment, not on a schedule.

How often does a visitor see badges?

Up to 4 per visit by default, each visible for a few seconds, with the pause counted from when the previous one left (45 seconds by default). The ✕ silences them for the rest of the session.

What exactly does the rating show?

The average and the number of ratings over the last 90 days from your own reviews — three numbers and nothing else. It is published from 5 ratings up; review texts and names are not in the public file.

Does it work on my Cenaly.ru storefront?

Yes, one toggle covers both surfaces with the same selection rules, timings and wording. It has no separate “show on storefront” setting on purpose — the widget moves nothing on the page.

How much does it cost?

Nothing: there is deliberately no entry for it in the extensions catalogue. Switch it on if orders, bookings or appointments are coming in.

Will it slow my site down?

The loader is one small `async` script; widgets load as separate bundles and only the ones you switched on. Nothing blocks page rendering.

Will it break my layout?

No. Widgets render inside a Shadow DOM: your site's CSS doesn't affect them and theirs doesn't leak out.

Which language will the widget speak?

It reads your page's `<html lang>` or a `data-lang` attribute on the tag. Built-in labels are translated into 45 languages; your own texts you write in the admin in the languages you need.

Where is the data stored?

In the cloud your account lives in: cenaly.com — AWS, cenaly.ru — Yandex Cloud in Russia. Requests, conversations and bookings stay within the brand's contour.

More — installation per platform, settings and troubleshooting — in the help center. Installation guide →

Let the numbers on your site be checkable

Free, one toggle. The server does the counting — you never invent a figure or refresh one by hand.

Start for free

No card required · no “badge text” field · stale numbers retire themselves