Spacloudy is my founder project: a management platform for spas, hammams and beauty salons. I built every part of it myself — product, frontend, backend, infrastructure, billing and the AI assistant.
Problem
Small wellness businesses run on phone calls, paper diaries and WhatsApp. Bookings get lost, no-shows pile up, and the owner is also the receptionist. Spacloudy had to replace that with something they’d actually adopt — which, in this market, means it has to work in Arabic and French, not just English.
My role
Everything. As the sole engineer and founder I owned the full stack: a Vue 3 + Nuxt app, a NestJS + MongoDB backend, Stripe billing, Brevo email, WhatsApp Cloud API messaging, and deployment across Cloudflare and Railway. I also designed the product and built the marketing site.
Key decisions
I chose a NestJS + MongoDB backend for structure and speed of iteration, and Vue 3 + Nuxt for the app. For the marketing site I started on Next.js, then migrated to Astro when performance mattered more than interactivity — the content-heavy pages had no reason to ship a framework runtime.
I built a Claude-powered booking assistant that handles reservations conversationally in Arabic, French and English, switching to match the customer. It’s a tool-based agent: it checks availability, creates bookings and confirms over WhatsApp through real backend calls.
Outcomes
- A complete B2B SaaS — auth, billing, scheduling, messaging — shipped solo and live in production.
- A Claude booking assistant that takes real reservations in three languages.
- A marketing site moved from Next.js to Astro for faster loads on the pages that drive signups.
Lessons
Building solo forces ruthless prioritization: every feature competes with sleep, so only the ones that move adoption survive. The Astro migration reinforced a rule I now apply by default — don’t ship a JavaScript framework to render content that doesn’t change. And owning the whole stack made the AI assistant better, because I could shape the backend tools around exactly what the agent needed.