I messaged Jimmy, our CEO, about an idea for a game for our annual company kick-off. A few days later, we had a taskforce and a 3D printer running batches of NFC badges overnight. This is how we built Paddlecards.
Last year’s company kick-off was my first. Over 200 Paddlers from across the world descended on Lisbon for a week of meetings and team building. I had a great time, but with so many people, I found it was hard to make connections outside of my department.
This year, we’ve grown to over 300 Paddlers and we were heading to the Algarve for kick-off 2026. We all know how difficult it is to “break the ice” on gatherings like this. I wondered if we could do something beyond the typical corporate games to help people build connections across the company.
This is the story of how we built Paddlecards: an interactive web app that lets Paddlers collect customer as cards from the Paddleverse while building meaningful cross-team connections.
The idea: an interactive icebreaker
There’s one thing that unites all Paddlers: we love to build things. We host regular lightning talks in engineering where anyone can talk about interesting projects they’ve been working on, work or non-work related. This is how I first found out about zustand, a state management package for React.
As an engineer, I’ve found that side projects are a great way to grow. They help me practice end-to-end thinking, constraint-driven design, quick prototyping, and managing systems with real users. It’s an opportunity to build fast and fail fast without incident-level consequences. I’ve found that a lot of knowledge I gained in my side projects is useful on my day-to-day as an engineer. I often find problems on my job that I’ve faced before on my side projects and for which I’m now more prepared. Plus, it’s a chance to explore new technologies that we might be able to use in our day-to-day at Paddle.
I’d been tinkering with NFC tags and had an idea for a game. I sketched a simple demo, then DM’d Jimmy our CEO on Slack.
Jimmy Fitzgerald, Afonso Raposo
Hey! I mentioned in the all-hands that I had some ideas for gifts for kick-off 2026. I’m here to share an idea:
- I could print Paddle-themed NFC fobs and assign a URL to each fob. So when people tap them with their phones, it takes them to the configured URL.
- My idea is to create some sort of egg-hunt with these. I was thinking that we could make it a collectible card game, where each card is a character representing a Paddle customer.
- People could then collect cards by tapping the NFC fobs of other people, and the first to collect all cards would get a prize.
We can use AI to generate the characters for these cards, for example HubX could become Hubstratus:
- Type: Flying
- Ability: Audience surge When entering battle, Hubstratus instantly analyzes user activity trends, letting it anticipate opponent moves based on live engagement spikes.
- Hidden ability: Monetization wind Generates a flurry of revenue during combat, converting incoming energy into bonus points or healing.
I could create a simple web app where Paddlers would login with their Paddle account and capture the 50 different cards. Everyone would receive a fob attached to their lanyard in their welcome kit, so this would be a way for people to get to know each other.
In the web app, I was thinking that we could have a real-time leaderboard where we could see how many cards each person collected so far. We could also have a wallet where Paddlers could see which cards they already collected and all of the details.
What do you think of this idea?
Thank you for this, I love the idea. Looping in @Coline Marchal and @Claire Allan who are leading the prep for an amazing KO 2026!
Building the Paddleverse
Jimmy connected me with our awesome People team, and we spun up a small taskforce with Customer Success, InfoSec, and other teams to turn this into a reality.
We picked a selection of 33 customers to strike the right balance between diversity and manageability. Each customer became a unique character with traits inspired by their business type, size, and industry. A couple of my favorites are:
- HubX, who develop and scale high-performance apps like Nova, Wiser, and PlantApp that help millions of users with daily routines and personal growth, became Hubstratus.
- Nexus Mods became Modflare, whose power is reshaping the world, in the same way Nexus Mods empowers the gaming community to reshape the games they love.

We’re all-in on AI at Paddle, so we used our in-house Gemini subscription with Nano Banana to quickly create distinctive, playful designs for each character in the Paddleverse.
Wallet: the software stack
On the software side, I built a small web app to handle the heavy lifting without getting in the way:
- Next.js: straightforward to build with, and easy to deploy to Vercel. As a solo developer (in my free time), I want something that is simple and works. The fact that I can implement a frontend and a backend on the same project/repo and deploy everything for free on Vercel is truly amazing. So I’m a big fan of Next.
- Mantine UI: fast to ship with accessible defaults and enough flexibility to customize. I know a lot of people love Shadcn, but I’ve been using Mantine UI in all of my projects and I love how it has all of the components I need out-of-the-box. Mantine UI might not be the perfect library, but is the one that I’m most used to and that adds a lot of value, since familiarity greatly speeds up development.
- Neon DB: serverless Postgres with branching; perfect for iterating safely on schema. I’ve used Supabase in the past and it’s great, but I was looking for something simpler with less bells and whistles and NeonDB really did it for me. Being able to have different branches for local, staging, and production envrionments in the same “database” is really powerful.
- Drizzle ORM: type-safe, straightforward Postgres integration. I use it to define my database schemas and handle migrations. This way I can easily make changes to the local branch and then propagate it to staging and production.
- Better Auth: integrates cleanly with Next.js/Postgres and our SSO so players could log in with their company Google account. I like how it handles authentication in-house, without using any 3rd party provider. All of the users, sessions and so on are stored on the project database.
The hardware: 3D printing and NFC tags
Over a few evenings I printed all of the badges on a Bambu Lab P1S. I arranged 39 tags per batch and each batch took about 7 hours. Mid-print I paused to place an NFC tag into each recess, then resumed so the final layers sealed the tag inside the plastic.

I preprogrammed the NFC tags with a URL to the web app, so when a player tapped their phone on the badge, it opens the web app where they can collect the character, see its traits, and track their collection in their wallet.
I chose NFC instead of QR because it’s faster (no camera or scan friction) and creates a more natural “tap” moment that encourages serendipitous play.
Putting it all together
So now we had all the pieces we needed: the software stack, the hardware, and the Paddleverse. Here’s how it worked end-to-end:
- When a phone taps a badge, the URL opens the web app.
- The web app validates the capture, updates the user’s wallet, and shows a quick animation.
- In near real time, the leaderboard updates so you can see how your collection stacks up and who’s in the lead.
- The app uses idempotent claim handling to prevent double-counting captures and keep the game flowing even with patchy Wi-Fi.
Launch day: Paddlecards in action
There was only one thing left to do now: launch the game and see it in action!
When Paddlers arrived at the venue, everyone received a lanyard with an NFC badge as part of their welcome pack at check-in. The badges were distributed randomly, so you never knew which character you’d start with — but we kept the details to ourselves at first.
Then, on the evening of the first day after the opening session, we announced the game and invited everyone to start collecting characters.

Participation ramped fast. Within the first 10 minutes, we had 929 captures across 170 players. That’s well over half of attendees! If you talk to our IT and InfoSec teams, they’ll also tell you they dealt with a record number of password resets as people excitedly tried to login with their company credentials (sorry folks!).

We set up a TV in the main lounge to show the leaderboard in near real time, and you could see top players quickly climbing as they collected more characters. The random distribution of badges led to a lot of excitement and conversation as people compared which characters they’d collected and strategized about who to collect next.

Within 30 minutes, one player had collected all 33 characters, no mean feat given the random distribution of characters across participants. By the end of the first day, 208 players had collected at least one character, and total captures reached 2,449. The game was a huge hit and sparked a lot of fun interactions among Paddlers.
The most visited page in the web app was the wallet, where players could see which characters they’d collected and which ones they were missing. Players could see the traits of each character, and a fun description of each customer.

At the end of the event, the top player was awarded a unique trophy and bragging rights as the ultimate leader of the Paddleverse. But most importantly, the game created a shared experience that got people talking about our customers in a fun and engaging way.
As a bonus, everyone got to keep their NFC badge, which they can reprogram to point to their personal website, a side project, or Rickroll people - something our Head of InfoSec & IT was naturally the first to do.

What I learned
Simple mechanics win, but there’s room for improvement
The game worked well because it was simple and fun, regardless of technical skill level. Tap-to-collect meant the focus was on people, not screens, and customer-centric cards sparked more interesting conversations than generic “where are you from?” questions.
Rate limiting would prevent players from speed-running captures by rapid-tapping across the room, and storing tap events would let us understand play patterns better. I’d love to have data on who people were meeting and to visualize the connections between different Paddlers.
People loved the customer theme
We’re all aware of who our customers are, but Paddlecards brought them to life. While we were meeting folks from different teams, we were also talking about our customers, how they work, and the cool stuff that we’re helping them to bring into the world.
You can’t design that into a tap mechanic. It happened because the content gave people something real to talk about. Next time, I’d integrate a simple Q&A for each character to help participants learn more about customers.
Final thoughts
In the end, 70% of the company participated in Paddlecards. It started as a simple message to the CEO on a Tuesday morning, and by Wednesday morning, we’d built a small taskforce of Paddlers from across the company who wanted to turn it into a reality. None of that was in my original message. It just happened.
Big thanks to everyone in the Paddlecards taskforce for turning a scrappy idea into a polished experience. And to every Paddler for making kick-off 2026 feel more connected 💛
Looking forward to kick-off 2027, the Algarve is going to be tough to beat 👀
About Afonso Raposo
Afonso Raposo is a Senior Software Engineer on the Retain team, helping build payment recovery tools for thousands of SaaS, mobile, and AI businesses. In his spare time, he builds scrappy side projects that bring teams together.