The problem
Designers at furniture companies need a way to build parametric configurators for their 3D products — picking dimensions, materials, modules, finishes — without writing code. Existing form tools (Google Forms, Typeform) flatten everything into a questionnaire, but a real furniture configurator is a logic graph where one choice changes what's available downstream.
What I built
A backend "form builder" where each form is itself a configurator. The system is composed of:
- Configurators — the top-level form, with versioning, soft-delete, and JSON export/import
- Items / Item Types / Tree — hierarchical sections and fields, nested as a tree
- Attributes / Variable Types — typed fields the user fills in
- Conditions / Operations / Dependencies — the rule engine that evaluates "if material = oak AND width > 200, then hide drawer option"
- Catalog — articles, categories, folders synced from Odoo
Architecture decisions
✏️ TODO: Add diagrams and decisions on:
- Why Prisma + Postgres over an OLTP store
- How the rule engine evaluates dependency chains
- Export/import strategy for full configurator clones
- Redis usage for cache + queue
What I'd do differently
✏️ TODO
Tech stack
NestJS · Prisma · PostgreSQL · Redis · TypeScript · Docker · OAuth