← Projects
Frontend implementation + design contribution·2026

Multi-step insurance purchase flow

A five-step flow for carmatik.ro where individuals and companies buy car insurance: enter the details, compare offers from multiple insurers, pay.

  • JSP
  • JavaScript
  • CSS
  • Figma
  • ANAF integration
5 stepsGuided purchase funnel
PF & PJIndividual & company branches
Multiple providersInsurance offers compared side by side
Modular componentsSame inputs across all five steps
01 — Context

The brief

carmatik.ro is a production automotive e-commerce platform. The insurance flow lets a user buy a policy without leaving the site. Five steps gather the details, retrieve offers from multiple providers and carry the purchase through payment, with separate branches for individuals and companies.

02 — Challenge

What made it hard

Insurance is the most conditional, validation-heavy flow on the platform. Every step adapts to who the user is and what they drive.

  • Branching logic. Individuals and companies get different fields, validation, and steps. Logged-in users skip the contact step entirely.
  • External data. A national-registry (ANAF) lookup auto-fills and validates company data so users don't retype it.
  • Regulatory weight. RCA conditions, high-risk-insured notices, and direct-settlement pricing all had to be presented and handled correctly.
  • Built for reuse. The module was always going to move into the insurance backoffice, so nothing could be one-off storefront markup. Every component had to be portable from day one.
03 — Contribution

What I did

I owned the frontend implementation and contributed to the design in Figma, so I shaped both how the flow looks and how it's built. The part I'm proudest of is the component architecture.

  • Type-driven inputs. Instead of bespoke fields per step, one configurable input covers every case: static lists, backend-sourced options like car manufacturers, or key/value maps. The same components compose all five steps.
  • Logic kept at the flow level. The guest-only contact step and the individual-vs-company branching live in the flow, not the components, so the shared inputs stay clean and reusable.
  • Built to move. Because the inputs are driven by type and data, the module can move into the insurance backoffice with its components intact. That move is planned, not yet made.

What it looks like

09 items

Outcome

Live at carmatik.ro/asigurari: a complete insurance funnel, payment included, built on reusable, type-driven components designed to move into the insurance backoffice without a rewrite.