Project · No. 001 · Named with the owners' permission
Cort Acerox: a catalog and quote-request site for a laser-cut metal shop in Puebla
A workshop that cuts steel to order: lattice screens, doors, gates, house numbers, decorative pieces. Nothing has a fixed price, everything is quoted from the measurements. The site had to show the catalog, take the request by WhatsApp or by form, and let the owners run it themselves.
Most of our work is published redacted. This one is named because the owners said yes, and because a made-to-order catalog with a quote flow is the shape of half the B2B storefronts we read.

The live site, at cort-acerox.fly.dev. Spanish only, as the shop sells only in Mexico.
What was built
- A catalog the owners edit — Five lines, fifteen pieces at launch, each with images, materials, finishes and the measurements it is cut to. Products and categories live in an admin panel the owners use; no developer is needed to add a piece.
- Quotes two ways — WhatsApp first, on every page, because that is how the shop's buyers already talk to it. A written form as the alternative, prefilled from the product the visitor was looking at, landing in the same admin with a status the owners move from new to contacted to closed.
- The legal pages, in Mexican law — Privacy notice and terms drafted against the LFPDPPP, linked from the footer and from the form, with the registry data held in one file so it changes in one place.
- Search and social basics — Titles, descriptions, a sitemap, share images, and a robots file that lets search and answer engines in and keeps crawlers meant for training out.

Under the hood
One app, one container
Next.js with Payload as the embedded content system, so the storefront and the admin are one deployment. Postgres on Neon for the data, Cloudflare R2 for the images, a single small machine on Fly.io. Local development runs the same code on a file database.
Watched without a bill
Errors go to Sentry. Visits go to Umami, cookieless. Every push runs the type check, the lint and the build. Every two hours a browser walks the live site and files a quote request, so a broken form is known before a buyer finds it. All of it on free tiers.
Theirs to keep
The repository, the hosting account, the database, the analytics: every one is in the owners' name. Hosting runs about six US dollars a month. If we disappeared tomorrow, the shop's site would not notice.
What it has in common with your store
Made to order, quoted, not carted. A catalog that is really a set of starting points. A buyer who wants to talk before paying. That is a small B2B storefront in everything but the name, and the same reading applies to a distributor's portal or a retailer's product page: what does the buyer see, where does the path to an order break, and who is told when it does.
Retailers: request the free audit →