Product manager, developer platforms

Vitalii Batyr

I build platforms for the people who build software, and side projects that keep humans in charge of AI-assisted work.

Projects

Agentic Workspaces

A front door for agentic workspaces: the repos you clone and work inside, findable by the job you need one for.

Live

An agentic workspace is a repo you clone to live in rather than to run: your agent arrives equipped, and your work accumulates inside. These repos have no marketplace, so people find them by accident. The index is the front door, and you browse it by the job you need one for.

The front page of an index called Agentic Workspaces. A headline reads
                      workspaces your agent lives in, above a row of counts and a grid of cards,
                      each naming a repository, its owner and its subject.
The front page. Each card is one workspace, tagged with the job it was built for. Every count is read from the crawl, so they move each time it runs.
Built with
TypeScript · Node ≥20 · Vitest · GitHub Actions · a static generator over one JSON file, no framework and no client-side fetching
Status
Live and actively developed. Every entry is found by a crawler rather than added by hand.
Repo
Private while it’s being built.

writtten

You write every word. The AI never touches your prose, it reads alongside you and points out what you missed.

Live Source

Most AI writing tools generate text for you to edit. writtten does the opposite. A live feed of observations runs beside your document as you revise, flagging contradictions, unclear passages, unsupported claims and missing topics. There is no “Apply suggestion” button, and there never will be.

A draft document beside a column of observations. Two passages are
                      highlighted at once: one committing to a Q2 launch, one to Q3. The open
                      observation is labelled contradiction.
The Timeline section commits to a public launch in Q2. Success metrics commits to Q3. writtten flags both passages at once and leaves the decision to the writer.
Built with
React · TypeScript · TipTap and ProseMirror · local-first PWA on IndexedDB · bring your own key, called straight from the browser
Status
Early and actively developed. The core loop works. Open-sourced to get the idea scrutinised and to find collaborators.
Repo
Public · Apache-2.0

whatatake

Takes about the future, kept on the record: who said it, when, and how it aged.

Live

You log what someone says will happen: your own take, a friend’s or someone public’s. AI drafts the details from a sentence or a link, and you check them. Once logged, the words can’t be edited. When the date arrives, you record what happened. No model decides the verdict.

A take's page on whatatake. The headline reads a sharp tech selloff will
                      happen at Monday's open, above the post it came from. Below, it was due 14
                      Sept 2026, and a box reads verdict, happened.
A take’s page after its verdict. The post it quotes is kept as it was logged, and the verdict is added with its own date.
Built with
Next.js · TypeScript · Supabase Postgres · Drizzle · Gemini for the drafts · Vercel · notifications by email through Resend, or by a Telegram bot
Status
Live, early and actively developed. It’s free to use, and no money moves through it.
Repo
Private.

research-and-learn

An agentic workspace that builds you an offline, ranked guide to a subject you must understand by a date.

Source

You say what you need to understand and by when. Your coding agent interviews you, researches the subject, and runs subagents that write the guide one topic at a time, ranked by what matters and readable offline. Its rules require a source for every outside claim, and an unknown becomes an open question.

A topic page in a guide called First season with bees. The title reads how a
                      colony works, beside a badge reading critical, its size and its reading time.
                      A contents column on the right lists the sections, each with a rank marker and
                      a time.
A topic page: its rank, size and reading time at the top, and every section ranked in the contents. This one comes from the repo’s test guide, a demo on bees with an invented case.
Built with
Python ≥3.11, standard library only · plain JavaScript, nothing loads from the network · any coding agent that reads AGENTS.md
Status
Early and actively developed. The method comes from one 45-topic guide, built for one reader on a deadline.
Repo
Public · MIT

mova

A language-learning workspace run by your AI coding agent, in plain files you own.

Source

You pick the language and the goal. The agent interviews you, builds a curriculum, then teaches, drills and tracks every word and every error you get wrong. It started from my own language learning: I wanted the record of every mistake to stay in files I own.

A workspace hub page. A row of figures reads days to exam, units done, topics
                      taught, things to remember, items to review today, and study sessions. Below
                      it, the deck, then a panel headed what to do next.
The workspace hub: days to exam, units done, items due, and what to do next. Every number is read from the file that owns it. This one is a generated demo with an invented learner.
Built with
Node ≥20 and git · plain markdown and HTML you can open from disk · agent-agnostic · self-contained offline pages, no CDN, no external fonts
Status
Works end to end. Seven languages start straight away; any other language adds about half an hour while the agent builds a grammar pack first.
Repo
Public GitHub template

vibecoding-starterpack

A repo scaffold that makes documentation fail CI when it drifts.

Source

Give a coding agent a task and it does the task. It won’t remember last week’s decision, and neither will the next agent. Documentation is the shared memory, and documentation rots. This template puts the docs under CI, so breaking a convention turns the build red.

Built with
TypeScript · Vitest · GitHub Actions · no runtime, it’s a scaffold
Status
Usable now. Fill three files, run npm install && npm test.
Repo
Public GitHub template · MIT

agentic-job-hunt

An opinionated job search pipeline that runs inside Claude Code, calibrated against its own results.

Source

It scans job boards, screens by title at no token cost, evaluates the survivors against your actual background, writes tailored CVs, and tracks every application. Then it tells you whether the scores you assigned beforehand predicted anything. On the search it was built from, mostly no.

Built with
Node 18+ · Claude Code · Playwright · optional Go dashboard · Greenhouse, Ashby, Lever, Comeet, Workable and public LinkedIn
Status
In daily use. It’s the pipeline behind my own search.
Repo
Public

About

I’m a product manager working on developer platforms. My work sits on the surfaces engineers actually touch: internal developer portals, software catalogs, documentation, self-service onboarding, and more recently the AI features layered on top of them. Earlier, application security tooling that plugs into source control and the editor.

Nine years in product, most of it on tooling other engineers depend on. My strongest opinion about internal platforms is that most of them are envisioned as products and end up as a pack of services. Adoption is the test. If the paved road isn’t genuinely faster than going around it, people go around it.

I measure this kind of work by whether engineers come back to it on their own. Adoption and friction numbers tell you that.

The projects above are side work, built in evenings. They circle one question I keep hitting in my day job: when an agent does part of the job, what stops the person from quietly losing the thread? Each project answers it differently, and each one is public so the answer can be argued with.

LinkedIn has the current version of the working history.

Elsewhere

LinkedIn GitHub