The last issue was the big Memories launch. Since then, more people have been signing up, and the first Memories are starting to appear. That is really exciting to see: the directory is not just a list of karaoke nights anymore, but something people can actually add to, react to, and build on.

The progress in this issue is also about the machinery behind the scenes. I spent a lot of the last two weeks working toward a simpler way to add karaoke to the directory, and toward a better model for karaoke schedules and karaoke places.

The direction is this: instead of filling out a long form, you should be able to give KaraokeCrowd the messy thing you already have: a flyer, a Facebook/Instagram/Threads link, or just the basics in a chat box. Venue name, address, time, KJ name, and done. The site should pull out the useful details and turn them into a draft contribution.

That is not available to everyone yet. Guides and directory moderators can try it now, and it is still somewhat buggy. But even in this early state, it is already a huge timesaver for turning social posts into new karaoke nights and confirming existing listings as still active.

The contribution assistant work

The new contribution assistant is meant to save the time it takes to copy details out of flyers and social posts. You give it a flyer, a social post, a link, or a rough note. It pulls out the venue, address, schedule, host, links, and evidence it can see. If you already know the facts, you can just type them: venue name, address, time, KJ name. It turns that into a real contribution card so a guide or directory moderator can confirm, reject, or fix it before anything is filed.

Why the old forms were not enough

The normal add-karaoke form also got a lot of work, because the contribution assistant and the form need to end in the same clean data.

Hosted-night intake now shows schedule previews in the same words the public listing will use. Duplicate warnings show real listing cards. Row-level errors point to the missing part of the schedule, like the time cell. You can add another date for the same night without starting over.

There is also now a separate intake path for karaoke rooms and self-serve places. That matters because "every Friday at 9 with a host" and "book a room for your group" are not the same contribution. Asking both through the same form made the site feel confused because the data model underneath was confused too.

Smaller fixes in the contribution loop:

  • You can confirm that a karaoke night happened without signing in.
  • "Still on" confirmations can go through faster when they are straightforward.
  • Supporting links are accepted more flexibly, even when they are messy.
  • Evidence fields are clearer and consistent across the forms.
  • Biweekly schedules now require an anchor date, so "every other week" does not drift into the wrong week later.
  • Rejected edit banners can be dismissed once you have seen them.

The karaoke model got clearer

The second big theme is that I understood, again and more sharply, how the database needs to represent karaoke. That got clearer after I asked on Reddit for input, and a maintainer of a local karaoke directory and a few other nice folks helped sharpen the distinction.

KaraokeCrowd now treats these as different shapes:

  • Hosted karaoke nights: scheduled events with a host, a crowd, and a date or recurrence.
  • Private bookable rooms: karaoke rooms you reserve for your own group.
  • Walk-in self-serve spaces and coin booths: karaoke you can use without a hosted event and usually without booking a private room.

This sounds obvious from the outside. Internally it took a lot of cleanup, because earlier versions of the site kept trying to squeeze all of those into one vague "karaoke spot" shape.

The visible result:

  • Search and the map now let you filter for hosted shows, private rooms, or self-serve karaoke directly.
  • Venue pages split karaoke into Nights and Rooms & Self-Serve instead of showing one mixed karaoke list.
  • Self-serve places have their own route and page shape instead of pretending to be recurring nights.
  • One-off karaoke is now treated as occasional karaoke, with its own detail page and reschedule flow.
  • Map popups show more upcoming dates for recurring nights, which makes "Any" mode more useful when you are scanning a city.

This is the kind of work that mostly exists so future features stop fighting the database.

Schedules got more honest

Real karaoke schedules are messy. The site now handles more of that mess directly:

  • Weekly nights can skip specific weeks.
  • Karaoke nights can have date ranges, so a seasonal or limited-run night does not look permanent.
  • Venue managers can edit the venue's karaoke schedule in one place.
  • Schedule edits show the consequence before approval when a night is paused, ended, upcoming, or marked as never happened.
  • If a night is marked not happening, the listing can show the reason instead of only showing a blunt status.

These changes matter for the contribution assistant too. If it extracts "every Thursday except the first week of July" or "running until August 30," the database needs somewhere real to put that.

What changed for hosts and venues

Host and venue pages got cleanup around the same model shift:

  • Host pages have a cleaner top section with compact stats and fewer competing actions.
  • Host-authored Memories now get a Host badge in the story viewer.
  • Host edit pages now have tabs for profile details, shows, and images.
  • Venue pages now use tabs, so the karaoke information can stay front and center while details, management tools, and supporting information move into their own places.
  • The venue karaoke tab is now a Nights + Rooms & Self-Serve view.
  • Admin tools moved out of the main karaoke view and into the manage area.
  • Breadcrumbs now show more useful geography, like metro, city, and venue.
  • The "Suggest an edit" path stays reachable for anonymous visitors.
  • Venues and hosts can download QR/flyer assets and copy badge embeds from the share tools.

Smaller user-facing polish

A few other things shipped while this was happening:

  • Memories show counts on discovery cards.
  • Long memory story text paginates instead of overflowing the frame.
  • New RSVPs default to friends-only visibility, and the old public RSVP tier was removed. That is partly groundwork for a possible singer-facing app: RSVP defaults should help you plan with friends without exposing where you are going to everyone.
  • Gated actions now open the login modal in place instead of kicking you away from the page.
  • The events page shows the next seven days by default.
  • Feedback moved into a modal instead of a separate page.
  • A deeper geography rework is underway too. Better metro/city breadcrumbs are one visible step, and the direction is to support future updates for metro regions, counties, states, and small countries instead of only "one pin with a radius around it."
  • Contrast, focus traps, keyboard navigation, ARIA behavior, touch targets, and disabled states got a large accessibility pass.
  • The map, events list, search pages, city pages, activity feed, and public listing pages got faster through query and caching improvements.

Where this is going

The shape I want is simple: if you know about karaoke, you should not need to learn the database to help. Bring the flyer, the post, the venue name, the address, the schedule, or the messy note. KaraokeCrowd should make sense of it, show you what it thinks you meant, and let you send that as a contribution.

The progress in this issue is a lot of groundwork for that.

Sabine