DEV Community

Cover image for #1 Fidely: Loyalty App Side Project
pul
pul

Posted on • Originally published at pulbasso.dev

#1 Fidely: Loyalty App Side Project

Hello everyone,

Welcome to the first blog article of The 10-Minute Company series! Today, I’m excited to introduce Fidely, a simple digital loyalty app born from a conversation with a friend who owns a shop near my hometown.

He showed me his printed stamp cards—those small cards that reward customers after they make a certain number of purchases. You’ve probably seen these before; they’re a straightforward way to build customer loyalty.

Fidely (a “spaghetti-English” twist on the word “Fidelity”) is essentially a digital version of these loyalty campaigns. It aims to make the process more modern and efficient.

What Does Fidely Do?

Fidely supports two types of loyalty campaigns:

  • Points Collection: Shop owners can create a catalog where each reward requires a specific number of points to redeem.

  • Stamp Campaigns: Similar to traditional stamp cards, where customers receive a reward after a set number of purchases.

The system generates a unique virtual card for each customer, which they can use to collect points or stamps. What’s even better? The same card works in any shop using Fidely, creating a seamless loyalty experience.

Why Did I Build This?

I started this project about a month ago, but with limited free time—just a few evenings and weekends. My goal is to provide an easy and affordable tool for shop owners to create customized loyalty campaigns. Beyond that, I hope Fidely fosters a local network of offers, connecting shops and their loyal customers.

With Fidely, shop owners can:

  • Easily create virtual loyalty cards.

  • Engage customers through marketing emails or app notifications (future feature).

  • Build a community of interconnected businesses.

Let’s take a closer look at where I’m at with the app.

The Web App: Current Features

At this super early stage, Fidely is not even yet a proof of concept (PoC). Here’s what it can do so far:

  1. Shop Owner Features:
- Sign in with a pre-registered account.

- View a basic dashboard with insights and quick links.

- Create virtual cards for customers.

- Launch two types of campaigns: points collection and stamp-based rewards.

- Subscribe customer cards to campaigns.

- Assign points to cards, track progress, and display rewards.
Enter fullscreen mode Exit fullscreen mode
  1. Customer Features:
- Collect points or stamps on their virtual card.

- Redeem rewards when reaching campaign goals.
Enter fullscreen mode Exit fullscreen mode

Here’s a glimpse of the app in action:

Login Page

Image description

Home Dashboard

Image description

As you can see, the app is pretty unstyled and basic at this point. Localization is also missing, so enjoy some Italian text sprinkled in. :D

Operator Dashboard

One feature I’m working on is the operator view. This allows shop employees to:

  • Retrieve customer cards.

  • Assign points based on the current campaign.

  • Notify customers when they’ve earned a reward.

Here’s a quick look at the operator’s workflow:

Campaign Builder

Shop owners can currently create stamp campaigns using this interface:

Image description

Here, they can:

  • Name the campaign.

  • Set the number of stamps required for a reward.

  • Assign values to stamps for easy tracking.

  • Define specific rewards for reaching milestones.

My Development Approach

At this early stage, the app feels rough around the edges: bugs, inconsistent layouts, and no styling. But that’s intentional. Here’s how I approach side projects like Fidely:

  1. Build a Dirty Prototype:
- Focus on selecting the tech stack and setting it up.

- Implement basic features to validate the idea.


This phase helps me:

- See results quickly, keeping motivation high.

- Identify design challenges early.

- Understand which code modules are essential.
Enter fullscreen mode Exit fullscreen mode
  1. Refactor the Backend:
- Review and clean up the codebase.

- Organize routes and logic.

- Write tests for stability.
Enter fullscreen mode Exit fullscreen mode
  1. Polish the Frontend:
- Improve UX and layout consistency.

- Refactor the frontend codebase for maintainability.
Enter fullscreen mode Exit fullscreen mode

This incremental approach allows me to shift focus as needed, ensuring progress without getting overwhelmed. The key is identifying the minimal viable features to validate the idea while keeping the project flexible for future iterations.

What’s Next?

Now that the basic functionality is in place, I’ll focus on:

  • Refactoring and structuring the backend.

  • Adding test coverage for reliability.

  • Organizing and improving the user interface.

I’ll share updates as I go, though my free time varies, so posts may be sporadic.

I’d love to hear your thoughts! Have you tackled similar side projects? What development methodologies do you use? Let’s chat in the comments or via email!

Top comments (0)