The configurator for Axle Keys: the Configure workspace, where the maker of a parametric model chooses what a buyer is allowed to change, and the published page a buyer then uses — dimensions within set limits, finishes, presets, assembly variants, a walkthrough, price and a quote request.
This is a verbatim copy of the configurator as it stood in the Axle Keys application on
2026-09-15 (commit f5582904), moved here so it can become an installable Axle plugin
instead of part of the core product.
It does not build on its own. It grew up inside the app and calls the app for nearly everything: the 3D viewer, the geometry kernel, the record layer. At extraction, the buyer page bundled 46 source files, and only 15.8% of them were configurator code — the rest belonged to the host application. The plan for this repo is to keep what works, drop what doesn't, and rebuild the rest against a defined plugin interface.
Paths are the ones these files had inside the application, so they stay easy to trace.
| Path | What it is |
|---|---|
app/components/configurator/ |
the buyer runtime (published page and in-Studio preview) and the six author editors — parameters, presets, slots, appearance, commerce, publish |
app/components/workspaces/configure/ |
the Configure workspace: its record, authoring state, and inspector |
app/routes/embed.$id.tsx |
the public page route (/embed/:id) |
app/lib/ |
configurator-only helpers: buyer parameter resolution, embed runtime, screenshot capture, quote submission, pricing, instruction walkthrough, certification wording |
worker/routes/ |
the server routes, sliced out of the application's worker. Each file's header records the source lines; they are slices of one large request handler, not standalone modules |
mcp/proxy-tools.configurator.json |
the five agent tools: create_configurator, get_configurator, set_configurator, publish_configurator, capture_preview |
supabase/supabase-migration-configurator-leads.sql |
the quote-request (leads) table |
scripts/headless/ssr/, worker/scripts/ |
its existing tests |
The rebuild's main question is what the plugin gets from Axle rather than carrying itself:
- a 3D viewport, and the geometry kernel that builds a model in the browser
- loading and saving the configurator record, and serving the published payload
- publishing: freezing a snapshot, baking the opening geometry, the certification stamp
- parameter presentation and schema; materials, lighting and brand tokens
- cut list and assembly instructions; the motion walkthrough and joints; the assembly solver
- host chrome: notifications and icons
MIT — see LICENSE.