Alex Kovacic

KardPal

Loyalty cards on your phone, with the barcode or QR code ready at the till. Works offline, in 8 languages.

List of loyalty cards with colours, favourites and labels
Client
my own product
Work
PWA
Technology
JavaScript with no framework, service worker, PHP, MySQL or MariaDB, Stripe, Playwright tests
Online
kardpal.it

What it does

KardPal keeps shop loyalty cards on your phone. You add a card by pointing the camera at the code, from a photo or by typing the number, in 13 formats: from EAN-13 and Code 128 barcodes to QR, Data Matrix and Aztec. At the till the card opens on a white background and the screen stays on as long as needed.

Cards stay on the phone and work without a connection. With an account they show up on all your devices; without one you can export them to a file and import them again, also from another app such as Catima.

The free plan holds up to 20 cards. Premium (€1.99) and Premium Family (€4.99, up to 5 family members) are one-off payments through Stripe: they remove the limit and the ads, add photos of the card and put the nearest shop's card at the top.

How it's built

It's a PWA: it installs from the browser, with no app store. The interface is plain JavaScript with no framework and no build step; a service worker makes it work offline, and code reading uses the browser's own reader, with a WebAssembly fallback where it's missing.

The server is a PHP API with MySQL or MariaDB. There are eight languages (Italian, English, German, French, Spanish, Portuguese, Dutch and Polish), one per file. Automated tests run with Playwright.

The screens of the software come from test copies filled with made-up data.