For technology partners and grant-makers

Tsalkin AI as technology

An AI system for developing entrepreneurs, built on a practitioner's real experience. A product that by industry standards takes a team and years was built by one person — and keeps growing into an ecosystem.

Niche and scale

Quality tools for developing a business today are either expensive or not widely available. The goal is to make them accessible and help owners through the "first mile" — the stage where a notable share of young businesses close. That's both social scale and an open market.

Project snapshot

All figures taken on 17 August 2026 — by direct query against production and the repository, not from documents.

22,747
knowledge fragments indexed
356
releases since 24 March 2026
2,831
automated tests, 60 DB migrations
2,507
commits, one developer
257
transcript sources · 533 hours
6
production stores

The ecosystem

One 'brain' — and organs around it. Each takes its own circle of care: some already work, some are on the way.

Brain · Mentor
tsalkin.ai
Client profile and access — in one place.
Concierge
app.tsalkin.ai

Client care for programs: a personal portal, bots and meeting booking in one system.

One more organ of the ecosystem. Soon.
One more organ of the ecosystem. Soon.
Brain · Mentor
tsalkin.ai
Client profile and access — in one place.
Concierge
app.tsalkin.ai

Client care for programs: a personal portal, bots and meeting booking in one system.

One more organ of the ecosystem. Soon.
One more organ of the ecosystem. Soon.
Already works Soon

Tsalkin AI by the numbers

Core dynamics: 18 May → 16 June → 11 July → 17 August 2026
Metric 11 Jul 17 Aug Δ vs previous
Knowledge fragments in production ~22 400 22 747 +347
Transcript sources (VTT registry) 199 257 +58
Production stores 6 6
Days of active development 109 146 +37
Commits 2 166 2 507 +341
Releases in CHANGELOG 299 356 +57
Automated tests (defs in tests/) 2 028 2 831 +803
Python lines — all code, incl. tests 105 955 125 952 +19 997
Developers 1 1

18 May 16 Jun 11 Jul 17 Aug

Ecosystem · commits +659
3,553
729 → 1,879 → 2,894 → 3,553
Ecosystem · commits: 729 → 3,553
22,747
+383
Knowledge fragments in production
Knowledge fragments in production: 17,700 → 22,747
was 17,700 now 22,747
2,507
+341
Commits
Commits: 729 → 2,507
was 729 now 2,507
2,831
+803
Automated tests (defs in tests/)
Automated tests (defs in tests/): 337 → 2,831
was 337 now 2,831
125,952
+19,997
Python lines — all code, incl. tests
Python lines — all code, incl. tests: 52,912 → 125,952
was 52,912 now 125,952
356
+57
Releases in CHANGELOG
Releases in CHANGELOG: 204 → 356
was 204 now 356
257
+58
Transcript sources (VTT registry)
Transcript sources (VTT registry): 125 → 257
was 125 now 257

Ecosystem · monthly growth

Commits. Concierge and new projects join from June — the ecosystem grows organs.

Component 11 Jul 17 Aug Δ vs previous
Brain · Mentor 2 166 2 507 +341
Concierge 374 682 +308
2 more projects in development 354 364 +10
One more element of the ecosystem. Soon.
Ecosystem · total 2 894 3 553 +659

In lines of code that's ~205,000 lines of Python · 1 developer. A scale that by industry standards takes a team and years — built by one person.

By industry standards: rebuilding a product like this in one year would take 12–20 person-years of work — i.e. a team of 12–20 engineers (backend, ML/AI, DevOps, QA, product). Built by one person in 4.8 months — and still growing.

Effort estimate

By industry standards (a simplified COCOMO II–based model adapted for AI/ML): the current engineering codebase (~126 KLOC of core, ~205 KLOC with the ecosystem) corresponds to 12–20 person-years of work. Rebuilding the project in one year would take a team of 12–20: backend, ML/AI engineer, DevOps, QA, product. Built by one person in 4.8 months — efficiency versus the industry baseline on the order of 60–80×: AI-augmented coding, no enterprise overhead, and an extremely focused domain.

The path

Where we are now. On the left — what already works; on the right — what lies ahead. The ecosystem grows through two organs at once: the mentor-brain and the concierge.

Concierge — client care for your programs: a personal web portal, Telegram bots, and meeting booking in one system.

Already shipped

  1. Mentor-Brain

    Answers now speak in Maxim's own voice — his manner, his directness, substance without filler.

  2. Mentor-Brain

    A detailed answer unfolds on screen as it takes shape — no long silent wait.

  3. Mentor-Brain

    Even at peak load the mentor stays with you and delivers the answer, instead of dropping midway.

  4. Mentor-Brain

    A valuable answer saves to your personal library in one tap — nothing important gets lost in the chat anymore.

  5. Mentor-Brain

    Your program's table of contents is always at hand — a map of the course: where you are and what you've already covered.

  6. Mentor-Brain

    Answers arrive cleanly formatted — emphasis, lists and quotes come through intact, not as one flat block of text.

  7. Concierge

    A personal client portal at app.tsalkin.ai — sign in with a link from your email, no password and no messenger needed.

  8. Concierge

    Several programs — Yadro, Praktikum CEO, Praktikum VIP — run on one engine, each with its own branded look.

  9. Concierge

    Book a mentor session in a couple of clicks: pick a free slot in the calendar, and once confirmed you get a Zoom link and a calendar invite in your inbox.

  10. Concierge

    Your whole picture on one page: what you've submitted, what's paid through, your schedule in your own time zone, and every lesson recording in one place.

  11. Concierge

    The 'Owner's Code' diagnostic: an owner answers a set of questions and gets a maturity map of their company — with the option to unpack it in a personal session.

  12. Concierge

    Install the portal on your phone like an app and get push reminders — even on iPhone, even when the messenger is down; email backs up anything critical.

  13. Concierge

    The portal knows its client: it pulls profile and access from the tsalkin.ai 'brain' — the ecosystem's shared client profile.

17 August 2026 today

Ahead

  1. in development

    A mentor who doesn't only answer, but reaches out at the right moment — a nudge, a question, a return to what you agreed.

  2. in development

    One memory of you: whatever you use across the ecosystem, the mentor knows you as one person, not from scratch each time.

  3. in development

    An ever-clearer picture of your growth — not scores, but honest milestones on the way to your goals.

  4. in development

    The mentor beyond Telegram — the same voice and the same memory, now on the web.

  5. Soon

Mentor memory, the knowledge graph and the growth showcase are in active development.

Where the project is heading

What's next for Tsalkin AI — planned functionality from the product's working backlog.

01

A self-serve path to access

From free questions to the programs without manual moderation: hit the limit — get a personalized offer and leave a request right away.

02

AI diagnostics as an entry point

A free self-diagnostic tool for owners — a quick read on the business and its priorities before the first conversation with the bot.

03

Win-back scenarios

Smart reminders on engagement signals: when a question went unanswered or hit a limit, the bot proposes the next step itself.

04

Composable response profiles

Length, style and preset as separate dials. Three tones (standard, tougher, gentler) already ship; profiles will fold them into one setting.

05

End-to-end funnel and metrics

Analytics across the whole path: link click → first question → return → upgrade. To see what actually works instead of guessing.

06

Quality under load

An eval gate before every release, citation-accuracy control and multi-turn dialogue — answers don't degrade as the audience grows.

Plans, not promises: priorities shift as we work with real users.

Under the hood

The architecture, the decisions, and the principles Tsalkin AI is built on.

01

The stack

Python 3.11, uv. FastAPI for the admin API and internal endpoints, aiogram 3.22 for Telegram. SQLAlchemy 2.0 + Alembic (async ORM, 60 migrations). SQLite: bot.db (users, requests, sessions, enrollments) and content.db (video links). Gemini File Search v2 as the main knowledge backend. APScheduler for cron jobs. structlog in JSON. Docker Compose + deploy.sh. The admin UI is Jinja2 + Alpine.js + Tippy.js — three script tags instead of a build pipeline.

02

Adapters for knowledge backends

KnowledgeBaseAdapter is a shared protocol with query() and health_check(). Implementations: NotebookLMAdapter and GeminiFileSearchAdapter. Swapping the backend is one env variable. When the external API became unstable, migration took 2 days instead of 2 weeks — because the Q&A logic didn't know which backend was underneath it.

03

A render layer against name hallucinations

Personal sessions are stored under PART_XXXX codes. Before every LLM stage the codes are swapped for real names in memory only; after the answer, swapped back. Storage stays neutral, the LLM sees human names, nothing extra leaks out. This closes the risk of a model "inventing" a name inside someone else's session.

04

Pre-retrieval metadata filter

A privacy-critical pattern: the client_id filter is applied at retrieval (a native Gemini File Search feature), not after. The LLM physically never receives someone else's chunks — isolation doesn't depend on a well-behaved prompt. Meta-queries like "which sessions do I have?" are answered not by the LLM but by a structured query to the registry — no fact hallucination.

05

Repository pattern: YAML → DB migration

A generic CachedRepo with a TTL+LRU cache and async DB fetch. Concrete repos for access grants, tier-parameter overrides, the audit log, corpus documents. The signature matches a future RedisCache — switching is one line. The old YAML readers don't break: migration goes reader by reader with a 30-day fallback. Evolution instead of a big rewrite.

06

Multi-program enrollments

Tier (the billing and quota plane) and program enrollment (the content-access plane) are separated. "MENTEE" used to mean both. Now a user can be CLIENT by tier with enrollments in several programs. This gives linear scalability to 50+ programs with no code changes.

07

Why Gemini File Search, not Pinecone/Weaviate

One SDK: embeddings and retrieval inside a single client. Native custom_metadata + filtering at retrieval — the foundation of personal-session privacy isolation. For a solo developer, a separate vector service means an extra bill, an extra SDK, an extra source of night-time alerts. Vendor lock-in is contained by the KnowledgeBaseAdapter abstraction: moving means a new interface implementation, not rewriting the bot.

08

By the numbers

Development dynamics: 18 May → 17 August 2026.

82,280
+38,969
Python lines — bot prod code, no tests
was 43,311 now 82,280
20,378
+1,199
HTML/Jinja2 (admin)
was 19,179 now 20,378
2,831 / 351
+2,494 / +305
Tests / test files
was 337 / 46 2,831 / 351
60
+33
Alembic migrations
was 27 now 60
7
External integrations
was 7 7
106
+62
Settings in config
was 44 now 106
134
+36
Command handlers
was 98 now 134
32
+2
Direct dependencies
was 30 now 32
09

Solo-dev principles

A watchdog with a marker pattern instead of PagerDuty: a deploy sets a marker — the alert stays silent; an OOM ignores the marker — the alert always fires. Zero false positives across six deploys in a day. CHANGELOG in sync with every commit — it compensates for the lack of code review. All source-of-truth mutations go through an explicit admin click: surface + friction + record beats doing it silently. The paid eval harness runs only on explicit approval.

Open source

Opening the engine core is a direction for the project (open-core): what isn't proprietary value can be opened to the community. It's an engineering contribution and transparency for partners. The exact open/closed boundary is being worked out.

An AI product of this complexity — RAG, multi-tier, admin panel, eval harness — would, by industry standards, take a team of 12–20 engineers to rebuild in a year: backend, ML/AI, DevOps, QA, product. Tsalkin AI was built by one person in 146 days.

That's my superpower and my mission: to give today what will become widely available tomorrow. Effective solutions with a fraction of yesterday's resources — using knowledge, experience and technology.

2,507 commits. 356 releases. 2,831 automated tests. 125,952 lines of Python across the repository — 82,280 of them the bot's production code, the rest tests and data prep. One person, under five months. This isn't theory — it's already done. Figures taken on 17 August 2026.

— Maxim Tsalkin

Grants and partnerships

The project is open to grant support and technology partnerships: joint pilots, integrations, infrastructure access. At its core is a rare intersection of business practice, mentoring and in-house technology.

Let's talk

If you represent a fund, an accelerator, an SMB bank or a technology company — reach out directly.