SwiftLink: from idea to a live NFC business card platform in 30 days, and still growing
A UK startup needed the software behind its NFC business cards built fast, built right and built to grow. We delivered the core platform in 30 days and have been SwiftLink's technology partner ever since.
- Custom PHP
- Shopify
- DigitalOcean
- Cloudflare
- Stripe
- Apple Wallet
- Google Wallet
The project, in brief
- Client
- SwiftLink Tech Ltd, Bradford, United Kingdom
- Product
- NFC and QR business cards with a digital profile that customers update any time
- Market
- Business and individual users, selling in the UK and overseas
- Our role
- Product planning, architecture, full development, hosting setup, deployment, ongoing feature development and support
- Core build
- 30 days from kickoff to a working platform on the client's own server
- Relationship
- Continuous since May 2023
- Stack
- Custom PHP web application, Shopify storefront, DigitalOcean, Cloudflare, Stripe, Apple Wallet and Google Wallet APIs
Tie a physical card to a digital identity, at scale
SwiftLink's founders, Stephen Haley and Sunnie Patel, had a clear product in mind. A physical card you buy once, carrying an NFC chip and a QR code, linked to an online profile you can edit forever. Tap the card on a phone and the profile opens. No app, no typing.
The store side was simple. They had chosen Shopify, and Shopify handles products and payments well. The hard part was everything behind the card.
Every card needed its own permanent web address before it was manufactured, because the manufacturer writes the address onto the chip. Thousands of these addresses had to exist as empty accounts, waiting for a customer to tap the card for the first time and claim it. Once claimed, the card and the profile had to stay connected for life, while the customer changed their details as often as they liked.
The first order was 2,000 cards. The founders also asked a direct question at the start: could the system hold 100,000 accounts without being rebuilt?
They had the designs, the brand and the supplier. What they did not have was a technical partner who could turn that into working software quickly, make the architecture decisions they could not make themselves, and stay available as the business grew. As Stephen put it in our first conversation, “I don't understand development in all honesty. This is why I need you.”
We answered the question they were actually asking
SwiftLink's brief attracted a large number of proposals. Most answered the question “can you build a website?” Ours answered the question they were actually asking: how do you tie a physical object to a digital identity, at scale, without the two ever coming apart?
Before any contract, we worked through the model with Stephen in plain language. A purchase on Shopify. A unique account and public link for each card. The link stays fixed, the profile behind it changes. We confirmed that pre-generated empty accounts were possible, that server and DNS setup was covered, and that an affiliate programme could be added without custom development by integrating a proven script.
Stephen's first message said it directly: we had “taken the time to read exactly what we need and clearly seem to understand what we require.”
The other thing SwiftLink wanted was a partner who would not disappear after launch. They asked for ongoing support and improvement from the start, and we agreed to it from the start.
From kickoff to a working platform
The project kicked off on 20 May 2023. SwiftLink's designs arrived two days later. We set a 30-day target and worked to it.
- 01Week 1 and 2
Design and the first screens
We turned the client's visual references into working screens for every step a customer would see: first tap, account creation, email verification, password setup, profile editing and the public profile itself. By day 15 these were live on a test address so Stephen and Sunnie could tap through them on their own phones and give feedback.
- 02Week 3
The engine behind the cards
This was the part that mattered most. We built the admin panel with a batch generator: enter a number, press generate, and the system creates that many unique profile addresses with matching QR codes, exported as a spreadsheet and a zip file ready for the manufacturer. Each address carries a tracking marker so the platform knows whether a profile was opened by tap or by scan, which later became the analytics feature. On day 25 we tested a batch of 10,000 addresses and deployed the admin panel to the client's own server the same evening.
- 03Week 4 and 5
The customer side, live
Profile editing, social links, team members, cover and profile photos, and a save-contact button that drops the details straight into the phone's address book on both iPhone and Android. On day 33 the full system was running on SwiftLink's server and we held our first video call to walk through it.
- 04Day 45
Production
On a live call with both founders, we generated the first official batch of 2,000 profile addresses. Stephen's message that evening: “We can order a lot of stock tomorrow now. Our confidence is in you Ritik.” The physical cards arrived a month later and worked first time.
What customers hold in their hand
One tap opens a profile the customer owns and edits forever. Themes, a Pro tier, analytics and wallet passes all live in the same app.
The stack behind it
Storefront
- Shopify
Platform
- Custom PHP
Hosting and infrastructure
- DigitalOcean
- Cloudflare
Payments
- Stripe
Wallet integrations
- Apple Wallet
- Google Wallet
The calls that held up
A fast build is only valuable if the decisions underneath it hold up. These are the ones that did.
Keep Shopify and the platform separate.
Shopify already handles products, payments, tax and shipping well. Rebuilding any of that would have cost weeks and gained nothing. The custom platform lives on its own subdomain and does the one thing Shopify cannot: run the cards.
Generate addresses in bulk, not per customer.
Early on, we proposed creating each account from the admin panel as orders came in. Stephen explained that the manufacturer needed every address before production. We changed the design the same afternoon. The batch generator became the heart of the system, and it is still how every new product line is launched.
Random keys, not sequential numbers.
Every profile address uses a long random key. Nobody can guess the next customer's profile or scrape the whole customer list by counting upwards.
Let the client manage platforms themselves.
Rather than hard-coding the list of social networks, we built an admin screen where SwiftLink adds, edits and reorders them. When Threads launched in July 2023, mid-project, it was added in minutes with no developer involved. Twitter's rebrand to X was handled the same way.
Right-sized hosting.
We tested AWS, then recommended DigitalOcean: simpler to manage, cheaper to run, easy to scale up in minutes when traffic grows. DNS moved to Cloudflare for a free CDN, firewall and faster global loading, which also meant the client could cancel their old hosting later without any downtime.
Curated choices over open customisation.
When SwiftLink wanted customers to pick their own theme colours, we recommended a set of eight designed options matched to the physical card colours instead of a free colour picker. Profiles stay on-brand and the product looks consistent in every customer's hands.
Test with friends first.
Before public selling, we suggested putting 20 to 25 cards with friends and family to find the problems real users find. SwiftLink did exactly that.
How the platform grew
The 30-day build was a starting point. As SwiftLink sold cards, talked to customers and watched competitors, the wishlist grew, and the platform grew with it. Every feature below was added to the live system without a rebuild and without disrupting existing customers.
Themes
Four profile themes (Social, Business, Corporate, Modern) with light and dark versions, eight colour options matched to the card range, and customer-selectable icon packs
Products
Phone tags, social media tags and metal cards, each with its own setup flow; a connect-existing-card process so one customer can link several products to a single profile
Pro membership
Recurring subscriptions through Stripe, offered during setup or later, with a cancellation survey, admin-side activation and a verified badge for members
Pro features
Analytics by tap, scan and per-link click with date filters; embedded video slider; image gallery; featured links; product showcase; lead-capture popup
Wallets
Add-to-wallet passes for Apple Wallet and Google Wallet, each built on the vendor's own pass API
Growth tools
Short links (account.swift-link.com/yourname), an affiliate programme integrated with Shopify orders, email signature generator, and export of collected leads to Excel for CRM import
Operations
Digital-only accounts created from admin, manual customer setup, account reset and deactivation, admin password reset, privacy controls for contact buttons, QR code manager, staging environment and server backups
Storefront
Shopify page builds, speed optimisation, product reviews, video pages, tracking tags and ongoing fixes
The habits behind a long partnership
One shared channel.
From day three, everything ran through a single WhatsApp group with both founders and our team. Questions got answered the same day, usually within the hour. Screens were shared as they were built, not at the end of a milestone.
Show, don't describe.
Every new module came with a short screen-recorded walkthrough so the founders could use it without a meeting. Bigger changes were demonstrated on a video call and tested together, live.
Test before live.
Once customers were on the platform, we set up a separate staging copy. New features go there first, get checked by SwiftLink, and only then move to production. Backups run before every significant change, so a problem can be rolled back in minutes.
Think ahead for the client.
Many of the platform's features started as our suggestions rather than requests: email notifications when someone connects with a customer, the connections export, tracking tap versus scan from day one, a staging server, and a security layer for a planned health-record feature that nobody had asked about yet. Stephen's response to that last one: “Love that you're thinking ahead with this.”
Be there when it matters.
When SwiftLink needed eight customer accounts set up for a corporate client who was waiting on a call, it was done in 15 minutes. When their email host migrated servers overnight and took their mail down, we had it back the same afternoon. When a customer in London needed a card assigned before a meeting, it happened before the meeting.
What SwiftLink got
- Core platform live in 30 days
on the client's own infrastructure, with the first 2,000 production addresses generated on day 45 so manufacturing could begin
- Built for the scale they asked about.
A 10,000-address batch was tested before launch. There is no ceiling on the number of accounts, and new product lines are launched by generating a batch, not by writing code
- One platform, every product.
Business cards, metal cards, phone tags and social tags all run on the same system, and a customer can connect several to a single profile
- A paying membership tier
with recurring billing, live and processing subscriptions
- SwiftLink runs it themselves.
Adding a social platform, resetting a customer, creating a digital account, generating a batch or changing an icon all happen in the admin panel without a developer
- No rebuilds.
Every feature since launch has been added to the original codebase. The architecture chosen in week one is the one running today
- A relationship that outlasted the project.
SwiftLink's founders have since brought us other client work through their own businesses
“Ritik has been a very important part to our business, and has gone above and beyond in every aspect, picking up elements that we missed ourselves. At no point did he ever say no, he always answered with we will find a way. Extremely talented, fantastic communication skills, always answers very quickly. We will now be working with Ritik long term.”
“Great thinking ahead Ritik as always.”
“Me and Ste checked the device adding section and it worked fantastic. Amazing. Well done.”
Building something with a physical product behind it?
SwiftLink needed software that could not fail, because every card leaving the factory depended on it. If you are building a product where the software has to be right the first time and keep growing afterwards, we should talk.
30-minute call · we reply within 1 business day · NDA on request.
