Home Projects Blog About

NOBSQR - Offline Engagement, Online Insights

Last updated on

The Problem Statement

While doing some design work for a client, I had a lot of trouble finding a good way to create QR Codes that didn’t sneak tracking/shortlinks into the QR Encoding - and that were ostensibly just a top of funnel for another product.

I wanted a simple QR Code, that was it. So I pulled toget a very simple webapp to generate QR Codes that encoded JUST the URL, no tracking, no shortlinks, no BS.

While doing that, I realised that this could be a useful tool for businesses that wanted to engage with customers offline, but still wanted to gather insights about those interactions. If my product did that without sneaky tracking, or acting as a top of funnel for another product, then maybe it could be a useful tool for businesses.

The Solution

NOBSQR is a platform that operates on a fremium model. Just want a QR Code? Sign in, generate one, and download it. No tracking, no shortlinks, no BS. You still get to fully style the QR Code, and you can even add a logo to it.

If you want to gather insights about your QR Code scans, you can upgrade to a paid plan. This allows you to see how many times your QR Code has been scanned, where it was scanned, and when it was scanned. You can create multiple QR Codes, and manage them all from a single dashboard.

Initial Evolutions

One of the use cases we found was users would sign up, and create multiple QR Codes that encoed the same URL. Turns out, they were A/B testing offline media - print posts with different QR Codes, and measure which one performed better. Brilliant!

To support this, there is currently a feature under development that allows you to create Campaigns with A/B testing and measure performance against different QR Codes.

The Stack

NOBSQR is built on a modern stack that includes:

  • Astro in a Full-Stack deployment (by far my favorite web framework).
  • Cloudflare D1 for the database.
  • Cloudflare Workers for serverless functions, inluding click tracking.
  • Cloudflare Pages for hosting the frontend, functions are hoisted to workers.
  • Cloudflare KV for caching and storing static assets.
  • Cloudflare Queues for handling background tasks like click tracking.
  • tRPC for type-safe API calls.
  • Drizzle ORM for database interactions.
  • Tailwind CSS for styling.
  • Better-Auth for authentication.