Home / Portfolio / Atamura Group
Case Study — Real Estate / Kazakhstan

Corporate Website and
Unified Digital Platform
for a Real Estate Developer

We built a large-scale three-component system from scratch for Atamura Group — one of Almaty's leading real estate developers. A public trilingual SSR portal, an admin panel, and a high-performance Go backend united eight residential complexes under one infrastructure.

Client
Atamura Group
Industry
Residential Real Estate
Market
Almaty, Kazakhstan
Stack
Go · Nuxt · Vue 3 · Redis · PostgreSQL
Status
Production · Ongoing Support
Key Features

What the Platform Can Do

All Residential Complexes in One System
Eight residential complexes and townhouse developments at various stages of completion — from long-delivered properties to announced launches in 2025–2026. Each complex is its own entity with floor plans, galleries, video reports, and a dedicated page.
Complex Catalogue Floor Plans Gallery
Instant Google Indexing
When a news article or job post is published, the backend asynchronously sends a POST request to the Google Indexing API with type URL_UPDATED. The page appears in search within minutes, not days. On deletion, URL_DELETED removes it from results immediately.
Google Indexing API SEO
Instant Telegram Notifications
Every new lead lands in the sales team's corporate Telegram chat with full context: inquiry type, complex, client name and phone, selected language, floor plan of interest, bank partner, and quiz answers.
Telegram Bot API Go goroutine
Lead Qualification Quiz
A five-step quiz captures apartment type, purchase goal, payment method, preferred complex, and readiness to decide. Answers are stored in PostgreSQL (JSONB) and reach the manager before the first call — client qualification without extra questions.
Pinia composable JSONB
Construction Progress & Media
Upload construction photos with stage and date metadata. Video gallery with YouTube embed and direct link support. Lightbox viewer with proper scroll lock and position restoration.
Gallery Lightbox YouTube
Admin Panel
Full CRUD for all entities: leads, news, reviews, videos, documents, vacancies, and managers. JWT + Redis authorization with automatic token refresh via Axios interceptor. Interface translated into multiple languages.
Vue 3 SPA JWT CRUD
atamura.qbix.kz
Public website homepage — a unified portal for all residential complexes
About the Client

Atamura Group — A Next-Generation Developer

An Almaty-based Kazakh real estate developer founded in 2011. Their portfolio includes ECO-comfort residential complexes — Atmosfera, Arlan, Aura, Keruen, Bravo — and business-class townhouses Monarch, Aqsai Resort, and Dulati Residence. The "city within a city" concept, Italian-inspired architecture, seismic resistance of 9 points, and car-free courtyards set Atamura's projects apart in the market. Over 35,000 Instagram followers — a strong indicator for a developer in Kazakhstan.

8
residential complexes
and townhouses
2011
year entered
the market
35K+
Instagram
followers
3
new complexes
launching in 2026
Challenge

What Was Wrong with the Previous Solution

Before our project, the Atamura Group website ran on the Tilda website builder. That made sense at first: fast, cheap, no developer needed. But as the portfolio grew, Tilda's limitations became a serious bottleneck.

Separate Website for Every Complex
Every new residential complex required its own page or a full landing site. A new domain, new development effort, a separate budget — repeated with every launch.
Fragmented SEO
Disconnected domains split organic traffic. Each domain's authority had to be built from scratch, and the SEO budget was spread thin across independent sites with no synergy.
No Multilingual Support with SEO Fields
Kazakh, Russian, English. Tilda does not support a proper trilingual structure with separate SEO meta tags and slug-based URLs for each language.
Leads Without Context
Website inquiries landed in a shared inbox. Managers had no visibility into which page the client came from, which complex they were interested in, or which bank partner they had selected.
Slow Indexing
New content took days or weeks to appear in search. In a highly competitive real estate market, that meant lost traffic at exactly the moment each new complex launched.
Inconsistent Visual Identity
Different contractors, different templates. Each complex looked different, and buyers could not perceive a unified Atamura Group brand.
Solution

One Platform for the Entire Portfolio

We solved the problem with a unified three-component system. All eight complexes live in one codebase, under one domain, and within one SEO core. Each complex is its own entity inside a single system — with its own floor plans, galleries, documents, and SEO fields in three languages — but sharing one domain, one brand identity, and one lead funnel.

Financial benefit: no separate website is needed for every new complex launch. SEO benefit: domain authority compounds as a whole, and new pages start from an already established domain. Marketing benefit: buyers see the full Atamura lineup in one place and stay within a consistent user experience.

Nuxt 3 SSRVue 3Go + FiberPostgreSQLRedisDockerGoogle Indexing APITelegram BotNginx
01Public SSR Portal
A trilingual Nuxt 3 website with server-side rendering. Instant search engine indexing and strong organic rankings. All complexes in a unified catalogue.
02Admin Panel
A separate Vue 3 SPA for the marketing and sales teams. Full CRUD across all entities with a clean, intuitive interface.
03High-Performance API
The Go backend on Fiber handles tens of thousands of requests per second. Binary size under 10 MB thanks to multi-stage Docker builds.
04Lead Qualification & Telegram Notifications
A five-step quiz captures apartment type, purchase goal, payment method, and readiness to decide — the manager sees a full client profile before the first call. Every inquiry lands instantly in the sales team's Telegram chat.
Multilingual

Trilingual Architecture as a Foundation

In the Kazakh market, multilingual support is not a setting — it is a foundation. Kazakh is the state language, and 69% of Kazakhstanis prefer it in daily communication. Russian is the language of inter-ethnic communication. English is essential for foreign investors and expats, who make up a significant share of business-class apartment buyers in Almaty.

KK
Kazakh — /kz
The state language of the Republic of Kazakhstan. The Kazakh-speaking audience is growing year over year. A Kazakh-language site is not optional — it is essential to reach the core of the market.
RU
Russian — /ru
The language of inter-ethnic communication, officially used alongside the state language. 31% of Kazakhstanis prefer Russian in everyday communication.
EN
English — /en
For foreign investors and expats, who represent a significant share of business-class apartment buyers in Almaty. Essential for the premium segment.
01
URL-Path Routing
Locale detection happens at the composable level via useLocale(), which analyzes the current route and returns a constant ('kk' | 'ru' | 'en'). Every component — header, footer, forms, buttons, validation messages — has a full translation into all three languages.
02
Smart Language Switcher
The header language switcher intelligently preserves the current page when switching languages. If a user is reading a news article in Russian and switches to Kazakh, they stay on the same article — in the Kazakh version.
03
Separate SEO Fields per Language
The backend news module stores separate lang, slug, seo_title, and seo_description fields for each language. A manager creates three independent versions of a news article, each published with its own SEO title and meta description.
SEO

Search Optimization as a Competitive Advantage

Most real estate projects see new content appear in search after days. Here it shows up within minutes of clicking "Publish." In a highly competitive market for organic traffic on queries like "buy an apartment in Almaty," that is a tangible edge — especially when launching new complexes.

Google Indexing API
When content is published, the Go backend asynchronously sends a POST to indexing.googleapis.com/v3/urlNotifications:publish with type URL_UPDATED. Google receives the signal and crawls the page immediately, bypassing the standard delay.
Unified SEO Core on a Single Domain
All eight complexes run under one domain with a shared SEO core. Domain authority compounds as a whole. New pages get indexed faster at launch thanks to internal linking and a shared trust level.
SSR and Full HTML for Crawlers
Nuxt 3 with server-side rendering delivers fully generated HTML for every page. Search crawlers without JavaScript receive all content — headings, descriptions, floor plans, news — without needing to execute scripts.
Slug-Based URLs and Sitemap
Human-readable URLs via slugs (/zhk/atmosfera, /news/article-slug). robots.txt is generated by a Nuxt server route pointing to sitemap.xml, blocking /admin and /api from indexing.
atamura.qbix.kz/admin
Admin Panel — managing applications, content, and team in a single interface
Backend Architecture

Clean Architecture with Layer Separation

The backend is built on clean architecture principles with strict separation of concerns. Each layer has a single responsibility; dependencies flow from outer layers inward.

Handlers
Fiber v2
HTTP handlers — parsing requests and forming responses. Routing, middleware (rate limit, CORS, gzip, JWT), and incoming data validation. Public endpoints: 60 requests per minute.
Services
Go (pure logic)
Business logic — authentication, token management, sending Telegram notifications in a separate goroutine, calling the Google Indexing API when content is published. Isolated from the transport layer.
Repositories
PostgreSQL + Redis
Data access layer via pgx/v5 connection pool. Redis stores refresh tokens with automatic TTL expiry. Composite indexes speed up frequent queries by status, language, slug, and publication date.
Domain
Models & DTOs
Domain models and DTOs — the inner core with no external dependencies. Defines entities: Manager, Application, News, Review, Video, ProgressPhoto, Document, Job.
Security
JWT + Redis
Access Token (15 min) + Refresh Token (7 days). On logout the refresh token is immediately revoked in Redis — reuse is impossible.
Bcrypt + Rate Limiting
Password hashing with default cost factor. Rate limiting: 60 requests per minute on public endpoints via Fiber limiter.
UUID + File Validation
UUID-generated upload filenames eliminate path traversal attacks. Extension validation (.jpg, .png, .webp, .pdf, .docx). Request body limit: 25 MB.
CORS Whitelist
CORS middleware with explicit allowed-origins whitelist. Gzip response compression saves 60–80% of traffic on JSON responses.
Multi-stage Docker
Two-stage build: golang:alpine compiles the binary with -ldflags="-s -w" flags; the final image is alpine:3.19 with ca-certificates. Image size under 10 MB.
ENV Configuration
Full configuration via environment variables: PostgreSQL, Redis, JWT secrets, Telegram token, Google Service Account JSON. No secrets in code.
Results

Project in Numbers

3
Full products delivered
SSR portal, admin panel, and API backend — designed and launched from scratch within a single project.
8
Complexes in one system
All residential complexes and townhouses under one domain, one SEO core, with unified branding and style.
3
Languages with full SEO
Kazakh, Russian, English — each with separate SEO titles, slugs, and meta descriptions.
Minutes
to Google indexing
Instead of the standard days and weeks. A competitive edge at every new complex launch.
<10 MB
Go image size
Thanks to multi-stage Docker build with alpine. Fast deploys, minimal attack surface.
Hours
to launch a new complex
Shared infrastructure, branding, and SEO core are already in place — each new complex slots into the system faster than the last.
Project Summary

What Was Delivered

Product 1
Public SSR Site on Nuxt 3
  • Three languages with URL routing
  • SEO with Google Indexing API
  • Interactive galleries and maps
  • Conversion forms and quiz
  • Scroll animations without libraries
  • Phone mask +7 (KZ)
Product 2
Go Backend on Fiber
  • Clean architecture, 4 layers
  • JWT + Redis authentication
  • Telegram Bot notifications
  • Google Indexing API
  • 9 PostgreSQL migrations
  • Docker image <10 MB
Product 3
Vue 3 Admin Panel
  • Lead and funnel management
  • Multilingual news with SEO
  • Media, documents, vacancies
  • Axios interceptor (401 → refresh)
  • Roles: admin / manager / super_admin
  • Interface translated into 3 languages
Similar project?

Need a unified platform
for your business?

We'll build a scalable system end-to-end — from architecture to deployment. Custom stack, full control over performance and security.

Technology

Technology Stack

The stack was chosen based on speed, SEO, and scalability requirements. Custom code gives full control where no-code tools hit their ceiling.

Public Site
  • Nuxt 3 (SSR)
  • Vue 3 Composition API
  • TypeScript
  • Pinia
  • VueUse
  • Intersection Observer API
Admin Panel
  • Vue 3 + Vite
  • TypeScript
  • Pinia
  • Vue Router
  • Axios (interceptors)
  • Built-in i18n module
Бэкенд
  • Go 1.22
  • Fiber v2 (fasthttp)
  • PostgreSQL + pgx/v5
  • Redis (tokens)
  • Google Indexing API
  • Telegram Bot API
Infrastructure
  • Docker multi-stage
  • Nginx (HTTPS, gzip)
  • Separate containers
  • Persistent volumes
  • ENV configuration
  • Alpine Linux images