FurniForms — Configuration Engine for 3D Furniture

November 1, 2025

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

GitHub
LinkedIn