Skip to content

M7 — New trip in 3 clicks, Pailas, trip dashboard

Status: agreed · Last session: 2026-09-28

Sources: requirements.md M7, M8 · decisions.md P22 (Pailas), P24 (a trip in 3 clicks), P36, P37, A13 · founder review of the prototype, 28 Sep (screenshots: trips list with Pailas dated "Jan 1 – Jan 10, 2000", the "Create New Trip" modal).

Who and the job

  • Editor (P36; the founder at launch, agency staff later): "A group leader asked for 7 days in Kathmandu and Pokhara — give me a good starting trip in under a minute."
  • Traveller / leader browsing (later): "Show me ready-made trips I can start from."

Value

This is NepWalk's core promise: type what you want, pick a Paila, done (P24). Today "New Trip" opens a blank form (name, description, cover URL, date) — the opposite of the promise — and the Pailas sit in "My Trips" with placeholder dates from the year 2000, which looks broken.

Placement — and why

Element Where Why
New Trip Button → its own page /trips/new (no modal) Room for the input, the recommendations and a preview
Request input Large field at the top: "Where and how long? e.g. 3 days in Kathmandu" One sentence is how people ask; it drives everything below
Recommended Pailas Under the input from the start (popular first — preferences later); as the user types, the matching Pailas move to the top (GET /templates/match?q=) Something good to pick before typing a word
Create from scratch Always visible under the recommendations: "Start from scratch: " Pailas are starting points, never the only way (P26)
Paila preview Picking a Paila shows its day plan (view-only) with a right-side drawer: Paila details and the inputs to create — start date, number of people (days prefilled from the typed text) — then "Create trip" See what you get; the drawer sits quietly beside it, the inputs already there, no extra step
Pailas tab (was "Templates") Top nav; grid of Paila cards → same drawer One way to start from a Paila, wherever you are
My Pailas (was "My Templates") Sidebar; the user's custom Pailas; "Save as my Paila" on a trip adds one Reuse your own good trips (28 Sep)
Trip dashboard Tabs: Your trips · Past. "Your trips" has two sections: Upcoming (trips you created or joined) then Shared with you "All" and "Upcoming" said the same thing; sharing belongs on the dashboard

Wireframe

New trip page (/trips/new)

┌──────────────────────────────────────────────────────────────────┐
│ ← Trips                          New trip                        │
│                                                                  │
│  Where and how long?                                             │
│  ┌────────────────────────────────────────────────────────────┐  │
│  │ 3 days in ktm                                            ⏎ │  │
│  └────────────────────────────────────────────────────────────┘  │
│  Matched: 3 days · Kathmandu                                     │
│                                                                  │
│  RECOMMENDED PAILAS                                              │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐                          │
│  │  COVER   │ │  COVER   │ │  COVER   │   best match first,      │
│  │ Kathmandu│ │ KTM +    │ │ KTM, PKR │   then popular           │
│  │ in 3 days│ │ Pokhara  │ │ Chitwan  │                          │
│  │ 3 days ·…│ │ 7 days ·…│ │ 10 days… │                          │
│  └──────────┘ └──────────┘ └──────────┘                          │
│                                                                  │
│  + Start from scratch: "3 days in ktm"  (3 empty days)           │
└──────────────────────────────────────────────────────────────────┘

Paila preview + drawer (same on the Pailas tab)

┌────────────────────────────────────────────┬─────────────────────┐
│ Kathmandu in 3 days          (view-only)   │ KATHMANDU IN 3 DAYS │
│ [Day 1][Day 2][Day 3]                      │ 3 days · Kathmandu  │
│ ┌──────┬──────────────────────────────┐    │ 11 stops · popular  │
│ │PHOTO │ 16:00 · Garden of Dreams     │    │                     │
│ └──────┴──────────────────────────────┘    │ Start date          │
│ ┌──────┬──────────────────────────────┐    │ [ 29 Dec 2026  📅 ] │
│ │PHOTO │ 19:00 · Welcome dinner       │    │ People              │
│ └──────┴──────────────────────────────┘    │ [ 12 ]              │
│                                            │                     │
│                                            │ [ Create trip ]     │
└────────────────────────────────────────────┴─────────────────────┘
Phone: the drawer is a bottom sheet, collapsed to a "Create trip" bar
until tapped.

Trip dashboard

[ Your trips ]  [ Past ]

UPCOMING
┌──────────┐ ┌──────────┐ ┌──────────┐
│  COVER   │ │  COVER   │ │  COVER   │
│ Title,   │ │ Title,   │ │ Title,   │   title: 2 lines max, ellipsis,
│ 2 lines… │ │ 2 lines… │ │ 2 lines… │   full title on hover
│ 29 Dec – │ │ 5 Jan –  │ │ …        │   dates, footer: same height
│ View     │ │ View     │ │ View     │   in every card
└──────────┘ └──────────┘ └──────────┘

SHARED WITH YOU
┌──────────┐ …

States

  • Nothing typed: popular Pailas; the scratch line reads "Start from scratch".
  • Typed text with no match (e.g. "5 days in Lumbini"): "No Paila for this yet" + all Pailas below + scratch. Unknown words come back as unknown from the matcher — say which ("didn't recognise: Lumbini"), never guess.
  • No trips yet on the dashboard: one card "Plan your first trip" → /trips/new. No "Shared with you" section when there are none.
  • Create fails: the drawer keeps the inputs and shows the error.

Rules and edge cases

  • Pailas are not trips of the user: they never show in "Your trips" or "Past" (backend list leaves template trips out). Their cards show "N days · towns", never their placeholder dates (P22: day 1 = 1 Jan 2000 until a trip is made).
  • Covers: a trip card uses the trip's own image; else the first linked place's photo in the trip (with credit on hover). The three Pailas get chosen covers in their seed (Wikimedia, credited, A10).
  • Card text alignment: title clamped to 2 lines with an ellipsis (full title on hover and in title), dates and footer at fixed positions, so every card in a row lines up whatever the text length.
  • Creating from a Paila uses POST /templates/:id/trips (start date, people; days and dates shift, P24). From scratch uses POST /trips + N empty days; title = the typed text.
  • Signed-out visitors: the Pailas tab and previews follow P37 (public tier); creating needs sign-in.

Decided (28 Sep)

  • ~~New Trip is a page~~ — 28 Sep (final): New trip is its own clean page, /trips/create — no box, nothing pushed down on the dashboard (a dashboard panel was tried and dropped the same day); /trips/new redirects there. Same planner as the Pailas tab: input on top, recommended Pailas from the start (popular for now; by preferences later), best matches rise as the user types, scratch always available.
  • Pailas tab = the same planner (28 Sep): input, Pailas (yours first, with a "Yours" chip), and the dashed card "Create your own Paila" — an empty Paila with its days, saved to your Pailas (no dates asked); "Manage your Pailas" links to rename / delete.
  • Picking a Paila: view-only preview + a quiet right drawer with details and the create inputs already there.
  • Scratch: title = typed text, N empty days when the text names a number of days.
  • "Templates" becomes Pailas (NepWalk's Pailas and public ones, same drawer as New trip); "My Templates" becomes My Pailas — the user's own custom Pailas, saved from any trip they edit with "Save as my Paila" (28 Sep, replaces "My Templates leaves the sidebar"). Old /templates and /my-templates links redirect.
  • Dashboard (28 Sep, replaces "Your trips / Past"): tabs My trips · Invitations · Past. My trips = the trips you are going on — your own and invitations you accepted — each with a chip, "Your trip" or "Joined". Invitations = pending invites with Accept / Decline; accepting moves the trip to My trips. Pailas never in trip lists.
  • Sidebar (28 Sep): Shared with me, Archived and Settings leave the sidebar (sharing lives in My trips; Settings stays in the avatar menu). App header is frosted glass like the landing page.
  • No sidebar for travellers and leaders (28 Sep): they move with the top bar tabs Trips and Pailas, centred like the landing page links. The sidebar holds admin tools only (Vendors, P27) and shows to admins only; Help moves to the avatar menu.
  • Pailas tab (28 Sep): your own Pailas first ("Manage" → rename / delete on /my-pailas), then the other Pailas; "My Pailas" leaves the sidebar.
  • Covers: chosen covers for the Pailas + first-place photo for any trip without one.
  • Cards: text aligned across a row (2-line title with ellipsis, full text on hover).

TBD (next M7 session)

  1. The drawer's other information beyond date and people (preferences, included services from P24) — "we can think more later" (founder).
  2. ~~Whether the sidebar keeps "Shared with me"~~ — decided 28 Sep: removed; sharing lives in My trips.

Backlog (after launch)

  • Light and dark mode (founder, 28 Sep): today's app look is the light mode; the clickable prototype's look (docs/management/mvp/v2/prototype/, dark theme) is the dark mode and the reference for the day plan's stop cards (photo with the time chip on it, title + duration, story, "Tip ·" line), flight / travel cards ("Your flight home", icon tile, note line), the travel-day banner ("Today · Travel day"), tips and notes, and the word-of-the-day line. "We can change UI later" — design only, not before launch.

  • One header for the landing page and the app (founder, 28 Sep: "they should align, we can do it slowly"). Step 1 done 28 Sep (nepwalk-fe b3aea2f): the app header copies the landing header's shape — inset, logo size, 8 px corners, plain centred links, rounded-full call to action. Next: one shared SiteHeader component with a light (app) and dark (hero) variant, same mobile menu.

  • Archived trips and account Settings in the sidebar: removed 28 Sep as template-era leftovers (founder: "we can think about this later"). The pages still exist (/trips/archived, /settings); decide their place later.

  • Recommendations by the traveller's preferences and real popularity.

  • AI parsing for free text the matcher cannot place (OpenRouter, decision B-track).

Tasks

  1. [be] Trip lists leave out the Pailas (NepWalk-owned templates; a user's own trip saved as a Paila stays listed) — e2e test. Pailas seed: a chosen cover image per Paila; a trip made from a Paila takes its cover. — ✅ 28 Sep, nepwalk-be 8ac9a26, 32a7c22.
  2. [fe] Trip cards: cover = trip image, else first linked place photo; aligned text (2-line title, ellipsis, hover); Pailas show "N days". — ✅ 28 Sep, nepwalk-fe 8f82e46.
  3. [fe] Dashboard tabs "Your trips" (Upcoming + Shared with you) and "Past". — ✅ 28 Sep, nepwalk-fe 138cfa4.
  4. [fe] /trips/new: request input, recommended Pailas (popular, then matches on top), scratch with title + N days. — ✅ 28 Sep, nepwalk-fe 26277a6.
  5. [fe] Paila preview (view-only day plan) + right drawer (details, start date, people, "Create trip"); bottom sheet on phones.
  6. [fe] "Templates" → "Pailas" tab with the same drawer; "My Templates" → "My Pailas" (custom Pailas); "Save as my Paila" on a trip. — ✅ 28 Sep, nepwalk-fe 63c4cb6.