Disclosure: Zeniva Travel, ZeniPay and ZeniCorp are companies in the same group as ZeniTech, founded by the same person, Alexandre Blais. They are not outside clients: we built these platforms for ourselves, and we run them.
Where the project stands
zeniva.ca is live and receiving requests. Checking the RBQ licence (Quebec’s construction licensing board) and assigning a contractor are done by hand by the team; there is no automatic lookup in the RBQ registry. The 30% / 70% split is the published business model, not yet an automated payment.
What we built
A main platform in Next.js 14 and Supabase, and four division sites. The client describes the work online; the request is recorded in the database, sent to the internal command center, and confirmed by email to the client and to the team.
Contractors sign up on their side with their RBQ licence number; their file goes into review and the team is notified. Nobody is assigned to a client before that review.
The technical decision that matters: two paths for every request
A lost quote request is a lost client, and nobody notices. So every request travels two paths: the database and the command center. If one fails, the other keeps it, with a maximum delay so the client never waits on a frozen page.
The database is protected by row-level security policies: only the server can write, never the browser. Emails escape any content typed by the client before displaying it.
What it teaches you if you are having software built
Ask your provider what happens to a submitted form on the day the database or the email service is down. If the answer is “it is lost,” that is an invisible revenue leak.
Your project
We build yours with the same rules.
Code repository in your name from the first commit, standard stack, fixed price per phase. Free 30-minute discovery call, in English or French.
See our prices · Custom software · App development · AI agents