12 min
Treez: 5 Failed Attempts to Build a Simple Family Tree App3
What started as a clean idea — "Your family, in one place" — turned into five separate experiments across multiple platforms, tools, and AI agents. All five resulted in broken products.
Here’s what I learned trying to build Treez, the simplest, most expressive family tree builder imaginable — and why simplicity is harder than it looks.
🎯 The Goal
Create a family tree tool where:
- Anyone can write markdown or chat and get a visual diagram instantly
- No drag-and-drop
- No duplication of people
- True generation-based structure
- Expandable with profile + timeline per person
- Shareable, exportable, editable
🔍 Research Phase
Competitor Analysis
- Most tools (Ancestry, MyHeritage, etc.) are bloated, outdated, or locked behind paywalls
- No tool combines text input simplicity with visual clarity
Requirements
- Markdown-to-diagram and chat-to-diagram input
- Dynamic, generational tree rendering
- One-instance-per-person logic
- Editable node sidebar
- Export and invite flows
- Mobile-first minimalism
User Journey
- Access a dashboard
- Create a new family tree
- Type markdown or send a chat
- See real-time, generation-accurate visual diagram
- Click any person to edit
- Export or invite family
🧪 Method 1: Lovable (Fullstack, System-Prompt Driven)
- System prompts based on user journey
- Built backend + frontend + domain in one go
- Used 56 prompts to cycle through ReactFlow, HTML, Canvas, etc.
- Switched between stable/unstable states, agent mode, screenshot mode, and more
- Result: Broken product
- Why: Frontend disconnected from markdown logic, generational layout non-existent
🧪 Method 2: Lovable (Frontend-Only with Mockup Guidance)
- Single frontend flow, mockup-guided
- 26 prompts to fix rendering logic
- No backend, no domain
- Result: Broken product
- Why: Generational layout still failed, duplicate nodes everywhere
🧪 Method 3: Figma + Make (Frontend Only)
- Clean design pass
- Logic-free flow using Make
- Result: Broken product
- Why: Static visuals with zero relationship logic — dead canvas
🧪 Method 4: Bolt (Frontend + Auth Attempt)
- Auto-generated landing page
- Plugged in broken mock authentication
- Result: Broken product
- Why: Auth mocked, no working state flow, dead buttons
🧪 Method 5: Lovable Redux (Markdown & Chat Logic Attempt)
- Frontend-only
- New logic: markdown-to-diagram and chat-to-diagram
- 1 go user flow to tree creation
- Loop of errors in canvas rendering
- Multiple prompts for deduplication, generation fixing, diamond-logic repair
- Result: Broken product
- Why: No persistent tree memory; couldn’t reconcile chat updates into a true tree
🧠 The Pattern
- All tools are optimized for fast UI, not structured logic
- No tool respected:
- generational hierarchy
- instance merging
- tree re-layout based on input
Each flow succeeded in visual generation, failed in structural truth.
💬 Takeaway
The illusion of speed hides the depth of logic required.
If you want to build a tree, you need roots, memory, and branching.
AI-generated frontends right now don’t offer any of those.