Designing Festivalio search as navigation, not a filter
How Festivalio’s new global search, canonical artist pages, and stable links turn a timetable query into a dependable way to move between festivals and editions.
A query should not inherit an arbitrary boundary
Festivalio began with search scoped to the timetable currently on screen. That made sense when the product held one festival and one edition. Once it began holding archives, upcoming editions, and multiple festivals, the same rule turned a familiar artist name into an unreliable question: the answer depended on where someone happened to be in the app.
We replaced that local filter with a derived global index. Festival and edition records remain the source of truth; the search layer is rebuilt from them. An artist, an appearance, a stage, or a guide can therefore be found across the available dataset without turning search into a second store of product data.
Rank meaning before convenience
Search now reads explicit festival, year, stage, and time intent before applying the current page as a contextual preference. A query such as an artist plus an edition should not be displaced by a weak match from the page already open. Exact entities and recognized aliases also rank above fuzzy or personal-context matches.
The point is not to make the search box feel clever. It is to make its ordering legible: a precise request should produce a precise answer, even while the product can still help with transliteration and context when the request is less exact.
Give an artist a stable place to land
The search surface now connects to canonical artist routes and appearance links. An artist page groups confirmed appearances by festival and edition; a set link opens the relevant timetable context. Stable identifiers let those routes survive changes to mutable details such as a stage name or performance time, while legacy personal schedule data can be mapped forward.
That matters for an offline-first companion. A saved route, a favorite, and a search result need to refer to the same thing without requiring a remote account or a live lookup.
Keep the signal private
We also separated search behavior from search contents. The product can record result counts, selected entity types, active filters, and zero-result states, but it does not send raw queries. A festival query can include a personal note, a friend’s name, or an unpolished plan; none of that belongs in analytics.
The change is a small shift in interface terms, but a larger one in product terms. Search is no longer a control attached to a timetable. It is part of the navigation system that lets Festivalio grow without making its accumulated history harder to use.
Follow on Google Search
Add Bersaglio as a preferred source to prioritize our notes, research, and product insights in Search and AI Overviews.