Dandelion is a fair source project. View the code on Github

Commits on Feb 02, 2026
f22fb7f

📄 Replace GPLv3 with FSL-1.1-ALv2 license and update UI copy
📝 Change “open source” references to “fair source” across views

d94e8f4

🚸 Hide popular-location buttons when user is already searching

Prevents clutter and keeps the UI focused on the active search.

df5bea0

🎨 (locations): use sample(20) instead of first(20) for event summary Randomize the 20 events so the generated vibe paragraph feels fresh on every page load.

3871421

💄 (events/_search_form.erb): add spacing and display class to "Popular locations" label

4f0aa04

💄 (locations): simplify page title to location name only

3283f76

🔥 Remove hard-coded in_person filter from location events page

The parameter was forcing only in-person events to be shown, preventing users from seeing online/hybrid events tied to the location. Let the frontend decide which event types to display.

b6d21c0

🐛 Fix false‐string comparison bug in param filtering

Compare against boolean false instead of string 'false' so parameters whose value is actually false are correctly excluded from generated URLs and view base params.

211bc6f

🐛 (carousel_buttons): exclude params whose value is 'false' from query string to keep URLs clean

69663ca

🐛 (helpers.rb): add 'name' to the list of ignored params in view_base_params to prevent it from being included in generated URLs

4ff3fdc

🐛 (helpers.rb): filter out params whose value is 'false' in view_base_params

3217dee

💄 (events/_search_form.erb): remove d-inline-block mb-1 classes from "Popular locations:" label

c4581e2

♻️ refactor view-switcher logic into reusable helpers and data-driven templates

  • introduce view_base_params and view_url helpers to centralise query-string filtering and view-link generation
  • replace hard-coded view buttons in events, facilitators, gatherings and organisations pages with a single loop over view_options array
  • keeps URLs clean by stripping captures, format, search, display and other internal keys before rebuilding links
  • no visual change, only safer and DRYer code
c2eb915

💄 (events/_search_form.erb): wrap label in span and add mb-1 margin to buttons for consistent vertical spacing

8b1b4f2

🐛 (locations): limit events passed to summary generator to first 20 to avoid token overflow
✨ (locations): add fragment caching for location pages to skip placeholder on cache hit

3b43058

✨ Introduce Location model and refactor location pages

  • Replace hard-coded /near/:near route with /locations/:name
  • Create Location model to store canonical names & query strings
  • Add popular-location buttons to search form
  • Cache location page for 1 day to reduce load
  • Use single placeholder on location page for faster paint
1dc0f7f

✏️ Tweak prompt wording for event summary generation

44ca1f5

💬 Update prompt text from “near” to “in” for clearer location context

ebc00da

📝 (locations/_location.erb): update prompt to request three-sentence summary instead of one paragraph for clearer event vibe description

Commits on Feb 01, 2026
91379cb

✨ Improve location-based event summary UX

  • Set page title to "Events near #{location}" for better context
  • Tweak AI prompt to create a general vibe summary instead of listing events
  • Allow custom general_instructions in generate_events_summary helper
  • Remove hard-coded instructions so caller can override them
80a52e6

✏️ Fix typo in summary prompt: "event(s)" → "events"