Custom CRM - ATC Immobilier
Custom commercial real estate CRM replacing Salesforce, designed and developed with full ownership
Custom commercial real estate CRM developed for ATC Immobilier (Aix-en-Provence) as a Salesforce replacement. Designed and developed with full ownership — architecture, frontend, backend, database, third-party integrations, deployment and maintenance. Used daily by 5 team members to manage thousands of properties, accounts and contacts.
ARCHITECTURE:
Frontend/backend monorepo with Feature-Sliced Design (FSD) architecture. Next.js 16 frontend hosted on Vercel, Fastify 5 backend running on Bun with Drizzle ORM. PostgreSQL database with Supabase (Auth + Storage). Async jobs via BullMQ + Redis. Architecture entirely refactored to V2 on own technical decision to improve scalability and maintainability.
TECH STACK:
Frontend: Next.js 16 + React 19, shadcn/ui (Radix + Tailwind CSS 4), Zustand + TanStack Query v5, React Hook Form + Zod 4, Mapbox GL + Mapbox Draw, TipTap, XY Flow, Recharts, nuqs
Backend: Fastify 5 on Bun, Drizzle ORM (+ Drizzle Kit), Zod 4, Supabase (Auth + Storage), PostgreSQL, BullMQ + Redis, Pino (structured logging), Sharp (images), Googleapis, ExcelJS, Archiver
Tests: Vitest | Lint/Format: Biome
Integrated APIs: Pappers (SIREN/SIRET), Kaspr (contact enrichment), Mapbox (geocoding + search), MySendingBox (postal mail), Gmail API (emails), Google APIs (Slides, Drive, Calendar), Ubiflow (listings export), OpenAI (AI personalization)
FEATURES:
Core modules: Location management (CRUD multi-photos, Mapbox geolocation, weighted area calculations), accounts (auto SIREN/SIRET enrichment via Pappers), contacts (auto enrichment via Kaspr), brands (brand recognition via Levenshtein distance), offers/requests with intelligent matching, lots, transactions, prospects, calendar/activities, notes, todos, notifications
Interactive map: Mapbox GL with drawing tools, property visualization, clustering, geographic filtering
Automations: Automatic company enrichment (Pappers) and contact enrichment (Kaspr), address normalization (Mapbox), commercial sheet generation (Google Slides), email sending with customizable templates (Gmail API), postal mail sending (MySendingBox), intelligent demand↔offer matching (multi-criteria, multi-zone geographic with configurable radius), automatic export to Le Bon Coin (Ubiflow XML feed), AI text personalization (OpenAI), footfall analysis with text similarity
Infrastructure: Comprehensive audit log tracking all user actions, global search, production monitoring with structured logs and health checks. Google Drive integration for document storage.
RESULTS:
Production solution replacing Salesforce. Managing thousands of properties, accounts and contacts. Full automation of critical processes: data enrichment, document generation, emails, postal mail, listings export. 5 daily users.