Consultancy · Platform
Andorra Resident
A six-language platform for a residency and tax consultancy, with a client portal, an in-house CRM and an AI content agent.
- Duration
- Apr – Sep 2026
- Role
- Design, development and AI integration
- Languages
- 6
- Portals — client & admin
- 2
- Case stages — questionnaire to approval
- 5


The brief
Andorra Resident advises families, entrepreneurs and business owners who are thinking of moving to Andorra. Its clients are still abroad, reading in six different languages, and every one of them turns into a long case: documents, questions, deadlines.
The challenge
Every client is a long case run from abroad: documents, questions and deadlines, in six languages. The team needed to see what to do next without chasing email threads, clients needed to see where their file stands, and the public site had to stay fast and findable while the portal grew behind it.
What I built
One platform for the whole journey: a fast, server-rendered public site that answers the tax and residency questions up front, a secure portal where clients share documents and messages, and an admin CRM where the team runs leads, clients, tasks and content. A six-language FAQ assistant answers the common questions on every page, and a scheduled AI agent drafts the next content plan for the team to approve.
Inside the build
The parts that do the work
01Six-language site and SEO
Server-rendered in English, Spanish, French, Catalan, Dutch and German, with hreflang, structured data, a sitemap and llms.txt for AI search.
02Client portal and document vault
Five-stage progress bar, a document checklist, secure messages and alerts. Files sit in private storage and open through short-lived signed links.
03Admin CRM
Leads, clients, properties, tasks, email templates, a blog CMS and an audit log, with a Needs attention list and a ⌘K command palette.
04Automations
Transactional email through Resend, case stages that follow the checklist, one confirmed update email per batch, and a daily job for reminders and data retention.
05Property funnel and PDF dossiers
Buy or rent enquiries lead to a short questionnaire and a branded PDF dossier for partner agencies. Leads who don't answer get reminders at 3 and 10 days.
06AI content agent
A scheduled agent reviews the blog, finds gaps and proposes next month's plan as a pull request. It never publishes anything on its own.
Recreated with demo data — no real client information.
Built with
- React 19
- TypeScript
- Express SSR
- Supabase
- Postgres
- Resend
- Klaviyo
- Vercel
How it came together
From brief to live
Duration: Apr – Sep 2026
Apr 2026
Design & build
Shipped the first working version with SEO and share cards in all six languages, then a first backend for the client and admin portals.
Jun – Aug 2026
Launch & automate
Moved server rendering to serverless functions on Vercel, then added the Klaviyo newsletter and a capture flow for property enquiries.
Sep 2026
Ongoing support
Moved the backend from Firebase to Supabase, added error monitoring and consent mode, cut the JavaScript bundle by 74%, then rebuilt the admin workflow and the document vault.
Results
Measured on the live site
- Indexed pages
- 264
- Languages
- 6
- JavaScript entry chunk, gzipped
- 431 → 114 KB
- Article and blog page HTML (787 KB → 132 KB)
- −83%
Measured with Google Lighthouse · Sep 2026 · other figures from the project’s build and records
Next step
Want something like this?
Tell me about your project — a first take within one working day, and a fixed price in writing before anything starts.
Step by step · from first call to launch
Have a project in mind? Let's build it.
Tell me what you sell and what you need. I reply within one working day with next steps — or an honest “this isn’t for me”.

Next project