Inspiration
Every car build starts the same way: hours of scrolling through forums, YouTube comments, and random Instagram posts trying to reverse-engineer how someone actually got their car to look like that. The knowledge exists, it's just scattered, undocumented, and impossible to search. We wanted to give car builds the thing every other creative, iterative project already has: version history. What if you could see a car's entire mod lineage the way you see a Git commit tree, branch from any point in it, and actually find the exact build path you're picturing?
What it does
BuildaMod turns a car's mod history into a living, explorable tree. Every build starts from a stock root node, and every modification, a lift kit, a wrap, an engine swap, is a branch anyone can fork off of. Two branches can even be fused together into a new hybrid build. Each node has its own community: photos, sketches, voice notes, videos, and build guides with parts lists, cost, and difficulty, contributed by whoever actually did the work. An AI search bar lets you describe a vibe ("lifted, red, aggressive") and jumps you straight to the branch that matches, and an AI assistant on every node can answer build-specific questions using that node's real contributed context.
How we built it
The frontend is Next.js 16 and React 19 with Tailwind v4 for the dark, glass-panel design system. The tree itself runs on React Flow with Dagre for auto-layout, giving us native pan, zoom, and drag on both the build graph and the per-node contribution canvas. Zustand handles shared state like active filters, focused branches, and merge selections across the app. On the backend, build data, contributions, and chat are served through an API layer with an AI service that handles natural-language search and per-node chat, backed by a database that persists the whole DAG of builds, forks, and fusions.
Challenges we ran into
Rendering a real DAG (not a strict tree, since fusion nodes have two parents) through a layout engine built for trees took some real wrangling to get right without edges crossing through unrelated nodes. Getting pan and zoom to feel identical across two different canvases (the build graph and the contribution board) meant standardizing on one interaction model instead of hand-rolling scroll math twice. And once the tree grew to dozens of nodes, showing the whole thing by default was overwhelming, so we had to design a progressive-disclosure view that starts collapsed and lets you drill into exactly the branch you care about.
Accomplishments that we're proud of
We're proud that the graph doesn't just look like a tree, it behaves like one: forking, fusing, filtering by attributes, and AI search all operate on the same live data structure and stay in sync instantly. The contribution board feels like a real collaborative canvas, not a static feed, with draggable posts, image and voice notes, and threaded replies per contribution. And the whole thing runs on one clean design system end to end, from the landing page to the deepest node in the tree.
What we learned
We learned how much of "does this feel good to use" comes down to matching interaction patterns exactly across a product, a slightly different scroll or zoom behavior between two canvases is immediately noticeable even if neither one is objectively wrong. We also learned a lot about representing DAGs (not just trees) cleanly in both data and UI once fusion nodes entered the picture, and how much value a simple attribute-based filter adds once a tree gets big enough that browsing alone doesn't cut it.
What's next for BuildaMod
Next up is real accounts and ownership, so a build tree reflects who actually contributed what, plus richer AI: recommending your next mod based on the branch you're on, auto-generating a parts list and budget from a chosen build path, and letting the AI assistant pull in real product links and pricing. We'd also love a "compare builds" mode that diffs two branches side by side, and mobile support so you can log a build from the garage, not just from a desktop.
Built With
- langchain
- nextjs
- python
- tailwind
Log in or sign up for Devpost to join the conversation.