Event Check-In, Search and Gifting That Win Businesses

How I made business accounts glad they paid: contextual search that finds them, offline event check-in that survives a crowd, lawful attendee CSVs and social gifting.

By William Ifeanyi Moore · 2026-07-28 · 8 min read

Event Check-In, Search and Gifting That Win Businesses

Taking payment is the easy half. The hard half is making the people who pay you feel like paying was a smart move rather than a cost. This post walks through the four things I built into HVNG specifically for business accounts — contextual search that actually finds them, event check-in that survives a packed venue with no signal, lawful attendee data exports, and social gifting — plus the hands-on steps to build each one.

Key takeaways

Business accounts were always the plan

Here is something that goes all the way back. From the very first iteration of HVNG in my university days, I knew I wanted a clear distinction between business accounts and personal accounts. So the platform has always had that split baked in. This was never bolted on later. It was load-bearing from the beginning.

Which meant my job now was not to invent it, but to optimise it. And to optimise anything, you return to the only question that matters: what do these users actually want?

For my business accounts, the answer was clear. They want to promote their spaces, their events, and their vouchers. And above all, they want to be found. Searchability is not a nice-to-have for a business on a discovery platform. It is the entire reason they are there.

You must give your clients real value before you can earn the trust that makes them spend. They have to feel that you are on their team, not just holding out a hand.

Why tag search fails and contextual search wins

So I went to war on search, and this is a distinction I want you to really understand, because it is the difference between a business feeling invisible and feeling served.

I had to move from tag search to contextual search. Let me show you the gap with a real example. Imagine someone types "restaurant in Lekki." With a crude tag-based system, the logic treats that phrase like a rigid label to match, fails to find an exact tag, and returns nothing, even though there are perfectly good restaurants in Lekki sitting right there in the database. The user concludes the platform is empty or useless. The business never gets discovered. Everybody loses. Contextual search, by contrast, understands the intent behind the words and returns what the person actually meant.

Then I pushed it further. I made sure search also reads the words inside descriptions. So picture a Mexican bar running a sangria night, and that detail lives in their event description. A user should be able to search "sangria" and find that event, even though "sangria" is nobody's official tag or business name. That is search working for the business, surfacing them on the strength of what they are actually offering. (This, by the way, is part of why I chose a backend with strong support for this kind of richer, meaning-based search all the way back in Section One. The early choices pay off late.)

And notice what this really is. Better search is not me being generous. It is me giving my paying clients value, making them feel I am on their side, long before I have fully earned their money.

Why not let them check in too?

The next thing was almost obvious once I looked at it. If a user can already see their tickets on HVNG, why on earth should they have to leave HVNG to actually get into the event? Why not let them check in right here too?

So I built event check-in. And this is a lovely moment to demystify something, in the spirit of this whole series. As non-coders, we like to imagine QR codes are some kind of magic. They are not. A QR code is just a URL, or some other piece of information, dressed up as a cool little graphic. That is all. Once you stop being intimidated by the picture, building with them is simple.

So I put a QR code on every ticket, and built a scanner to read them. Show your code at the door, get scanned, you are in.

How to build an event check-in that survives a real crowd

Now here is one of my favourite moments of the entire build, because it shows what working with the AI actually looks like.

I had the basic QR check-in working. But Claude did something I did not ask for. It flagged a news article about real events where check-ins were getting badly delayed because of poor network when venues were packed with people. Crowds kill signal. And then it suggested a fix: store the guest list in a local cache, so that verifying a guest needs no live network connection at all. The scanner checks against the list it already holds. Brilliant, and it solved a problem I had not even known to look for.

Then I added a third layer, asymmetric cryptography, which works like a lock and key and needs no internet to function. Let me be precise about what each layer actually does for you. The cryptography proves a ticket is genuine, that it was really issued by you and not forged, and it can prove this completely offline. What it cannot do on its own is stop someone reusing one genuine ticket twice. And that second problem, reuse, is exactly what the cached guest list handles, because the cache remembers who has already walked in.

So the two layers are not redundant failsafes competing with each other. They are partners: the crypto answers "is this real?" and the cache answers "has this already been used?" Together they give you a check-in that is both forgery-proof and crowd-proof, with or without signal.

And then, to finish the job, I let the host generate a code that users can scan to self check in. Overkill, maybe. But check-in is the one moment a business's whole event can visibly succeed or visibly collapse in front of a queue of irritated guests, so I decided it was the right place to be excessive.

Hand them the gold, lawfully

There was another thing businesses quietly crave, and it is data. So I made it possible for them to access a CSV of their attendees with their details. To a business, that list is gold. It is who came, who to invite next time, who their real customers are. Giving them that turns HVNG from a ticket tool into a genuine growth engine for their business, which is precisely the "on their team" feeling I am chasing.

One serious founder's note. An attendee list is personal data, and personal data comes with law attached — the NDPA at home and things like POPIA once you are operating in South Africa. So share only what your users have genuinely consented to share, be transparent about it at sign-up, and keep the whole thing lawful. Done right, this feature is a gift to your clients. Done carelessly, it is the kind of mistake that ends platforms.

The icing: gifting as a social act

And now the part I am most excited about. The icing on the whole cake. I built a gifting function for tickets and vouchers.

This is one of the genuine USPs we have on HVNG. We have made gifting a ticket easy, and more importantly, social. And I honestly cannot wait to see the effects of it in the wild, because I think it changes the emotional texture of the whole platform. Stop and imagine it for a second. You send someone a gym membership voucher. Or a movie ticket. Or, why not, a spa treatment. You are not just transacting. You are giving an experience, and you are doing it through the platform, socially, visibly.

That single feature does something clever for my business accounts without me having to say a word: it turns every one of their customers into a potential salesperson, handing their product to a friend as an act of affection.

The best feature for the people who pay you is often one that quietly turns their existing customers into their next customers. Build the thing that makes your client look generous.

Hands-on lab

The chapter above is the why. These guides are the how. The one rule never changes: if a step stumps you, screenshot it and paste it to your AI with "assume I have no technical experience; tell me exactly what to click next." Nothing here cannot be undone.

G8.1 · Upgrade search from tags to contextual — optional

What you'll have: search that finds businesses by meaning, including words inside descriptions.

Before you start: Intermediate · ~2 hrs · free to low · you'll need search and data (Supabase vectors help).

  1. Ask Claude to move from exact tag matching to contextual or full-text search.
  2. Make search read description text, so "sangria" finds a sangria-night event.
  3. Consider semantic / vector search (Supabase supports vectors) for intent-based results.

Check you did it right: "restaurant in Lekki" and "sangria" both return the right results.

If something looks off: irrelevant results → tune the ranking and weighting.

Unlocks: → businesses get found

G8.2 · Generate QR tickets and build a scanner — optional

What you'll have: every ticket carries a scannable QR, and you can check people in.

Before you start: Beginner–Intermediate · ~2 hrs · free · you'll need a tickets feature.

  1. Remember a QR code is just data (a URL or string) shown as a graphic, nothing magical.
  2. Ask Claude to generate a unique QR per ticket.
  3. Build a scanner screen that reads the QR and checks the ticket against your records.
  4. Mark checked-in tickets.

Check you did it right: scanning a ticket marks it checked in.

If something looks off: camera permissions → handle the prompt and test on a real phone.

Unlocks: → G8.3, G8.5

G8.3 · Make check-in work offline with a cached guest list — advanced

What you'll have: check-in that works even when the venue's network dies.

Before you start: Intermediate · ~2 hrs · free · you'll need G8.2.

  1. Ask Claude to cache the event's guest list on the scanning device before the event.
  2. Verify scans against the cache, so no live network is needed.
  3. Sync check-ins back when the network returns.

Check you did it right: with wifi off, scanning still verifies guests.

If something looks off: stale cache → refresh the guest list before doors open.

Unlocks: → G8.4

G8.4 · Add signed tickets with asymmetric keys — advanced

What you'll have: tickets that prove they are genuine, even offline.

Before you start: Advanced · 2–3 hrs · free · you'll need G8.2 / G8.3.

  1. Ask Claude to sign each ticket with a private key; the scanner verifies with the public key, needing no internet to prove authenticity. Keep the private key out of your codebase and out of the scanning app — load it from environment variables on the server that issues tickets.
  2. Pair this with the cached guest list (G8.3), which handles reuse, since a signature proves a ticket is genuine but not that it is single-use.

Check you did it right: a forged or tampered ticket fails verification offline, and reuse is caught by the cache.

If something looks off: confusion about what it protects → crypto proves genuine; the cache prevents reuse.

Unlocks: → forgery-proof and crowd-proof together

G8.5 · Add host self-check-in codes — optional

What you'll have: hosts can let guests scan to check themselves in.

Before you start: Beginner–Intermediate · 1–2 hrs · free · you'll need G8.2.

  1. Ask Claude to let a host generate a code or QR for an event.
  2. Guests scan it to self check-in, validated against their ticket.

Check you did it right: a guest can self-check-in via the host's code.

If something looks off: abuse → tie self-check-in to a valid ticket only.

Unlocks: → smoother entry

G8.6 · Export attendee lists (CSV), lawfully — optional

What you'll have: businesses can download their attendee data.

Before you start: Beginner–Intermediate · ~1 hr · free · you'll need events and a consent flow.

  1. Ask Claude to add a CSV export of an event's attendees for the host.
  2. Export only data users consented to share, and be transparent at sign-up.
  3. Keep it lawful: the NDPA at home, POPIA in South Africa, and similar.

Check you did it right: the host downloads a clean CSV of consented attendee data.

If something looks off: privacy risk → never export beyond consent and minimise the fields.

Unlocks: → real value for businesses

G8.7 · Build ticket and voucher gifting — optional

What you'll have: users can gift tickets and vouchers to others, your social USP.

Before you start: Intermediate · 2–3 hrs · free, uses payments · you'll need tickets/vouchers and payments.

  1. Ask Claude to add "gift this" to tickets and vouchers.
  2. Let the sender choose a recipient and deliver via notification or email.
  3. Make it feel social and easy: a gym membership, a movie ticket, a spa treatment.

Check you did it right: you can gift an item and the recipient receives it.

If something looks off: payment or refund edge cases → handle them clearly.

Unlocks: → every customer becomes a salesperson

Serve the payer, and paying feels like winning

So that is how I optimised HVNG for the businesses I am asking to fund it. Better search so they are found. Check-in that holds up under a real crowd. Their own customer data, handled lawfully. And gifting that quietly multiplies their reach.

Step back and see the through-line, because it is the lesson, not the features. Every single thing I built here was designed to make the act of paying me feel less like a cost and more like a smart move. When your clients feel you are genuinely on their team, the money stops being something you extract and becomes something they are glad to give.

Look back at the best moment of the build: the offline cache fix, which I did not think of, which the AI surfaced from a news article about other people's failures. That is the whole philosophy in one story. You do not have to know everything, or have lived every failure yourself, if you are willing to ask, to listen, and to learn from the people and the tools around you. That is also the entire point of not building alone.

Come build with us at AIStoryLab. Twenty thousand naira a year, still too cheap, and inside you get the how-tos, the build walkthroughs, the prompt techniques, and the hard-won notes other builders have shared, including the boring, crucial ones about doing data and check-in properly. Bring your scars, take what you need.

What's next

There is an obvious gap left hanging. None of this matters if these businesses, and these users, do not even know HVNG exists. A beautifully optimised platform that nobody has heard of is just a quiet, sophisticated charity, and we have retired that word. Next: brand, marketing, and how a person with no marketing budget makes noise anyway.

Learn this live

PxLabs runs live AI courses in Lagos and online covering exactly this material, plus enterprise AI training for teams.

Previous: Accept Payments in Nigeria: A Paystack Integration Guide

Next: Answer Engine Optimisation: Get Your Site Found by AI

All posts in the series


Open this page on PxLabs →