Problem
A friend running a real estate business in Spain needed a professional, multilingual website. The company, Revalia Homes, operates in the Spanish property market but targets buyers from the Baltic states — Estonia, Latvia, and Lithuania. The existing online presence was minimal. The requirements were substantial: a full property catalog sourced from an industry XML feed (Kyero), property search and filtering, a contact form with email notifications, and — critically — the entire site translated into five languages to serve the Baltic diaspora market.
This is the kind of project that would typically go to a web agency. The scope (multilingual, integrated search, external data feeds, email system, analytics) would normally mean weeks of development time and a budget in the thousands.
Instead, we sat down together for an afternoon.
AI Approach
The entire site was built using Claude Code — Anthropic's CLI-based AI coding assistant. The development method was conversational: I described what was needed in natural language prompts, Claude generated the code, and we iterated based on what appeared in the browser.
Technology stack chosen by the AI (with my guidance):
- —Next.js with React and TypeScript (frontend and backend)
- —Tailwind CSS (styling)
- —Vercel (hosting and deployment)
- —DeepL API v2 (automated translation)
- —Resend (email delivery for contact form)
- —Google Analytics 4 (tracking)
- —Kyero XML feed (property data source — 789 listings)
The stack selection itself was part of the AI-assisted process. Next.js on Vercel is a well-trodden path that Claude knows deeply, which meant fewer errors and faster iteration. This is worth noting: AI-assisted development benefits from choosing popular, well-documented stacks because the model has more training data to draw from.
Human Effort
This is where honest measurement matters. The raw session data tells a more nuanced story than "I built it in 3 hours."
Session duration: 11 hours 13 minutes (08:11–19:24 UTC)
Total human prompts: 35
Prompt breakdown by category:
| Category | Prompts | Share |
|---|---|---|
| Bug fixes | 7 | 20% |
| Design & styling | 5 | 14.3% |
| Integration setup (APIs, DNS) | 5 | 14.3% |
| Data integration & fixes | 4 | 11.4% |
| Git operations | 4 | 11.4% |
| Feature implementation | 3 | 8.6% |
| Translation | 3 | 8.6% |
| SEO & content | 3 | 8.6% |
| Requirements & planning | 1 | 2.9% |
How the time actually broke down:
The 11-hour session was not 11 hours of work. The average gap between my prompts was 19 minutes, with two gaps exceeding 2 hours. In practice, the session had three distinct phases:
- —
Morning session (~3 hours face-to-face with the client): We sat together, I prompted, we reviewed in the browser, iterated. This was the core build — site structure, property catalog, search, styling, contact form.
- —
Midday gap (~3.5 hours): Domain verification, DNS configuration for email services, waiting for propagation. This is wall-clock time, not active work.
- —
Afternoon follow-up (~2 hours on-the-go): Translation batch processing, blog content, analytics integration, final UI polish. Done remotely while doing other things.
Estimated active human effort: 5–6 hours (including thinking time, testing in browser, and configuring external services like DNS and API keys).
Traditional Benchmark
To assess AI acceleration honestly, we need a realistic baseline. What would this project cost without AI assistance?
Scope delivered:
- —Full-stack multilingual website (5 languages)
- —789 property listings with search and filtering
- —External data feed integration (XML parsing)
- —Contact form with email notifications
- —Blog section (3 posts, translated)
- —Analytics integration
- —Custom domain with SSL
- —Social media integration
- —Responsive design (mobile-first)
Estimated traditional development:
| Item | Agency estimate | Freelancer estimate |
|---|---|---|
| Design & frontend | 40–60 hours | 30–40 hours |
| Backend & API integration | 20–30 hours | 15–25 hours |
| Translation (5 languages, 789 listings) | 80–120 hours (human translators) | 40–60 hours (semi-automated) |
| DevOps & deployment | 8–12 hours | 5–8 hours |
| Total | 148–222 hours | 90–133 hours |
| Cost (€80–120/hr agency, €40–60/hr freelance) | €11,800–26,640 | €3,600–7,980 |
| Calendar time | 4–8 weeks | 2–4 weeks |
AI-assisted actual cost:
| Item | Cost |
|---|---|
| Human effort (Sergei) | ~6 hours |
| Claude Code (API usage) | ~€15–30 estimated |
| DeepL API (789 properties × 3 languages) | ~€20–40 |
| Vercel hosting | Free tier |
| Resend | Free tier |
| Total direct cost | ~€35–70 + 6 hours of human time |
Acceleration Factor
| Metric | Traditional (mid-range) | AI-assisted | Factor |
|---|---|---|---|
| Human hours | ~160 hours | ~6 hours | 27x |
| Calendar time | ~4 weeks | 1 day | 28x |
| Direct cost | ~€8,000 | ~€50 + time | ~160x |
The acceleration is most dramatic in translation. DeepL batch-processing 789 property descriptions into 3 languages took minutes. A human translator handling the same volume would need weeks.
The development acceleration (excluding translation) is more modest but still significant — roughly 10–15x on the coding work itself.
Quality Assessment
An honest quality assessment requires acknowledging what "production-ready" means for a small business versus an enterprise.
What met professional standards:
- —Site loads fast on Vercel's CDN
- —Responsive design works across devices
- —Property search and filtering functional
- —Contact form reliably delivers emails
- —SEO fundamentals in place (meta tags, structured data)
- —Analytics tracking operational
What a traditional agency would do better:
- —Custom design work (this used Tailwind utility classes — clean but not bespoke)
- —Translation quality (DeepL is good but not perfect for real estate terminology in Baltic languages — no human review was performed)
- —Accessibility audit
- —Cross-browser testing
- —Content strategy beyond the initial 3 blog posts
Quality verdict: Fully functional and professional enough for a small real estate business to operate with. Not at the level of a premium agency build, but delivered at a fraction of the cost and time. For the client's actual needs, this is more than sufficient.
Gotchas & Limitations
Every project has friction. Documenting it honestly is the point of this framework.
1. DeepL API authentication (30+ minutes lost)
The initial API integration used a deprecated authentication method and wrong endpoint. Claude generated code targeting api.deepl.de with legacy form-body auth. Fixing this required upgrading to DeepL API v2 with header-based authentication. Lesson: AI models may generate code for older API versions if their training data skews that way.
2. Domain verification for email (2+ hours of waiting) Resend requires domain verification via DNS records. This is a human task — logging into the domain registrar (zone.ee), adding TXT records, waiting for propagation. AI can't speed up DNS propagation. This was the single largest time sink.
3. Character encoding in property data (minor)
The Kyero XML feed contained HTML entities ( ) in property descriptions that weren't being decoded properly. Caught during testing, fixed quickly, but the kind of data-quality issue that only surfaces with real data.
4. Responsive design across languages (ongoing) Lithuanian text is significantly longer than Spanish or Estonian for equivalent content. This caused layout issues that required CSS tweaks. Multilingual responsive design remains a genuinely hard problem — AI or not.
5. Icon alignment (unresolved at session end) A minor UI issue with logo icon sizing was still being refined when the session ended. Small polish items like this are the long tail that AI doesn't eliminate.
Replicability Score
4 out of 5
This project is highly replicable. The core pattern — Next.js site on Vercel with external data feed and DeepL translation — is generic enough to apply to many small business multilingual sites. The specific elements that reduce replicability:
- —The developer (me) has significant technical experience, which influenced prompt quality and debugging speed
- —Domain/DNS configuration requires manual work specific to each registrar
- —The Kyero XML feed is real-estate-specific, but the pattern of "parse external XML/API, display as catalog" is universal
A technically proficient person following this approach could reproduce similar results. A non-technical person would need guidance — which is part of why Kodulabor exists.
Verdict
This project demonstrates that AI-assisted development has crossed a practical threshold for small business web development. A multilingual, data-driven website with integrated search, email, analytics, and translation — built and deployed in a single day with ~6 hours of human effort and ~€50 in API costs.
The 27x acceleration in human hours is real but comes with context: the human in the loop was an experienced engineer. The AI didn't replace expertise — it amplified it. My role was architectural decisions, prompt quality, debugging judgment, and knowing when to test. Claude's role was writing the actual code, which it did at a rate of roughly 25 actions per prompt.
The biggest insight: the bottleneck was not code generation. It was DNS propagation, API key configuration, and testing in the browser. The unglamorous infrastructure work that AI can't (yet) do for you.
For small businesses considering this approach: the cost-to-quality ratio is extraordinary. You won't get a pixel-perfect agency build, but you'll get a functional, professional site at 1% of the cost and 4% of the timeline. For most small businesses, that trade-off is obvious.
This case study was produced using the Kodulabor Assessment Framework. Raw data sourced from Claude Code session logs (session c8c0de2a). Methodology and findings published openly at kodulabor.ai.
Data Appendix
| Metric | Value |
|---|---|
| Session ID | c8c0de2a-4e92-4d99-a823-fb30a23bfc13 |
| Session date | March 18, 2026 |
| Wall clock time | 11h 13m |
| Estimated active effort | 5–6 hours |
| Total user prompts | 35 |
| Total AI responses | 881 |
| Total AI build actions | 1,401 |
| Prompt-to-action ratio | 1:25 |
| Properties in catalog | 789 |
| Languages | 5 (ES, ET, LV, LT, EN) |
| API integrations | 4 (DeepL, Resend, GA4, Vercel) |
| Git commits | 7+ |
| Site URL | revalia-homes.es |