Open to projectsRussia · remote · Moscow time

DmitryRyabov

Frontend Developer

I build fast, living interfaces: from website markup to WebGL animations and React dashboards.

Scroll

01About

Frontend developer. I build websites and special projects: from responsive markup and UI kits to GSAP animations and Three.js scenes.

I like interfaces that are not only beautiful but reliable: accessibility, performance, tests and documentation are part of the job, not “if there is time left”.

2years in commercial development
25commercial projects
1500commits over the last year

Experience

2024 — present

Paraweb

Frontend Developer

  • Markup and frontend for commercial websites: from design to production.
  • UI kits and component libraries with Astro + React + Storybook, docs and tests.
  • Animations and WebGL: shaders, 3D sliders, scroll effects.
  • React interfaces: user dashboards, forms and filters.

02Skills

What I use every day

Markup

  • HTML5
  • SCSS / Sass
  • БЭМ
  • Адаптив
  • Доступность (a11y)
  • Pug
  • Tailwind

JavaScript

  • JavaScript (ES2023)
  • TypeScript
  • DOM API
  • Web Components
  • htmx
  • Telegram Mini Apps
  • WebSocket
  • Авторизация: JWT, OAuth 2.0 + PKCE, WebAuthn

Frameworks

  • React
  • React Native, Expo
  • Next.js (App Router)
  • Vue 3, Nuxt, Pinia
  • Astro
  • React Router
  • TanStack Router / Table / Virtual
  • Redux Toolkit, RTK Query
  • Feature-Sliced Design
  • Zustand
  • TanStack Query
  • React Hook Form
  • shadcn/ui

Motion & graphics

  • GSAP + ScrollTrigger
  • SplitText, Flip, Draggable
  • Three.js
  • React Three Fiber
  • GLSL-шейдеры
  • Web Audio API
  • Lenis
  • Swiper
  • Canvas
  • MapLibre GL

Tooling & quality

  • Vite
  • Webpack
  • Gulp
  • Vitest
  • Jest
  • Playwright
  • Storybook
  • ESLint / Stylelint
  • Git

AI

  • Интерфейсы AI-ассистентов
  • Чаты со стримингом ответов
  • RAG
  • AI-инструменты в разработке

03Production work

The code is under NDA — here is what each project is and what I did.

MIET university website
Education2025

MIET university website

Site sections and blocks, tables, banners, responsive layout.

  • Pug
  • SCSS
  • JavaScript
  • GSAP
Open site
Buryat State Agricultural Academy website
Education2025

Buryat State Agricultural Academy website

Site search, banners, articles, cookie notice.

  • Pug
  • SCSS
  • JavaScript
  • GSAP
Open site
Volgograd Medical University youth portal
Healthcare2026

Volgograd Medical University youth portal

“The art of being a doctor”: smooth page transitions, video sliders, an events calendar, forms.

  • Pug
  • SCSS
  • JavaScript
  • GSAP
  • Barba.js
  • Lenis
Open site

04Side projects

Code you can actually look at — things I build for myself and for practice.

01

Potok

Streaming AI chat

The answer streams over SSE: a hand-written parser survives an event being cut anywhere, even mid-character. Markdown renders as it arrives, an unclosed code block stays code, HTML in the answer never runs. Stop by button or Esc keeping the text received so far, retry after a dropped connection, tool calls with cards, a calculator without eval. Tokens are applied in one batch per frame, auto-scroll never fights the reader, and a screen reader hears the start and end of an answer, not every token. The model server runs in the browser. 100 tests, including axe.

  • React
  • TypeScript
  • SSE
  • zustand
  • Accessibility (WAI-ARIA)

02

Lepestok

Flower shop

Video-through-letters hero revealed on scroll. A preloader and a “blooming flower” shader transition between pages. Bouquet builder with live price and budget, a catalog with URL filters and Flip, a 3D gallery, subscription, checkout. Dark theme, floating canvas flowers, 220+ tests.

  • React
  • TypeScript
  • GSAP
  • WebGL
  • Vitest

03

Tropa

Trip planner

Places by day: drag and drop with mouse, touch and keyboard, a MapLibre route map — the camera flies to the selected day and the route draws itself. Popular sights from Wikidata with photos, weather forecast, a serverless share link, calendar export. Next.js static export, logic covered by tests.

  • Next.js
  • TypeScript
  • Zustand
  • TanStack Query
  • MapLibre

04

Resonance

Music visualizer

Three shader-driven 3D scenes that listen to music: a noise sphere, a 60,000-particle galaxy, a synthwave landscape built from spectrum history. Audio analysis with frequency bands and beat detection, a demo track synthesized in the browser with Web Audio, your own file or microphone. 60 fps, tutorial-style docs.

  • React Three Fiber
  • TypeScript
  • GLSL
  • Web Audio
  • Vitest

05

3D Constructor

WebGL animation builder with code export

40 effects tuned with sliders; the code is exported as a JS module, a React component or a web component — the same runtime that renders the preview, about 8 KB gzipped. GLSL backgrounds (a sea with a day cycle and storms, Perlin-Worley clouds, space, fire, liquid metal), GPU fluid simulations, transitions that burn through a real HTML section, cursors, a liquid button, a preloader, three.js 3D. Write your own shader in the editor, motion paths, adaptive quality. The home page is a GSAP scroll scene built from the same effects. 131 tests, a 17-chapter tutorial.

  • WebGL2 / GLSL
  • Three.js
  • GSAP
  • React
  • TypeScript

06

Letuchka

Team retrospective board

A room by link, no sign-up: cards, voting, a timer, teammates’ cursors and reactions in real time. Three phases: write blind, vote, discuss. Supabase backend: anonymous auth, Postgres, row level security, realtime; a serverless demo mode across browser tabs.

  • Nuxt
  • Vue 3
  • Pinia
  • Supabase
  • TypeScript

07

Myata

Telegram Mini App for salon booking

Book a master right inside Telegram: service, master, free slot, confirmation. Uses the user’s theme colors, native Telegram buttons (MainButton, BackButton), haptics, bookings in CloudStorage synced across devices. Scheduling respects service duration with an “any master” mode; a demo mode outside Telegram.

  • React
  • TypeScript
  • Telegram Mini Apps
  • Zustand
  • Vite

08

Ritm

Mobile app: habit tracker

A React Native + Expo app: one codebase for iOS, Android and the web. Habits by weekday, counters, streaks, stats with a heatmap. Swipe to check off — the gesture and animation run on the UI thread (Gesture Handler, Reanimated), with an SVG progress ring. On-device data with versioning and migration, local reminders, haptics, dark theme, accessibility.

  • React Native
  • Expo
  • TypeScript
  • Reanimated
  • Zustand

09

Propusk

Production-grade authentication

A JWT access token in memory and a refresh token in an HttpOnly cookie with rotation and theft detection; PBKDF2 passwords with brute-force protection and uniform errors. Two-factor auth (TOTP, recovery codes), passkeys (WebAuthn), sign-in via a provider with OAuth 2.0 + PKCE + OpenID Connect, email links, devices, sudo mode, roles. The client refreshes once for all requests and tabs (Web Locks) and logs out everywhere (BroadcastChannel). The Hono server runs both on Node and in the browser. 62 tests, including passkeys in Playwright.

  • React
  • TypeScript
  • OAuth 2.0 / OIDC
  • WebAuthn
  • Hono

010

Saldo

Personal finance app on Redux Toolkit and FSD

RTK Query: a single createApi with endpoints injected per entity and tags — after any change the list, balances, charts and budgets refresh themselves; optimistic edits with rollback. Undoable delete via listener middleware, a CSV import wizard on createSlice and createSelector (encoding, columns and categories are detected, duplicates skipped). Feature-Sliced Design architecture enforced by Steiger. Forms with react-hook-form + zod, money in minor units, Recharts charts. 75 tests: Vitest with MSW and Playwright.

  • React
  • TypeScript
  • Redux Toolkit
  • RTK Query
  • Feature-Sliced Design

011

Prilavok

Real-time e-commerce admin panel

A hand-written WebSocket client: reconnection with exponential backoff and jitter, heartbeat, channels, acknowledged requests, an offline queue and resuming missed events by sequence number and server epoch. Events flow into the TanStack Query cache; record versions guard against races. A server-side table with URL state, 10,000 virtualized rows, optimistic updates, roles. The server runs in the browser via MSW and on Node. 138 tests.

  • React
  • TypeScript
  • WebSocket
  • TanStack Router / Query / Table
  • shadcn/ui

012

Opora

React component library

16 accessible components built without Radix or other headless foundations: a dialog with a focus trap and inert, arrow-key navigation in menus and tabs, a select using aria-activedescendant, toasts as live regions, custom positioning with flip and shift. Styles in cascade layers and tokens — overridable without !important. Package: ESM, types, an exports map, publint and attw checks, installing the packed tarball with SSR. 133 tests with axe, Storybook.

  • React
  • TypeScript
  • Accessibility (WAI-ARIA)
  • Storybook
  • Vitest

013

Sosny Residence

Residential complex website

A three.js 3D block: hover a tower to see available flats. A catalog of 270 flats with filters, a floor grid and URL state. Static flat pages with SVG floor plans, favorites, a mortgage calculator.

  • Astro
  • TypeScript
  • Three.js
  • GSAP
  • SCSS

014

ORBITA

Space agency website

A 3D rocket follows its trajectory as you scroll, and on “Launch” flies it back and lands on the pad. All 16 GSAP plugins, six library-free sliders, shader transitions, GPU water simulation, an infinite gallery. Three pages, 120 fps, 218 tests.

  • GSAP
  • Three.js
  • GLSL
  • Vite
  • Vitest

015

frontend-kit

Project starter kit

36 modules, zod-style form schemas and masks, Swiper, 3D slider, i18n, dev panel, 4 starters: vanilla, React, React + TS, Astro. This site is built with it.

  • TypeScript
  • Astro
  • React
  • SCSS
  • GSAP

05

Let’s build something great

Open to projects and job offers. I reply within a day.