Back home

Projects

vulpecula - «Косвенно», a Bayesian inference console built for an AI-first design-studio test task

Test project8 Jul 2026

vulpecula - «Косвенно», a Bayesian inference console built for an AI-first design-studio test task

An AI-first test task for a design studio: an interactive mini-app where you edit indirect observations and a probabilistic report recomputes live. Shipped three scenarios on one scenario-blind engine - how many rabbits raid a farm (Poisson evidence), which of the foxes is the poacher (log-odds nomogram), how many bugs are left (capture-recapture) - with a zero-dependency Bayesian core where every number on screen is derived, never hardcoded. Editable records with live validation, a posterior chart, leave-one-out attribution bars ('remove this observation and 2,8 becomes 3,3'), permalinks, a change journal that spells out every edit, JSON export with preview, a scripted 40-second tour on its own page, and an in-app AI worklog documenting rejected AI suggestions with measured evidence. React 19 + TypeScript + Vite + Tailwind 4 + Zustand, ~1100 unit tests, deployed on Cloudflare Pages.

  • React 19
  • TypeScript
  • Vite
  • Tailwind CSS 4
  • Zustand
  • Bayesian inference
  • Vitest
  • Accessible
achernar - a Next.js movie-catalog test task hardened into a real streaming appRemake

Test project9 Jan 2024

achernar - a Next.js movie-catalog test task hardened into a real streaming app

A Next.js 14 (App Router) + TypeScript movie-catalog landing that worked only on a wide desktop. Kept the original Netflix-style look intact and fixed it from the inside: dead 404 nav links, a leaking scroll listener with a broken cleanup, a non-focusable scroll-to-top control and a duplicate film entry. Then made it genuinely usable - a real responsive pass with a mobile bottom-bar, fluid type scaling and per-breakpoint Swiper carousels, plus an accessibility floor - and built it out from one screen into a working multi-page app: catalog, live search, TV channels, favorites (localStorage), account, a movie detail page and a custom video player streaming real CC-licensed films. Static export, self-hosted on Hetzner behind Caddy.

  • Next.js 14
  • React 18
  • TypeScript
  • SCSS
  • Swiper
  • SSG
  • Responsive
  • Accessible
atria - a Vue server-list test task rebuilt into a warm infrastructure-ledger control panelRemake

Test project23 Jan 2024

atria - a Vue server-list test task rebuilt into a warm infrastructure-ledger control panel

A Vue 3 + TypeScript master/detail test task: a list of servers on one side, an editor on the other, with generate, clear, save and delete. Fixed the real bugs (a non-unique v-for key that corrupted the list on edit and delete, Delete and Cancel buttons silently submitting the form, a Clear that left a phantom unsaveable editor, a home view that re-seeded random data on every navigation), then redesigned it end to end into an 'infrastructure ledger' - warm cream and ink on an OKLCH palette, monospace machine fields, a ruled index-number gutter as the signature - with a full accessibility and 390-to-1440 responsive pass. Vue 3 + TypeScript + Vite + Tailwind, self-hosted on Hetzner behind Caddy.

  • Vue 3
  • TypeScript
  • Vite
  • Tailwind CSS
  • vue-router
  • OKLCH
  • Responsive
  • Accessible
hamal - a React-internals learning repo rebuilt into a 28-specimen interactive logbookRemake

Test project3 Jan 2024

hamal - a React-internals learning repo rebuilt into a 28-specimen interactive logbook

A learning repo that was a single unstyled page of about a dozen React demos, every one hardcoded to a single purple, with blocking alert() dialogs, duplicate-id todo bugs and a login button the header never noticed. Rebuilt and expanded into 'Bench Notes' - 28 live, categorised 'specimens' (core and concurrent hooks, the HOC and render-prop patterns, an external store, portals, error boundaries, the class lifecycle next to its useEffect twin) on a bespoke OKLCH lab-logbook design system, with the real bugs fixed and a full accessibility and responsive pass. Ejected Create React App, React 18, styled-components.

  • React 18
  • React Router 6
  • styled-components
  • CRA
  • SCSS
  • OKLCH
  • Responsive
  • Accessible
alkaid - a 2021 portfolio rebuilt in Nuxt with five live demosRemake

Test project21 May 2021

alkaid - a 2021 portfolio rebuilt in Nuxt with five live demos

A 2021 personal portfolio rebuilt into an editorial Nuxt site whose work section opens five bundled demo builds - a travel landing, a game-studio site, two agency portfolios and a travel marketplace - each lifted from loose static HTML into native, clickable Nuxt routes. Vue 2, Sass and nuxt-i18n with English and Russian, statically generated.

  • Nuxt 2
  • Vue 2
  • Sass
  • nuxt-i18n
  • SSG
  • Responsive
  • Accessible
dubhe - a users-and-posts board rebuilt into a card-catalog work surfaceRemake

Test project20 Jun 2023

dubhe - a users-and-posts board rebuilt into a card-catalog work surface

A Vue 3 + TypeScript test task: a board that loads ten authors and their posts from JSONPlaceholder and lets you add, edit, delete and drag posts between authors. Fixed the real bugs (a broken validation-schema import that crashed every form, serial fetches with no per-author loading or error states, one hidden edit modal mounted per card), then redesigned it end to end into 'Atelier Ledger' - a warm-paper card-catalog system with folder-tab columns and index-card posts on an OKLCH palette, a full-height app shell that never scrolls the page, animated drag and modal transitions, and a real accessibility floor. Vue 3 + TypeScript + Vue CLI.

  • Vue 3
  • TypeScript
  • Vue CLI
  • SCSS
  • vee-validate
  • vuedraggable
  • OKLCH
  • Responsive
  • Accessible
merak - an abandoned Union-Find skeleton rebuilt into an interactive algorithm visualizerRemake

Test project29 Jan 2024

merak - an abandoned Union-Find skeleton rebuilt into an interactive algorithm visualizer

A Vue 3 test-task repo that was never finished: the original only drew a row of white dots on a canvas, carried a hardcoded edge list it never used and implemented none of the actual disjoint-set algorithm. Rebuilt from scratch into a real teaching tool - an animated SVG forest, union by size/rank and path-compression toggles, a scrubbable guided demo, a free-play mode, a live parent/size table, metrics and history, all on a bespoke OKLCH 'terrazzo' design system. Vue 3 + TypeScript + Vite.

  • Vue 3
  • TypeScript
  • Vite
  • SVG
  • SCSS
  • OKLCH
  • Responsive
  • Accessible
alcor - a random quote generator rebuilt around a dead API and given an editorial redesignRemake

Test project16 Dec 2023

alcor - a random quote generator rebuilt around a dead API and given an editorial redesign

A static random-quote test task whose entire premise was broken: the third-party API it depended on (api.quotable.io) had shut down, so the live app hung on 'Loading...' forever. Rebuilt to read from a curated, locally-bundled set of real, well-attributed quotes with no-immediate-repeat rotation - no network, nothing to fail - then redesigned end to end into a quiet editorial 'ink on warm paper' system with OKLCH light/dark theming, working Share and Copy actions, full responsiveness and a real accessibility floor. Static HTML + CSS + vanilla JS.

  • HTML
  • CSS
  • Vanilla JS
  • OKLCH
  • Responsive
  • Accessible
mirfak - a digital-agency landing refactored from a static test task into a working siteRemake

Test project28 Mar 2023

mirfak - a digital-agency landing refactored from a static test task into a working site

A netdev web-studio landing rebuilt from a static HTML/CSS/JS test task: a broken dual-slider fixed, the services accordion made keyboard-accessible, dead navigation wired to real sections plus new Clients and Pricing blocks, a validated request modal with a success state, placeholder copy replaced with believable Russian content, and a full responsive and accessibility pass. Static HTML + SCSS + vanilla JS.

  • HTML
  • SCSS
  • Vanilla JS
  • Splide
  • Responsive
  • Accessible
alnair - a CRM-integrator landing refactored and grown into a real siteRemake

Test project10 Mar 2023

alnair - a CRM-integrator landing refactored and grown into a real site

A WELBEX CRM-integrator landing rebuilt from a bare single-screen Create React App test task: dead placeholder links fixed, a validated consultation modal with loading and success states, twelve real inner pages each with its own layout, active navigation, a custom favicon and a full accessibility and responsive pass. React 18 + React Router.

  • React 18
  • React Router
  • CRA
  • SCSS
  • Responsive
  • Accessible
alnilam - a board game studio landing refactored and hardenedRemake

Test project25 Dec 2023

alnilam - a board game studio landing refactored and hardened

A board and card game studio landing rebuilt from a jQuery-era Nuxt template: the jQuery WebGL water-ripple replaced with a dependency-free port, a validated lead-capture modal with phone masking and toasts, a working mobile menu, smooth anchor scrolling and a full accessibility pass. Nuxt 3 + Vue 3.

  • Nuxt 3
  • Vue 3
  • TypeScript
  • Tailwind
  • SCSS
  • WebGL
  • Cloudflare
castor - five DivKit paywall screens wired into one accessible flowRemake

Test project13 Jul 2024

castor - five DivKit paywall screens wired into one accessible flow

Five standalone server-driven UI screens (DivKit, Yandex's SDUI framework) rebuilt from disconnected JSON mockups into one navigable flow: cross-screen navigation, full responsiveness, accessibility, believable copy, self-hosted assets and an OKLCH design-token refresh. DivKit + Express, static on Cloudflare Pages.

  • DivKit
  • Server-Driven UI
  • HTML
  • CSS
  • Express
  • Cloudflare
aldebaran - TON staking landing rebuilt into a multi-page siteRemake

Test project13 Jul 2024

aldebaran - TON staking landing rebuilt into a multi-page site

Crypto staking landing rebuilt from one broken page into a routed multi-page site: dead links and no-op controls fixed, a mislabeled chart replaced with a real responsive line chart, full responsiveness and accessibility, believable copy, and an OKLCH design-token refresh. React 18 + Chart.js.

  • React 18
  • React Router
  • Chart.js
  • SCSS
  • Tailwind
  • Cloudflare
nohello - don't open a chat with just "hi"Remake

Test project13 Jul 2024

nohello - don't open a chat with just "hi"

A bilingual (RU/EN) one-pager on chat etiquette: lead with the question, not a lone "hi". Rebuilt from a single-language clone into a bespoke, accessible, soft-paper editorial page. Vue 3 + Tailwind, hand-built chat UI.

  • Vue 3
  • TypeScript
  • Vite
  • Tailwind
  • i18n
  • Cloudflare
mira - responsive bakery storefrontRemake

Test project28 Jul 2024

mira - responsive bakery storefront

French patisserie landing rebuilt and enhanced from a Figma file: fully responsive and accessible, with a drag-scroll product rail, a quantity-aware cart, and a keyboard-operable pack-size picker. Vanilla HTML/CSS/JS.

  • Vanilla JS
  • CSS
  • Vite
  • Responsive
  • Accessible
mintaka - logistics company site rebuildRemake

Test project13 Jul 2024

mintaka - logistics company site rebuild

Static logistics company site rebuilt from a broken multi-page template: shared sticky nav and footer, full responsiveness, accessibility, real copy, and a custom video player. Vanilla HTML/SCSS/JS.

  • HTML
  • SCSS
  • Vanilla JS
  • Responsive
  • Accessible
  • Cloudflare
alphard - a 3D guide to the Solar SystemRemake

Test project8 Apr 2021

alphard - a 3D guide to the Solar System

A guide to the nine worlds of the Solar System with an orbitable glTF model for each, a per-planet color identity and a monospace telemetry readout. Node, Express and EJS, served through model-viewer.

  • Node.js
  • Express
  • EJS
  • model-viewer
  • WebGL
  • Docker
naos - an interactive Langton's Ant explorerRemake

Test project12 May 2021

naos - an interactive Langton's Ant explorer

A 2021 school canvas toy rebuilt into an interactive turmite explorer: play, pause and step the ant, change the turn rule, and watch order emerge as it builds a highway near step ten thousand. Node, Express and a vanilla canvas, no framework.

  • Node.js
  • Express
  • Vanilla JS
  • HTML5 Canvas
  • Accessible
saiph - an accessible web video playerRemake

Test project20 Dec 2023

saiph - an accessible web video player

A keyboard-driven HTML5 video player in vanilla JavaScript: a tick-marked seek scrubber, monospace timecode, double-click seek, captions and picture-in-picture, and an eight-clip color-grade playlist. No framework, no dependencies.

  • Vanilla JS
  • HTML5 Video
  • CSS
  • Accessible
  • Cloudflare
arcturus - Yandex Maps reviews parser

Test projectImtera15 Jun 2026

arcturus - Yandex Maps reviews parser

Pulls ratings and every available review from any Yandex Maps card despite no public API and active bot protection - plain HTTP pagination, no headless browser or captcha. Laravel 11 + Vue 3.

  • Laravel 11
  • Vue 3
  • Sanctum
  • SQLite
  • Docker
spica - The Artisan Kiln tile order form

Test projectTile Expert1 Jun 2026

spica - The Artisan Kiln tile order form

A tile-studio order form grown into a full editorial shop: cart math, a drag-and-drop tile designer, and multi-method checkout. Next.js 15 + Redux Toolkit.

  • Next.js 15
  • TypeScript
  • Tailwind
  • Redux Toolkit
  • Cloudflare
orion - SpaceX launch archive

Demo30 May 2026

orion - SpaceX launch archive

An editorial archive over the SpaceX API with URL-driven search, filters, and statically generated per-launch pages. Next.js 14 App Router + RSC.

  • Next.js 14
  • App Router
  • RSC
  • SpaceX API
  • OpenNext / Cloudflare
Vega Chat - streaming AI chat client

Test projectKazInvestEngineering16 May 2026

Vega Chat - streaming AI chat client

Minimal full-stack AI chat: branching conversations, NDJSON token streaming, voice input, and swappable providers. ASP.NET Core 10 + React 19.

  • ASP.NET Core 10
  • React 19
  • SQLite
  • Web Speech
hadar - a Rick and Morty wiki rebuilt as a classified dossierRemake

Test project7 Jun 2024

hadar - a Rick and Morty wiki rebuilt as a classified dossier

A Rick and Morty API wiki taken from a generic dark template to a bespoke 'declassified field registry': the component library swapped for native accessible UI, a full OKLCH design system, a true 390-to-1440 responsive pass, keyboard support, and real bug fixes. Nuxt 3 + Vue 3 + Tailwind.

  • Nuxt 3
  • Vue 3
  • TypeScript
  • Tailwind
  • Cloudflare
alnitak - a kanban board and revenue dashboard rebuilt as an editorial operations consoleRemake

Test project27 Jan 2024

alnitak - a kanban board and revenue dashboard rebuilt as an editorial operations console

A Nuxt 3 kanban board plus an ECharts revenue dashboard taken from an unfinished demo to one committed design system: warm-paper OKLCH tokens with a 'ledger rule' signature, real correctness fixes (ECharts lifecycle, dead keyboard handlers, nested buttons), a full accessibility floor and a 390-to-1440 responsive pass. Nuxt 3 + Vue 3 + ECharts.

  • Nuxt 3
  • Vue 3
  • TypeScript
  • ECharts
  • Pinia
  • Tailwind
  • Cloudflare
betelgeuse - a pokemon catalogue rebuilt as a pokedex field guideRemake

Test project6 Apr 2023

betelgeuse - a pokemon catalogue rebuilt as a pokedex field guide

A Create React App catalogue over PokeAPI taken from a stock Ant Design theme to a bespoke 'pokedex field guide': a full OKLCH design system, an 18-type colour system as the signature, real correctness fixes (rules-of-hooks, URL and pagination sync, fetch errors) and a 390-to-1440 responsive plus accessibility pass. React 18 + Redux Toolkit + Ant Design.

  • React 18
  • TypeScript
  • Redux Toolkit
  • React Router
  • Ant Design
  • SCSS
  • Cloudflare
richie - an early brutalist portfolio, restored from git history and modernisedRemake

Demo31 Dec 2022

richie - an early brutalist portfolio, restored from git history and modernised

A loud yellow-and-red personal portfolio from 2022 that a single commit had wiped down to a placeholder. Recovered intact from the repo's own history, then given a correctness, SEO, accessibility and responsive pass - the blog that never built now generates, every page has one clean heading outline, and the long scroll animations were tightened - all without touching the original look.

  • Nuxt 2
  • Vue 2
  • SCSS
  • i18n
  • AOS
izar - a Yandex-Music-style web player with a reactive sound stageRemake

Test project11 May 2023

izar - a Yandex-Music-style web player with a reactive sound stage

A rough Nuxt starter rebuilt into a real music player: actual HTML5 audio with a persistent queue, a full-screen now-playing screen, favorites, search, radio and a top 100, and a hero whose background reacts to the music. Two reactive backgrounds - a 3D dot-wave and a WebGL aurora reverse-engineered from Yandex's My Wave - both driven by a Web Audio analyser, in English and Russian.

  • Nuxt 3
  • Vue 3
  • TypeScript
  • Tailwind
  • SCSS
  • Web Audio API
  • WebGL
  • i18n

Open source

Public repositories - source, infra, and the tooling behind how I work. AI-assisted code gets reviewed and tested like a junior's draft before it ships.

  • TypeScriptJun 19, 2026

    bmalph

    Unified AI Development Framework - BMAD phases with Ralph execution loop

    My own agentic coding harness: puts AI codegen behind spec phases and a review loop instead of raw generation.

  • Jun 3, 2026

    Notes app

    Self-hosted Markdown notes with tags, full-text search, a calendar view, and a Telegram reminder bot. FastAPI + Postgres, React + Vite, Dockerized.

    Core is covered by tests: pytest on the FastAPI backend (auth, notes, pagination, bulk ops) plus component tests on the React front.

  • TypeScriptMay 31, 2026

    canopus

    Customized Apache Superset 6.1.0 production image

  • PythonApr 21, 2026

    favro-mcp

    MCP server for interacting with Favro project management.