The Problem
In 2021, Estonian merchants had no way to offer deferred payments at checkout. Customers who couldn't or wouldn't pay the full amount upfront either bought or left. Modena's BNPL changed that — 0% interest, 1–3 month terms, merchant-funded — but it was just the starting point.
The real challenge wasn't building one product. It was building an architecture that could absorb whatever came next — without rewriting the flow each time a new product launched.
Four Years, Six Products, One Flow
Most case studies show a snapshot. This is a longitudinal story — four years of compounding design decisions on a single application flow.
I joined Modena in early 2021 and reworked the initial BNPL flow. Over the next four years, the product expanded into six credit products: BNPL, hire-purchase, small loan, consumer credit, business loan, and business credit. Each had different requirements — purchase-based products start with a merchant-set amount; loans let the customer choose. Income verification is required for loans but not BNPL. Business products add beneficiary steps and bank statements.
The deliberate decision was to never fork the flow. Instead, I designed a single branching architecture — shared screens with steps added or removed per product type. Early choices about step order, data collection points, and conditional logic meant that each new product could ship on top of what existed. The loan portfolio this generated (€16.8M) later justified building the Investor Portal to fund it externally.
Flow Overview
The interactive prototype above shows the small loan product. The full flow has 8 steps — tap through the prototype to experience it. Here is how the branching works across product types:
| Step | BNPL | Hire-purchase | Loans | Business |
|---|---|---|---|---|
| Calculator | Fixed | Fixed | Adjustable | Adjustable |
| Identification | ✓ | ✓ | ✓ | ✓ |
| Bank verification | — | ✓ | ✓ | ✓ |
| Income & expenses | — | ✓ | ✓ | ✓ |
| Beneficiary info | — | — | — | ✓ |
| Review & sign | ✓ | ✓ | ✓ | Manual review |
Same codebase, same design system. Steps are conditionally shown or hidden based on product type.
Key Design Decisions
Branching architecture over separate flows. The highest-leverage decision was resisting the pressure to build a new flow for each product. Instead, I designed a single branching system — shared screens with conditional steps. When business loans launched in 2024, it meant adding two screens, not rebuilding from scratch. This kept both the codebase and the design system manageable across four years of growth.
Familiarity as trust. Smart-ID and direct bank integrations (no third-party open banking) made authentication feel routine, not risky. Estonian users already trust these systems — leveraging that reduced friction at the highest-stakes moments in the flow.
Consistent interaction patterns. Bottom-anchored CTAs on every screen, a 6-segment progress bar for orientation, and predictable screen transitions. These patterns stayed constant as the product range grew, so returning users never had to relearn the flow.
Results
From a single BNPL product with limited traction to six credit products generating €16.8M in financed contracts. Consumer flows complete in under 2 minutes; business loans take 2–3 minutes with a manual review stage. The portfolio grew large enough to justify its own external funding channel — the Investor Portal.
What I Learned
Four years on one flow taught me that design architecture compounds the same way code architecture does. Early decisions about step order, data collection points, and branching logic either accelerate or constrain every product that follows. Getting those foundations right meant new products shipped on top of what existed. Getting them wrong would have meant rebuilding from scratch — repeatedly.