QR ThingAbout

About QR Thing

Who are you?

I'm Keith! I do tech stuff. You can find me at:

What is Prettyproducts?

Prettyproducts is my dev / design group. Check it out at prettyproducts.io. I publish useful tools and other products I've built mostly to solve my own workflow problems.

Why is qrthing free?

The QR Codes are generated in your browser. No images are sent to or stored on the server. There is very little compute resources used, and as you can see the site is very simple. It costs next to nothing to provide this.

Okay but seriously why aren't you charging for this?

I was irritated with all of the sketchy looking QR Code generator websites, and how much URL shortener services like Bitly charged for basic options like embedding a logo, so I built my own Python script to create my own and decided others might get some use out of it, too.

You say no trackers but I see you have Posthog installed.

Yes, your browser is making calls to Posthog. All it is sending is the following:

  • Length of the URL you are encoding in the QR Code
  • What size QR Code you are creating in pixels
  • What output format you've selected
  • What color you've selected
  • If you've embedded an image
  • What filetype you provided for the embedded image, if any
  • What the file size of the embedded image is, if any
  • The embedded image dimensions, if any

Here is the actual code that triggers the Posthog event:

posthog.capture('qr_code generated', {
  text_length: url.length,
  size_pixels: size,
  output_format: outputFormat,
  qr_code_color: color,
  has_embedded_image: true,
  embedded_image_type: imageFile.type,
  embedded_image_size: imageFile.size,
  embedded_image_dimensions: `${img.width}x${img.height}`,
  generation_trigger: trigger
});

Your IP address is captured by default because your browser has to connect to Posthog to send this event data, but I am only using this to measure traffic by country. I have no interest in tracking you as users, marketing to you, or selling your info.

I use this information to see if any features are broken or if I should add any enhancements.

Can you add this extra feature?

Maybe? Send me message on X if you have a specific request. I might just add you to the repo if you can add it yourself.