Fraktura's Loyalty Program App, Built by Appworks

Most retailers run into the same problem once they try to reward loyal customers: purchases happen across too many disconnected places to track properly. Someone buys a book online, then walks into the physical store the next week, then picks up something at a festival stand a month later, and from the merchant's side those look like three different customers, not one. Bookstores deal with this more than most, since a customer's relationship with a publisher isn't just transactional, it plays out across a webshop, a physical space, and a calendar of author events and literary festivals. Rewarding that kind of relationship with a generic discount code misses most of what's actually happening.

Appworks started building the loyalty program behind Fraktura's mobile app about a year ago, and it's been live for customers since November 2025. The idea was to stop treating each sales channel as its own island and instead give every purchase, wherever it happens, a single home: one profile, one points balance, one history. That line ends up being more literal than it sounds, because the same profile also turns out to be Fraktura's entire account system, not just its loyalty card. More on that at the end.

How a purchase actually flows

The mechanics are the same everywhere a customer shops, whether that's the register in Fraktura's physical store or the checkout on their webshop:

  1. The customer shows their unique barcode in the app, or logs into their account online.
  2. The till (or the webshop) posts the basket back to Fraktura's systems.
  3. Points are calculated per line item, at a rate that depends on the publisher.
  4. The customer's balance updates, and their tier is re-evaluated on the spot.
  5. If they've crossed a threshold, the new tier's coupons are assigned automatically, no manual step on either side.

That's the whole loop, and it runs identically whether the sale happened at a till or on a browser.

What the tiers are actually worth

The app names its tiers after typography styles, a nice touch for a publisher, Normal, Italic, and Bold, and the article has always mentioned them. What hasn't been spelled out is what each tier is actually worth:

  Normal Italic Bold
Threshold 0–999 pts 1,000–2,499 pts 2,500+ pts
Point value 100 pts = €1 75 pts = €1 50 pts = €1
Free shipping over €30 €25 €20
Birthday coupon 200 pts 250 pts 400 pts

 

Bold members also get first access to pre-release book reservations, priority on limited and signed editions, VIP access at events, and personalized recommendations. The detail worth calling out on its own: a point at Bold tier is worth twice what it's worth at Normal. Moving up doesn't just add perks, it changes the exchange rate on everything a customer has already earned. Tiers are also one-way, once a customer reaches a level, a slower month doesn't push them back down.

Earning rates also favor Fraktura's own catalogue: purchases of Fraktura and Bodoni titles earn a point per €0.10 spent, while other publishers' books and merchandise earn at half that rate, a point per €0.20. Redemption has guardrails on both ends, a minimum of 100 points per redemption, and a cap of 1,000 points or 20% of the basket total, whichever is lower. New members aren't starting from zero, either: signing up grants 300 points immediately, along with whatever coupons that starting tier carries.

It's also the ebook reader

This is the part the loyalty story alone doesn't capture: buying an ebook through Fraktura doesn't just earn points, it provisions permanent reading access to that title inside the app, as a direct side effect of the points transaction. Functionally, that's a hundred-year entitlement attached to the same purchase that updates the customer's balance. Behind it is a full EPUB import pipeline that matches titles by ISBN and pulls in cover art. In practice, the loyalty transaction is what unlocks the library, and the app isn't just a card for earning discounts, it's the reader those ebooks live in.

Ways to earn beyond buying

A birthday coupon is already live and automated, the app mails it out on its own each year. Beyond that, Fraktura's published program rules already fix a tariff for earning points without a purchase: 50 points for signing up to the newsletter, 20 points for opening an email (capped at 100 a month), 50 points for scanning a QR code at an event, 100 points for a ticket to Festival svjetske književnosti, Fraktura's own literary festival, and 150 points for completing a survey. Some of these are written into the rules but not yet switched on for customers, so this is worth confirming with the Fraktura team before it goes out publicly, but the numbers are already set. It's less "here's what we might build" and more "here's the tariff, waiting on a launch date."

The barcode most people would undersell

Calling it "a unique QR code" undersells what's actually happening. Every membership card, every coupon, and every till shortcut is a real EAN-13 barcode, checksum digit and all, running on a private prefix. That means Fraktura's existing shop scanners read a customer's phone screen exactly the way they already read a book's barcode. No new scanning hardware, no new point-of-sale software, no retraining anyone at the till. For a retail audience, that's often the detail that lands hardest, because it means adopting the program cost nothing on the hardware side.

Redeeming points works differently, by design, for a till that might be on a slow connection: the spend request is a signed token, verified with HMAC-SHA256, so the register can confirm the customer and the amount straight from the code itself rather than needing a live round-trip to a server every time. It's also rate-limited to seven scans a minute, enough for normal use, tight enough to blunt abuse.

Built to sit inside what Fraktura already runs

The webshop side runs on WooCommerce, and the app's catalogue is pulled directly from Fraktura's existing WooCommerce product feed rather than a separate system Fraktura would need to maintain twice. A handful of less visible details point the same way: a delta-sync endpoint lets Fraktura's other internal systems poll for balance changes without a full resync, every API endpoint still accepts the old email-based identifiers alongside the new barcode format so nothing broke mid-migration, and when an outage briefly affected new sign-ups, a repair pass went back and credited the points those customers should have earned in the meantime. None of that is the exciting part of the pitch, but it's usually the part that decides whether a merchant trusts a system enough to depend on it.

Compliance, treated as a feature

Alongside the program rules, the app ships a full GDPR processing notice: a named controller, a DPO contact, the relevant Croatian mediation body for disputes, a committed 15-day response window on complaints, and a 24-month inactivity policy that deactivates a dormant account only after 30 days' written warning. Most loyalty program write-ups leave this out entirely. For a European retail or publishing audience, it's not boilerplate, it's evidence the program was built to hold up to scrutiny, not just to launch.

One profile, one account, one history

Loop back to where this started: the goal was never just a points balance. A customer's ebook entitlements, their event attendance, their webshop login, and a purchase at the till all resolve to the exact same subscriber record. The loyalty program isn't a layer sitting on top of Fraktura's other systems, it's the account system underneath all of them. That's the part worth remembering after the tiers and the barcodes: Fraktura didn't just add a rewards program, they gave every version of their customer relationship one place to live.

Fraktura's Loyalty Program App, Built by Appworks

Most retailers run into the same problem once they try to reward loyal customers: purchases happen across too many disconnected places to track properly. Someone buys a book online, then walks into the physical store the next week, then picks up something at a festival stand a month later, and from the merchant's side those look like three different customers, not one. Bookstores deal with this more than most, since a customer's relationship with a publisher isn't just transactional, it plays out across a webshop, a physical space, and a calendar of author events and literary festivals. Rewarding that kind of relationship with a generic discount code misses most of what's actually happening.

Appworks started building the loyalty program behind Fraktura's mobile app about a year ago, and it's been live for customers since November 2025. The idea was to stop treating each sales channel as its own island and instead give every purchase, wherever it happens, a single home: one profile, one points balance, one history. That line ends up being more literal than it sounds, because the same profile also turns out to be Fraktura's entire account system, not just its loyalty card. More on that at the end.

How a purchase actually flows

The mechanics are the same everywhere a customer shops, whether that's the register in Fraktura's physical store or the checkout on their webshop:

  1. The customer shows their unique barcode in the app, or logs into their account online.
  2. The till (or the webshop) posts the basket back to Fraktura's systems.
  3. Points are calculated per line item, at a rate that depends on the publisher.
  4. The customer's balance updates, and their tier is re-evaluated on the spot.
  5. If they've crossed a threshold, the new tier's coupons are assigned automatically, no manual step on either side.

That's the whole loop, and it runs identically whether the sale happened at a till or on a browser.

What the tiers are actually worth

The app names its tiers after typography styles, a nice touch for a publisher, Normal, Italic, and Bold, and the article has always mentioned them. What hasn't been spelled out is what each tier is actually worth:

  Normal Italic Bold
Threshold 0–999 pts 1,000–2,499 pts 2,500+ pts
Point value 100 pts = €1 75 pts = €1 50 pts = €1
Free shipping over €30 €25 €20
Birthday coupon 200 pts 250 pts 400 pts

 

Bold members also get first access to pre-release book reservations, priority on limited and signed editions, VIP access at events, and personalized recommendations. The detail worth calling out on its own: a point at Bold tier is worth twice what it's worth at Normal. Moving up doesn't just add perks, it changes the exchange rate on everything a customer has already earned. Tiers are also one-way, once a customer reaches a level, a slower month doesn't push them back down.

Earning rates also favor Fraktura's own catalogue: purchases of Fraktura and Bodoni titles earn a point per €0.10 spent, while other publishers' books and merchandise earn at half that rate, a point per €0.20. Redemption has guardrails on both ends, a minimum of 100 points per redemption, and a cap of 1,000 points or 20% of the basket total, whichever is lower. New members aren't starting from zero, either: signing up grants 300 points immediately, along with whatever coupons that starting tier carries.

It's also the ebook reader

This is the part the loyalty story alone doesn't capture: buying an ebook through Fraktura doesn't just earn points, it provisions permanent reading access to that title inside the app, as a direct side effect of the points transaction. Functionally, that's a hundred-year entitlement attached to the same purchase that updates the customer's balance. Behind it is a full EPUB import pipeline that matches titles by ISBN and pulls in cover art. In practice, the loyalty transaction is what unlocks the library, and the app isn't just a card for earning discounts, it's the reader those ebooks live in.

Ways to earn beyond buying

A birthday coupon is already live and automated, the app mails it out on its own each year. Beyond that, Fraktura's published program rules already fix a tariff for earning points without a purchase: 50 points for signing up to the newsletter, 20 points for opening an email (capped at 100 a month), 50 points for scanning a QR code at an event, 100 points for a ticket to Festival svjetske književnosti, Fraktura's own literary festival, and 150 points for completing a survey. Some of these are written into the rules but not yet switched on for customers, so this is worth confirming with the Fraktura team before it goes out publicly, but the numbers are already set. It's less "here's what we might build" and more "here's the tariff, waiting on a launch date."

The barcode most people would undersell

Calling it "a unique QR code" undersells what's actually happening. Every membership card, every coupon, and every till shortcut is a real EAN-13 barcode, checksum digit and all, running on a private prefix. That means Fraktura's existing shop scanners read a customer's phone screen exactly the way they already read a book's barcode. No new scanning hardware, no new point-of-sale software, no retraining anyone at the till. For a retail audience, that's often the detail that lands hardest, because it means adopting the program cost nothing on the hardware side.

Redeeming points works differently, by design, for a till that might be on a slow connection: the spend request is a signed token, verified with HMAC-SHA256, so the register can confirm the customer and the amount straight from the code itself rather than needing a live round-trip to a server every time. It's also rate-limited to seven scans a minute, enough for normal use, tight enough to blunt abuse.

Built to sit inside what Fraktura already runs

The webshop side runs on WooCommerce, and the app's catalogue is pulled directly from Fraktura's existing WooCommerce product feed rather than a separate system Fraktura would need to maintain twice. A handful of less visible details point the same way: a delta-sync endpoint lets Fraktura's other internal systems poll for balance changes without a full resync, every API endpoint still accepts the old email-based identifiers alongside the new barcode format so nothing broke mid-migration, and when an outage briefly affected new sign-ups, a repair pass went back and credited the points those customers should have earned in the meantime. None of that is the exciting part of the pitch, but it's usually the part that decides whether a merchant trusts a system enough to depend on it.

Compliance, treated as a feature

Alongside the program rules, the app ships a full GDPR processing notice: a named controller, a DPO contact, the relevant Croatian mediation body for disputes, a committed 15-day response window on complaints, and a 24-month inactivity policy that deactivates a dormant account only after 30 days' written warning. Most loyalty program write-ups leave this out entirely. For a European retail or publishing audience, it's not boilerplate, it's evidence the program was built to hold up to scrutiny, not just to launch.

One profile, one account, one history

Loop back to where this started: the goal was never just a points balance. A customer's ebook entitlements, their event attendance, their webshop login, and a purchase at the till all resolve to the exact same subscriber record. The loyalty program isn't a layer sitting on top of Fraktura's other systems, it's the account system underneath all of them. That's the part worth remembering after the tiers and the barcodes: Fraktura didn't just add a rewards program, they gave every version of their customer relationship one place to live.