Skip to content

Projects

Systems in production, not mock-ups.

Five selected projects, from a new brand to a full application. All built with AI as a working tool, on a secure, fast, decoupled infrastructure. For each one: the need, what I built and how it's built.

  • SaaS apps
  • Brand, site and back end
  • Online booking
  • Automation
  • Built-in AI
  • Decoupled infrastructure
Muleky — practice plan
Muleky practice plan builder: timed blocks, drills from the library and Coach Nova suggestions (fictional team)

How these projects are built

AI as a working tool

I build with AI agents that I direct, and I review every change. Projects move faster without cutting corners on quality.

A decoupled infrastructure

Pre-built pages that load fast, and a separate API for forms, accounts and payments.

Security and backups

Cloudflare Turnstile against bots, rate limiting, two-factor authentication for private areas, and daily MongoDB backups to S3 wherever there's data to protect.

01 · SaaS application

Muleky

Software for hockey coaches

Need: analyze a team's data and turn it into concrete advice with an AI assistant.

Coaches juggle spreadsheets, paper diagrams and scattered messages. I designed and built Muleky to bring it all together: practice planning, animated drills, evaluations, statistics and line-ups, with an AI assistant coach that knows the team.

What I built

  • Team dashboard: game of the day, next practice, to-dos, available roster.
  • Practice plan builder with timed blocks and a drill library.
  • Animated drill diagram editor, step by step.
  • Coach Nova, an AI assistant coach that analyzes players and suggests what to work on.
  • Statistics, skill-by-skill progress, line-ups and an on-ice mode for phones.
  • Interface in English, French and Spanish; online subscriptions.

Integrations

Stripe for subscriptions, the Anthropic API (Claude) for Coach Nova, AWS S3 for files, Cloudflare Turnstile against bots, hosting on Vercel.

  • TypeScript
  • Node.js 22
  • Express
  • MongoDB
  • Stripe
  • AWS S3
  • Anthropic
  • Cloudflare Turnstile
  • Vercel
  • EN · FR · ES
Muleky — dashboard
Muleky dashboard: game of the day, next practice, to-do items, available roster and record of the fictional Bouviers de St-Bouvier team (U15 AAA)
Muleky — animated drill editor
Animated drills. The coach draws the play one step at a time; players watch the paths unfold.
Muleky dashboard on a phone: game of the day and next practice (fictional team)
Muleky on-ice mode on a phone: current drill diagram, timer and next drill (fictional team)
On the ice. The practice plan follows the coach on their phone, timer included.
Muleky — Coach Nova
Conversation with Coach Nova, Muleky's AI assistant coach, about a player's strengths and what to work on at the next practice (fictional team)
Coach Nova. An AI assistant grounded in the team's own data, not a generic chatbot.
Muleky — player progress
Player progress charts in Muleky: evolution by skill, skills radar and trends (fictional team)
Progress. Evaluations become readable curves, skill by skill.
Muleky — statistics
A player's statistics compared with the team average in Muleky: shots, expected goals, zone entries and exits (fictional team)
Statistics. Every player compared with the team average.
Muleky — line-ups
Muleky line-up editor: forward lines, defence pairs and goalies, with an injured player automatically left out (fictional team)
Line-ups. An injured player is automatically left out.

Fictional team and players.

remorquessavage.com
Remorques Savage home page (French site): “100% aluminum trailers, perfect for your uses”, menus by use and product line, “Build your trailer” button

02 · Brand, website and back end

Savage Trailers

A Québec manufacturer of 100% aluminum trailers

Need: a professional, up-to-date image, a website that generates quote requests, and a back end to process them.

A complete project, start to finish. I designed the new brand (Remorques Savage in French, Savage Trailers in English), then a bilingual website with its own back end: from the product page to the configured quote, all the way to follow-up by the sales team.

What I built

  • A new brand identity: logo, colours, typography and usage rules.
  • One code base for two sites: remorquessavage.com in French and savagetrailers.com in English.
  • Catalogue of the Walkyrie, Baldur and Thor lines, pages by industry, warranties and dealer locations.
  • Configured quotes: model, capacity, dimensions, options and quantity.
  • Customer and dealer accounts with quote tracking and two-factor authentication.
  • Back office: quotes with internal comments, users, job postings and applications.
  • Pages AI agents can read: Markdown on request and standard discovery files.

Infrastructure

Pre-built pages, a separate Express API and a MongoDB database. A full backup to S3 every day, kept for 30 days. Cloudflare Turnstile, rate limiting and security headers. Email through Microsoft 365, newsletter through Mailchimp.

  • Node.js
  • Express
  • MongoDB
  • AWS S3
  • Microsoft Graph
  • Mailchimp
  • Cloudflare Turnstile
  • TOTP
  • Vercel
  • FR · EN
Remorques Savage logo: blue shield and navy lettering
The brand. Blue first, orange reserved for buttons, Inter typography: an industrial, no-nonsense look.
Remorques Savage — THOR XL page
THOR XL dump trailer product page on the Remorques Savage website: capacities, features and PDF spec sheet
Product pages. Every model has its own page, features and spec sheet.
Remorques Savage — build your trailer
“Build your trailer” page: a quote form where visitors pick and configure their model
Configured quotes. Customers choose their model and options; the request reaches the back office complete.
Back office. The sales team tracks every request and adds its notes.

03 · Brand, website and booking · evolving

CoolPrime

Point-to-point delivery, booked online

Need: let customers get a price, book and pay for a delivery themselves, with no phone calls or re-entry.

CoolPrime delivers in and around Montréal, Québec City, Ottawa and Toronto. I created the brand identity and the bilingual website, then online booking, which keeps evolving with the business.

What I built

  • Brand identity: logo, tagline and website look.
  • English and French website: services, membership, careers, blog.
  • Booking: address autocomplete, vehicle type, express option.
  • Price calculated from distance and traffic (Google Maps).
  • Phone verification by text message, then secure online payment.
  • Pages AI agents can read (Markdown and discovery files).

Infrastructure

Pre-built pages and a separate Express API for text-message verification (Twilio Verify) and payment (Stripe Checkout), with rate limiting.

  • Node.js
  • Express
  • Stripe
  • Twilio Verify
  • Google Maps
  • Alpine.js
  • Vercel
  • EN · FR
coolprime.ca
coolprime.ca
CoolPrime home page (French version): “A delivery? We've got it.”, delivery van and instant quote form
CoolPrime logo in white, with its French tagline
The brand. A logo that reads as well on a van as on a phone.
CoolPrime — booking
CoolPrime booking band: pickup and delivery addresses with autocomplete and an “Instant quote” button
Instant quote. Two addresses are all it takes to get a price.
CoolPrime — services
CoolPrime Services page: three delivery options, standard, express and urgent
Clear options. Standard, express or urgent, explained simply.
Coming next: the driver app. An Android app (Capacitor) that sends GPS position in the background, plus a map for the dispatcher. The proof of concept works; development is under way.

The flow, end to end

  1. 1Imported catalogue
  2. 2Quote or purchase order
  3. 3PDF generated
  4. 4Sent by email (AWS SES)
  5. 5Status tracking
  6. 6QuickBooks Online invoice

Client records are synced with Zoho CRM.

04 · Business application

PoPadema

Purchase orders and quotes, all the way to the invoice

Need: automate admin work and get sales, CRM and accounting software talking to each other.

Padema provides cleaning and maintenance solutions to businesses across Québec. Without a dedicated tool, every quote means copying products, building the PDF, emailing it, then re-entering everything in accounting. I built a custom web app that connects the catalogue, document sending, the CRM and QuickBooks Online.

What I built

  • Quotes and purchase orders created from the catalogue, imported from a file.
  • PDF generation and email sending, then status tracking for every document.
  • One-click conversion into a QuickBooks Online invoice (OAuth 2.0 connection).
  • Client sync with Zoho CRM.

Security

  • Two-factor authentication
  • Daily backups to S3
  • Cloudflare Turnstile against bots
  • Authorized API connections
  • Node.js
  • Express
  • MongoDB
  • QuickBooks Online API
  • Zoho CRM API
  • AWS SES
  • AWS S3
  • PDF
  • TOTP

Internal application: no screenshots are published. The illustration uses fictional data.

05 · Real-time platform

Free Board Society

Online board games, with an AI opponent

Need: a custom, real-time web product with an AI agent anyone can configure without coding.

Free Board Society lets board game designers turn their prototype into a table playable online, and lets players compete live. Each game can have its own AI agent, set up in a visual editor. The platform's interface is in French.

  • Multiplayer games synchronized in real time.
  • Step-by-step game editor: board, pieces, cards and AI agent.
  • Configurable AI agent (name, instructions, welcome message, piece handling), with a memory of lessons learned over many games.
  • Game catalogue with search and filters, online payments, two-factor authentication.
  • Node.js
  • Express
  • MongoDB
  • Ably (real time)
  • Stripe
  • Anthropic
  • AWS S3
Visit freeboardsociety.com
freeboardsociety.com
Free Board Society home page (in French): “Turn your paper prototype into a table playable online”, with a preview of the editor
Game editor — AI step
Free Board Society game editor, AI step: setting up the game's AI agent (name, instructions, welcome message, piece handling) next to the tock board
The AI agent is set up like a form. The designer describes the opponent's role; no code required.
Chess game in progress on Free Board Society: blue and cream board with coordinates
Chess, live between two players.
“Super Tock” board on Free Board Society: four corners themed after card suits, marbles of four players
Tock for four players.
Game editor — Pieces step
Free Board Society game editor, Pieces step: library of marbles and interactive pieces to place on the tock board
Pieces and board. A library of interactive elements to drag onto the table.

How I work with AI

I direct AI agents like a small team.

I develop in VS Code with Claude Code. On a big job, I run several agents in parallel: one takes inventory, another writes code, another checks the work. My role is a lot like a shop foreman's: I break down the work, write precise instructions, review every change and make the calls.

The result: a working first version in days rather than months, and more time for what really matters: security, performance and your data. This website was rebuilt exactly that way.

  • I review every line that ships.
  • Keys, passwords and client data never go into the instructions.
  • The code is yours, documented, with no hidden dependencies.
See my digital workshop
VS Code — model and API route
VS Code with two files side by side, a Mongoose model and an Express route, and the integrated terminal
Terminal: Node.js and npm versions, an Express server starting up and the JSON response of a health-check route