Danil Klimov

Frontend developer.Vue, TypeScript, Nuxt, GSAP.

Get in touch
Danil Klimov

Work

5 projectsAll work →
Nuxt 4 • Vue 3 • TypeScript

2026

lyoraeth.art

Personal site and blog. Nuxt on my own server, two languages.

The site is fully self-hosted: Docker, push-to-deploy in a couple of minutes, cookieless analytics, locally hosted fonts, and zero third-party scripts on the page. The blog is powered by a custom bilingual publishing engine.

TypeScript • Bitrix • Gulp

2026

Spliteks

Industrial portal on Bitrix. Frontend rebuild, GSAP interaction.

The portal came as one `main.css` and one `main.js`. I broke it into modules, moved it to SCSS and TypeScript, rebuilt the pipeline on Gulp. Most time went into GSAP sections holding up through zoom and resize.

jQuery • JavaScript • Swiper

2026

Apple Inside

Electronics store on Bitrix. Long product pages and stories.

The first A+ page took two working days, so a shared foundation came next: classes for the layout, scripts for video and lazy loading. A new page now takes three to six hours, on more elaborate layouts than the first.

TypeScript • Pinia • TanStack Table

2025

CRM Platform

Admin SPA from scratch, under NDA. Vue 3 over a Laravel API.

A full CRM built by two people, the frontend mine. The first six months went into rework: the frontend depended entirely on the backend and the contract wasn't fixed. An SPA and a separate API settled it.

Experience

Language
TypeScript
Frameworks
Vue, Nuxt, Pinia, TanStack
Animation
GSAP, Lenis, Lottie
Testing
Vitest, Playwright
Styling
SCSS, Tailwind
Adjacent
FastAPI, Laravel, Docker

Freelance · since January 2025, ongoing

A CRM with one backend developer, on an incomplete brief

We started on React with Inertia, which left the frontend entirely dependent on the backend. Requirements were settled as we went, contracts were never fixed, and the first six months went into rework. Moving to an SPA with a separate API made it possible to run the frontend on its own. The contract kept changing — three times in two weeks at one point — so I pulled the mapping into a DTO layer and stood up a FastAPI mock beside it, reproducing the real API along with its inconsistencies.
Alongside that I build Telegram bots that take payments: the sale itself as a state machine, with YooKassa, Robokassa, and a personal wallet through its API.

Dancecolor web studio · November 2025 — July 2026

Four projects, every one of them inherited

Spliteks — a Bitrix portal that arrived as a single main.css and a single main.js. I broke it into modules and moved it to SCSS and TypeScript. The build was rewritten on Gulp: Vite and Bitrix's requirements never met. PageSpeed went from 69 to 89, part of that from the markup and the way images were handled. The hardest piece was a GSAP animation that had to hold its behaviour through zoom and resize.
Apple Inside — a shared foundation for A+ product pages: assembling a new one went from two days to three or six hours.
Legacy CRM had neither a repository nor any access beyond FTP, so I built the repository, wrote a sync utility, and worked through it from then on. Reckful — search in the header and fixes from review notes; a small contribution at the scale of that project.

Writing

7 postsAll posts →

Interface

19 Aug 2026

How Many Milliseconds an Interface Actually Needs

Faster doesn't mean better. How visual physiology dictates UI animation timing, why interfaces don't need ease-in, and where micro-delays prevent accidental triggers.

Design

11 Aug 2026

Bold Design Often Loses to Boring. It Isn't About Taste

Familiar does not mean outdated. Why bold UI in B2B feels like a personal risk to the buyer, where to actually spend innovation tokens, and how deliberate simplicity differs from neglected design.

Process

20 Jul 2026

Everything Passed the Test. That Wasn't the Question

Functional does not mean compliant. How successful tests breed false confidence, why verification blind spots lead to disasters, and why a green checkmark in code guarantees nothing legally.

Contact

Telegram is fastest. I usually reply the same day.
For a role: a link to the company and the range.
For a project: what exists already and by when.

Or through the form — I'll reply to whatever you leave.