About me

An engineer who looks at code both as a developer and as a designer

My name is Danil Lisin. For eight years I've been building frontends for airline booking systems — one of the most demanding, high-load domains out there. I write in Vue 3 and Nuxt, publish open source, and take interfaces to the point where they show up in the metrics.

20+years building interfaces
8years in the airline domain
17open-source packages
RU·ENmultilingual projects
Journey

From graphic design
to engineering.

I came into development from graphic design, and it still shapes how I work today. I see not just the architecture and the types, but how a decision will land for the end user — where they'll stumble, what will slow them down, which interface they'll call "intuitive" without knowing why.

I've spent the last eight years on airline booking systems. It's a domain where mistakes are expensive: hundreds of fare rules, passenger data validation, heavy search queries that have to be cached without breaking. You can't just "patch it and forget it" here — you need an architecture that holds up under growth.

Alongside that, I publish open source. For me it's the best test of engineering quality: code you can install from npm, read, and reuse. Modest in scale, but honest in substance.

Principles

What I believe in.

These are rules I don't break — even under deadline pressure. They're exactly what separates "it works" from "it works and keeps evolving."

V/01

Architecture matters more than delivery speed

A foundation built to handle growth pays off with every following sprint.

V/02

Performance is a requirement

Not "we'll optimize it later." Speed is built in from the first commit.

V/03

Code is written for people

Typed and understandable — so the team can develop the project without me.

V/04

Honesty instead of promises

An estimate before we start. If it's not my kind of task, I'll say so directly.

Tools

The stack
I trust.

I use what's proven and don't drag in extras. Fewer dependencies mean fewer risks.

Core

Vue 3Nuxt 3TypeScriptPiniaVite

Rendering & data

SSRSSGISRRESTBFF

Quality

VitestPlaywrightESLintWCAG 2.1CWV

Design

Design systemsFigmaa11yGraphic design
Open source

What's on npm.

17 packages, which can be installed, read, and used. The best resume is code.

Worker Kit

Type-safe Web Worker handling for Vue 3. Run heavy computations on a separate thread without blocking the UI — types are inferred straight from the worker code, no manual generics. A pool for parallel tasks, reactive computations with automatic cancellation of stale runs, cancel on the fly, transfer large data without copying. SSR-safe.

Error Boundary Kit

Production-ready error handling for Vue 3. An error boundary component with fallback UI, retries, and auto-reset. Reporting adapters for Sentry, Bugsnag, LogRocket, and custom HTTP endpoints, with protection against message storms. Catches errors in nested components and failures outside render — timers, event handlers, unhandled promise rejections. Error history for debugging. SSR, full typing. No external dependencies besides Vue 3.

Image Kit

Powerful image tool for Vue 3 and Nuxt 3. One component replaces a dozen workarounds: lazy loading, WebP/AVIF, Blurhash and LQIP, auto srcset generation, art direction, retry. CLI for image generation, CDN adapters, Vite plugin, directive for backgrounds. SSR, Nuxt, type‑safety. No external dependencies except Vue 3.

Toast Kit

User‑friendly notifications for Vue 3 and Nuxt 3. Show operation status, let users undo actions, group messages, and control their priority. Fully customisable look and feel. Easy to integrate, small footprint. All you need for notifications.

i18n Kit

Ready‑to‑use localization layer for Vue 3 built on vue-i18n. Lazy locale loading, ICU pluralization via Intl.PluralRules, locale metadata, date/currency formatting. Vite plugin for translation completeness checks, CLI for locale file management, browser‑based locale editor. SSR and Nuxt ready.

Network Dashboard

Universal network monitoring plugin for Vue 3. Intercepts HTTP (Fetch/XHR), WebSocket, and SSE, logs them in a unified format with automatic data sanitization. Includes reactive statistics, request mocking, HAR export, waterfall timeline, Diff View, and a ready-to-use UI component with filtering. Supports Nuxt 3, Sentry, and OpenTelemetry.

Rest Pipeline JS

A modular orchestrator for REST requests and pipelines. Includes an HTTP client with retry, caching, rate limiting, and request cancellation, plus a flexible PipelineOrchestrator for sequential or parallel stage execution with pause/resume, middleware, state export/import, and Vue/React integration.

State Machine

Lightweight finite state machines for Vue 3. Manage states without cascading v-if. Parallel processes, guarded transitions, async actions, event queue, state persistence. Built‑in multi‑step form wizard. Shared machine across multiple components. DevTools panel. Full TypeScript, SSR. No external dependencies except Vue 3.

Storage Kit

Reactive localStorage, sessionStorage, IndexedDB and cookies for Vue 3. TTL, AES-GCM encryption, cross‑tab sync, schema migrations (versioning with up/down functions), full SSR/Nuxt support. Single useStorage API for all adapters. No external dependencies except Vue 3.

Virtual Scroller Kit

Virtual lists, tables, grids, and trees for Vue 3. Dynamic row heights (ResizeObserver), animated grouping, sticky headers, fixed columns, lazy child loading. Infinite scroll (both directions) and searchable select. Keyboard navigation and pointer‑based drag‑to‑reorder. SSR‑ready, scroll position restoration. No external dependencies except Vue 3.

Command Palette

Command Palette for Vue 3. Fuzzy search with match highlighting, grouped commands, nested sub-palettes, global keyboard shortcuts, async search, confirmation dialogs, recent command history, and full customisation via slots. SSR‑compatible, i18n ready, Nuxt support, TypeScript. No external dependencies except Vue 3.

Form Schema

Schema-driven form library for Vue 3. Define fields as an array of objects — get reactive values, validation, masking, and conditional field visibility out of the box. Supports Zod, Yup, and Valibot for schema parsing, dynamic field arrays, multi-step wizard forms, and a Tailwind theme. No required dependencies, full TypeScript support.

Feature Toggles

Feature flag system for Vue 3 without project rebuilds. Supports strategies via API, environment variables, localStorage, and A/B testing. Includes reactive directives for conditional rendering, composables, caching, SSR, and Nuxt 3 integration. Full type safety and zero overhead for disabled features.

Responsive Media

A utility for creating reactive state from CSS media queries and element dimensions. Supports viewport breakpoints (window.matchMedia) and container queries (ResizeObserver). Includes Vue 3 and React 18+ adapters, works in SSR, and has zero dependencies.

Color Value Tools

Comprehensive library for working with colors across all models — hex, RGB, HSL, HSV, HWB, Lab, LCH, OKLAB, OKLCH, CMYK — plus CSS variables and named colors. Includes WCAG accessibility, color harmonies, perceptual blending (CIEDE2000), color blindness simulation, palette generation, and a CLI.

CSS Magic Gradient

A library for generating CSS gradients (linear, radial, conic) with color harmonies, WCAG accessibility utilities, CSS variable support, canvas export, and reactive hooks for Vue and React. Includes ready‑to‑use presets and tools for creating accessible gradients.

OS Detect

A lightweight utility for detecting operating system and device type (iOS, macOS, Android, Windows, Linux, ChromeOS, mobile or desktop). Works in browsers, Node.js, and SSR. Includes Windows 11 detection, reactive hooks for React, and composables for Vue. Zero dependencies.

Want to work together?

Tell me what you're working on.

I'll tell you honestly how I can help and how long it'll take. The first look at your task is free.