← All Posts
Product7 min read

Color Is Data: How I Am Using Color to Build a Moat in Travel Search

Every flight search engine shows you a list of cards. You read every card. You compare them mentally. It is exhausting. monk.flights encodes quality and time directly into color — two independent visual channels that the brain processes in under 250 milliseconds. That is the edge.

Everybody wants to be a travel app. Dude, I get it. Flights are sexy. The market is massive. And every founder with a Figma license thinks they can out-Google Google Flights.

They cannot. Not on features. Not on data. Not on price. Google has the pipes, the inventory, and the distribution. You are not going to beat them by building another search box with filters.

So when I started building monk.flights, I did not ask "how do I build a better flight search engine." I asked "what does every flight search engine get wrong that nobody is even trying to fix?"

The answer is color. And I do not mean branding.

The Problem Nobody Talks About

Every flight search engine presents results as a list of cards. Text on cards. Numbers on cards. Departure time, arrival time, duration, price, airline, stops. You read every single card. You compare them mentally. You scroll. You read more cards. You open tabs. You forget which tab had the good one. You start over.

It is exhausting. And it is exhausting because every result looks the same. The only visual hierarchy is position in the list. First is cheapest. Or first is "best." Whatever that means.

Hipmunk tried to fix this years ago with their day view — a timeline where bar width and position encoded actual clock time. A five-hour nonstop was visually half the width of a ten-hour connection. Departure at 6 AM started on the left edge. Departure at 3 PM started in the middle. It was brilliant. And it died, because at 375 pixels wide on a phone, you cannot distinguish a five-hour bar from a ten-hour bar. The spatial encoding collapsed on mobile and Hipmunk went with it.

Color Is Data

Here is where I went sideways from everyone else. Instead of encoding time on a spatial axis that breaks on mobile, I encode it in color. The brain processes color in under 250 milliseconds — before conscious thought. It is called pre-attentive processing. You do not read color. You perceive it the way you perceive a red traffic light. You do not think "red means stop." You just stop.

monk.flights runs two independent color channels across the entire product. Two separate visual vocabularies that the user learns through repetition — and once they learn them, the interface becomes something you feel instead of something you read.

Channel One: The Agony Score

Green, yellow, red. Traffic light. Universal. Zero learning curve. Every human on earth already knows green is good and red is bad. Fighting that with monochrome or custom palettes would be overdesigning a solved problem.

The agony score is monk.flights’ proprietary ranking that weighs price against duration, stops, layover pain, and airline reliability. A green flight is a no-brainer. A yellow flight has tradeoffs. A red flight is going to hurt. You do not need to read the card to know which category you are looking at. The color tells you before your eyes finish scanning.

Channel Two: Time of Day

This is the one nobody else is doing. Five time bands, five brand-owned colors that belong to monk.flights and no one else: Dawn, Noon, Dusk, Night, and Twilight. Each one mapped to a symbolic color that has zero overlap with the agony ramp.

The agony channel lives on the warm-cool spectrum — green to yellow to red. The time channel lives on a completely different axis — indigos, teals, warm grays, dusty ambers. Colors that could never be confused with the agony ramp. The brain files them in different drawers automatically. This is categorical separation and it is the reason two color systems can coexist without clashing.

Five bands instead of four matters. Dawn, Noon, Dusk, and Night map cleanly to a clock. But Twilight captures the in-between — those 5:30 AM and 9:30 PM flights that are not quite dawn and not quite night. That ambiguity is real and worth encoding because those are often the flights with the best deals and the worst experience. The color tells you that story instantly.

The Teaching Mechanism

A brand teaching its users a visual vocabulary that becomes automatic is called learned visual semantics. Spotify did it with green. Robinhood did it with gain and loss coloring. monk.flights does it with time bands.

The scrubber is the teaching mechanism. It sits at the top of the results and shows colored blocks representing arrival clusters. Every time the user taps the dark block and sees late-night flights, the association strengthens. Every time they tap the amber block and see dawn departures, another rep. After two or three searches, it is automatic. They are not reading the colors anymore. They are perceiving them. That is chromatic conditioning — a subset of classical conditioning where a visual stimulus becomes automatically associated with a meaning through consistent pairing.

The key requirement that makes this work instead of failing: consistency across every surface. The scrubber blocks, the flight card fills, the cluster headers, the time labels — all use the exact same colors everywhere. If dawn is amber in the card but gray in the scrubber, the association breaks. If the same amber appears on a button somewhere meaning something unrelated, the association breaks. These colors are reserved exclusively for time-of-day encoding across the entire product. No exceptions.

This Is the Mobile Day View

Here is the part that took me a while to accept. The day view on monk.flights is not a compromised version of Hipmunk’s timeline. It is a fundamentally different solution to the same problem. Instead of encoding time spatially (which breaks on mobile), it encodes time through color and clustering. The list view is a flat sort. The day view is arrival-clustered with the scrubber and the full color system. Both use the same cards. Both use the same data. The day view just adds the organizational layer on top — expressed through color and grouping instead of through a spatial axis.

That makes the mobile version legitimate. Not a compromise. Not a fallback. The full experience, designed for the screen it actually lives on.

Why This Is a Moat

Google can copy features overnight. They cannot copy learned behavior. Once a user has internalized monk.flights’ color vocabulary — once they feel time and quality instead of reading it — every other flight search engine feels like going back to reading spreadsheets. That is not a feature advantage. That is a cognitive switching cost. And cognitive switching costs are the only real moat left in consumer software.

The dual-channel color system is not decoration. It is not branding. It is the product. It is the edge. And it works on a phone, which is where everyone actually books flights.

The Bigger Lesson

If you are building a product in a space dominated by giants, do not compete on features. They will always have more engineers. Compete on perception. Find the layer of the experience that everyone else treats as cosmetic and make it functional. Color is not cosmetic at monk.flights. Color is data. And that is a sentence I dare Google to copy.