Drone Builds
Composite products — sell complete drones with visible component lists
Differentiator #4
ProductComponent (parent/component relation) already exists in the schema. An FPV quad listing that auto-displays its known components (FC, ESC, motors, VTX) is huge for buyers evaluating used builds — see the roadmap priorities.
Concept
A "drone build" is a composite product made of individual parts. This enables:
- Selling complete drones — buyers see exactly what parts are inside
- Price comparison — sum of individual part prices vs build price
- Build discovery — "show me all 5-inch freestyle builds under €500"
- Part compatibility — future feature
A typical FPV build: Frame ×1 (size defines the build: 3"/5"/7") · Motors ×4 (must match frame size) · FC ×1 · ESC ×1 (4-in-1 or individual) · VTX ×1 · Camera ×1 · Propellers ×4+ · Receiver ×1 · Antenna ×1–2 · Battery (optional, often sold separately).
Data model enhancement
The existing table needs a quantity field:
model ProductComponent {
id Int @id @default(autoincrement())
parentId Int
componentId Int
quantity Int @default(1) // e.g. 4 motors
parent Product @relation("parent")
component Product @relation("component")
@@unique([parentId, componentId])
}No component-type field needed — derive it from the component product's category.
Build page UI
┌────────────────────────────────────────────┐
│ 5" Freestyle Build — Custom Nazgul │
│ €650 · Like New · Verified │
│ │
│ Components: │
│ ┌──────────────────────────────────────┐ │
│ │ Frame │ iFlight Nazgul5 V3 │ €35│ │
│ │ Motors │ EMAX Eco II 2306 ×4 │ €48│ │
│ │ FC │ SpeedyBee F405 V4 │ €32│ │
│ │ ESC │ SpeedyBee 55A 4in1 │ €38│ │
│ │ VTX │ Rush Tank Solo │ €28│ │
│ │ Camera │ Caddx Ratel 2 │ €22│ │
│ │ RX │ ELRS EP2 │ €12│ │
│ └──────────────────────────────────────┘ │
│ Parts total: €715 · Build price: €650 │
│ You save: €65 (9%) │
└────────────────────────────────────────────┘Tasks
V1 — build display:
quantityfield onProductComponent; endpoint to query a product's build components- Component table with prices on the deal page; "parts total vs build price" comparison
- Deal form: mark a deal as "complete build" and link components (component picker = same UX as the deal product picker)
- "Complete builds" filter on the browse page
V2 — build configurator:
- Step-by-step configurator (frame → motors → FC → …) with compatibility suggestions (frame size → motor size → prop size)
- Save/share custom builds; "Build this drone" → links to individual parts in shops
Decision: builds come from the catalog
Sellers search and add existing catalog products as components (same UX as the deal product picker). If a part is missing, they use "Create new product". This keeps data clean and enables the price comparison.