Skip to main content
Philipp Soldunov

Philipp Soldunov

Full-stack product engineer

I design and ship whole products on Next.js, including the data modeling, auth and backend logic that most front-end devs hand off to someone else. I also build my own tools. Ensemblr is a desktop orchestrator that runs coding agents in isolated git worktrees and lets them drive the app itself. Token Station shows how much of my Claude Code and Codex plans is left, in the macOS menu bar or the Linux panel. Wye sends every link I click on Linux to the browser or profile it belongs in. Skrepka is a clipboard manager for macOS and Linux that syncs history between machines over the local network. And I run my own infrastructure on NixOS.

Experience

Ensemblr

Agents write the code, then drive the app.

An Ensemblr workspace: a coding agent mid-turn with its tool calls, the file tree, and the terminal dock running a dev server

A desktop orchestrator for the Pi agent harness or the Claude Code CLI you already have installed. I build it, and I use it to build everything else, including this site.

  • A git worktree per stream of work
  • Agents spawn sub-agents and integrate their results
  • Local review that ends in a GitHub PR
  • Runs locally, with no account, backend or telemetry

Selected work

Some of the work I am proudest of:

  • The Wye picker on KDE Plasma: tiles for Firefox, a Work and an Acme Client profile of Google Chrome, Zen Browser, Brave and a Research profile of Firefox, each under its hotkey, above the link it is about to open and the app it came from, Konsole

    Wye

    2026

    A browser picker for Linux. It registers as the default web browser and sends every link to the right browser, browser profile, private window or desktop app, either by rules that match the link, the app it came from and the keys held, or through a picker that opens at the pointer. One Rust service does the routing, and KDE Plasma and GNOME each get a front end in their own toolkit. Written in Rust, QML and GJS, and MIT-licensed.

  • The Token Station panel open under its two-bar meter in the macOS menu bar: Claude Code session, weekly and Fable weekly limits with reset countdowns, token counts and cost for this device, a Per Model row, and the Codex weekly limit below

    A usage monitor for Claude Code and OpenAI Codex. It puts session and weekly limits, reset countdowns, token counts and API-equivalent cost in the macOS menu bar, the KDE Plasma tray or the GNOME top bar. A single daemon reads the sign-ins and logs the two CLIs already keep, without ever writing to them, and each front end draws what it publishes. Written in Rust, Swift, QML and GJS, and MIT-licensed.

  • The Skrepka picker on macOS: a Liquid Glass panel over the desktop listing a copied photo, a link, code, a hex color and a masked password, each with the app it was copied from and a ⌘1 to ⌘8 shortcut

    A clipboard-history manager for macOS and Linux. One shortcut opens a picker over whatever app you are in without taking focus from it, and the entry you pick lands where you were typing. Paired machines share their history over the local network, a Mac and a Linux box included, and no account, server or relay is involved. Written in Swift, with SwiftUI on the Mac and GTK 4 on Linux, and MIT-licensed.

  • A B2B insurance portal I designed and built end to end on Next.js. Its 147 corporate clients handle their own policies, request certificates of insurance, change coverage and renew automatically from a multi-org dashboard, and staff run it from an admin panel. I later moved the database, storage and hosting onto Vercel, with Neon, Vercel Blob and Better Auth.

  • design by

    The education hub for a stablecoin payments platform, built on Next.js and Sanity. It has article filtering, a glossary, full i18n and custom blocks that pull live data from DefiLlama and CoinMarketCap. It has to rank in a YMYL niche, so it ships per-locale sitemaps, JSON-LD and real author and team pages.

    Next.jsSanityTechnical SEO
  • The open-source starter I build client projects from. It runs Next.js 16 and React 19 on Bun, with a section-based page builder, a smart-link primitive, reusable schema constructors and Sanity TypeGen, and it comes with an agent rulebook in AGENTS.md and CLAUDE.md. To try it, run bun create psoldunov/sanity-starter

  • design by

    I was lead developer on their Next.js and Sanity site. I built the page builder and a reusable component system, and I owned the product finder and comparison engine, which meant modeling the structured product data and the filters people search it with.