FSK Group and 1st DSK websites
Nuxt platform for fsk.ru and dsk1.ru: new-build catalog in 7 regions, interactive master plan, floor plans, 3D layouts, SSR for SEO.
Context and goal
FSK Group sells apartments in new developments across 7 regions through the websites of two brands, fsk.ru and dsk1.ru. Both sites run on one Nuxt platform.
An apartment can be chosen in three ways: by parameters, on the master plan of the residential complex, and on the building layout. Catalog and residential complex pages must be indexed by search engines while remaining interactive, and the heaviest screens hit browser performance limits.
Besides selling apartments, the site provides comprehensive information about the residential complex and the company itself in interactive widgets.
My role
- Apartment selection tools: interactive SVG master plan of the residential complex, floor plans, and 3D view of layouts.
- Master plan: drawing polygons and markers, positioning tooltips, calculating centroid for geometries without an anchor point, fixing tooltip flicker, clustering markers on zoom.
- Rendering catalog and residential complex pages: server-side rendering for SEO, server and CDN caching, client-side rendering of heavy interactive blocks, finding and fixing hydration mismatches.
- Optimizing the heaviest catalog screens: dynamic loading and lazy hydration of heavy blocks, Set and Map indexes instead of nested loops.
- Building new pages after the redesign, creating universal components, stories and documentation for them.
- Complex filter system for properties for sale, mortgage calculator, and interactive furniture editor.
- Refactoring old components from Options API to Composition API (<script setup>), fixing Yandex Metrica goal sending in filters.
Decisions



Metrics
- 8of 8
- ×4.4Scroll depth
LCP
Largest Contentful Paint
After: 2.1 s, before: 3.0 s, better: −30%, good
- How long the largest element above the fold takes to appear: an image, a video or a block of text.
- It is when a visitor feels the page has loaded. One of the Core Web Vitals that Google uses in search.
Now: good
INP
Interaction to Next Paint
After: 181 ms, before: 377 ms, better: −52%, good
- The delay between a click, tap or key press and the page visibly responding. Close to the slowest one in a visit.
- A laggy button feels like a frozen site: people click twice and abandon forms. One of the Core Web Vitals.
Now: good
FCP
First Contentful Paint
After: 1.2 s, before: 2.6 s, better: −54%, good
- Time until the first text or image shows up on screen.
- The first sign the site is responding. A blank screen feels like nothing is happening.
Now: good
TTFB
Time to First Byte
After: 800 ms, before: 1,200 ms, better: −33%, good
- Time from the request to the first byte of the response: network, server and database.
- Everything else waits for it: a slow server delays both FCP and LCP.
Now: good
Visits
Visits
After: 380,000
- How many times the site was visited in the period. One person can come several times.
- The audience volume that leads and revenue are counted from.
Higher is better
Visitors
Unique visitors
After: 270,000
- How many different people, or rather browsers, came in the period.
- Shows reach: how many people learned about the site at all.
Higher is better
A11y
Lighthouse Accessibility
After: 85, before: 54, better: +31, needs work
- A 0–100 score from automated checks: contrast, field labels, heading order.
- The site works with a screen reader, a keyboard and low vision. 90 and above is the green zone.
Now: needs work
Time
Time on site
After: 3:50 min
- The average visit duration.
- The longer people read and watch, the more engaging the content. Not always so for quick tasks like a call.
Higher is better
Depth
Pages per visit
After: 3.8 pages, before: 2.1 pages, better: +82%
- How many pages are opened per visit on average.
- Shows whether the site leads people on: to the catalogue, prices and contacts.
Higher is better
Scroll
Scroll depth
After: 54.3%, before: 12.4%, better: ×4.4
- How far down the page visitors get on average.
- If nobody scrolls to the price or the form, nobody sees them.
Higher is better
Organic
Organic search share
After: 93.3%, before: 62.9%, better: +30.4 pp
- The share of visits that came from search, not ads.
- These visitors come for free and are already looking for what you offer.
Higher is better
Source: Similarweb, Google Lighthouse, Yandex Metrica; July 2026
