1-833-643-7737 Talk to us

Work/Packwire

Packaging

Packwire

Custom packaging sold through an interactive 3D configurator. The configurator, the front end and the back end were each rebuilt, along with a shipping engine of our own, and the product customers already knew was left recognizably intact.

packwire.com ↗
Industry
Custom packaging
Platform
Cloudflare Workers and KV, Astro, with AWS alongside
Scope
3D configurator, shipping engine, front end and back end rebuilt
What was built

Three rebuilds, one product

The work was a rebuild in three parts. The 3D configurator was remade, the front end was rebuilt in Astro, and the back end was rebuilt underneath both, including a shipping engine written from scratch to replace the third-party service that had been quoting rates until then.

Doing all three is a larger undertaking than doing one, and it is also the only version that pays off. A new configurator on an old back end inherits the old back end's limits, and a new front end in front of an old configurator is a coat of paint.

What made it feasible was treating the marketing site and the configurator as one system rather than two properties that link to each other. Pricing, product data and rendering stay consistent across both, so a price quoted in the configurator is the price the page that sent you there was showing.

The configurator, remade

Custom packaging is configured rather than picked. A customer chooses a box family, then dimensions, material, finish and artwork, and every one of those choices changes both the render on the screen and the price beside it.

The configurator has to hold that together in real time. The 3D view is not decoration: it is the only way a customer can tell whether the thing they are specifying is the thing they meant, before it is manufactured in quantity.

Rebuilding it meant rebuilding that loop, so the render, the specification and the quote stay in step with each other through every change a customer makes.

Packwire custom mailer box Mailer boxThe volume product
Packwire custom shipping box Shipping boxCorrugated, at scale
Packwire custom folding box Folding cartonRetail presentation
Packwire custom rigid box Rigid boxThe premium end

Four box families, each with its own dimensions, materials, finishes and print treatments. The configurator renders and prices any combination of those, which is why it is the product rather than a feature of it.

One price, out of millions of combinations

Every choice in the configurator moves the price. Box family, dimensions, board grade, print coverage, finish and quantity all compound, and the cross product of them runs into the millions of combinations. A matrix that size is generated rather than authored, and nobody reads it end to end.

Generated pricing behaves like generated data. Across a surface that large there are cells that sit away from their neighbors: a slightly bigger box landing under a slightly smaller one, a step where the curve should be smooth. Each of those is correct on its own inputs and only stands out when you look at it next to the cell beside it, which at this scale is not something you do by eye.

So the whole matrix was analyzed in R rather than sampled. Outliers were identified statistically across the full surface, and the pricing was flattened so it moves smoothly and predictably as a specification changes.

The effect on the product is direct. A customer who adds a quarter inch to a dimension should see the price move in the direction they expect, every time, in every one of those millions of combinations. That consistency is what makes a self-serve quote something a buyer will act on without picking up the phone.

A shipping engine of our own

Rates used to come from a third-party service. They now come from an engine we built, running as its own Cloudflare Worker so it releases separately from the storefront, quoting FedEx parcel and LTL freight live against the carriers across the United States and Canada.

The interesting part is what a box is in transit. Packwire sells boxes, and a box ships flat, so the engine first converts an order into the blanks it will actually become and packs those into master shippers, choosing cartons that stay clear of the carrier's weight and dimension surcharges. Where nothing parcel-shaped fits, it builds pallets and quotes freight instead.

Dates come from two clocks. The carrier supplies transit in business days. Production is counted separately, in calendar days that vary by box style and quantity, with a two o'clock Eastern cutoff deciding whether that clock starts today. What the customer sees is the two added together.

Astro on the front

The front end was rebuilt in Astro, which suits the shape of this site precisely: most of it is content that should be static and fast, and a small part of it is an application that has to be interactive.

Astro lets those two live in one codebase without the content pages paying for the configurator's weight. The marketing pages ship as static output. The configurator loads as the interactive part of the page it lives on.

For a business whose search traffic arrives on product and material pages and whose revenue happens inside the configurator, that split is the whole architecture in one decision.

Data on the edge

The back end moved off DynamoDB and onto Cloudflare KV. Packwire runs almost entirely on Cloudflare now, with AWS kept for the services that are better placed there, and of everything under the hood the move to KV is the change a customer can feel.

A configurator is a read-heavy surface by nature. Every adjustment a customer makes is a lookup against product data and the pricing matrix, and a single session is hundreds of those inside a few minutes. Writes happen when the catalog or the pricing changes, which is rare by comparison. KV is built for that ratio, and the ratio here is about as lopsided as it gets.

What changes most is where the data sits. A DynamoDB read is answered from the region the table lives in, so a customer far from that region pays the round trip on every single interaction. KV replicates across Cloudflare's network, so the same read is answered close to whoever is asking, wherever they are.

Workers run at the edge as well, which puts the compute and the data it needs in the same place with no hop back to a region in the middle of a request. With the Astro output served from the same network, the page, the logic behind it and the data underneath it all resolve at the edge.

The economics follow the same shape. Configurator traffic is spiky: a customer specifies a box in a burst over a few minutes and then goes quiet, and a quoting run can arrive at any hour. Provisioning for the peak means paying for it around the clock, and this architecture is elastic under load and inexpensive at rest instead.

Rebuilt without a relaunch

All of it happened underneath a frontend experience customers already recognized. The signature interface was preserved rather than redesigned.

There was no relaunch, no announcement and nothing for a returning customer to relearn. For a product people already knew how to use, that was the point of the exercise.

It is the least visible outcome on this page and the one that took the most discipline. Rebuilding three layers while keeping the surface stable means every decision underneath is constrained by something above it that is not moving.

Where it stands

A new stack under a product nobody had to relearn.

A remade configurator, an Astro front end and a serverless back end, behind the same interface customers were already using.

Tell us what you are working on.

A scope, a brief, or a store that already exists.