500+ коммитов за пять месяцев: как я в одиночку запустил RetroPoint
Пятого апреля 2026 года я начал проверять гипотезу: можно ли собрать работающий MVP SaaS за месяц на подписке Cursor за $20, работая по три-четыре часа четыре вечера в неделю. Через месяц MVP был. Второго сентября я выкатил релиз 2026.09.2, а между этими датами уместились больше 500 коммитов, 61 фаза разработки и семь модулей в проде. По порядку: почему пришлось собирать свой инструмент, как…
On April 5, 2026, the author began testing the hypothesis that they could build a working MVP SaaS within a month on Cursor's $20 subscription plan, working three to four hours on four evenings per week. In one month, they launched the MVP, and between that date and September 2, 2026, over 500 commits, 61 development phases, and seven modules were completed.
The author explains why they had to create their tool, how the technology stack works, how dividing tasks among modules led to such speed, and what didn't work as planned. They note that RetroPoint is their own project, so they're sharing this as a story from a vested party. They also clarify that they are the sole developer, although they aren't starting from scratch.
They hired a designer, Natalia, in December 2022 to work on the retrospection module design, which finished just enough to establish the product's visual language. The author returned to the idea in spring 2026 after advancements in AI models and agents made solo deployment feasible. They used Claude Design and modern AI models to continue the initial system, dropping out the designer and transferring it to other modules.
The author explains why they had to build their own tool after using several for retrospectives, task evaluations, meetings, and personal notes for years. The context was scattered across various services, tables, calendars, chats, and personal notes, requiring manual linking. They were tired of building team processes around tools they didn't control.
Russian services remained unchanged, and they chose a replacement as a team lead, but available products only addressed individual processes and not their integration into a unified workflow. What they lacked was a retrospection that ended with agreements. Attendees would gather, but after fixing decisions, work in their tools typically ended.
Among the three most common process breakdowns in their teams, context dissipation, goal living in tables, meeting in calendars, and agreements in chats, with personal notes separate from everything else. Agreements would disappear. They needed a "meeting, decision, action with responsible party and deadline" system to ensure the next cycle started with what ended the previous one.
The final product consists of seven independent modules: retrospectives with 19 ready techniques, Planning Poker, OKR, 1-on-1 meetings, Performance Reviews, working meetings, and a calendar for holidays including birthdates. What they did and didn't regret: modules are added one at a time, so a non-connected module doesn't appear in the menu, preventing the workspace from being cluttered with unused buttons.
Participants join the public board via a link without registration and without needing a name. The organizer is the only one with an account. Decisions turn into actions with responsible parties, deadlines, and a link to the original meeting. An AI assistant collects topics, prepares summaries, and suggests next steps but only applies them after human confirmation.
Data is stored in Russia, payments are in rubles, and on July 27, the product was registered as an operator of personal data. For some Russian teams, this is a mandatory requirement for a new service. The backend is built on Python 3.12 and FastAPI, with data stored in PostgreSQL 16 via SQLAlchemy 2.0 and Alembic. The layers are standard: api, service, repository, and adapters.
The board updates for all participants via Server-Sent Events (SSE), a PDF is generated with ReportLab, and files are stored in S3-compatible storage. On the frontend, they use React 18 with TypeScript and build with Vite. Drag-and-drop cards use dnd-kit, text fields use TipTap, and charts use ECharts. The infrastructure is simple: Docker Compose, GitLab CI, and VDS on Ubuntu with Nginx.
SEO was the most challenging part of the SPA. The public part of the site lives on the same React-router, and by default, the search robot receives an empty div id=root, which works but is not ideal. To resolve this, they built a second server-side bundle using Vite build --ssr and ran it through all public routes to create a static HTML file alongside the static assets.
They also generate a sitemap.xml from the same data used for the actual pages, ensuring the sitemap matches the site's reality. A separate file, llms.txt, contains a public site map with explicit boundaries for AI agents, indicating where to find current pricing information. This file is not used as an API and cannot be read by a bot's visual inspection, so it has a contract test to ensure it remains accurate.
If pricing changes or module compositions are updated in the code, but llms.txt isn't updated, a contract test will fail, alerting the author to the discrepancy.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.