Skip to content
iambogdan

Full-stack developer · AI orchestrator

I build the app. And the agents inside it.

TypeScript from the database to the pixel, plus the layer everyone's hiring for now: agents with tools, memory and retrieval, and evals that prove which model is worth paying for. Romania-based, remote.

  • 16 years shipping remotely for US companies
  • Open to contract + full-time
SITESiambogdan · webnotionAGENTone Mastra serviceDATANeon · Phoenix evals
Don't take my word for it

"Search the web and answer: what has Bogdan Andronic (iambogdan.com) shipped, and is he a fit for a full-stack + AI engineering role?"

Projects

What I've built

Products I run, and work I shipped for others. Open one for the story, the screens and the stack.

  • The AirTreks AI assistant Vanessa mid-conversation, with the trip panel showing an estimated price and a five-stop route.

    AirTreks · 2024 - 2026

    A support agent that builds trips while it talks. I took the AI chat channel from zero to a live revenue line.

    Shipped
  • The bifa board: a sidebar of grouped projects, and cards with a priority on each one.

    My own product · 2026 - present

    A kanban where AI agents work on the board next to people. Claude files and moves cards through MCP.

    Private beta
  • The AI Visuals admin home: prompts, skills, documents, analytics, tracked links and web performance.

    For AI Visuals (Ioana Andronic) · 2026 - present

    The admin behind aivisuals.one: Ioana edits her live portfolio inline, on the web or on Android.

    Live
  • The AI Canvaz studio: a sound effect result, the assets panel, and the cost of the project so far.

    My own product · 2026 - present

    An AI media studio built on one promise: keep it simple and keep it fast. Images, video, voice and music.

    In testing
  • The process Ship a feature with Claude Code, in progress at 50%, with three sections: Plan complete, Build at 50%, Verify and ship at 0%.

    My own product · 2026 - present

    Processes that humans and AI agents follow by the same rules, turned into reusable templates.

    Private alpha
  • The Card docs page in the design system's Storybook at ds.iambogdan.com.

    My own product · 2026 - present

    The design system for v3 of this site: 38 components and 188 Storybook stories, in public beta.

    Live
  • A Portugal travel guide's hero image in the BootsnAll editor, with Replace, Select from media, Generate with AI and Remove.

    BootsnAll · 2020 - 2026

    Sanity as the content backend, a custom CMS built into the site itself, and AI that checks the content and makes images in BootsnAll's style.

    Live
  • A round-the-world route page on airtreks.com: New York, Tokyo, Sydney, Auckland and Honolulu, with its stops and an estimated price.

    AirTreks · 2020 - 2026

    I built the whole public site, on Next.js and Sanity, with the routes at its heart: every trip from the trip planner becomes a route page.

    Live

AirTreks · 2024 - 2026

AirTreks AI travel agent

Shipped
The chat before the first message: a trip panel on the left, and a few suggested questions to start with.
A trip taking shape as we talk. The panel on the left fills in the route, the dates, the travelers and an estimated starting price per person.
The hand-off: the trip is being sent to the AirTreks agents.
The confirmation: the trip is with the agents, and the visitor is told when to expect a reply.
A short feedback prompt after the hand-off, with a star rating and a text box.

At AirTreks I built the AI chat channel from zero into a live revenue line. It is a support agent that builds while it talks: the interface changes as the conversation goes, trips appear in front of the customer, and they can edit them mid-chat or by hand.

Two agents sit behind the same chat surface, split by intent, because a cold lead and an existing customer need different conversations. Both read from one brain: versioned skill bundles plus pgvector retrieval over Q&A and internal knowledge, pulled live mid-conversation. Past conversations are ingested and analysed, so an objection that came up once feeds the next answer.

Around the chat sits the automation: instant customer emails, an alert to a human agent on conversion, and the trip written into the sales CRM and published as a route on the front end. It is built on idempotent steps and a lock that releases itself, so the whole chain survives a crash.

Highlights

  • Two agents split by intent: a cold lead and an existing customer get different conversations
  • One brain they both read from: versioned skill bundles and pgvector retrieval
  • Automation that survives a crash: idempotent steps and a self-releasing lock
  • Typed PostHog events across every funnel, wired in over MCP so I can ask Claude what the funnel did last week
  • AEO/GEO: Schema.org on every page type, a named AI-crawler policy and a frozen prompt panel

Stack

  • TypeScript
  • pgvector
  • MCP
  • PostHog
  • Schema.org

My own product · 2026 - present

bifa

Private beta
Priority lives on the card. Groups live in the sidebar.
Claude found bugs mid-task and wrote the cards itself, through MCP.

bifa is a kanban where AI agents work on the board next to people. In the schema an agent is a kind of person, not a special case bolted on later.

Claude files, moves and comments on cards through bifa's own MCP server, and signs in through bifa itself: bifa is its own OAuth server, with Google sign-in for the people. There is also a REST API, and each person gets an organisation of their own.

A board has seven columns, from inbox to done, and a card's priority is its position in the column. I use it every day: 23 projects and 350+ cards, including the ones behind this page. It is a private beta, by invitation.

Highlights

  • Agents are people in the schema, with the same board and the same cards
  • Its own MCP server: Claude files, moves and comments on cards
  • bifa is its own OAuth server, so Claude signs in through bifa itself
  • A REST API, Google sign-in and one organisation per person
  • In daily use: 23 projects and 350+ cards

Stack

  • Next.js 16
  • TypeScript
  • MCP
  • Better Auth
  • Neon
  • Drizzle
  • Storybook 10
  • Railway

For AI Visuals (Ioana Andronic) · 2026 - present

AI Visuals admin

Live
A walk through the admin.
One admin for the site, the docs, the skills and the numbers.
Every save is a version, and any version can come back.

AI Visuals is the portfolio of Ioana Andronic, an AI video director. I built the admin behind aivisuals.one, the v2 rebuild of her site, so she can run it herself. The films are hers; I built the system around them.

She edits the live site inline, keeps her own docs in a Notion-style editor, and gets Web Page Performance monitoring (RUM) with analytics. There are AI skills for the agents that work on the content, and an MCP server so Claude can work in the same admin.

It is a pnpm and Turborepo monorepo: an Astro 7 front, an Expo admin that runs on the web and on Android, Better Auth on Neon, and Bunny CDN for media.

Highlights

  • Edit the live site inline
  • Its own docs in a Notion-style editor
  • Web Page Performance monitoring (RUM) with analytics
  • AI skills for the agents that work on the content, plus an MCP server
  • One Expo admin on the web and on Android

Stack

  • Astro 7
  • Expo
  • Better Auth
  • Neon
  • Bunny CDN
  • MCP
  • Turborepo
  • pnpm

My own product · 2026 - present

AI Canvaz

In testing
Every result shows what it cost.
Voice and sound in the same project as the images and video.

AI Canvaz is an AI media studio built on one promise: keep it simple, and keep it fast. It has fewer options than the heavy tools, with images, video, voice, music and sound effects in one place.

It started from how Ioana works as an AI video creator: one prompt box, assets you can mention in a prompt with @, and the real cost of every result shown before and after you generate it.

It is in testing with a small group of users. Next.js 16 and Tailwind CSS 4 on a pnpm and Turborepo monorepo, with Neon and Drizzle, Better Auth, and Bunny CDN for storage.

Highlights

  • Images, video, voice, music and sound effects in one place
  • Reference any asset in a prompt with @
  • The cost of a result is shown before and after you generate it
  • Fewer options than the heavy tools, on purpose

Stack

  • Next.js 16
  • Tailwind CSS 4
  • Neon
  • Drizzle
  • Better Auth
  • Bunny CDN
  • Turborepo

My own product · 2026 - present

DefineProcesses

Private alpha
A process for shipping a feature with Claude Code: three sections, each with its own progress.
Every process has a goal, a category and tags, and its progress fills in as tasks are ticked.
Each task carries its own notes: the instructions a person or an AI agent follows.
The team rates a section or a task, and can say why.
Feedback collects on the section, next to when its tasks were completed.
One click turns a process into a reusable template for the whole organisation.
defineprocesses.com, while the app is a private alpha.

DefineProcesses is an execution system where proven processes become assets. A process is sections, tasks and subtasks. Run it, then turn it into a reusable template and share it.

Humans and AI agents follow the same rules. The AI copilot is built on Mastra and CopilotKit.

It is multi-org, on Neon with row-level security, and each org has its own Stripe subscription across four plans. Sign-up is by allowlist while it is a private alpha.

Highlights

  • Sections, tasks and subtasks that become reusable templates
  • An AI copilot on Mastra and CopilotKit
  • Multi-org on Neon, with row-level security
  • Per-org Stripe subscriptions on four plans

Stack

  • Next.js 16
  • TypeScript
  • Neon
  • Mastra
  • CopilotKit
  • Stripe
  • Turborepo
  • Railway

My own product · 2026 - present

Design system

Live
Layout primitives, documented with live examples.
Every prop and every state has a story.
The surface every card on this page stands on.

This is the design system for v3 of this site. It is framework-agnostic, public in beta at ds.iambogdan.com, and it has two brand themes built from one set of tokens.

It has 38 components, 188 Storybook 10 stories and a Vitest test per component. Every state has a story that runs in a real browser, and every story has to pass an automated accessibility check (axe), or the tests fail.

I started as a web designer and never stopped designing; I moved it into code. This page is built from a snapshot of these components.

Highlights

  • 38 components, each with a story and a test
  • 188 Storybook 10 stories, run in a real browser
  • Every story must pass an axe accessibility check
  • Two brand themes from one set of tokens

Stack

  • Storybook 10
  • React 19
  • TypeScript
  • Vitest
  • Design tokens

BootsnAll · 2020 - 2026

BootsnAll on Sanity, with an in-page CMS

Live
The in-page CMS, in 80 seconds.

BootsnAll runs on Sanity as its content backend, with a Next.js front end that is also the CMS. Editors sign in and change a page where it lives: rich text with a slash menu, links found by searching the site's own content, and authors, places and principles picked as Sanity references. Drafts, publishing, and the site's header and footer work the same way.

AI works on the content through the Sanity API. Automated checks score each piece for risk (how much this piece needs a human before it can be trusted) and voice and record which model touched it, so the editor shows what still needs a person. Hero images come from an n8n workflow with skills for BootsnAll's style and voice, and land straight in Sanity.

Structured data has a gate too: a page's FAQ only ships as FAQPage rich results once an editor marks it vetted.

It is my second rebuild of the site. From 2020 to 2023 I had already turned its WordPress into a headless CMS behind Gatsby and Next.js, over GraphQL.

Highlights

  • Sanity as the content backend, queried with GROQ
  • A custom CMS built into the front end: edit the page where it lives
  • AI checks through the Sanity API: risk, voice and model on every piece
  • Hero images from an n8n workflow, in BootsnAll's style
  • FAQ answers vetted before they ship as structured data

Stack

  • TypeScript
  • Next.js 16
  • Sanity
  • GROQ
  • Portable Text
  • TipTap
  • Supabase Auth
  • n8n

AirTreks · 2020 - 2026

AirTreks website and routes

Live
Routes are the heart of the site.
Every route has its own map, stops and price.
A route page: the trip, its stops, and a price with the time it was last checked.
Each route opens with a short answer and the key facts.
The route on a map.
Two ways to fly it: the cheapest, and the one AirTreks recommends.
After the trip: the feedback page.
A rating, a 0 to 10 recommend score, and what worked.
A testimonial, what to improve, and the traveler's permission to publish it.

I built all of airtreks.com. Today it is a Next.js front end with its content in Sanity. It started on WordPress: I first made WordPress headless behind Gatsby and Next.js, then moved the content onto Sanity.

The routes are the most interesting part. I built the route pages, with their maps, stops, prices and short answers, and the pipeline behind them: a trip created in the AirTreks trip-planner app publishes itself as a route, through Firebase Functions and the CRM's own APIs.

I built the trip feedback page too. After the trip, travelers rate it: stars, a 0 to 10 score, what worked, a testimonial and what to improve. Each answer is tied to the trip they ordered, and feeds the same AI brain the chat agents read from.

I also replaced Hotjar with PostHog, the event tracking everything after was measured on.

Highlights

  • The whole site built by me: Next.js, content in Sanity, rebuilt from WordPress
  • Route pages with maps, prices and short answers, published from the trip planner
  • A trip feedback page tied to the ordered trip, fed into the AI brain
  • Hotjar replaced with PostHog

Stack

  • TypeScript
  • Next.js
  • Sanity
  • Firebase Functions
  • PostHog

FAQ

Before we talk

What exactly do you build?

Systems where a language model is one component rather than the whole product. In practice that means agents with typed tools, retrieval you can audit, the database and schema underneath, and the automation and analytics around it. At AirTreks that added up to an AI chat channel I took from zero to a live revenue line.

The last part is most of the work and it is the part nobody demos. A chat feature that answers well on a good day is a week. One that still hands the right information to the right person after a crash, a timeout and a bad deploy is the actual job.

Do you only do AI work?

No. I am a full-stack engineer first: Next.js and TypeScript, Postgres, the CMS and the integrations around them. I spent twelve years at AirTreks, a forty-person US travel company, building the public sites, the CRM wiring, the automation and the analytics, and for the last three, production LLM systems.

If your problem is a site, a product or a pile of manual steps, that is work I take too.

Do I need to know already that AI is the right answer?

No, and it is better if you haven't decided. Tell me what is slow, expensive or unreliable, and part of the first conversation is working out whether a model belongs anywhere near it.

Sometimes the honest answer is a queue, an index or a form that asks two fewer questions. I would rather say that on a call than discover it three weeks into a build you paid for.

If you disappear, is my team stuck with a system nobody understands?

That is the right thing to worry about, and it is why handover is a phase rather than an afterthought. Decisions get written down as decisions: what was chosen, what was rejected, and what would have to change for the choice to be revisited, with tests around the parts that would be expensive to get wrong.

The measure I hold myself to is whether your own developers can change the thing without waiting on me. Staying reachable afterwards is separate, and priced separately, so it is a choice rather than a dependency.

How do you charge?

Fixed price against a written scope, or a monthly retainer for a set slice of my time. Not hourly: an hourly rate turns the conversation into where I live rather than what the system is worth, and it rewards the wrong thing on both sides.

Support after launch is quoted up front the same way, so it is a line you agreed to rather than an invoice that arrives as a surprise.

How long before I see something real?

The first slice goes live early and deliberately small: narrow enough to be genuinely finished, real enough that actual people use it. You get to watch that happen before the rest of the budget is committed.

It is also the cheapest way to find out we disagree about something, which on this kind of work is usually a definition rather than a technology.

Where are you, and which time zones do you cover?

Romania, UTC+2/+3. I have worked remotely with US companies for sixteen years, so the time zone has never been the hard part: full working-day overlap with the EU and the UK, plus the US East Coast morning.

Async by default, live when a decision is faster spoken than written.

Which of these projects can I actually try?

The design system at ds.iambogdan.com is public, and so is Ioana Andronic's portfolio at aivisuals.one, which her admin runs. bifa is a private beta by invitation, DefineProcesses is a private alpha, and AI Canvaz is in testing with a small group.

The AirTreks and BootsnAll work belongs to those companies, so I describe it rather than link it. On a call I can walk you through any of them.

Contact

Send me a message

Write a few lines about what you're building and where it's stuck. I read every message and reply ASAP.

What breaks, who it affects, and what you've already tried.

Saved and emailed to me. No newsletter, no sequence, no CRM. What happens to your data.