Denva / Work / Routie - 3D Configurator

Routie

Denva's own product: a shop and a 3D configurator for framed prints of uploaded routes, built from scratch instead of on a ready-made platform. The customer uploads a tracked route, composes a print, and the same configuration yields both the print-ready PDF and the file the 3D printer runs.

routie.sk
Routie - 3D Configurator
Klient
Routie - 3D Configurator
Odvetvie
Our own e-commerce product · made to order · Slovakia and the EU
Spolupráca
2026 (platform, configurator and the move off WooCommerce; live since 7 November 2026)
2026
Náš podiel
Product, platform, design, development, map infrastructure and operations, all in-house
Stack
Next.js · React · TypeScript · PostgreSQL · three.js · MapLibre
Výzva

A shop with nothing in stock. Every print is made after the order, from a route the customer uploads, and it has to be manufacturable to the millimetre.

Routie is not a catalogue. The customer uploads a tracked route from their app or device, composes a print from it, and we manufacture that print: the route is 3D printed as a matte PLA relief, glued onto glass, with the printed map behind the glass inside a frame. So a configuration made in a browser has to produce a manufacturing file, not a picture. That is a different job from a shop, and no ready-made platform does it or can be pushed into doing it with plugins.

The second layer is risk. With made-to-order goods there is no change-of-mind return, so a wrong file means a discarded print and an angry customer. That is why we did not only build a configurator, we built the brakes too: the print file has to be reproducible, the proof has to prove it describes the same print, and production must not start when those two drift apart. Add maps that must not depend on somebody else's API key, because here the map is part of a physical product and tile licence terms can change.

Prístup

4 rozhodnutia, ktoré zmenili všetko.

  1. 01

    Our own platform, not a ready-made shop

    Next.js with the App Router, TypeScript in strict mode, PostgreSQL and Drizzle: 91 tables and 33 migrations. It is built from scratch precisely because the configurator is the heart of the project, and a configurator like this cannot be bolted onto a ready-made platform. The platform core is also separated from the Routie layer, and that boundary is proven by a test rather than by agreement: a synthetic shop selling standard products completes checkout in CI without loading a single Routie package.

  2. 02

    A configurator that ends in a manufacturing file

    The configurator is the core of the whole project and we built it from scratch. The customer uploads GPX, TCX or KML; the format is sniffed from the file's root element, never from its name or MIME type. They pick from 25 templates, three formats, two frames and 17 map styles, or take one of 40 Formula 1 circuits and 37 iconic routes. A single render pass produces the 300 dpi print PDF, the customer's proof and a binary STL in millimetres, so the proof and the print file cannot describe two different prints.

  3. 03

    Self-hosted map tiles instead of somebody else's API

    We serve the maps ourselves: over 600 GB of our own PMTiles archives built from OpenFreeMap vector data and Mapterhorn elevation data. Not one map request carries a third-party API key, so the map that is part of a physical print depends on nobody else's licence terms and on nobody else's uptime.

  4. 04

    Brakes that stop a bad print

    Before production the proof is compared against the print file, with a tolerance of 2 % of pixels and 0.3 mm of geometric deviation. On a mismatch the printing state cannot be reached until an operator clears it with a stated reason. The render itself runs in an isolated origin that knows neither the database nor the object store, and the process refuses to accept a single job at start-up if its probe reaches the network.

Riešenie

Jedna
spoločná reč.

routie.sk
A home page that explains a physical product
01
A home page that explains a physical product
The print is taken apart into five layers right on the home page: the 3D route in matte PLA, 4 to 15 mm tall, the frame, 2 mm glass, the printed map, and the backing board with a hook and a stand. Below it, prices from 40.00 EUR for an A5 print with a frame and delivery to Slovakia in 4 to 8 days including production.
/navrh
The configurator: from a tracked route to the wall
02
The configurator: from a tracked route to the wall
Upload the route, choose the template, format, frame and map style, and add your own text on the print. The route is simplified, outlined and fitted to the page analytically rather than by guesswork, and the 3D scene redraws only when something actually changes. On a phone the raster resolution drops, never the 3D scene itself.
/p/
A product page priced per format
03
A product page priced per format
A5 at 40.00 EUR, A4 at 55.00 EUR and A3 at 70.00 EUR, in a black or a white frame. The structured data carries all 26 destination countries, so the shipping price is machine-readable before anything goes into the basket.
/hotove-obrazy
Ready-made prints for people who upload nothing
04
Ready-made prints for people who upload nothing
82 ready-made prints in four categories: 23 mountain, 6 running, 14 cycling and 39 motorsport, from 35.00 EUR. The same production line as a custom route, just without the file upload.
/mapove-zdroje
Map sources as a page of their own
05
Map sources as a page of their own
OpenStreetMap, OpenMapTiles, OpenFreeMap, Planetiler, Natural Earth, Wikidata and Mapterhorn, with licences and links. A short address is printed on the product itself and redirects to this page in the visitor's language, spelled with the page's current URL, so renaming the page never breaks an address that is already on paper.
Výsledky

Čo sa po spustení
zmenilo ,

2 domains, 2 languages
routie.sk and routie.eu
Slovak and English, x-default on .eu
129 of 129
redirects verified on the live host
moved off WooCommerce on 7 November 2026
0 third-party API keys
in any map request
self-hosted PMTiles, over 600 GB
300 dpi
print PDF, byte for byte identical
plus an STL in millimetres from the same pass
Použitý stack

Boring tools.
Predvídateľný výsledok.

Platform and backend
Next.js, App Router TypeScript, strict PostgreSQL Drizzle ORM pg-boss (queues) Better Auth
Configurator and 3D
three.js, react-three-fiber MapLibre GL turf.js (geometry) Custom STL export 300 dpi PDF zod at every boundary
Map infrastructure
PMTiles, self-hosted OpenFreeMap (vectors) Mapterhorn (terrain) go-pmtiles behind Caddy Cloudflare No third-party API key
Integrations and operations
Stripe Payment Element Card, Apple Pay, Google Pay Packeta, 26 EU countries Playwright render worker Sentry Hetzner and Cloudflare Tunnel
Let's build something together

You bring the idea. We handle the rest.

Tell us what you need. We will reply within one business day with an honest take on whether we are the right fit, the scope and timeline we see, and a custom quote.

Only your name, email and message are required. Fields with a red dot are required.

What can we help you with?
Attach materials (optional)