Treeper — Product Plan
One-liner. Treeper is the place travellers plan, track, and find people for trips — and let AI turn the reels they bookmark into real itineraries.
This document is the product brief for Treeper. It captures the full
ambition. Each capability listed here will be turned into one or more
specs/features/NNNN-*.md before any meaningful code is
written for it.
For the lighter, decision-grade “north-star” version of this, see specs/product-vision.md.
1. Problem we are solving
Section titled “1. Problem we are solving”People who plan their own trips do it across:
- Notes apps and screenshots of reels / posts
- Group chats with friends “did anyone save that café?”
- Booking-site emails buried in inboxes
- Random Word/Google Docs shared once and never opened on the trip
- Maps with 30 unlabeled pins
Then during the trip, none of those plans get updated, and after the trip, nothing useful is left to share with the next traveller.
We also see two recurring asks online:
- “Anyone going to X in month? I want a travel buddy.”
- “Anyone has a verified guide / package recommendation for X?”
Today these get answered in subreddits and Instagram comments, badly.
2. Who it is for
Section titled “2. Who it is for”| Persona | What they want from Treeper |
|---|---|
| Solo planner | One place for an upcoming trip. Drop links, days, budgets, done. |
| Group lead | Plan a trip and gather people to join it. |
| Trip-mate seeker | Find a small group going somewhere on the dates that suit them. |
| Active traveller | Use the plan offline on the trip, mark stuff done, log photos / notes. |
| Inspiration hoarder | Forwards reels / blogs / YouTube videos. Wants AI to turn them into a plan. |
| Curated planner | Wants verified guides and day-adventure packages, not random lists. |
3. Pillars
Section titled “3. Pillars”The product has five pillars. Each becomes one or more SDD features.
flowchart LR subgraph Treeper direction LR P1["**P1 · Plan**<br/>Itinerary CRUD"] P2["**P2 · Track**<br/>Live trip mode + log"] P3["**P3 · AI ingest**<br/>Reels / Blogs / YouTube → plan"] P4["**P4 · People**<br/>Communities & buddies"] P5["**P5 · Marketplace**<br/>Verified guides, packages, deals"] end P1 --> P2 P1 --> P3 P2 -.-> P4 P3 -.-> P4 P4 -.-> P5Live status: see specs/progress.md — P1 ~90%, P2 ✅, P3 ~40%, P4 ~15%, P5 not started.
P1 and P2 are the first feature (0001-trip-planner). The rest follow it.
4. Capabilities — full breakdown
Section titled “4. Capabilities — full breakdown”Notation:
[F1.x]features that map to numbered sub-items inside a feature spec.[v0]MVP slice for the very first usable build.[v1]follows,[v2]later.
Pillar 1 — Trip planner (CRUD + multi-stop) — [v0]
Section titled “Pillar 1 — Trip planner (CRUD + multi-stop) — [v0]”| ID | Feature | Subfeatures |
|---|---|---|
| F1.1 | Trip CRUD | Create / read / update / delete; title; cover image; visibility; archive |
| F1.2 | Multi-destination | Multiple stops in one trip; per-stop arrival / departure |
| F1.3 | Day-by-day schedule | Auto-generated days from trip dates; blank days OK |
| F1.4 | Activity entries | Type (transport / lodging / food / sight / free-form); time; notes; cost |
| F1.5 | Drag-to-reorder | Reorder days; reorder activities within a day |
| F1.6 | Cost rollup | Per activity → per day → per trip; per traveller split; multi-currency |
| F1.7 | Map view | Per-day map; full-trip map; pin → activity link |
| F1.8 | Attachments + links | Photos, PDFs, ticket emails; external URLs; tag a link as a source |
| F1.9 | Templates / duplicate | Save trip as template; duplicate as new trip |
| F1.10 | Local-first + sync | Local store (offline edits) ↔ Supabase sync, last-write-wins |
| F1.11 | Privacy | Private / unlisted (link-only) / public |
| F1.12 | Read-only share link | Public URL with cover, days, no editing |
Pillar 2 — Trip tracker (live mode while travelling) — [v0]
Section titled “Pillar 2 — Trip tracker (live mode while travelling) — [v0]”| ID | Feature | Subfeatures |
|---|---|---|
| F2.1 | Live mode toggle | Per trip; switches UI to “today / next up” view |
| F2.2 | Mark activity done | Tick off; log actual time / actual cost |
| F2.3 | Inline log | Photos, voice memo, free-text per activity |
| F2.4 | Offline-first viewing | Whole trip viewable with no network |
| F2.5 | Schedule drift | Show “running 30 min late” deltas; nudge to reorder remaining day |
| F2.6 | End-of-trip recap | Auto-generated summary: cost vs planned, photos, highlights |
Pillar 3 — AI ingest and generation — [v1]
Section titled “Pillar 3 — AI ingest and generation — [v1]”| ID | Feature | Subfeatures |
|---|---|---|
| F3.1 | Forward-to-Treeper share | iOS / Android share extension accepts URLs and reels |
| F3.2 | Instagram reel / post → plan | Extract caption + transcript → suggested activities |
| F3.3 | YouTube video → plan | Transcript → places mentioned → activities (timestamped) |
| F3.4 | Blog / article URL → plan | Parse, extract sights / restaurants / lodging |
| F3.5 | Prompt-to-itinerary | ”5 days in Lisbon, food + history, mid-budget” → full plan |
| F3.6 | Manual edit on AI plan | Treat AI output as a normal editable trip |
| F3.7 | Source attribution | Each AI-added activity links back to the source URL / timestamp |
| F3.8 | Re-plan helper | ”Make this 4 days instead of 5” / “Swap day 2 for the coast” |
Pillar 4 — People: communities, trip-mates, contacts — [v1 / v2]
Section titled “Pillar 4 — People: communities, trip-mates, contacts — [v1 / v2]”| ID | Feature | Subfeatures |
|---|---|---|
| F4.1 | Profile | Handle, photo, travel style tags, past trips |
| F4.2 | Travel communities | Discover by destination / interest; join; community feed |
| F4.3 | Open trips (find buddies) | List your trip with open seats and a join policy |
| F4.4 | Apply to join | Request → host approves; chat after approval |
| F4.5 | Trusted contacts | Personal address book of trip guides, partners, drivers |
| F4.6 | DMs / trip chat | Per-trip group chat; 1:1 DMs |
| F4.7 | Reporting / safety | Block, report, hide; basic identity verification badge |
Pillar 5 — Marketplace: verified guides, packages, deals — [v2]
Section titled “Pillar 5 — Marketplace: verified guides, packages, deals — [v2]”| ID | Feature | Subfeatures |
|---|---|---|
| F5.1 | Verified guides directory | Scraped + manually verified; ratings; languages; areas |
| F5.2 | Day adventure packages | Scraped from operators; price; duration; what’s included |
| F5.3 | Inline integration | Attach a guide / package to an activity in your itinerary |
| F5.4 | Deals on planned items | Price-watch flights / hotels matching trip dates and stops |
| F5.5 | Affiliate links | Track outbound conversions for monetisation |
| F5.6 | Operator self-serve (later) | Verified operators can edit their own listing |
5. Out of scope (for now)
Section titled “5. Out of scope (for now)”- Booking flights / hotels directly inside the app (we link out).
- Payments between users.
- Anything desktop / web app — mobile only at v0.
- Real-time collaborative editing of the same trip (planned, not v0).
6. Non-functional goals
Section titled “6. Non-functional goals”| Goal | Target |
|---|---|
| Local-first | All planner reads work offline within an opened trip. |
| Time to first plan | < 60 s from “I have an idea” to a draft trip with day 1 entries. |
| AI ingest cost | < $0.05 per ingested URL on average for v1 models. |
| Sync conflict | Predictable; “yours / theirs” resolver; never silently lose edits. |
| Verified content | 100% of items in the marketplace pass the verification rule set. |
These will be turned into measurable acceptance criteria in feature specs.
7. How this maps to the SDD process
Section titled “7. How this maps to the SDD process”| Pillar | First feature spec to write |
|---|---|
| P1+P2 | 0001-trip-planner.md — covers planner + tracker MVP |
| P3 | 0002-ai-ingest.md (planned) |
| P3 | 0003-prompt-to-itinerary.md (planned) |
| P4 | 0004-communities-and-open-trips.md (planned) |
| P4 | 0005-trusted-contacts.md (planned) |
| P5 | 0006-verified-marketplace.md (planned) |
| P5 | 0007-deals-and-price-watch.md (planned) |
See specs/roadmap.md for ordering and dependencies.