StackTabEVERY RATE OFF THE VENDOR’S PAGE, DATED
RE-READ 24 SEPT 06:20 UTCRead the API
29 services64 plans103 rates, each dated139 facts re-checked nightly61 of 64 plans verified3 drifted6 rates not publishedcatalogue read 25 Sept 2026

StackTabEmbed

Embed the calculator

One iframe puts a StackTab price table on your page. It reads the same catalogue the calculator reads, and it prints the date every rate was read.

The snippet

Paste this into your page. Change the last path segment to pick a category.

<iframe src="https://stacktab.thecompound.tech/embed/hosting"
  title="Hosting costs, StackTab"
  loading="lazy" width="100%" height="600"
  style="border:1px solid #e2e2e4;border-radius:6px"></iframe>

loading="lazy" keeps the widget off the critical path, so a reader who never scrolls to it never fetches it.

height is fixed because an iframe cannot size itself. The measured heights are in the table below. Give it less and it scrolls inside its own frame.

Add /light or /dark to the end of the path to pin the palette. With neither, the widget follows the reader’s own system setting, which will not match a page that ignores that setting.

What it looks like

This is the live widget, at 600 pixels, which is about the width of a blog column. Below 560 pixels it drops the two scale columns you are not looking at and keeps the one you are.

Rendered from /embed/hosting/dark, pinned to match this page. The figures move when a vendor’s pricing page moves, on this page and on yours at the same time.

The URL

The path is /embed/<category>, then up to two options in any order: a user count, and light or dark. With no theme segment the widget follows the reader’s own system setting.

Categoriesdatabase, auth, payments, hosting
User countAny whole number. It defaults to 10,000. A count that is not 1,000, 10,000 or 100,000 gets a column of its own in front of the three.
HeightMeasured 2026-09-20 in containers of 420, 600 and 1400 pixels. Hosting, auth and payments need 600. Database has one more service and needs 680. A user count outside the three tiers adds a column, and up to 30 pixels in a narrow container.
Themelight, dark, or nothing.
Examples/embed/payments
/embed/auth/1000
/embed/database/25000/light

The options are path segments rather than query parameters because this site refuses a document request carrying two or more query parameters, and an iframe load is a document request. A path cannot trip that.

What it weighs

The widget is one HTML document with its stylesheet inline. It loads no script, no web font, no image and no second request. Its table stops growing at 860 pixels, so a full width frame centres it rather than stretching it. Measured over the wire with brotli on 2026-09-20:

This widget1,735 bytes, in one request. 6,413 bytes before compression.
/calculator/hosting341,366 bytes, across 28 requests, on the same measurement.

The calculator page carries the React runtime, two web fonts and every usage field. The widget carries a table, so it does not need any of that.

What it does not do

It does not run JavaScript, set a cookie, or measure the reader. The preset links are links, and clicking one navigates the iframe.

It does not ship a frozen copy of the rates. Every load reads the same catalogue the calculator reads, so a widget on a page written a year ago prints today’s figures and today’s read date.

It does not take the usage fields. Paying share, egress, seats and the rest stay on the full calculator, and the widget states its assumptions under “What 10,000 users assumes”.