Crate Identity & product system

The layout is packed, not arranged.

Crate is a shipping API in Tallinn: one endpoint, every carrier. The product surface is a bento grid, which is the fastest way to look current and the fastest way to look arbitrary. So the tiles are not composed. They are sorted by weight and packed by a stated algorithm, and the layout is whatever falls out.

Client
Crate (invented)
Place
Tallinn
Style
Bento grid
After
Apple product pages, 2022 onward
Type
Manrope; IBM Plex Mono
Grid
4 columns, tiles of 1, 2, 3 or 4
01

One tile, one claim

A tile carries a single thing that is true about the product. If it needs a second sentence to make sense it is two tiles, and if it needs a subheading it was never a tile at all.

41

Carriers, one endpoint

Add a carrier without shipping code.

Coverage
99.98%

Uptime, rolling year

Measured
80ms

Median quote

p50, Tallinn

Rates that match the invoice

Quotes are the carrier’s own, not an estimate we generated. If they differ we pay the gap.

Pricing

Labels in one call

PDF or ZPL, both returned, no second request.

Labels

The five tiles, packed at four columns

Weight
Every tile has a number from 1 to 4, set by how much of the argument it carries. The number is the span, and it is the only size decision anyone makes.
Gradient
One hue, two stops, on at most two tiles per view. A gradient is emphasis, so a grid where every tile has one has emphasised nothing.
Radius
14 px everywhere, including the code block and the card. One radius or the page reads as assembled from parts.
Never
Never an illustration inside a tile to fill space. A tile that is mostly decoration is a tile with nothing to say, and it should be removed rather than dressed.
02

Turn tiles off and watch it re-pack

Nobody arranges this. Tiles are sorted by weight, the heaviest placed first, and the remainder fills the row so no gap is ever left. Switch any of them off: the layout recomputes and stays gapless.

 

Tiles in the view
Tiles5
Rows2
Empty cells0
The algorithm
Sort by weight descending. Place each tile in the first row with room. If a row would end short, the last tile in it is widened to close the gap.
Why state it
Bento is the easiest layout to fake taste with. Writing the packer down means a new feature can be added by someone who is not a designer and the page still holds.
Empty cells
Always zero. A gap in a bento reads as a missing tile, and a missing tile reads as a missing feature.
The cost
You lose the ability to put the best thing top left. That is the trade, and it is worth it: with five people editing the page, hand-placement lasts about a fortnight.
03

Two greens and a clay

Sea green does the product, clay does anything that has gone wrong, and slate carries the one dark tile. There is no purple, which for a developer tool in 2022 was the decision.

Sea#0E6B63 → #14958AThe one product gradient. Two stops of one hue, never three.
Slate#2B3A4A → #3C4E60The dark tile. One per view, and it is where the code goes.
Clay#C2542BFailures, retries and rate limits. Never used for anything working.
Ground#F4F5F7Behind the tiles. Cool, so the sea reads as the warmest thing on the page.
04

Numbers first

The display size exists for figures, not headlines. Anything that can be measured is set large; anything that cannot is set at reading size and made to earn its place.

Figure
800 · tabular
99.98%
Tile heading
700
Rates that match the invoice
Body
400
Quotes are the carrier’s own, returned unmodified. If the invoice differs from the quote we pay the difference, which is a policy rather than a promise.
Code & labels
Plex Mono
POST /v1/quotes · 200 OK · 80ms
05

Applications

A pitch slide, the docs and a card. The slide is the same packer at a different aspect, which is the test of whether the rule was real.

CrateSeries A · slide 6
41

Carriers

One endpoint
99.98%

Uptime

80ms

Median quote

Rates match the invoice

Or we pay the difference.

Labels in one call

PDF and ZPL together.

Pitch slide, 16:9 · same packer, different aspect

Crate docsv1 · quotes

Get a quote

One call returns every carrier that will take the parcel, with the carrier’s own price.

# request
POST /v1/quotes
{ "from": "EE", "to": "FI",
  "kg": 2.4 }

# 200 OK · 80ms
[ { "carrier": "omniva",
    "eur": 6.40 } ]

Documentation

Crate
Shipping API · Tallinn Mart Kesk · Solutions

Card, 85 × 55 mm

06

Voice

Developers are the buyer and they read the docs before the landing page. Every claim on the marketing surface has to survive being checked in the console ten minutes later.

Say

Median quote 80 ms. p99 is 340.

Both numbers, including the bad one. Quoting only the median is how trust goes.
Not

Blazing-fast shipping infrastructure.

No number, so nothing to check and nothing to hold us to.
Say

41 carriers. Six are EU only. The list is on this page.

The limitation is stated where the claim is, not in a footnote.
Not

Seamless integration with your existing stack.

Every API says this. It is the sentence you write when you have not tried it.
07

What breaks it

Bento aged faster than anything else in this set. It is already the sign of a product page built in a hurry, and these four are why.

The gap left in A feature is cut and nobody re-packs. The hole reads as something missing, and on a pricing page that is exactly the wrong thing to imply.
Three hues in one gradient The tile stops being a surface and becomes a picture of a gradient. Two stops of one hue is a material; three is a screensaver.
Enterprise-grade, end-to-end shipping orchestration for modern commerce teams at any scale
A paragraph in a tile The tile was one claim and now it is a brochure. If it does not fit in two lines it is not a tile, and the packer cannot save a page whose content has stopped obeying the rule.
Everything becomes a tile Once it works for features it gets used for the team, the blog and the footer. A grid of eighteen equal tiles is a table with rounded corners, and a table would have been clearer.

Crate is invented, built as a portfolio exercise in the bento grid. Tallinn and the carriers named are real; this company, its figures, latencies and staff are not, and no number here should be read as a real measurement. The layout language is after the Apple product pages of 2022 onward and the many product sites that followed them. Those teams are credited as influences only. Part of the One Rule Each series.

Rule

Every tile has a weight from 1 to 4. Sort by weight, place in the first row with room, widen the last tile to close any gap. Nobody arranges it.