Prague · est. 24 May 2016 · IČO 05108438

Agentic software,
shipped with twenty
years of taste
behind every decision.

Banana Pancakes is a studio shipping Polarix, HOCR, Perdify, Worklist and HushGit.

What runs the products, we ship in the open: ingot, jig-sh, jig-skills, runledger. Audits open. Not taking new development projects in 2026.

Operator
Jiří Zajpt, managing director
Shipping since
May 2016 — ~10 years
Writing code since
~2005 — ~20 years
Products
3 live · 2 in beta
Based
Prague 5, CZ — CET
§ 01 — Products

Things I’m building.

All owned 100% by Banana Pancakes s.r.o. No outside investors.
/ 01 · iOS puzzle game Live · App Store

Polarix

A merge-puzzle iOS game with one mean twist: opposite charges fuse, same types merge up to annihilation. Slide cores, set up chains, survive — three rules, infinite depth.

playpolarix.com Swift · SwiftUI
/ 02 · B2C call-center CRM Live · Sales-led

HOCR

A B2C CRM built around the call center. Sales pipeline, e-sign agreements, Twilio Flex routing, branded customer portal, and AI-driven call QA — one audit-friendly platform, ready to launch in days.

hocr.app Rails · Rust · Twilio Flex
/ 03 · AI interrogation game Beta · TestFlight

Perdify

An AI interrogation mystery for iOS. Six suspects who think, remember, and lie on their own — press them through voice or text, and find the killer before the room turns on you.

Swift · Rails · Postgres
/ 04 · Encrypted task manager Live · worklist.app

Worklist

Zero-knowledge, end-to-end encrypted task management for teams that actually care who sees what. Tasks, comments, delegations, attachments and notes — all encrypted client-side, before they leave the browser.

worklist.app Rust · TypeScript
/ 05 · Zero-knowledge Git hosting Day 1 · hushgit.com

HushGit

Your private repos aren’t private — anywhere else. Code is encrypted on your machine before it leaves it; the server stores ciphertext only. Staff can’t read it. Breaches can’t leak it. Subpoenas can’t hand it over. Encrypt before push, decrypt after pull — the server is dumb storage.

hushgit.com Rust · TypeScript
§ 02 — Internal stack

Tools I run in-house.

Proprietary. Not for sale, not open-sourced.
/

LandingAtlas

Rust Axum TimescaleDB Tera React admin
Proprietary · internal & client use

A multi-site landing-page engine with statistically valid A/B testing, used in-house and on client engagements. One Rust service routes incoming requests to a site by Host header, renders the matching Tera template, assigns visitors to variants via sticky cookies, and writes events to TimescaleDB. Experiments and results live in a same-origin React admin; significance is computed server-side with a chi-square test for homogeneity. When a winner is declared, its template becomes the site’s new runtime default; completed experiments stop assigning and traffic flows through the published variant.

landing-atlas  ·  capability map
├─ multi-site routing       Host header → template + asset bundle
├─ variant assignment       weighted, sticky per-visitor cookie
├─ conversion tracking      first-party JS · cookie-validated
├─ statistical analysis     chi-square · p-value · lift over control
├─ winner publication       promote variant to runtime default
├─ admin console            React UI · Basic Auth · same-origin API
└─ preview links            signed URLs survive process restarts
§ 03 — Open source

Code I’ve open-sourced.

Extracted from real apps. Issues welcome.
/

ingot

Rust TypeScript SQLite Axum 12 crates
github.com/bpcakes/ingot

A local code-delivery control plane for supervised AI coding work. A long-running daemon authors changes in isolated Git worktrees via an agent adapter (Claude Code or Codex), runs structured agent review, executes your project’s declared build/test/lint, repairs findings through bounded rework loops, rebases onto the target branch, re-validates, and only then CAS-updates the ref — gated by optional human approval. SQLite state plus a Git operation journal give it crash recovery that assumes failure, never success.

ingot  ·  workspace
├─ ingot-domain             entities, invariants, repository ports
├─ ingot-workflow           workflow graph · pure evaluator
├─ ingot-usecases           command handlers · transactions
├─ ingot-store-sqlite       SQLite repositories · migrations
├─ ingot-git                commits · refs · convergence replay
├─ ingot-workspace          worktree provisioning · reset · reuse
├─ ingot-agent-protocol     adapter trait · request/response types
├─ ingot-agent-adapters     Claude Code · Codex adapters
├─ ingot-agent-runtime      subprocess supervision · heartbeats
├─ ingot-config             YAML config · global/project merge
├─ ingot-http-api           Axum routes · DTOs · WebSocket
└─ ingot-daemon             binary wiring · DI · signals
/

jig-sh

Rust Make SQLx GitHub Actions MCP
github.com/bpcakes/jig-sh

A reusable agent harness for Rust codebases. jig-sh is the operating environment a coding agent needs to work reliably across a repo — a typed CLI over a stable make contract, agent-facing repo guidance, MCP wiring, append-only memory, and CI gates that decide whether a branch is real. The jig renderer applies it to a greenfield repo, grafts it onto an existing one, and rebases improvements forward as the harness evolves — same harness across every project, not a different one per repo.

jig-sh  ·  what the jig renderer installs
├─ AGENTS.md · agent-map.md      agent-facing repo guidance
├─ .agent/PLANS.md              ExecPlan format · living-document rules
├─ .agent/jig-contract.json     typed make-target contract
├─ .agent/state/*.jsonl         append-only repo memory
├─ .jig.yml · .mcp.json         repo config · MCP wiring
├─ Makefile · scripts/*.sh       enforced policy + lint/coverage gates
├─ scripts/jig                  launcher over the typed runtime
└─ .github/workflows/*.yml      CI gates for build · test · lint · schema
/

jig-skills

Codex Plugins Rust Swift TypeScript 9 skills
github.com/bpcakes/jig-skills

A Codex plugin marketplace for portable coding skills. It packages the workflows I use to keep agentic changes reviewable: Rust simplification and source reorganization, architecture and error-handling reviews, test-quality audits, Swift 6 refinement, TypeScript simplification and type-system review, plus ExecPlan writing and improvement. The marketplace installs four workflow plugins by default, while the same skill sources can still be copied directly into Codex or Claude.

jig-skills  ·  marketplace
├─ jig-rust                 simplify · source reorg · architecture review
├─ jig-rust                 error handling · test quality review
├─ jig-swift                Swift 6 · SwiftUI/UIKit · concurrency-aware cleanup
├─ jig-typescript           simplify · type-system review
├─ jig-exec-plans           write · improve self-contained ExecPlans
├─ marketplace.json         installs all four plugins by default
└─ install.sh               direct skill copy for Codex or Claude
/

runledger

Rust PostgreSQL SQLx 4 crates
github.com/bpcakes/runledger

A Postgres-native durable job queue and workflow orchestrator for Rust. Cron schedules, workflow DAGs with dependency counters, idempotent enqueue, dead-letters, panic-aware metrics rollups, and external workflow gates — extracted from a real production app and published as a standalone four-crate workspace.

runledger  ·  workspace
├─ runledger-core            public contracts, traits, types
├─ runledger-postgres        SQLx persistence · queue · DAG
├─ runledger-runtime         worker · scheduler · reaper
└─ runledger-test-support    ephemeral DB harness for tests
§ 04 — Services

How I plug in.

Audits run weeks. Builds run months. Retainer or fixed.
01 / Agentic development

Agentic development

Every line of code I’ve shipped this year was written agentically — the practice people are now calling vibe-coding. The difference is twenty years of taste deciding what gets accepted and what gets sent back. You move faster. You ship something you can still read in six months.

01Scoped product or feature, end-to-end
02Rust, TypeScript, Ruby, Python, Swift
03Evals, observability & rollback paths
04Clean, maintainable handover
02 / Audit & optimization

Audit & optimization

For teams already running agents but losing speed at review, scope, or handover. I audit the workflow end-to-end — tools, prompts, evals, models, review process — then rebuild what’s broken and document what works.

01Workflow audit & written report
02Prompt, eval & tooling improvements
03Model selection & routing review
04Team playbook & handover
Run the diagnostic
03 / Growth

Honest growth

I run the numbers and tell you when the spend isn’t working — before you ask. Landing pages that load fast and say something true. Paid acquisition with real attribution. Client landings run on LandingAtlas, my in-house experimentation engine.

01Landing pages & A/B testing
02Paid: Google, LinkedIn, Meta
03SEO & technical content
04Attribution & weekly readouts
§ 05 — Recent work

What working with me looks like.

Client name redacted at their request. Engagement active.
~/D/[redacted]
$ find frontend/ admin-panel/ -iname "*.tsx" | xargs cat | wc -l
    78980
$ find crates/ -iname "*.rs" | xargs cat | wc -l
   377899
$ git log --reverse --format="%ai" | head -1
2026-02-13 18:24:49 +0100  # first commit
$ date
Sat Apr 25 22:40:10 CEST 2026
~456k
lines, total
~10
weeks since first commit
1
engineer · agentic
We bet on Banana Pancakes’ agentic development approach and got the work of five engineers in the first month — with the judgment to tell us when we were wrong. Startup speed, senior taste, zero hand-holding. Hire them before someone else does.
Client founder Active engagement · 2026

For twenty years I’ve led teams of developers and shipped products. Running a team of agents across projects asks the same skills. Software ships at breakneck speed now — the challenge is making it correct, and maintainable.

— On running engineers and agents Jiří Zajpt Managing director & principal engineer, since 2016
2016
founded · 24 May · Prague
~20
years writing software
1
principal engineer
§ 06 — Stack

Tools I reach for.

Languages I’ve led teams in — and lead agents in too.

Principles

Typed where it helps. Boring where it must. Fast where it matters.

/ 01Rustbackends · hot paths
/ 02TypeScriptfrontends · tooling
/ 03Ruby on RailsCRUD · backoffice · MVPs
/ 04SwiftiOS · Polarix & Perdify
/ 05Pythonresearch · ML · glue
/ 06Postgresthe database
/ 07Codexprimary driver · Claude for UI
/ 08Grafanabusiness dashboards · alerts
§ 07 — How I work

A short, predictable process.

Every engagement roughly follows this shape — adjusted, not invented.
Phase 01

First call

45 minutes to understand the business, the team, and what’s on fire. I’ll tell you if I’m the right shop — and if not, who is.

~ 1 week
Phase 02

Written proposal

Scope, cost, timeline — on one page. If I’m wrong about scope, I say so before you sign.

~ 1 week
Phase 03

Ship & iterate

Weekly demos, a shared Linear board, and a principal who answers Slack. No status-update theatre, no middleman.

3 – 12 months
Phase 04

Handover (or stay)

When the thing is built, I document everything and leave — or stay on a lighter retainer. Your call, not mine.

open-ended
§ 07 — Contact

Get in touch.

Polarix, HOCR, Perdify, Worklist, HushGit, PrivaCycle — if it’s about one of our own products, you’re in the right place. Short workflow audits and waitlist sign-ups for the next opening are also open. Not taking new development projects in 2026. Plain Czech or English, within a working day.

Contact
Use the contact form
Signal / Phone
on request
Registered office
Na pomezí 910/2
Jinonice, 158 00 Praha 5
Česká republika
Company
IČO 05108438
DIČ CZ05108438
C 258440, MS v Praze
By sending this, you’re okay with a reply by email. The processors are listed in the privacy policy.