Stickybit · Porto Alegre, Brazil · since 2004

Software with a receipt.

We build systems for people who can't afford to be wrong in the dark: retail, healthcare, newsrooms, research. Every delivery comes with proof of what it does — how much it misses, what it leaves out, what it costs. When the math changes, we publish the correction.

In September we corrected one of our own numbers from 36.8× to 23.6×. The page says what it was, what it is, and why.

Receipt · E-commerce

PromiseAI assistants find and understand your store
How we prove itwe read the store the way the bot reads it, item by item
4 of 4
large retailers with no machine-readable barcodeaudit · Sep 2026
If the math changeswe publish the correction
open the section →
Where to start

Start from the problem, not the technology.

Almost everyone who comes to us arrives with one of these four situations. Pick yours: each one leads to what we have already measured about it and to the first step.

Legacy systemAn old system that cannot stop.

Before touching it, we measure what it carries. On the Baguete news portal, 74% of the 3 million lines were third-party; the new version has 25 thousand. The migration starts with that X-ray.

E-commerceMy store does not show up for AI.

ChatGPT, Gemini and Muse already choose where to buy by reading the HTML. We read your store the way the assistant does, item by item. Free reading within 24 business hours.

Regulatory deadlineA requirement with a date.

Brazil's ECA Digital has required reliable age verification since March 2026; the move to post-quantum cryptography has a timetable. We show how to comply without collecting too much data and what to change first.

Contested numberA number someone disputes.

An assessment, a benchmark, a sensor reading or an AI score. We audit the yardstick and return three verdicts, with the margin declared beforehand and a receipt a third party can check.

Live now

Six areas and a notebook, each in its own color.

Every section has a demo you can play with, the measurement with its number and source, and what could still be wrong. No jargon: every technical word gets an everyday example before the definition.

E-commerce
Your next customer has no eyes.

ChatGPT, Gemini and Meta's Muse already choose where to buy by reading the store's HTML. We show what the assistant gets from yours, item by item.

4 of 4large retailers audited with no barcode a machine can read
Certified telemetry
Smaller measurements, with proof.

Seven tools that compress, search, answer and timestamp sensor data with a guarantee anyone can check. Proven on a subsea cable, the power grid and whales.

23.6×smaller, on bearing vibration, with no measurement outside the tolerance
Post-quantum
Today's lock has an opening date.

What the quantum computer breaks, when the estimates say it will, and what it costs to switch.

95 µsfor the new key exchange, against 63 µs for the current one
FHE
Do the math without opening the safe.

A live encrypted election and 16 tests on where computing without seeing the data works, costs, or stalls.

0votes the server had to see to count the ballot box
0k-proof
Prove it without showing it.

Prove you are over 18 without showing your date of birth. A cave to try it and four measured proofs.

164 Bone age proof, made in 26 ms and checked in 1.4 ms
Verification
Verdicts that hold up when contested.

Producing reports, assessments and code became almost free; checking did not. We audit the yardstick and return three answers: meets, fails or undecidable.

33 of 198winners the most common rule invented comparing a program with itself
Research notebook
Thinking out loud, hands on.

Agreeing costs less than objecting · Green is silence, not a certificate · The draw made the call

10entries, each with a specimen to play with
In progress

What's on the bench right now.

Six projects at different stages: three for clients, in Brazil and Switzerland, one product of our own, a migration and a simulation from our lab. The numbers are the ones measured through October 2026.

Calibr · Switzerland · identity and interfacelive at calibr.ch

A brand that beats like a balance wheel.

The same client as the visual search needed a face before opening the shop. The chosen direction is called Beat: the C in the name is a balance ring open to the right, around its pivot. On screen it swings 28 degrees each way every 3.6 seconds, like the part that keeps time in a mechanical watch. For anyone who asked their system for less motion, it rests.

The rest follows the watchmaker's bench, not software: ivory, stone, silver, graphite and ink instead of the default blue-grey, a single typeface in a light weight, pill buttons, a gold reserved for movements and a bronze for components. The direction went into the whole site, from the home page to the back office, without rewriting a single screen: the colour scale was remapped in one stylesheet and the pages kept the structure of the wireframes.

5 + 2neutral tones, plus gold for movements and bronze for components
1typeface, Outfit, from weight 300 to 600
4languages: English, German, French and Italian
0screens rewritten to change the look: only the colour scale
The C is a balance ring open to the right, around its pivot; it swings 28° each way every 3.6 s and rests when the system asks for less motion. Outfit · 300 / 400 / 500 / 600 pill buttons square corners only on photos ivory#F2EFEAstone#C9CCCEsilver#A9ADB0graphite#3A4046ink#15181Bgold#F5C518bronze#A67D6F
The symbol between the two ends of its swing, and the palette: five warm neutrals and the two accents. Every colour on the site comes from these seven values.
Pricing panel · higher-education group · Brazil · tuitionlive · collected twice a day

Where each tuition price sits against the competition.

A higher-education group with two institutions in Brazil sells 1,181 combinations of course, city and delivery mode. Each price only makes sense next to what competitors charge in the same market, and that number was scattered across scholarship marketplaces, with the same institution spelled three different ways.

The panel collects, twice a day, the discounted tuition of every institution in each market from Quero Bolsa and Educa Mais Brasil, unifies the names and compares it with the average of the competitors management considers the main ones. The rule is a band: 0 to 10% above the average is where a price belongs; below it is margin left on the table; above it is a risk to enrollment. 131 of the 1,181 groups are in the band. The rest show up in order, with the competitor move that changed the picture and the own offer that dropped out of the storefront.

1,181course · city · delivery-mode groups tracked
131in the 0 to 10% band above the main competitors' average
780above the band, at risk of losing enrollment
10 in 48 hrelevant competitor moves, detected and classified
1,181 groups, by distance from the main competitors course · city · delivery mode — snapshot of 10/23/2026 band -80%-40%0%+40%+80%+120% 270below · margin on the table 131in the band 780above · risk to enrollment
Each drop is a 10-percentage-point band of the group's price against the main competitors' average; the height is the number of groups. One group up close: Accounting, online, in Niterói. The group charges R$ 117.81 against R$ 130.92 for the five main competitors, 10% below; R$ 13.11 per monthly payment short of the band's floor.
Calibr · Switzerland · visual search for watch partsprototype live

The watchmaker photographs the part. The catalog says which one it is.

A catalog of about 100,000 components, with three photos each. The first lesson came before the algorithm: in bench photos, the part filled 3% to 12% of the frame, and accuracy dropped by half — the search ended up describing the foam tray.

So the rule moved to the moment the photo is taken. At capture.calibr.ch, the camera only fires when the part fills the frame the right way. Whoever takes the picture doesn't need to understand the rule, just follow the arrow. The bad photo never gets to exist.

~100,000parts in the catalog, 3 photos each
53% → 24%right answer in the top 5, with raw bench photos
69.3%right answer in 1st place, on 482 shop photos
≥ 50%of the frame filled by the part, required when the photo is taken
Open capture.calibr.chbest on a phone: it asks for the camera
4% of the frame "move closer" fires on its own beforethe photo goes in, the search misses nowthe bad photo doesn't exist
The gauge at the bottom is how much of the frame the part fills. The threshold comes from the catalog's photo specification; the accuracy drop with raw photos is measured in the project documentation.
City directories · Brazil, Mexico and the US · our own productlive and growing

Guides people open when they're about to decide.

A family of local guides — where to eat, where to get treated, who fixes the house — built from public data and written for someone who arrives from Google at seven in the evening looking for "pizza in Recife". Nobody browses: they open the list for their city and call.

The first one, SaborCidade, went from 2 people a day in July to over 800 in September, with no paid media. 19% of page views end in a contact: WhatsApp, phone, website or map. That's what the advertiser buys, and their dashboard shows the real number.

336,409restaurants, bars and cafés in 230 cities
20,000people a month, at last week's pace
9,400contact clicks a month
92%of visits come from Google
SaborCidadeBR SaborCiudadMX SavorCityUS HealCityUS SaludCiudadMX CasaCidadeBR SaúdeCidadeBR AutoCidadeBR · 108,000 businesses
People per week on SaborCidade Google Analytics, through Sep 26, 2026 188Aug 16 753Aug 23 1,098Aug 30 1,957Sep 6 3,725Sep 13 4,767Sep 20 week starting on
In the week of September 20–26: 4,767 people, 8,178 page views and 1,581 contacts. The daily numbers are on the advertising page (in Portuguese).
Baguete · tech news portal · migrationin progress

From 3 million lines to 25,000.

The portal ran on PHP with Zend Framework 1 and an embedded Revive ad server. Counting everything that shipped along with it on disk, it was 3,064,825 lines in 8,374 files. The new version, in Go, with the site, newsroom and newsletter, is 25,422 lines in 179 files.

The gain didn't come from writing the same code shorter: our own code halved, from ~43,600 to ~20,900 lines. The rest came from no longer carrying 2.3 million lines of third-party code and 685,000 lines of generated files stored alongside the program. Fewer parts to update, fewer doors to watch.

120×fewer lines overall
115 → 1.7 MBof code on disk
8,374 → 179files
2.1×less code of our own
Non-blank lines, on the same scale legacy · PHP / Zend 1 + Revive Revive (ads) · 1.37 M Zend and libs · 774 K generated · 685 K our own code · 43.6 K new · Go 25,422 lines: the sliver on the left 3,064,825 → 25,422
Count of non-blank lines by category, across both project trees. In the legacy system, 74% of the lines were third-party (Revive, Zend, libraries in public/) and 22% were generated files.
What it wasLines in legacyWhat it is todayLines in the new version
PHP application (controllers, models, views)22,493Go application12,370
Own front end (CSS, JS, standalone pages)21,140HTML templates (site, admin, newsletter) and own CSS/JS6,837
Revive Adserver1,370,831—0
Zend Framework 1 and PHP libraries774,459Third-party (Editor.js, jssocials, jQuery Validate)314
Generated data (sitemaps, saved newsletter issues)685,340SQL (schema, migrations, seeds)1,701
Third-party in public/, prototypes, campaigns, documentation190,562Tests, documentation, deploy, configuration, inherited4,200
Total3,064,825Total25,422
Trama MX-21 · spring mattress simulation · our lablive · model runs on our server

Linking springs with rods: how much firmer, and where.

A pocket-spring mattress sags because every spring works alone. The simulation ties the spring tops together with steel rods, helical wire or plastic plates inside the comfort layer, in 15 patterns, and computes firmness, edge support and how much of a partner's movement crosses the bed. It models the 609 springs of a 138 × 188 cm Brazilian double, SAE 1070 steel, D30, D45 or latex foam, and the weight of each body segment from the Dempster and Winter tables.

The most surprising result: linking springs in pairs, the obvious idea, barely changes anything, because each pair becomes a seesaw. Interlocked C shapes make the mattress 13 times firmer with 4.6 kg of steel, without passing movement to the other side. A triangulated mesh is the firmest, but carries 16% of a push across the bed. The model runs on our server, in Go; the page only receives the numbers it draws.

13×firmer with interlocked C shapes, using 4.6 kg of steel
1.1×with loose pairs: a seesaw does not stiffen
16%of movement crosses the triangulated mesh
< 1 sto compare all 15 patterns on the server
Firmness at one point under the hip, N/mm same Ø1.8 mm spring, Ø4 steel rods, no comfort layer loose pocket springs0.39 honeycomb pocket0.50 continuous wire1.56 interlocked C shapes5.20 mesh8.62 triangulated mesh10.84 0.39 → 5.20 N/mm
A 100 N force on a knee-sized disc, averaged over four positions. The pocket fabric and the helical wire have estimated, not measured, stiffness: the numbers show the trend between patterns, they do not certify a mattress.
How we work

Four habits, no slogans.

  1. Measure before promising

    Every number that goes on a page comes with its source, its date and a way to redo the math. Third-party estimates appear as estimates, with the name of whoever made them.

  2. Publish the correction

    When one of our numbers was wrong, the page says what it was, what it is and why. That's what happened with vibration compression and with the scaling of certified search.

  3. Fewer parts

    Go, a relational database and pages that arrive ready from the server. Every dependency is one more door to watch; the Baguete migration removed 2.3 million lines of them.

  4. Let the client check

    The checker ships with the system. Whoever receives the data, the report or the vote can verify it without having to trust us.

Who with

Twenty-six years of real problems.

The first big system was for a hospital, in Parobé, in 2000. Then came a university hospital, web hosting, email marketing, retail, a real-estate lender, agroforestry research and a newsroom. The technology changed several times. The kind of question didn't: scale without breaking, cost less, know when the number is wrong.

Contact

Tell us the problem. We'll say if we can measure it.

We don't sell packages. First we understand what you need to prove, and to whom. If it isn't a job for us, we say so in the first reply.

algorithms@stickybit.com.br WhatsApp Porto Alegre, Brazil · we reply within one business day · English or Portuguese