Porto Chapter — Development Runbook (July 2026)

Detailed chronological log of changes made to the calendar during the development session on 9 July 2026.


Session: 9 July 2026

Phase 1: UI/UX Improvements

1.1 Floating Ideas Section

Goal: Make undated activities more discoverable without cluttering the main view.

Changes:

Technical details:

1.2 Status Filter Consolidation

Goal: Remove redundancy between hero tally pills and filter buttons.

Changes:

Technical details:

1.3 Legend Redesign

Goal: Simplify legend to show only essential information (clash indicators).

Changes:

Technical details:

1.4 Weekend Styling

Goal: Visually distinguish weekends from weekdays.

Changes:

Technical details:

1.5 Chronological Event Sorting

Goal: Events within each day should appear in time order.

Changes:

Technical details:


Phase 2: Data Updates

2.1 First Week Status Changes

Goal: Mark first-week activities as confirmed based on group decisions.

Events changed to status: "confirmed":

Kept as-is:

2.2 Villa Weekend Consolidation

Goal: Clarify that all 4 days are confirmed (3-night option won).

Changes:

2.3 B2B Sales Skill Share

Goal: Confirm Harry’s skill share session.

Changes:

2.4 Odyssey IMAX Reschedule

Goal: Update movie screening based on binding post.

Changes:

2.5 Food Tour Reschedule

Goal: Pin food tour to specific date.

Changes:

2.6 Added Lado B Café

Goal: Add Dan’s francesinha lunch suggestion.

New event:

{
  id: "lado-b",
  title: "🍽️ Lado B Café — francesinha lunch",
  tag: "FOOD",
  org: "Dan Perez",
  status: "interest",
  date: "2026-07-10",
  len: "part",
  start: "12:00",
  loc: "Lado B Café (Coliseu), R. de Passos Manuel 190, Porto",
  link: { label: "Google Maps", url: "https://maps.app.goo.gl/p3bRLrNhuHn9bkJn8" },
  note: "Recommended by the tour guide for francesinha. Near Livraria Lello for those doing the bookstore visit. Opens at 12:00."
}

2.7 Added World Cup Matches

Goal: Add all remaining World Cup matches from the schedule.

New events (all with ⚽ emoji, status: “interest”):

All matches have loc: "Sky Sports" or "Livescore+" and note: “World Cup [round]. Watch party TBD.”

2.8 Category Emoji System

Goal: Add visual category indicators to all event titles.

Emoji assignments:

Emoji Category Events
Sports / Match All World Cup matches
🏄 Sports / Water Kayak
🏖️ Sports / Leisure Beach day
🧗 Sports / Climbing Via Ferrata (floating)
🏛️ City / Tour Majestic Café, Livraria Lello, Food tour
🚶 City / Walk Walking tour
🚌 Full-day trip Viana, Aveiro, Douro Valley, Chefs on Fire
🍽️ Food / Meal Brunch, Lado B Café
🍸 Food / Drinks Night out, Speakeasy
🎵 Entertainment / Music Fado A (Valença), Fado B (Coimbra)
🎭 Entertainment / Theatre Stand-up comedy
🎬 Entertainment / Cinema Odyssey IMAX
💼 Professional / Skill share B2B sales, Autism, SEO (floating)
🧳 Travel / Logistics Checkout
🏡 Accommodation Villa weekend
🎨 Workshop Tile-painting (floating)

Design principle: Emojis represent the kind of activity (duration and context), not the specific content. For example:


Phase 3: Logic Changes

3.1 Simplified Clash Detection

Goal: Remove distinction between “hard clashes” and “competing options.”

Rationale: Since all events are group activities where the group simply needs to choose, there’s no meaningful difference between a “hard clash” (confirmed vs confirmed) and a “soft overlap” (interest vs interest). The group just needs to pick one.

Changes:

Before:

const level = (a.status === "confirmed" || a.status === "pending" || 
               b.status === "confirmed" || b.status === "pending") 
              ? "clash" : "choose";

After:

const level = "choose";

Summary Statistics

Events by status (after changes):

Events by date range:

Floating ideas: 3 items (tile-painting, via ferrata, SEO skill share)


Files Modified

  1. porto-chapter-calendar.html — Main calendar file (all changes)
  2. README.md — Updated documentation to reflect new features
  3. Notes and ideas _jul26.md — Added decisions log and troubleshooting notes
  4. development_runbook_jul26.md — This file (created)

Testing Notes


Future Considerations


End of runbook.