Own product · 2026
Ohlídáme.
A self-serve SaaS that checks a Czech e-shop against the rules it must follow and explains in plain Czech what to fix. It is my own business: I own the product, the architecture and every decision, and I built it with AI agents.
- Role
- Founder, product and engineering
- Timeline
- Aug 2026 – present
- Sector
- Compliance · Czech e-commerce

- Launch
- 61 days
- First commit to production
- AI agents
- 706 commits
- Of 872, co-authored with Claude
- Coverage
- 10 modules
- Regulations on one crawler
The challenge
Every Czech e-shop answers to a long list of consumer, data and product rules, and the Czech Trade Inspection fines the shops that miss them. A lawyer’s review costs around 30,000 CZK, so a small shop often finds out what it got wrong only when an inspector does.
Ohlídáme reads a shop’s public pages, checks them against selected obligations and says what is missing, which paragraph it comes from and how to fix it. The scan is free. A deeper check for 490 CZK covers 70 products instead of 20 and adds ready-to-use fixes and a signed protocol.
There is no client and no team. I chose the market, set the price, wrote the terms and the privacy records, designed the system and run production. In a company these would be separate chief roles; here they are one person working with AI agents, who wrote most of the code while the decisions stayed with me.
What I owned
Product, business and brand
Set the free-scan funnel, the 490 CZK deep check, refunds and Stripe billing, the plain-speaking brand and the public guides that bring shops in.
Architecture
One crawler and ten regulation modules. A module is a set of pure functions that never fetch anything, and CI fails the build if that boundary is crossed.
Findings owners can trust
A FAIL needs certainty: the right page confirmed and the required element clearly absent. Anything less is advice or an honest “could not tell”, and every finding links to its legal source.
Engineering with AI agents
Ran Claude Code and OpenAI Codex as the engineering team. A domain glossary, 33 decision records and per-package rules keep them consistent; I set the direction, review and answer for the result.
Test strategy
A fictional Test shop with 64 variants, a conformance suite and Playwright journeys against the production images. There is more test code than product code.
Privacy and operations
Anyone can scan a shop, but detail goes only to a verified owner and unclaimed data is deleted after about eight days. Production runs on one self-hosted VPS with monitoring, immutable releases and backup drills.
Architecture
Browsers reach the Next.js web app and Stripe sends webhooks, both through Traefik to the Express API. The API calls pure regulation modules, reads and writes MySQL and enqueues scans in Redis. Scraper workers take jobs from Redis, read public e-shops and return evidence.
Observability: Alloy Prometheus and Loki Grafana. Alertmanager Discord. Umami for analytics.
Stack
- Next.js
- TypeScript
- Express
- Kysely
- MySQL
- Redis
- BullMQ
- Playwright
- Stripe
- Docker
- Traefik
- Grafana
- Claude Code
- OpenAI Codex





