Client work · anonymized

Contractor-Matching Lead Platform

A multi-language B2B platform connecting Belgian homeowners with verified contractors — built on .NET 9 Blazor with Stripe payments and automated lead routing.

Role
Freelance Full-Stack .NET Developer
Stack
  • .NET 9
  • Blazor Interactive Server
  • EF Core
  • SQL Server
  • Stripe
  • Docker
  • Microsoft Graph

Homeowners in Belgium looking for the right contractor have no shortage of options — the hard part is trust and fit. This platform sits in the middle: homeowners describe a job, and verified contractors receive matching leads for their region, on a platform that works in their language.

Solution & architecture

The application is a multi-language B2B web platform on .NET 9 with Blazor Interactive Server, backed by EF Core on SQL Server and shipped in Docker. Interactive Server keeps every form, validation rule, and role-gated flow in C# end to end — there is no separate API layer to keep in sync for the web UI, which matters on a product with this much stateful, validation-heavy input.

Payments run through Stripe. Transactional email — lead alerts, account flows — goes out through the Microsoft Graph API rather than raw SMTP.

Key technical decisions

  • Contractor verification against VIES. A contractor’s VAT number is validated against the EU’s VIES registry, so “verified” on this platform means verified against an official source — not a self-declared badge.
  • Postal-code lead routing. Leads are matched to contractors by postal-code coverage, which keeps matching deterministic, explainable, and easy to tune per region.
  • QR-coded 2FA. Account security uses QR-code-based two-factor authentication on top of the standard identity flows.
  • Blazor Interactive Server over a SPA + API split. One stack, one deployment, server-side rendering by default — the fastest path to a correct, multi-language product.

Outcome

The platform is live in production, serving homeowners and contractors across Belgium in multiple languages. Client identity is withheld by agreement; the technical story above is the real one.