Robbin Schuchmann
Robbin Schuchmann
June 4, 2025

Category Filtering & Frontend Improvements (day 28)

I'm literally packing for Thailand right now, but I had to squeeze in this quick development session because there's this annoying bug that's been driving me crazy for days.

Quick summary

Today I tackled a filtering issue that was showing accommodation listings on my dining page (not ideal), added a publish/draft toggle for better content management, and tried to streamline my card components. All while rushing to catch a flight to Thailand. Sometimes building in public means coding in airports, right?

Why I'm sharing this messy episode

Here's the thing - I'm behind on content because one of my other companies had a massive traffic spike that needed immediate attention. You know how it is when you're juggling multiple projects. I don't have 40 hours in a day (unfortunately), so today's episode is shorter and a bit chaotic.

But I wanted to show you the real side of building a travel directory in Bali. Sometimes you're coding with one eye on your suitcase, trying to fix bugs before you lose internet connection at 30,000 feet.

The main problem I was facing

My category filtering was completely broken. When someone clicked on "dining" on my St. Maarten travel site, they'd see hotels mixed in with restaurants. Imagine being hungry and seeing a resort listing instead of that perfect beachside café.

The issue was in my database logic. I was showing all categories by default instead of filtering for categories that actually have active, published listings. Pretty basic mistake, but it's these small things that kill user experience.

What I discovered about my database structure

This is where having MCP (Model Context Protocol) finally working properly became a lifesaver. I've been saying for the past 27 days that I needed to fix this integration, and now it's actually analyzing my database structure automatically.

The analysis revealed something embarrassing: all my listings were still in "draft" status. No wonder nothing was showing up properly. I had completely forgotten to publish any content after setting up the database schema.

How I fixed the filtering logic

Step 1: Understanding the category hierarchy

My categories work with parent-child relationships. "Accommodation" is a parent category, with subcategories like "Hotels," "Villas," and "Guesthouses." Same structure for dining, activities, and wellness.

The tricky part is filtering correctly. When someone visits the dining page, I need to show:

  • Categories that have "dining" as their parent_id

  • Categories where the ID itself is "dining" (for the main parent category)

Step 2: Implementing proper database filtering

Instead of just fetching all categories, I added logic to check both the parent_id and the main category ID. This way, if someone clicks "dining," they only see restaurant types, not hotel types.

// The filtering now checks both parent relationships
// and ensures we only show categories with published listings

Step 3: Adding publish/draft functionality

I realized I needed a way to control which listings appear on the live site. So I added a simple toggle in my admin dashboard where I can mark listings as "published" or "draft."

This is crucial for SEO too - I don't want Google indexing empty category pages. Only when a category has at least one published listing should it be visible to users and search engines.

The card component dilemma

While fixing the filtering, I noticed something that's been bugging me: I have inconsistent card designs across different sections. The accommodation cards look different from the dining cards, even though they should probably be unified.

I'm torn between the bigger cards and smaller cards. The dining cards have this nice heart icon for saving favorites, while the accommodation cards are more minimal. Maybe I should just pick one style and stick with it.

Living in Bali has taught me that sometimes you need to make decisions quickly and iterate later, rather than getting stuck in analysis paralysis.

What went wrong (because something always does)

When I tried to implement the status column, Cursor AI started adding it to the wrong tables. This is a reminder I keep giving myself: always be specific about which table you're modifying when working with AI coding assistants.

I said "add status to stays and dining" and it tried to add it everywhere. More precision in my prompts would save me debugging time.

The color-coding system I'm building

Here's something I'm excited about: I'm implementing a color system for different categories. Purple for accommodation, orange for dining, blue for activities and wellness.

The idea is that when someone looks at a map view, they can instantly recognize what type of place they're looking at based on the color. Purple pin = place to stay, orange pin = place to eat. Simple but effective for user experience.

Current status of the build

The category filtering is now working properly. When you visit the dining page, you only see restaurants and food-related categories. The accommodation page shows only hotels and places to stay.

I still need to:

  • Finalize the card component design

  • Add location data to all listings

  • Create individual category pages (like /dining/restaurants)

  • Fix the featured image system

  • Implement row-level security for the admin functions

What this taught me about building in public

You know what's interesting? I initially planned to pre-record a bunch of episodes before traveling. Then real business happened - traffic spikes, urgent fixes, client needs.

This is the reality of being a solo entrepreneur. You can't always stick to your content schedule when you're actually running multiple businesses. But showing this messy, behind-the-scenes reality is probably more valuable than perfectly polished tutorials.

Next steps from Thailand

My plan is to continue the daily episodes from Thailand, though they might be one day late occasionally. I'm bringing my laptop and hoping the WiFi cooperates.

The next priorities are:

  • Creating individual category landing pages

  • Adding more location data and filtering

  • Building out the map functionality with color-coded pins

  • Maybe finally deciding on those card designs

Final thoughts

Building a travel directory while actually traveling feels pretty meta. I'm about to experience Thailand as a tourist, which should give me great insights into what travelers actually need from a site like this.

If you're following along with this 60-day challenge, thanks for bearing with the shorter episodes this week. Real progress sometimes means admitting you can't do everything perfectly all the time.

What do you think about the card designs? Bigger cards or smaller ones? Let me know in the comments - I genuinely can't decide and could use some outside perspective.


Following my 60-day challenge to build a travel directory from scratch? Subscribe to see how this turns out, and feel free to share your own building-in-public experiences below.

Robbin Schuchmann

Robbin Schuchmann

Entrepreneur and founder of multiple companies in the global employment space. Passionate about simplifying global hiring and connecting talent across borders.