Кейсы под ключTurnkey casesCasos llave en mano

Реальные проекты: сайты, боты и мини-аппы, ИИ-решения и платформы. У каждого — задача, решение и результат. Выберите направление или смотрите все.Real projects: websites, bots and mini-apps, AI solutions and platforms. Each with a task, a solution and a result. Pick a direction or browse all.Proyectos reales: sitios web, bots y mini-apps, soluciones de IA y plataformas. Cada uno con una tarea, una solución y un resultado. Elige una dirección o míralos todos.

ЗадачаTaskTarea → решениеsolutionsolución → результатresultresultado

Отобранные работы с конкретикой — от идеи до боевого запуска и от аудита до сданного документа. Данные клиентов обобщены.Curated work with specifics — from idea to production launch and from audit to delivered document. Client data is generalized.Trabajos seleccionados con concreción — de la idea al lanzamiento y de la auditoría al documento entregado. Los datos de clientes están generalizados.

БотBotBot в продеliveen producción

Kinly: семейный ассистент в Telegram и MAX

ЗадачаTaskTarea

Собственный продукт по идее знакомого: семья должна вводить дела обычным сообщением, а не заполнять приложение. Голос, фото чека, пересланный текст превращаются в задачу, покупку, расход или напоминание нужному человеку.My own product, based on an idea from an acquaintance: a family should enter chores through ordinary messages instead of filling in an app. A voice note, a photo of a receipt or a forwarded text turns into a task, a purchase, an expense or a reminder for the right person.Un producto propio, nacido de la idea de un conocido: una familia debe introducir sus tareas con un mensaje normal en lugar de rellenar una aplicación. Una nota de voz, la foto de un ticket o un texto reenviado se convierten en una tarea, una compra, un gasto o un recordatorio para la persona adecuada.

РешениеSolutionSolución

Бот на aiogram и FastAPI с SQLite в одном процессе, мини-приложение на чистом JS и модели OpenAI для разбора ввода. Переводчик превращает события MAX в обновления Telegram, поэтому один код обслуживает оба мессенджера, а семья может быть смешанной. Есть роли, игра для детей, режим бабушки, расходы, документы и режим «Работа» для небольшой команды.A bot built on aiogram and FastAPI with SQLite in a single process, a mini app in plain JS and OpenAI models to parse input. A translator turns MAX events into Telegram updates, so one codebase serves both messengers and a family can be mixed. It has roles, a game for kids, a grandmother mode, expenses, documents and a Work mode for a small team.Un bot con aiogram y FastAPI y SQLite en un solo proceso, una mini-app en JS puro y modelos de OpenAI para interpretar lo que se escribe. Un traductor convierte los eventos de MAX en actualizaciones de Telegram, así que un mismo código sirve a ambos mensajeros y una familia puede ser mixta. Incluye roles, un juego para niños, un modo abuela, gastos, documentos y un modo Trabajo para un equipo pequeño.

РезультатResultResultado

Работает: адрес отвечает 200, 139 HTTP-методов, 48 таблиц, 11 наборов тестов с 515 проверками без ошибок в прогоне от 02.10.2026. Реальной аудитории и цифр использования нет, тестируют знакомые. Голосовое из MAX с телефона и мини-приложение MAX на телефоне не проверены.It is live: the address returns 200, 139 HTTP methods, 48 tables, and 11 test suites with 515 checks passed with no failures in the run of 2 October 2026. There is no real audience and no usage numbers; acquaintances are testing it. A voice message from MAX on a phone and the MAX mini app on a phone are not verified.Funciona: la dirección responde 200, hay 139 métodos HTTP, 48 tablas y 11 conjuntos de pruebas con 515 comprobaciones sin fallos en la ejecución del 2 de octubre de 2026. No hay audiencia real ni cifras de uso; lo prueban conocidos. No se ha verificado un mensaje de voz desde MAX en un teléfono ni la mini-app de MAX en un teléfono.

PythonaiogramFastAPISQLiteOpenAI APIJS мини-приложение
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma разработаноdevelopeddesarrollado

Ферзь: рабочее место руководителя

ЗадачаTaskTarea

Руководителю небольшого учреждения или бизнеса приходится самому закрывать работу юриста, кадровика, экономиста и закупщика. Нужного специалиста рядом может не оказаться, а ставку под редкие задачи держать дорого. Это мой собственный продукт.The head of a small institution or business often has to do the work of a lawyer, HR officer, economist and procurement specialist alone. The right specialist may not be nearby, and keeping a salary for rare tasks is expensive. This is my own product.El director de una institución pequeña o de un negocio suele tener que hacer solo el trabajo de abogado, jefe de personal, economista y responsable de compras. Puede que no haya el especialista adecuado cerca, y mantener un sueldo para tareas poco frecuentes es caro. Es un producto propio.

РешениеSolutionSolución

Веб-кабинет на FastAPI и SQLite: 30 ролей-специалистов в 5 группах, досье организации, экспресс-проверка из 10 вопросов с суммами штрафов, календарь сроков, 63 сценария, поручения сотрудникам и ответ готовым файлом Word. Персональные данные заменяются метками до отправки в модель, для организаций вне России российские нормы отключаются.A web workspace on FastAPI and SQLite: 30 specialist roles in 5 groups, an organisation file, a 10-question express check with fine amounts, a deadline calendar, 63 scenarios, task assignment to staff and every answer delivered as a ready Word file. Personal data is replaced with tokens before it reaches the model, and for organisations outside Russia the Russian rules are switched off.Un espacio de trabajo web con FastAPI y SQLite: 30 roles de especialistas en 5 grupos, expediente de la organización, comprobación exprés de 10 preguntas con importes de multas, calendario de plazos, 63 escenarios, encargos al personal y cada respuesta entregada como archivo Word listo. Los datos personales se sustituyen por marcas antes de llegar al modelo, y para organizaciones fuera de Rusia se desactivan las normas rusas.

РезультатResultResultado

Сайт работает на своём домене: лендинг, вход и админка отвечают 200, закрытый API без входа отвечает 401. В коде 14 таблиц и 55 маршрутов API, автотестов нет. Платных клиентов не заявляю; по моим заметкам, ответы пока готовит оператор через пульт, на сервере это не перепроверялось.The site is live on its own domain: the landing page, login and admin return 200, and the private API returns 401 without a session. The code has 14 tables and 55 API routes, with no automated tests. I do not claim paying customers; according to my notes, answers are still prepared by an operator through a console, which I did not recheck on the server.El sitio funciona en su propio dominio: la página de inicio, el acceso y el panel de administración responden 200, y la API privada responde 401 sin sesión. El código tiene 14 tablas y 55 rutas de API, sin pruebas automáticas. No afirmo que haya clientes de pago; según mis notas, las respuestas las prepara por ahora un operador desde una consola, algo que no volví a comprobar en el servidor.

FastAPISQLiteJavaScriptpython-docxClaude APInginx
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma разработаноdevelopeddesarrollado

SPACE: платформа готовых решений

ЗадачаTaskTarea

Собственный продукт: платформа, где предприниматель входит через Telegram и сам подключает готовые решения без разработчика. Геймификация бота, рассылки, партнёрка, затем цифровой сотрудник для ответов клиентам.My own product: a platform where a business owner signs in with Telegram and switches on ready-made solutions without a developer. Bot gamification, mailings, a referral program, and later a digital employee that answers customers.Un producto propio: una plataforma donde el dueño de un negocio entra con Telegram y activa soluciones ya hechas sin un desarrollador. Gamificación de bots, envíos masivos, programa de referidos y, más adelante, un empleado digital que responde a los clientes.

РешениеSolutionSolución

Вход через Telegram с серверной проверкой подписи HMAC-SHA256, FastAPI и SQLite с плоской схемой под переезд на PostgreSQL. Модули геймификации и рассылок, партнёрская программа баллами, агент с черновиками и журналом действий без хранения переписки. На корне домена лендинг студии из генератора, русская и английская версии.Telegram sign-in with server-side HMAC-SHA256 signature checks, FastAPI and SQLite with a flat schema that moves to PostgreSQL. Gamification and mailing modules, a points-based referral program, and an agent with drafts and an action log that does not store conversations. The domain root serves the studio landing page, built by a generator in Russian and English.Acceso con Telegram y verificación de la firma HMAC-SHA256 en el servidor, FastAPI y SQLite con un esquema plano que pasa a PostgreSQL sin cambiar la lógica. Módulos de gamificación y envíos, programa de referidos con puntos y un agente con borradores y registro de acciones que no guarda las conversaciones. En la raíz del dominio hay la página de la agencia, generada en ruso e inglés.

РезультатResultResultado

Построено: около 27 000 строк Python, 57 таблиц, 187 маршрутов, 636 проверок без провалов в локальном прогоне. Как кабинет платформа сейчас не работает, корень домена отдаёт лендинг студии, оплаты в платформе нет.Built: about 27,000 lines of Python, 57 tables, 187 routes, 636 checks with no failures in a local run. The platform is not running as a cabinet now; the domain root serves the studio landing page, and the platform has no payments.Construido: unas 27 000 líneas de Python, 57 tablas, 187 rutas y 636 comprobaciones sin fallos en una ejecución local. La plataforma ya no funciona como panel; la raíz del dominio muestra la página de la agencia y la plataforma no tiene pagos.

PythonFastAPISQLiteTelegram LoginnginxPlaywright
Читать разборRead the caseLeer el caso
ИИ-решениеAI solutionSolución IA разработаноdevelopeddesarrollado

MCP-серверы для соцсетей из диалога с ИИ

ЗадачаTaskTarea

Автор ведёт несколько соцсетей и хочет работать с ними из диалога с ИИ: читать входящие, готовить ответы, ставить посты. Главное условие: ИИ не должен писать людям что попало и сколько попало.The author runs several social accounts and wants to work with them from a conversation with an AI: read incoming messages, draft replies, schedule posts. The key requirement is that the AI must not write to people whatever and however much it likes.El autor lleva varias redes sociales y quiere trabajar con ellas desde una conversación con una IA: leer mensajes entrantes, preparar respuestas y programar publicaciones. La condición principal es que la IA no escriba a la gente cualquier cosa ni en cualquier cantidad.

РешениеSolutionSolución

Четыре MCP-сервера на Python: Одноклассники, ТенЧат, ВКонтакте и Postmypost. Чтение свободное, запись через проверку: белый список контактов, лимиты в час и в сутки, пауза, журнал, черновик по умолчанию и пробный прогон рассылки.Four MCP servers in Python: Odnoklassniki, TenChat, VKontakte and Postmypost. Reading is open, writing goes through checks: a contact whitelist, hourly and daily limits, a pause switch, an action log, drafts by default and a dry run for bulk messages.Cuatro servidores MCP en Python: Odnoklassniki, TenChat, VKontakte y Postmypost. La lectura es libre y la escritura pasa por controles: lista blanca de contactos, límites por hora y por día, pausa, registro de acciones, borrador por defecto y simulacro previo en los envíos masivos.

РезультатResultResultado

Собрано 105 инструментов, статусы ТенЧата, ОК и Postmypost и профиль ВКонтакте отвечают на живые запросы. В бою не запущено: отправка в ОК не проверена, доступ ко ВКонтакте закрывался в сентябре, а ТенЧат работает через внутреннее неофициальное API, это риск.Built: 105 tools, and the status calls for TenChat, Odnoklassniki and Postmypost, plus a VKontakte profile read, answer live requests. Not run in production: sending in Odnoklassniki is unverified, VKontakte access was closed for a while in September, and TenChat runs on an internal unofficial API, which is a risk.Construido: 105 herramientas; las consultas de estado de TenChat, Odnoklassniki y Postmypost y la lectura del perfil de VKontakte responden a peticiones reales. No está en producción: el envío en Odnoklassniki no se ha verificado, el acceso a VKontakte estuvo cerrado en septiembre y TenChat funciona con una API interna no oficial, lo que supone un riesgo.

PythonMCP (FastMCP)PlaywrightAPI ВКонтактеAPI Postmypost
Читать разборRead the caseLeer el caso
ИИ-решениеAI solutionSolución IA разработаноdevelopeddesarrollado

Tilda Assistant: помощник для админки

ЗадачаTaskTarea

Рутина в админке Tilda: открыть проект, найти страницу, проверить настройки, снять скриншот. Нужен помощник, который работает под моей сессией и на моих глазах, без передачи пароля облачному сервису.Routine work in the Tilda admin: open a project, find a page, check settings, take a screenshot. I needed a helper that runs under my own session and in plain view, without handing my password to a cloud service.Trabajo rutinario en el panel de Tilda: abrir un proyecto, encontrar una página, revisar ajustes, hacer una captura. Necesitaba un asistente que funcione con mi propia sesión y a la vista, sin entregar mi contraseña a un servicio en la nube.

РешениеSolutionSolución

Локальный инструмент на Python и Playwright: видимое окно Chromium с сохранённым профилем, вход руками, три режима чтения проектов и страниц, три вспомогательных скрипта (аудит публичного сайта, чтение настроек, создание страницы), журнал и скриншоты. Правки ставятся в диалоге с ИИ. Публикацию Tilda принимает только от живого клика, поэтому её нажимает владелец аккаунта.A local tool in Python and Playwright: a visible Chromium window with a saved profile, manual login, three modes for reading projects and pages, and three helper scripts (public-site audit, settings reader, page creation), plus a log and screenshots. Edits are requested in a chat with the AI. Tilda accepts publishing only from a real human click, so the account owner presses it.Una herramienta local en Python y Playwright: una ventana visible de Chromium con perfil guardado, inicio de sesión manual, tres modos para leer proyectos y páginas y tres scripts auxiliares (auditoría de un sitio público, lectura de ajustes, creación de página), además de registro y capturas. Los cambios se piden en un diálogo con la IA. Tilda solo acepta la publicación con un clic humano real, así que la pulsa el propietario de la cuenta.

РезультатResultResultado

Собран личный инструмент: основной скрипт на 275 строк и 3 вспомогательных, пробный аудит публичного сайта клиента прошёл по 14 страницам без ошибок. Автотестов нет, правки контента через скрипты не проверены, перед статьёй инструмент заново не запускался.A personal tool is built: a 275-line main script and 3 helpers, and a trial audit of a client public site ran across 14 pages with no errors. There are no automated tests, content edits through the scripts are not verified, and the tool was not re-run before this write-up.Hay una herramienta personal terminada: un script principal de 275 líneas y 3 auxiliares, y una auditoría de prueba del sitio público de un cliente recorrió 14 páginas sin errores. No hay pruebas automáticas, los cambios de contenido mediante los scripts no están verificados y la herramienta no se volvió a ejecutar antes de este texto.

PythonPlaywrightChromiumpython-dotenvClaude
Читать разборRead the caseLeer el caso
БотBotBot в продеliveen producción

Шагай Наадан: игра в Telegram Mini App

ЗадачаTaskTarea

Свой проект: мини-приложение в Telegram по традиционной бурят-монгольской игре в шагай, которое открывается без установки. Нужны три режима на одной механике броска и уважительное обращение с культурным каноном: без китча и казино-эстетики.My own project: a Telegram mini app for the traditional Buryat-Mongol game of shagai (sheep anklebones) that opens without installing anything. It needed three modes on one dice-throw mechanic and a respectful treatment of the cultural canon, with no kitsch and no casino look.Un proyecto propio: una mini app de Telegram sobre el juego tradicional buriato-mongol del shagai (astrágalos de oveja) que se abre sin instalar nada. Necesitaba tres modos sobre una misma mecánica de lanzamiento y un trato respetuoso del canon cultural, sin folclorismo barato ni estética de casino.

РешениеSolutionSolución

Три режима: ежедневное гадание, дүрбэн бэрхэ (пять раундов с одним перебросом) и конские бега на 12 клеток с ботом. Правила вынесены в чистые функции без React и DOM, бросок идёт через crypto.getRandomValues, кость нарисована SVG, звук синтезируется в браузере, интерфейс на русском, английском и монгольском.Three modes: a daily fortune throw, Durben Berkhe (five rounds with one re-roll) and a 12-cell horse race against a bot. The rules are pure functions with no React or DOM, the throw uses crypto.getRandomValues, the bone is drawn in SVG, sound is synthesized in the browser, and the interface comes in Russian, English and Mongolian.Tres modos: la adivinación diaria, Durben Berkhe (cinco rondas con una sola repetición) y una carrera de caballos de 12 casillas contra un bot. Las reglas son funciones puras sin React ni DOM, el lanzamiento usa crypto.getRandomValues, el hueso está dibujado en SVG, el sonido se sintetiza en el navegador y la interfaz está en ruso, inglés y mongol.

РезультатResultResultado

Страница отвечает 200 по публичному адресу, я прошёл раунд в браузере; 44 из 44 тестов проходят, распределение выпадений тестом не проверено. Серверное сохранение, запуск из Telegram и число игроков не проверены, бурятской локали нет. Это первая версия.The page returns 200 at its public address and I played a round in a browser; 44 of 44 tests pass, but the distribution of throws is not covered by a test. Server-side saving, launching from Telegram and the number of players are not verified, and there is no Buryat interface language. This is a first version.La página responde 200 en su dirección pública y jugué una ronda en el navegador; pasan 44 de 44 pruebas, pero la distribución de los lanzamientos no está cubierta por ninguna prueba. El guardado en el servidor, el lanzamiento desde Telegram y el número de jugadores no están verificados, y no hay idioma buriato en la interfaz. Es una primera versión.

ReactTypeScriptViteTailwindFramer MotionTelegram Mini App
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma в продеliveen producción

Витрина решений: 48 карточек в Telegram-группе

ЗадачаTaskTarea

Нужно место, куда можно отправить любого владельца бизнеса из рилса или поста, чтобы он быстро нашёл свою нишу, цену и пример. Знакомым с окружением нужен простой материал, который можно переслать одним сообщением.A place to send any business owner who comes from a reel or a post, so they can quickly find their niche, a price and an example. Acquaintances with a network needed simple material they can forward in a single message.Un lugar al que enviar a cualquier dueño de negocio que llega desde un reel o una publicación, para que encuentre rápido su nicho, un precio y un ejemplo. Los conocidos con una red de contactos necesitaban un material sencillo que se pueda reenviar en un solo mensaje.

РешениеSolutionSolución

Telegram-группа с темами. 48 карточек по единому шаблону из пяти слайдов 1080×1350, номера K001–K048, 13 тем-ниш и отдельная тема с 16 кейсами. Слайды и подписи собирает генератор на Python, а карта ссылок связывает карточки с кейсами.A Telegram group with topics. 48 cards on one template of five 1080×1350 slides, numbered K001 to K048, 13 niche topics and a separate topic with 16 case studies. A Python generator builds the slides and captions, and a link map ties cards to cases.Un grupo de Telegram con temas. 48 tarjetas con una plantilla única de cinco diapositivas de 1080×1350, numeradas de K001 a K048, 13 temas por nicho y un tema aparte con 16 casos. Un generador en Python crea las diapositivas y los textos, y un mapa de enlaces conecta las tarjetas con los casos.

РезультатResultResultado

Группа открывается, все 77 постов с обложками, карточками и кейсами отвечают на запрос. В карточках 240 слайдов, у 15 есть ссылка на кейс. Число подписчиков, переходов и заявок не измерено.The group opens, and all 77 posts with covers, cards and cases respond to a request. The cards hold 240 slides, and 15 of them link to a case. The number of subscribers, clicks and leads has not been measured.El grupo se abre y las 77 publicaciones con portadas, tarjetas y casos responden a una consulta. Las tarjetas suman 240 diapositivas y 15 enlazan a un caso. El número de suscriptores, clics y solicitudes no se ha medido.

Telegram-группа с темамиPythonPlaywright и EdgeTelegram MCP
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web в продеliveen producción

Сайт врача-косметолога, Петербург

ЗадачаTaskTarea

Врач-косметолог из Петербурга начинает приём в двух коворкингах и не ведёт соцсети. Нужен сайт, где пациент проверит врача, увидит цены и запишется, без форм и лишних данных.A cosmetology doctor from Saint Petersburg is starting practice in two beauty coworkings and does not run social media. She needed a site where a patient can check the doctor, see prices and book, with no forms and no extra data collected.Una médica cosmetóloga de San Petersburgo empieza a atender en dos espacios de coworking de belleza y no lleva redes sociales. Necesitaba un sitio donde el paciente pueda comprobar a la doctora, ver precios y pedir cita, sin formularios ni recogida de datos innecesaria.

РешениеSolutionSolución

Статический сайт на сервере заказчика: прайс с четырьмя вкладками, три авторские программы, галереи кабинетов с маршрутом от метро, политика персональных данных, микроразметка Schema.org, llms.txt, sitemap. Запись через Telegram, без форм и счётчиков. Формулировки про препараты осторожные, номера лицензии на сайте нет.A static site on the client's own server: a four-tab price list, three signature programs, galleries of the two clinics with a route from the metro, a personal data policy, Schema.org markup, llms.txt and a sitemap. Booking goes through Telegram, with no forms or analytics counters. Wording about injectables is cautious, and no license number is shown on the site.Un sitio estático en el servidor del propio cliente: lista de precios con cuatro pestañas, tres programas propios, galerías de los dos consultorios con la ruta desde el metro, política de datos personales, marcado Schema.org, llms.txt y mapa del sitio. La cita se pide por Telegram, sin formularios ni contadores. El texto sobre inyectables es prudente y el sitio no muestra número de licencia.

РезультатResultResultado

Сайт отвечает 200 на собственном домене, первый этап сдан. Заявок и позиций в поиске пока не измерял. Карточки на картах и ИИ-администратор не начаты, ждут материалов врача; лицензия и аккредитация на сайте не подтверждены.The site answers 200 on its own domain and stage one is delivered. Leads and search rankings are not measured yet. Map listings and the AI receptionist have not started and wait for the doctor's materials; the license and accreditation are not confirmed on the site.El sitio responde 200 en su dominio propio y la primera etapa está entregada. Aún no se han medido solicitudes ni posiciones en el buscador. Las fichas en mapas y el administrador con IA no han empezado y esperan los materiales de la doctora; la licencia y la acreditación no están confirmadas en el sitio.

HTML/CSSJavaScriptnginxSchema.orgVPS заказчика
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web в продеliveen producción

Лендинг массажиста с записью и предоплатой

ЗадачаTaskTarea

Частный мастер ручного массажа из села в Забайкальском крае. Нужны лендинг для поиска и запись, где клиент сам видит свободное время и вносит предоплату. Не предупредил за сутки или не пришёл: предоплата остаётся у мастера.A private massage therapist in a village in the Zabaykalsky region. She needed a landing page that people can find in search and a booking flow where the client sees free time and pays a deposit. If the client does not cancel a day ahead or does not show up, the deposit stays with her.Una masajista privada de un pueblo del krai de Zabaikalie. Necesitaba una landing que se encuentre en buscadores y una reserva donde el cliente ve el horario libre y paga un anticipo. Si no avisa con un día de antelación o no se presenta, el anticipo se queda con ella.

РешениеSolutionSolución

FastAPI и SQLite, страницы на чистом HTML, CSS и JS. Календарь окон на 21 день с перерывами между клиентами, удержание времени до предоплаты, отмена по правилу «за 24 часа», панель мастера, абонемент, скидка за приглашённую подругу, лист ожидания и отзывы после проверки. Главная собирается из настроек, есть robots.txt, sitemap.xml и llms.txt.FastAPI and SQLite, pages in plain HTML, CSS and JS. A 21-day calendar of free slots with breaks between clients, a time hold until the deposit is paid, a 24-hour cancellation rule, a therapist panel, a session pass, a discount for a referred friend, a waitlist and reviews published after moderation. The home page is built from settings, with robots.txt, sitemap.xml and llms.txt.FastAPI y SQLite, páginas en HTML, CSS y JS puros. Un calendario de huecos libres a 21 días con pausas entre clientes, retención del horario hasta pagar el anticipo, regla de cancelación de 24 horas, panel de la masajista, bono de sesiones, descuento por amiga invitada, lista de espera y reseñas publicadas tras revisión. La página principal se genera desde los ajustes, con robots.txt, sitemap.xml y llms.txt.

РезультатResultResultado

Сайт отвечает 200 на всех 11 проверенных адресах. Предоплату принимает мастер: перевод по СБП и подтверждение в панели, эквайринга нет. Запись и отмену проверил на локальной копии, на боевом сайте тестовых броней не делал. Напоминания в Telegram написаны, но бот не создан, не проверено.The site returns 200 on all 11 addresses checked. The therapist takes deposits herself: an SBP bank transfer confirmed in her panel, no card acquiring. I tested booking and cancellation on a local copy and made no test bookings on the live site. Telegram reminders are written but the bot has not been created, not verified.El sitio responde 200 en las 11 direcciones comprobadas. La masajista cobra el anticipo ella misma: transferencia por SBP confirmada en su panel, sin cobro con tarjeta. Probé la reserva y la cancelación en una copia local y no hice reservas de prueba en el sitio real. Los recordatorios de Telegram están escritos, pero el bot no se ha creado, no verificado.

FastAPISQLitenginxHTML/CSS/JSСБП
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma в продеliveen producción

PWA совместных закупок с пунктами выдачи

ЗадачаTaskTarea

Организатор совместных закупок собирал заявки в трёх мессенджерах и сводил их руками. Нужна одна ссылка: город, пункт выдачи, заказ, общий лимит позиции на всех, плюс рабочие места закупщика, сборщика и пунктов.An organizer of group buying collected orders in three messengers and merged them by hand. They needed one link: city, pickup point, order, one shared limit per item for everyone, plus workspaces for the buyer, the picker and the pickup points.Un organizador de compras conjuntas recogía pedidos en tres mensajerías y los unía a mano. Necesitaba un solo enlace: ciudad, punto de entrega, pedido, un límite común por producto para todos, y puestos de trabajo para el comprador, el empaquetador y los puntos.

РешениеSolutionSolución

PWA на Node.js и SQLite без сборки фронта: пять ролей команды, заказ в одной транзакции с общим лимитом, живые остатки, посты в каналы городов, взвешивание, расчёт долей, карта пунктов и товар в наличии. Правки в чужом маркетплейсе на общей кодовой базе шли только через два канала: файл стилей по SFTP и консоль темы.A PWA on Node.js and SQLite with no frontend build: five team roles, orders placed in a single transaction against a shared limit, live stock counters, posts to city channels, weighing, share calculation, a map of pickup points and same-day stock. Work on a third-party marketplace built on a shared codebase went through two channels only: a stylesheet over SFTP and a theme console.Una PWA en Node.js y SQLite sin compilación del frontend: cinco roles de equipo, pedido en una sola transacción contra un límite común, existencias en vivo, publicaciones en los canales de cada ciudad, pesaje, cálculo de comisiones, mapa de puntos y producto disponible el mismo día. El trabajo sobre un marketplace ajeno con código base compartido solo pasó por dos vías: una hoja de estilos por SFTP y la consola de temas.

РезультатResultResultado

Работает в бою: на 2 октября публичный адрес отдавал витрину, 9 городов и 6 пунктов в 4 городах. В октябре добавлены надбавка франчайзи, лимит пункта в кг, день выдачи по городу и скрытие каталога после выдачи; проверочных скриптов 16 плюс сквозной тест. Не проверено: MAX, число живых покупателей. Онлайн-оплаты нет.Live: as of 2 October the public address served the storefront, with 9 cities and 6 pickup points in 4 cities. October added a franchisee markup, a per-point limit in kilograms, a per-city pickup day and hiding the catalog after pickup; 16 check scripts plus an end-to-end test. Not verified: MAX posting and the number of real buyers. There is no online payment.En producción: al 2 de octubre la dirección pública mostraba el escaparate, con 9 ciudades y 6 puntos en 4 ciudades. En octubre se añadieron el recargo del franquiciado, el límite por punto en kilos, el día de entrega por ciudad y la ocultación del catálogo tras la entrega; 16 scripts de verificación y una prueba de extremo a extremo. Sin verificar: MAX y el número de compradores reales. No hay pago en línea.

Node.jsExpressSQLitePWATelegramВКонтакте
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma в продеliveen producción

Бронирование боксов для self-storage

ЗадачаTaskTarea

Склад ответственного хранения в Красноярске, 93 бокса в двух ярусах, без штатного администратора. Нужно показывать клиенту схему склада, давать бронировать и оплачивать бокс онлайн, а владельцу видеть занятость, долги и простои.A storage warehouse in Krasnoyarsk with 93 boxes on two tiers and no in-house administrator. Customers should see the floor plan, book and pay for a box online, and the owner should see occupancy, debts and idle boxes.Un almacén de guarda de enseres en Krasnoyarsk, con 93 trasteros en dos niveles y sin administrador propio. El cliente debe ver el plano, reservar y pagar un trastero en línea, y el propietario debe ver la ocupación, las deudas y los trasteros sin uso.

РешениеSolutionSolución

Схема яруса А снята с плана склада, ярус Б условный. Бокс удерживается на 15 минут на время оформления, двойная аренда исключена проверкой в транзакции. Есть кабинет арендатора с продлением и панель владельца с подсказками по загрузке и долгам.The plan of tier A is traced from the warehouse floor plan, tier B is a placeholder layout. A box is held for 15 minutes during checkout, and a transaction-level check rules out double rentals. There is a tenant account with renewals and an owner dashboard with hints on occupancy and debts.El plano del nivel A se trazó a partir del plano del almacén; el nivel B es un esquema provisional. Un trastero se retiene 15 minutos durante el pago y una comprobación dentro de una transacción impide el doble alquiler. Hay una cuenta del inquilino con renovaciones y un panel del propietario con avisos de ocupación y deudas.

РезультатResultResultado

Сначала демо: 7 экранов, 28 эндпоинтов API, 9 таблиц SQLite. С 6 октября 2026 рабочий режим на сервере и домене заказчика: вход по одноразовому коду из SMS, очередь SMS отдельной службой, сторож и резервные копии, бронь ждёт оплату 48 часов. Онлайн-оплата написана, магазин склада не подключён, арендаторов в системе пока нет, автотестов нет.First a demo: 7 screens, 28 API endpoints, 9 SQLite tables. Since 6 October 2026 it runs in production mode on the client server and domain: one-time SMS code sign-in, an SMS queue as a separate service, a watchdog and backups, bookings wait 48 hours for payment. Online payment is coded but the store is not connected yet, there are no tenants in the system yet and no automated tests.Primero una demostración: 7 pantallas, 28 endpoints de API, 9 tablas SQLite. Desde el 6 de octubre de 2026 funciona en modo de producción en el servidor y el dominio del cliente: acceso con código de un solo uso por SMS, cola de SMS como servicio aparte, vigilante y copias de seguridad, la reserva espera el pago 48 horas. El pago en línea está programado pero la tienda aún no está conectada, todavía no hay inquilinos en el sistema ni pruebas automáticas.

PythonFastAPISQLiteJavaScriptSVG-схемаPWA
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma в продеliveen producción

CRM логистической компании с источниками заявок

ЗадачаTaskTarea

Компания возит грузы и автомобили из Китая и Японии, клиенты приходят из ВК, YouTube, Авито, поиска, по рекомендациям и звонят. Нужно было записывать, откуда пришла каждая заявка, вести воронку и не показывать менеджерам чужих клиентов.A company ships cargo and cars from China and Japan; clients come from VK, YouTube, classifieds, search, referrals and phone calls. They needed to record where each lead came from, run a pipeline, and keep managers from seeing other people's clients.Una empresa transporta carga y coches desde China y Japón; los clientes llegan desde VK, YouTube, anuncios, buscadores, recomendaciones y llamadas. Había que registrar de dónde viene cada solicitud, llevar el embudo y evitar que los gestores vean clientes ajenos.

РешениеSolutionSolución

Своя CRM на Node.js и SQLite без внешних пакетов. Два поля: «откуда узнал» и «куда обратился», источник заявки с сайта определяется по UTM, реферера или коду партнёра. Воронка раздвоена на Китай сухопутом и Японию с Кореей морем, у менеджера доступ только к своим заявкам, а уведомления в Telegram и пуши идут без имён и телефонов.A custom CRM on Node.js and SQLite with no external packages. Two fields: "where they heard of us" and "where they contacted us"; the source of a website lead is detected from UTM tags, the referrer or a partner code. The pipeline is split into China by land and Japan and Korea by sea, a manager can only open their own leads, and Telegram and push notifications carry no names or phone numbers.Un CRM propio en Node.js y SQLite sin paquetes externos. Dos campos: "cómo nos conoció" y "dónde nos contactó"; el origen de una solicitud del sitio se detecta por etiquetas UTM, el referente o el código de un socio. El embudo se divide en China por tierra y Japón y Corea por mar, el gestor solo accede a sus propias solicitudes y las notificaciones de Telegram y push no incluyen nombres ni teléfonos.

РезультатResultResultado

Работает в бою: адрес отвечает, код на сервере совпадает с моим, автотесты сервера проходят 49 из 49. Реальной статистики по источникам пока нет, заявки из мессенджеров и ВК сами в CRM не падают, это следующий этап.Live: the address responds, the server code matches mine, and the server test suite passes 49 of 49. There are no real statistics by source yet, and leads from messengers and VK do not reach the CRM on their own; that is the next stage.En funcionamiento: la dirección responde, el código del servidor coincide con el mío y las pruebas del servidor pasan 49 de 49. Todavía no hay estadísticas reales por origen y las solicitudes de mensajeros y VK no llegan solas al CRM; es la siguiente etapa.

Node.jsSQLitePWAWeb PushUTM-метки
Читать разборRead the caseLeer el caso
ДокументDocumentDocumento сданоdeliveredentregado

Заказ такси в MAX и PWA: предложение

ЗадачаTaskTarea

Таксопарк небольшого района города платит ежемесячную подписку за сторонний сервис заказа. Нужен свой канал, где пассажир вызывает машину без установки приложения и без чужой комиссии.A taxi fleet in a small district of a city pays a monthly subscription for a third-party ordering service. They need their own channel where a passenger can call a car without installing an app and without someone else's commission.Una flota de taxis de un distrito pequeño de una ciudad paga una suscripción mensual por un servicio de pedidos de terceros. Necesita un canal propio donde el pasajero pida un coche sin instalar ninguna aplicación y sin la comisión de otro.

РешениеSolutionSolución

Предложение с двумя входами на одной базе: витрина заказа в боте MAX и PWA на экране телефона. Презентация на 14 слайдов, коммерческое предложение на 2 страницы (PDF и Word) и кликабельное демо: 6 экранов пассажира и телефон диспетчера, связанные вживую. Кабинет водителя, карта, оплата картой и бонусы вынесены в отдельные модули.A proposal with two entry points on one database: an ordering storefront inside a MAX bot and a PWA on the phone screen. A 14-slide presentation, a 2-page commercial proposal (PDF and Word) and a clickable demo: 6 passenger screens and a dispatcher phone linked live. A driver app, a live map, card payment and bonuses are split out as separate modules.Una propuesta con dos puntos de entrada sobre una misma base de datos: un escaparate de pedidos dentro de un bot de MAX y una PWA en la pantalla del teléfono. Una presentación de 14 diapositivas, una propuesta comercial de 2 páginas (PDF y Word) y una demo interactiva: 6 pantallas del pasajero y el teléfono del despachador conectados en vivo. La app del conductor, el mapa en vivo, el pago con tarjeta y las bonificaciones quedan como módulos aparte.

РезультатResultResultado

Предложение, презентация и демо отданы заказчику. Решение клиента и запуск ещё не состоялись, реальных заказов в системе не было; допущения про тарифы, диспетчера и MAX у пассажиров не проверены.The proposal, presentation and demo were handed to the client. The client's decision and the launch have not happened yet, and there have been no real orders; assumptions about tariffs, the dispatcher and MAX among passengers are unverified.La propuesta, la presentación y la demo se entregaron al cliente. La decisión del cliente y el lanzamiento aún no han ocurrido y no ha habido pedidos reales; las suposiciones sobre tarifas, el despachador y MAX entre los pasajeros no están verificadas.

MAXPWAHTMLPlaywrightWord
Читать разборRead the caseLeer el caso
ДокументDocumentDocumento сданоdeliveredentregado

PWA автошколы: учёт часов вождения

ЗадачаTaskTarea

Владелец небольшой автошколы хотел приложение на пять ролей: руководитель, администратор, преподаватель, инструктор и ученик. Главная боль: учёт часов практического вождения (по запросу клиента, 56 часов до экзамена) и контроль, что инструкторы работают честно.The owner of a small driving school wanted one app for five roles: manager, administrator, theory teacher, driving instructor and student. The main pain was tracking practical driving hours (56 hours before the exam, per the client's request) and making sure instructors do their job.El dueño de una autoescuela pequeña quería una sola aplicación para cinco roles: director, administrador, profesor de teoría, instructor de conducción y alumno. El problema principal era llevar el control de las horas de conducción práctica (56 horas antes del examen, según lo pedido por el cliente) y asegurarse de que los instructores trabajan como deben.

РешениеSolutionSolución

Коммерческое предложение на двух страницах: PWA с отдельным кабинетом для каждой роли, учёт часов с отметкой инструктора и подтверждением учеником, экран руководителя по каждому инструктору (часы, отмены, оценки, сдача с первого раза), видеоуроки, тесты и билеты в формате экзамена ГИБДД.A two-page commercial proposal: a PWA with a separate workspace for each role, hours tracking where the instructor logs a lesson and the student confirms it, a manager screen per instructor (hours, cancellations, ratings, first-time exam pass rate), video lessons, tests and exam-style traffic rules tickets.Una propuesta comercial de dos páginas: una PWA con un espacio propio para cada rol, registro de horas en el que el instructor anota la clase y el alumno la confirma, una pantalla del director por instructor (horas, cancelaciones, valoraciones, aprobados a la primera) y, además, videolecciones, tests y preguntas de examen de normas de tráfico.

РезультатResultResultado

Предложение отдано в двух вариантах PDF. Решения клиента нет, реализации и запуска не было, число 56 часов по официальному источнику не сверялось. Открытые вопросы и допущения записаны в предложении.The proposal was delivered as two PDF versions. The client has not made a decision, nothing was built or launched, and the 56-hour figure was not checked against an official source. Assumptions and open questions are written into the proposal.La propuesta se entregó en dos versiones PDF. El cliente aún no ha tomado una decisión, no se ha desarrollado ni lanzado nada, y la cifra de 56 horas no se contrastó con una fuente oficial. Los supuestos y las preguntas abiertas figuran en la propuesta.

PWAРоли и права доступаУчёт занятийВидеоуроки и тесты
Читать разборRead the caseLeer el caso
ДокументDocumentDocumento сданоdeliveredentregado

Возврат домена у бывшего разработчика

ЗадачаTaskTarea

Домен сайта образовательной организации с 2013 года записан на частное лицо, бывшего разработчика, который живёт за границей и отказался заниматься передачей. Сайт и хостинг у организации есть, прав администратора домена нет.Since 2013 the domain of an educational organisation's website has been registered to a private person, the former developer, who lives abroad and refused to handle a transfer. The organisation holds the site and hosting but not the domain administrator rights.Desde 2013 el dominio del sitio web de una organización educativa está registrado a nombre de una persona física, el antiguo desarrollador, que vive en el extranjero y se negó a encargarse del traspaso. La organización tiene el sitio y el hosting, pero no los derechos de administrador del dominio.

РешениеSolutionSolución

Выяснил, что товарный знак домен не защищает, и выбрал путь добровольной передачи, а суд оставил запасным. Собрал пакет из шести документов и папки доказательств: претензия, инструкция и образец заявления для администратора, справка для юриста, письмо регистратору, план действий, снимки реестра и сайта с контрольными суммами.I established that the trademark does not protect the domain, chose a voluntary transfer as the main route and kept a lawsuit as the fallback. I assembled a package of six documents and an evidence folder: a claim letter, instructions and a sample application for the administrator, a brief for a lawyer, a letter to the registrar, an action plan, and registry and site snapshots with checksums.Determiné que la marca registrada no protege el dominio, elegí el traspaso voluntario como vía principal y dejé la demanda judicial como alternativa. Preparé un paquete de seis documentos y una carpeta de pruebas: reclamación, instrucciones y modelo de solicitud para el administrador, informe para el abogado, carta al registrador, plan de acción e instantáneas del registro y del sitio con sumas de verificación.

РезультатResultResultado

Пакет готов и отдан заказчику. Возврат домена не подтверждён, юрист пакет не проверял, а часть ссылок на правила регистратора при сверке разошлась с действующей редакцией и требует правки.The package is ready and handed to the client. The domain has not been recovered, no lawyer has reviewed the package, and some references to registrar rules did not match the current edition when checked and need correcting.El paquete está listo y entregado al cliente. El dominio no se ha recuperado, ningún abogado ha revisado el paquete y algunas referencias a las reglas del registrador no coincidían con la edición vigente al comprobarlas y deben corregirse.

правила регистрации доменовпретензионная работадокументы Wordфиксация доказательств
Читать разборRead the caseLeer el caso
ДокументDocumentDocumento сданоdeliveredentregado

Предложение и макет PWA для кафе

ЗадачаTaskTarea

Владелец небольшого этно-кафе с двумя точками: касса есть, системы вокруг неё нет. Нужно предложение на аналитику продаж из ОФД, склад по техкартам и бота с розыгрышами в MAX, а также показ приложения для гостей.The owner of a small ethnic-cuisine cafe with two locations: a cash register is in place, but nothing around it. They needed a proposal for sales analytics from fiscal data, stock control by recipe cards and a MAX bot with prize draws, plus a look at an app for guests.El dueño de un pequeño café de cocina étnica con dos locales: tiene caja registradora, pero nada a su alrededor. Necesitaba una propuesta de analítica de ventas a partir de los datos fiscales, control de almacén por fichas técnicas y un bot en MAX con sorteos, además de una muestra de la aplicación para los clientes.

РешениеSolutionSolución

Коммерческое предложение на один лист с тремя блоками и тремя этапами с оплатой по мере готовности. Презентация гостевого PWA: 6 слайдов, 7 экранов макета (главная, меню, оформление, статус заказа, карта гостя, розыгрыш, профиль), на последнем слайде условия работы с предоплатой до старта.A one-page commercial proposal with three blocks and three stages, paid as each one is ready. A guest PWA presentation: 6 slides and 7 mockup screens (home, menu, checkout, order status, guest card, prize draw, profile), with the working terms, including prepayment before start, on the last slide.Una propuesta comercial de una página con tres bloques y tres etapas, que se paga a medida que cada una está lista. Una presentación del PWA para clientes: 6 diapositivas y 7 pantallas de maqueta (inicio, menú, pedido, estado del pedido, tarjeta del cliente, sorteo, perfil), con las condiciones de trabajo, incluido el pago anticipado antes de empezar, en la última diapositiva.

РезультатResultResultado

Предложение и презентация отданы. Макеты статичные, кликабельного прототипа и рабочего кода нет. Решение заказчика и запуск пока не состоялись, ничего не внедрено.The proposal and the presentation were handed over. The mockups are static, with no clickable prototype and no working code. The client has not decided yet and nothing has launched; nothing was implemented.La propuesta y la presentación se entregaron. Las maquetas son estáticas, sin prototipo clicable ni código funcional. El cliente aún no ha decidido y no hubo lanzamiento; no se implementó nada.

HTML и CSSPlaywrightPDFPWA (макет)
Читать разборRead the caseLeer el caso
ДокументDocumentDocumento сданоdeliveredentregado

КП для гостиницы на двух языках

ЗадачаTaskTarea

Владелица небольшой гостиницы на 15 номеров и лапшичной рядом, большинство гостей из Китая. Нужна своя система учёта без подписок, контроль издалека и больше российских командировочных.The owner of a small 15-room hotel with a noodle restaurant next door, most guests from China. She needed her own management system without subscriptions, control from a distance and more Russian business travelers.La propietaria de un pequeño hotel de 15 habitaciones con un restaurante de fideos al lado, con la mayoría de los huéspedes procedentes de China. Necesitaba un sistema propio de gestión sin suscripciones, control a distancia y más viajeros de negocios rusos.

РешениеSolutionSolución

Короткое КП на один лист на русском и китайском и расширенное на два листа: шахматка и брони, иностранные гости, уборка и персонал, панель владелицы на двух языках, партнёрская программа через бот в MAX и Telegram. Китайскую версию собирает скрипт из русской вёрстки.A one-page proposal in Russian and Chinese and an extended two-page version: room chart and bookings, foreign guests, housekeeping and staff, an owner dashboard in two languages, and a referral program through a bot in MAX and Telegram. A script builds the Chinese version from the Russian layout.Una propuesta corta de una página en ruso y chino y una versión ampliada de dos páginas: plano de habitaciones y reservas, huéspedes extranjeros, limpieza y personal, un panel de la propietaria en dos idiomas y un programa de recomendación mediante un bot en MAX y Telegram. Un script genera la versión china a partir del diseño en ruso.

РезультатResultResultado

Отдано три PDF: два коротких (русский и китайский) и расширенное только на русском. Перевод не проверен носителем, цена не утверждена, решения клиента нет, система не написана и не запущена.Three PDFs delivered: two short ones (Russian and Chinese) and the extended one in Russian only. The translation has not been checked by a native speaker, the price is not approved, the client has not decided, and the system has not been built or launched.Se entregaron tres PDF: dos cortos (ruso y chino) y el ampliado solo en ruso. La traducción no ha sido revisada por un hablante nativo, el precio no está aprobado, el cliente aún no ha decidido y el sistema no se ha construido ni lanzado.

HTML и CSSPythonPlaywrightPDFКитайский перевод
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web в продеliveen producción

Каталог косметики: витрина, разделы и связь с кассой

ЗадачаTaskTarea

Сеть магазинов косметики, сайт на конструкторе. Каталог был заполнен, а витрина показывала демо-товары с ценами в долларах. Нужны были меню по типу средства, фильтр по бренду и остатки из кассовой системы.A chain of cosmetics shops with a site on a website builder. The catalogue was filled in, yet the storefront showed the builder demo products priced in dollars. They needed a menu by product type, a brand filter and stock levels from the till system.Una cadena de tiendas de cosmética con la web en un constructor. El catálogo estaba lleno, pero la tienda mostraba productos de demostración con precios en dólares. Hacían falta un menú por tipo de producto, un filtro por marca y el stock desde el sistema de caja.

РешениеSolutionSolución

Нашёл две причины пустой витрины: у блока магазина стоял источник «каталог-пример», а все 591 товар были поштучно выключены в видимости; валюту перевёл в рубли. Товары разметил скриптом-классификатором и загрузил обратно CSV-импортом. Кассу связал с сайтом по CommerceML без платного складского сервиса, после первой выгрузки сопоставил карточки кассы со старыми по названиям. Массовое включение и выключение товаров — скриптом на странице конструктора; публикацию платформа принимает только от живого клика, поэтому кнопку жмёт владелец.I found two causes of the empty storefront: the shop block was pointed at the "sample catalogue" source, and all 591 products had been switched off one by one; the currency was moved to roubles. Products were tagged by a classifier script and loaded back via CSV import. The till was linked to the site over CommerceML without a paid inventory service, and after the first export its cards were matched to the old ones by name. Bulk show and hide runs as a script on the builder page; the platform accepts publishing only from a real human click, so the owner presses the button.Encontré dos causas de la tienda vacía: el bloque de tienda usaba la fuente «catálogo de ejemplo» y los 591 productos estaban ocultos uno por uno; la moneda pasó a rublos. Los productos se clasificaron con un script y se cargaron de nuevo por importación CSV. La caja se conectó a la web por CommerceML sin un servicio de inventario de pago y, tras la primera exportación, sus fichas se emparejaron con las antiguas por nombre. Mostrar y ocultar en masa se hace con un script en la página del constructor; la plataforma solo acepta publicar con un clic humano, así que el botón lo pulsa el dueño.

РезультатResultResultado

25 разделов по типу средства и фильтр «Бренд»; второй раздел по типу получили 247 из 248 брендовых товаров, бренд заполнен у 394 из 591. Сопоставлено 356 пар (286 точно, 70 по близости), на 560 карточек кассы добавлены раздел и бренд; на витрине 853 товара, 640 из них синхронизируются с кассой. Не проверено: передача остатков — две ручные выгрузки дали «Обновлено: 0», автоотправка ещё не включена.25 sections by product type and a Brand filter; 247 of 248 branded products got a second section by type, and the brand is filled for 394 of 591. 356 pairs matched (286 exact, 70 by similarity), section and brand added to 560 till cards; the storefront holds 853 products, 640 of them synced with the till. Not verified yet: stock transfer — two manual exports returned "Updated: 0", and automatic sending is not switched on.25 secciones por tipo de producto y filtro «Marca»; 247 de 248 productos de marca recibieron una segunda sección por tipo, y la marca está rellena en 394 de 591. Se emparejaron 356 pares (286 exactos, 70 por similitud) y se añadieron sección y marca a 560 fichas de caja; la tienda muestra 853 productos, 640 sincronizados con la caja. Sin verificar: la transferencia de stock — dos exportaciones manuales dieron «Actualizado: 0» y el envío automático aún no está activado.

конструктор сайтовCommerceMLCSV-импортPythonJavaScript
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma в продеliveen producción

Сайт, боты и админка для национального театра

ЗадачаTaskTarea

Национальный театр много лет жил на конструкторе и накопил там большой архив. Нужно было уйти с конструктора, не потеряв ни новостей, ни ссылок, дать театру свой канал со зрителями и соблюсти 152-ФЗ и 41-ФЗ.A national theatre had lived on a website builder for years and built up a large archive there. The job was to leave the builder without losing a single news item or link, give the theatre its own channel to its audience, and comply with Russian personal-data law (152-FZ) and the messenger law (41-FZ).Un teatro nacional llevaba años en un constructor de sitios y había acumulado allí un gran archivo. Había que salir del constructor sin perder noticias ni enlaces, dar al teatro su propio canal con el público y cumplir la ley rusa de datos personales (152-FZ) y la de mensajería (41-FZ).

РешениеSolutionSolución

Статический генератор на Jinja2 и сервер на FastAPI. Афиша сама пересобирается из билетного сервиса, киноафиша раз в неделю генерируется картинкой, есть страницы на английском, китайском и монгольском. Один код ботов для MAX и Telegram с мини-приложением, админка с рассылками, приёмом материалов от сотрудников и спам-фильтром формы. Метрика запускается только после согласия, шрифты свои, согласие хранится с версией текста; по 41-ФЗ со зрителями общается только бот в MAX; подготовлен пакет из 14 документов по персональным данным, памятка и чек-лист директора.A static generator on Jinja2 with a FastAPI server. The playbill rebuilds itself from the ticketing service, the cinema listing is rendered as an image once a week, and there are pages in English, Chinese and Mongolian. One bot codebase serves MAX and Telegram, with a mini app, plus an admin panel for broadcasts, staff submissions and a spam filter on the form. Analytics start only after consent, fonts are self-hosted, and consent is stored with the text version; under 41-FZ only the MAX bot talks to the audience; a set of 14 personal-data documents, a memo and a director checklist were prepared.Un generador estático en Jinja2 con servidor en FastAPI. La cartelera se reconstruye sola desde el servicio de venta de entradas, la cartelera de cine se genera como imagen una vez por semana y hay páginas en inglés, chino y mongol. Un mismo código de bots para MAX y Telegram, con mini app, y un panel con envíos masivos, recepción de materiales del personal y filtro antispam del formulario. La analítica arranca solo tras el consentimiento, las fuentes son propias y el consentimiento se guarda con la versión del texto; según la 41-FZ solo el bot de MAX habla con el público; se preparó un paquete de 14 documentos sobre datos personales, una guía y una lista de control para la dirección.

РезультатResultResultado

Перенесено 735 новостей, 8 постановок и добавлена ещё одна, труппа из 47 человек и 38 документов, из них 35 на своём сервере. Старые адреса отдают 301, домен запущен 19.09.2026. Сторож проверяет сайт каждые 5 минут, бэкап делается ежедневно с проверкой целостности.735 news items, 8 productions plus one new one, a company of 47 and 38 documents were moved, 35 of them onto our own server. Old URLs return 301, and the domain went live on 19.09.2026. A watchdog checks the site every 5 minutes, and a daily backup is verified for integrity.Se trasladaron 735 noticias, 8 obras más una nueva, una compañía de 47 personas y 38 documentos, 35 de ellos en servidor propio. Las direcciones antiguas devuelven 301 y el dominio se lanzó el 19.09.2026. Un vigilante revisa el sitio cada 5 minutos y la copia diaria se verifica por integridad.

Jinja2FastAPIMAX Bot APITelegram Bot APIмини-приложение
Читать разборRead the caseLeer el caso
БотBotBot в продеliveen producción

Бот спортивной аналитики с честным бэктестом

ЗадачаTaskTarea

Заказчику нужен был бот, который считает вероятности исходов матчей, ищет цену лучше линии, раскладывает бюджет по экспрессу на 15 матчей и ведёт банк с журналом. До интерфейса нужно было ответить на главный вопрос: умеет ли модель что-то, чего не умеет рынок.The client wanted a bot that estimates match outcome probabilities, looks for prices better than the line, splits a budget across a 15-match accumulator and keeps a bankroll and a log. Before any interface, the key question was whether the model knows anything the market does not.El cliente quería un bot que calculara probabilidades de resultados de partidos, buscara precios mejores que la línea, repartiera un presupuesto en una combinada de 15 partidos y llevara banca y registro. Antes de la interfaz había que responder a la pregunta clave: si el modelo sabe algo que el mercado no sabe.

РешениеSolutionSolución

Собрал модель на Python на одной стандартной библиотеке, на открытых данных по футболу, НХЛ и КХЛ. Проверял бэктестом по времени — обучение только на прошлом — и сравнением с коэффициентами закрытия и консенсусом нескольких контор. Добавил режим «уверенные прогнозы», живого оператора с консолью ответов и вход по кодовому слову.I built the model in Python on the standard library alone, using open data for football, the NHL and the KHL. It was tested with a time-based backtest — training only on the past — and against closing odds and a consensus of several bookmakers. On top: a confident-picks mode, a live operator with a reply console and code-word access.Construí el modelo en Python solo con la biblioteca estándar, con datos abiertos de fútbol, la NHL y la KHL. Lo validé con un backtest temporal — entrenamiento solo con el pasado — y comparándolo con las cuotas de cierre y el consenso de varias casas. Añadí un modo de pronósticos seguros, un operador en vivo con consola de respuestas y acceso por palabra clave.

РезультатResultResultado

На 4150 матчах модель угадала 51,3% против 47,3% у правила «всегда хозяева», но на 9911 матчах линия контор точнее: 53,8% против 51,5%. Продукт перестроен с угадывания на поиск лучшей цены — на истории это дало +7% ROI, а одинарные при уверенности от 60% попали в 74,6% из 594 случаев. Бэктест — история, а не гарантия; первый живой пользователь нашёл 3 ошибки, все закрыты в тот же час.On 4,150 matches the model hit 51.3% versus 47.3% for always picking the home side, but on 9,911 matches the market line is more accurate: 53.8% versus 51.5%. The product was rebuilt from guessing outcomes to finding better prices — +7% ROI on historical data — and singles at 60%+ model confidence hit 74.6% across 594 cases. A backtest is history, not a guarantee; the first live user found 3 bugs, all fixed within the hour.En 4150 partidos el modelo acertó el 51,3% frente al 47,3% de apostar siempre al local, pero en 9911 partidos la línea del mercado es más precisa: 53,8% frente a 51,5%. El producto pasó de adivinar resultados a buscar mejores precios, con un ROI del +7% en datos históricos, y las simples con confianza del 60% o más acertaron el 74,6% en 594 casos. Un backtest es historia, no garantía; el primer usuario real encontró 3 errores, corregidos en la misma hora.

Pythonстандартная библиотекабэктест по времениоткрытые данныеконсоль оператора
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web международныйinternationalinternacional в продеliveen producción

Двуязычный сайт компании из ОАЭ

ЗадачаTaskTarea

Компания из свободной зоны ОАЭ. Нужен официальный сайт на двух языках, который не выглядит сделанным ИИ и хорошо работает на телефоне.A company from a UAE free zone. It needed an official bilingual website that does not look AI-made and works well on a phone.Una empresa de una zona franca de los EAU. Necesitaba una web oficial bilingüe que no pareciera hecha por IA y funcionara bien en el móvil.

РешениеSolutionSolución

Статический сайт со сборкой скриптом build.py и формой заявок. Редизайн с антиквой, палитрой из логотипа и GSAP-анимацией: силуэт небоскрёбов из 92 столбиков и отдельная хореография для мобильных. SEO и GEO: schema.org, FAQ, llms.txt, hreflang, свои шрифты; английская версия стала основной, старый адрес /en/ отдаёт 301.A static site built by a build.py script, with an enquiry form. A redesign with a serif typeface, a palette taken from the logo and GSAP animation: a skyline of 92 bars and a separate choreography for mobile. SEO and GEO: schema.org, FAQ, llms.txt, hreflang, self-hosted fonts; the English version became the main one, and the old /en/ address returns a 301.Una web estática generada con el script build.py y con formulario de solicitudes. Rediseño con tipografía serif, paleta tomada del logotipo y animación GSAP: un perfil de rascacielos de 92 barras y una coreografía propia para móvil. SEO y GEO: schema.org, FAQ, llms.txt, hreflang, fuentes propias; la versión en inglés pasó a ser la principal y la antigua dirección /en/ devuelve un 301.

РезультатResultResultado

Контраст WCAG AA у всех 180 текстовых элементов, axe без нарушений, нет горизонтального скролла начиная с ширины 280px. LCP 0,25 с на десктопе и 1,25 с на медленном 4G, сертификат Let's Encrypt. В проде с 15.09.2026.WCAG AA contrast on all 180 text elements, zero axe violations, no horizontal scroll from 280px wide. LCP 0.25 s on desktop and 1.25 s on slow 4G, Let's Encrypt certificate. Live since 15.09.2026.Contraste WCAG AA en los 180 elementos de texto, axe sin infracciones, sin scroll horizontal desde 280px de ancho. LCP de 0,25 s en escritorio y 1,25 s en 4G lento, certificado Let's Encrypt. En producción desde el 15.09.2026.

статический сайтPython (build.py)GSAPschema.orgLet's Encrypt
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web в продеliveen producción

Инструменты для партнёров турклуба

ЗадачаTaskTarea

Туристический клуб растёт через партнёрскую сеть, а партнёры пишут в том числе холодным контактам. Нужно было дать им поводы начать разговор вместо голой ссылки на сайт.A travel club grows through a partner network, and partners also write to cold contacts. The job was to give them reasons to start a conversation instead of sending a bare link to a website.Un club de viajes crece a través de una red de socios, que también escriben a contactos en frío. Había que darles motivos para iniciar una conversación en lugar de enviar un enlace suelto a una web.

РешениеSolutionSolución

На своей платформе chimitdorzhi.space сделал тест «Какой вы путешественник» (6 вопросов, 4 типа) и пять инструментов: «угадай цену», подбор поездки по месяцу, открытку 1080×1920, тренажёр возражений и калькулятор окупаемости. У каждого партнёра личная ссылка ?p=, в конце человек возвращается в чат к тому, кто её прислал; ответы теста никуда не отправляются. Каталог собирается скриптом с пересчётом по курсу ЦБ.On my own platform, chimitdorzhi.space, I built a "What kind of traveller are you" quiz (6 questions, 4 types) and five tools: guess the price, a trip picker by month, a 1080×1920 card, an objection-handling trainer and a payback calculator. Every partner gets a personal ?p= link, and at the end the person is sent back to the chat with whoever shared it; quiz answers are not sent anywhere. The catalogue is built by a script that converts prices at the Central Bank rate.En mi propia plataforma, chimitdorzhi.space, creé el test «Qué tipo de viajero eres» (6 preguntas, 4 tipos) y cinco herramientas: adivina el precio, selector de viaje por mes, una postal de 1080×1920, un entrenador de objeciones y una calculadora de rentabilidad. Cada socio tiene su enlace personal ?p=, y al final la persona vuelve al chat con quien se lo envió; las respuestas del test no se envían a ninguna parte. El catálogo lo genera un script que convierte los precios al tipo del Banco Central.

РезультатResultResultado

В каталоге 62 тура, личные ссылки получили 16 партнёров, сценарии проверены на ширине 390 px. Первый отзыв партнёра на «угадай цену»: реальная цена цепляет, но голую ссылку не открывают. Вывод — к каждому инструменту готовая фраза-подводка.The catalogue holds 62 tours, 16 partners received personal links, and every flow was checked at a 390 px width. The first partner feedback on guess the price: the real price hooks people, but nobody opens a bare link. The takeaway — every tool now comes with a ready opening line.El catálogo reúne 62 viajes, 16 socios recibieron enlaces personales y todos los flujos se comprobaron a 390 px de ancho. La primera opinión de un socio sobre adivina el precio: el precio real engancha, pero nadie abre un enlace suelto. La conclusión: cada herramienta lleva ahora una frase de entrada lista para usar.

chimitdorzhi.spaceперсональные ссылкискрипт сборки каталогакурс ЦБмобильная вёрстка
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma разработаноdevelopeddesarrollado

Паллетный учёт на ТСД рядом с 1С

ЗадачаTaskTarea

Оптовик мясной продукции, 7 терминалов сбора данных на Android. Нужен учёт паллет: приёмка фуры, формирование, разделение и расформирование, отгрузка целыми паллетами и россыпью. Товарный учёт в 1С УТ не трогаем.A wholesale meat distributor with 7 Android data-collection terminals. They needed pallet tracking: unloading a truck, building, splitting and breaking down pallets, shipping whole pallets and loose boxes. Stock accounting in 1C stays untouched.Un mayorista de carne con 7 terminales de captura de datos Android. Necesitaba el control de palés: recepción del camión, formación, división y deshecho de palés, envío de palés completos y de cajas sueltas. La contabilidad de mercancía en 1C no se toca.

РешениеSolutionSolución

Приложение на Flutter и расширение паллетного учёта для 1С УТ с HTTP-сервисом для терминалов. Сканирование GS1-128 и EAN плюс ручной ввод веса, этикетка 100×150 с QR, запрет отгружать вместе паллеты разных организаций. В октябре добавились режим килограммов, россыпь, перемещение в два этапа и статусы заданий для ТСД.A Flutter app plus a pallet-tracking extension for 1C with an HTTP service for the terminals. GS1-128 and EAN scanning plus manual weight entry, a 100×150 label with a QR code, and a rule that pallets of different companies cannot ship together. In October came a kilogram mode, loose stock, two-step transfers and task statuses for the terminals.Una app en Flutter y una extensión de control de palés para 1C con un servicio HTTP para los terminales. Escaneo de GS1-128 y EAN más introducción manual del peso, etiqueta de 100×150 con QR y la regla de no enviar juntos palés de empresas distintas. En octubre llegaron el modo por kilos, la mercancía suelta, el traslado en dos pasos y los estados de tareas para los terminales.

РезультатResultResultado

Расширение 1С 2.4.0 и приложение 1.4.0 стоят на сервере заказчика с копией рабочей базы, сценарии прогнаны через эмулятор терминала. 11 наборов автотестов 1С, 103 теста приложения. На живом складе пока нет, запуск назначен на 26 октября.The 1C extension 2.4.0 and app 1.4.0 run on the client server against a copy of the live database; the scenarios were run through a terminal emulator. 11 1C test suites and 103 app tests. Not on the live warehouse yet; launch is set for 26 October.La extensión 2.4.0 de 1C y la app 1.4.0 funcionan en el servidor del cliente con una copia de la base real; los escenarios se probaron en un emulador de terminal. 11 conjuntos de pruebas de 1C y 103 pruebas de la app. Aún no está en el almacén real; el arranque está previsto para el 26 de octubre.

FlutterAndroidHTTP-сервис 1СGS1-128EAN
Читать разборRead the caseLeer el caso
АудитAuditAuditoría сданоdeliveredentregado

Аудит сайта по закону о персональных данных

ЗадачаTaskTarea

Проверить сайт учреждения культуры на соответствие закону о персональных данных. Формально на сайте было всё: политика, баннер про cookie, кнопка отказа — вопрос был в том, как он ведёт себя на самом деле.To check a cultural institution website against Russian personal data law. On paper everything was there — a privacy policy, a cookie banner, a reject button; the question was how the site actually behaves.Revisar la web de una institución cultural conforme a la ley rusa de datos personales. Sobre el papel estaba todo: política de privacidad, banner de cookies, botón de rechazo; la cuestión era cómo se comporta la web en realidad.

РешениеSolutionSolución

Чистый профиль браузера, запись сетевых запросов и cookie до и после согласия, отдельная проверка отказа, сверка политики с фактическим поведением сайта. Каждая находка подтверждена скриншотом и журналом сетевых запросов.A clean browser profile, recording network requests and cookies before and after consent, a separate test of the reject option, and a comparison of the policy with what the site really does. Every finding is backed by a screenshot and the network request log.Perfil de navegador limpio, registro de peticiones de red y cookies antes y después del consentimiento, prueba aparte del rechazo y cotejo de la política con el comportamiento real del sitio. Cada hallazgo está respaldado por una captura de pantalla y el registro de red.

РезультатResultResultado

Сдан отчёт на 13 страниц. Два критичных нарушения: Метрика с Вебвизором и отраслевой счётчик запускаются до согласия — 12 cookie через 4 секунды после входа, а отказ ничего не меняет. Ещё шесть, включая избыточный перечень данных и передачу IP-адресов через Cloudflare (США). Не проверены реестр операторов РКН и отправка формы; итоговая оценка рисков — за юристом.Delivered as a 13-page report. Two critical violations: Yandex Metrica with session replay and an industry counter start before consent — 12 cookies within 4 seconds of arrival — and rejecting cookies changes nothing. Six more, including an excessive list of collected data and visitor IP addresses passing through Cloudflare (USA). Not checked: the regulator register of data operators and form submission; the final risk assessment is for a lawyer.Entregado como informe de 13 páginas. Dos infracciones críticas: Yandex Metrica con grabación de sesiones y un contador sectorial arrancan antes del consentimiento — 12 cookies a los 4 segundos de entrar — y rechazar las cookies no cambia nada. Seis más, entre ellas una lista excesiva de datos recogidos y el paso de las IP de los visitantes por Cloudflare (EE. UU.). Sin comprobar: el registro de operadores del regulador y el envío del formulario; la valoración final de riesgos corresponde a un abogado.

чистый профиль браузеражурнал сетевых запросовскриншотыотчёт PDF
Читать разборRead the caseLeer el caso
ИИ-решениеAI solutionSolución IA сданоdeliveredentregado

Перевод старомонгольского текста по фото

ЗадачаTaskTarea

По фотографии нужно было распознать и перевести текст на старописьменной монгольской вязи. Обычные сервисы распознавания такое письмо не читают, а мини-программы WeChat и китайские сервисы оказались недоступны.A photo of text in the traditional Mongolian vertical script had to be recognised and translated. Ordinary OCR services cannot read this script, and WeChat mini programs and Chinese recognition services turned out to be unavailable.Había que reconocer y traducir, a partir de una foto, un texto en la escritura mongola tradicional vertical. Los servicios OCR habituales no leen esta escritura, y los miniprogramas de WeChat y los servicios chinos de reconocimiento no estaban disponibles.

РешениеSolutionSolución

Использовал открытую модель image2bichig из проекта tugstugi/mongolian-nlp и сверил сырой распознанный текст с опубликованной версией той же легенды. Результат разложен на три слоя: транслитерация, современный монгольский на кириллице и русский перевод — плюс список мест, требующих сверки.I used the open image2bichig model from the tugstugi/mongolian-nlp project and checked the raw output against a published version of the same legend. The result has three layers: transliteration, modern Mongolian in Cyrillic and a Russian translation — plus a list of passages that need verification.Usé el modelo abierto image2bichig del proyecto tugstugi/mongolian-nlp y cotejé el texto reconocido en bruto con una versión publicada de la misma leyenda. El resultado tiene tres capas: transliteración, mongol moderno en cirílico y traducción al ruso, además de una lista de pasajes que requieren revisión.

РезультатResultResultado

Сдан отчёт в PDF на 5 страниц. Верхний ярус текста надёжен по смыслу, нижний ярус начиная с 16-й колонки — черновик, и это написано прямо. Для публикации нужна сверка носителем языка.Delivered as a 5-page PDF report. The upper tier of the text is reliable in meaning; the lower tier from column 16 onwards is a draft, and the report says so plainly. Publication requires review by a native speaker.Entregado como informe PDF de 5 páginas. El nivel superior del texto es fiable en cuanto al sentido; el nivel inferior a partir de la columna 16 es un borrador, y el informe lo dice claramente. Para publicarlo hace falta la revisión de un hablante nativo.

image2bichigtugstugi/mongolian-nlpсверка с публикациейотчёт PDF
Читать разборRead the caseLeer el caso
ИИ-решениеAI solutionSolución IA разработаноdevelopeddesarrollado

Конвейер роликов «фото + инфографика»

ЗадачаTaskTarea

Для собственного маркетинга нужен был поток вертикальных роликов «фото + инфографика» без ручного монтажа. Каждый ролик должен вести к автоответу по кодовому слову.My own marketing needed a steady stream of vertical photo-plus-infographic videos without manual editing. Every video had to lead to an auto-reply triggered by a code word.Mi propio marketing necesitaba un flujo constante de vídeos verticales de foto más infografía sin montaje manual. Cada vídeo debía llevar a una respuesta automática activada por una palabra clave.

РешениеSolutionSolución

Собрал HTML-шаблон и покадровый рендер с автопроверкой: текст не должен заходить на лицо и выходить за края кадра. Ролики публикуются, а автоответы на кодовое слово в комментариях и директе настроены в сервисе автоматизации.I built an HTML template and a frame-by-frame renderer with an automatic check that text never covers a face or runs off the frame. Videos get published, and code-word auto-replies in comments and DMs are set up in an automation service.Construí una plantilla HTML y un render fotograma a fotograma con una comprobación automática de que el texto no tape una cara ni se salga del encuadre. Los vídeos se publican, y las respuestas automáticas a la palabra clave en comentarios y mensajes directos están configuradas en un servicio de automatización.

РезультатResultResultado

Сделан 91 ролик; на 20.09 работали 83 сценария и 65 автоответов в комментариях, с 21.09 новый формат — 20 секунд и призыв в директ. Причина пустой воронки нашлась в настройке: в Instagram* (продукт Meta*; Meta признана экстремистской организацией и запрещена в РФ) комментарии были разрешены только подписчикам. 19.09 пришёл первый живой лид по кодовому слову — это начало, а не результат.91 videos made; as of 20.09, 83 flows and 65 comment auto-replies were live, and from 21.09 a new format runs — 20 seconds with a call to DM. The empty funnel turned out to be a setting: Instagram* comments were limited to followers only. The first real lead came in by code word on 19.09 — a start, not a result.Se hicieron 91 vídeos; a 20.09 funcionaban 83 flujos y 65 respuestas automáticas en comentarios, y desde el 21.09 hay un formato nuevo: 20 segundos y llamada a escribir por directo. El embudo vacío se explicaba por un ajuste: en Instagram* los comentarios estaban limitados a seguidores. El primer cliente potencial real llegó por palabra clave el 19.09: un comienzo, no un resultado.

HTML-шаблонпокадровый рендеравтопроверка кадраавтоответы в директе и комментариях
Читать разборRead the caseLeer el caso
ИИ-решениеAI solutionSolución IA разработаноdevelopeddesarrollado

Мультсериал по либретто спектакля

ЗадачаTaskTarea

Проверить, можно ли из либретто национального спектакля собрать короткий вертикальный мультсериал силами нейросетей и во что обойдётся одна серия. На входе — либретто и тайминг-лист.To test whether the libretto of a national stage play can become a short vertical animated series made with neural networks, and what one episode costs. Inputs: the libretto and a timing sheet.Comprobar si el libreto de una obra teatral nacional puede convertirse en una serie animada vertical y corta hecha con redes neuronales, y cuánto cuesta un episodio. Material de partida: el libreto y la hoja de tiempos.

РешениеSolutionSolución

Собрал пробный ролик, трейлер (третья версия, 54 секунды) и первую серию — 52 секунды, вертикальный формат. Видео сгенерировано моделью Seedance, голос — ElevenLabs, этническая музыка и вшитые субтитры; речь сведена с кадрами и проверена в 10 контрольных точках. Весь сюжет разбит на 10 серий с крючками в конце.I produced a test clip, a trailer (third version, 54 seconds) and the first episode — 52 seconds, vertical. Video was generated with Seedance, voice with ElevenLabs, with ethnic music and burned-in subtitles; speech was aligned to the picture and checked at 10 control points. The whole plot is split into 10 episodes, each ending on a hook.Preparé un clip de prueba, un tráiler (tercera versión, 54 segundos) y el primer episodio: 52 segundos, formato vertical. El vídeo se generó con Seedance y la voz con ElevenLabs, con música étnica y subtítulos incrustados; la voz se sincronizó con la imagen y se comprobó en 10 puntos de control. Toda la trama se dividió en 10 episodios con gancho al final.

РезультатResultResultado

Разработано, но пока нигде не опубликовано. Первая серия обошлась примерно в 7,8 доллара на генерацию. Переход на API с анимацией только ключевых сцен по расчёту даёт 1,5–2 доллара за серию — это расчёт, на практике не проверен.Developed but not yet published anywhere. The first episode cost about 7.8 dollars in generation. Moving to the API and animating only key scenes works out, on paper, at 1.5–2 dollars per episode — an estimate not yet tested in practice.Desarrollado, pero aún sin publicar. El primer episodio costó unos 7,8 dólares de generación. Pasar a la API y animar solo las escenas clave sale, según el cálculo, a 1,5–2 dólares por episodio; es una estimación que todavía no se ha comprobado en la práctica.

SeedanceElevenLabsвшитые субтитрымонтаж и сведение
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web в продеliveen producción

Сайт логистической компании с калькулятором растаможки

ЗадачаTaskTarea

Компания возит грузы и автомобили из Китая и Японии. Первый вопрос каждого обращения — сколько выйдет растаможка, и менеджер считал его вручную по каждому клиенту.The company ships cargo and cars from China and Japan. Every enquiry starts with the same question — what will customs cost — and a manager was working it out by hand for each client.Компания возит грузы и автомобили из Китая и Японии. Первый вопрос каждого обращения — сколько выйдет растаможка, и менеджер считал его вручную по каждому клиенту.

РешениеSolutionSolución

Одностраничный сайт без сборки, бэкенда и внешних CDN, с калькулятором таможенных платежей: пошлина, акциз, НДС, утилизационный сбор и сбор за операции — отдельно для физлиц и для юрлиц, с подстановкой курса ЦБ. Все ставки вынесены в один файл, к каждой подписан нормативный акт-источник.A single-page site with no build step, no backend and no external CDNs, carrying a customs calculator: duty, excise, VAT, recycling levy and processing fee — separately for individuals and companies, with the central bank rate pulled in. Every rate sits in one file with the regulation it came from written next to it.Одностраничный сайт без сборки, бэкенда и внешних CDN, с калькулятором таможенных платежей: пошлина, акциз, НДС, утилизационный сбор и сбор за операции — отдельно для физлиц и для юрлиц, с подстановкой курса ЦБ. Все ставки вынесены в один файл, к каждой подписан нормативный акт-источник.

РезультатResultResultado

В проде. Движок расчёта покрыт тестами — 10 из 10. Две позиции, которые в открытых источниках не раскрыты, помечены предупреждением прямо в результате расчёта: лучше честная оговорка, чем красивое непроверенное число. Обновление ставок не требует трогать логику. С сентября работает CRM с источником заявки и правами менеджера (автопроверка 68 из 68), посадочные под рекламу для двух городов, личные ссылки партнёров и 8 видеоотзывов на сайте.Live. The calculation engine is covered by tests — 10 of 10. Two figures that open sources do not disclose are flagged with a warning inside the result itself: an honest caveat beats a plausible unverified number. Updating rates never touches the logic. Since September a CRM tracks where each lead came from, with manager permissions (68 of 68 automated checks), plus ad landing pages for two cities, personal partner links and 8 video reviews on the site.В проде. Движок расчёта покрыт тестами — 10 из 10. Две позиции, которые в открытых источниках не раскрыты, помечены предупреждением прямо в результате расчёта: лучше честная оговорка, чем красивое непроверенное число. Обновление ставок не требует трогать логику. С сентября работает CRM с источником заявки и правами менеджера (автопроверка 68 из 68), посадочные под рекламу для двух городов, личные ссылки партнёров и 8 видеоотзывов на сайте.

статика без сборкикалькулятор на чистом JSтесты расчётаnginx
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web в продеliveen producción

Сайт мастера традиционных обрядов

ЗадачаTaskTarea

Сайт стоял на конструкторе, а форма заявки собирала имя и телефон и уводила их на сторонний сервис. В этой нише человек не «оставляет заявку» — он звонит.The site ran on a website builder, and its enquiry form collected a name and phone number and sent them off to a third-party service. In this niche people do not submit forms — they call.Сайт стоял на конструкторе, а форма заявки собирала имя и телефон и уводила их на сторонний сервис. В этой нише человек не «оставляет заявку» — он звонит.

РешениеSolutionSolución

Переписали на статику без конструктора. Форму убрали целиком — вместе с сервисом приёма заявок на сервере и его маршрутом. Телефон стал главным действием страницы: кликабельный в шапке, на первом экране и отдельным крупным блоком в контактах.Rebuilt as static pages with no builder. The form was removed entirely — along with the server-side enquiry service and its route. The phone number became the page primary action: tappable in the header, in the first screen and as a large block of its own in contacts.Переписали на статику без конструктора. Форму убрали целиком — вместе с сервисом приёма заявок на сервере и его маршрутом. Телефон стал главным действием страницы: кликабельный в шапке, на первом экране и отдельным крупным блоком в контактах.

РезультатResultResultado

В проде. Форм и полей ввода — ноль, внешних скриптов — ноль, счётчиков и cookie нет. Правовые страницы переписали под реальность: вместо политики обработки данных из формы — честная страница о том, что собирается только технический журнал веб-сервера. Контраст проверен на 140 элементах, провалов нет.Live. Zero forms and input fields, zero external scripts, no analytics and no cookies. The legal pages were rewritten to match reality: instead of a privacy policy describing form data, an honest page stating that only the web server access log is kept. Contrast checked across 140 elements with no failures.В проде. Форм и полей ввода — ноль, внешних скриптов — ноль, счётчиков и cookie нет. Правовые страницы переписали под реальность: вместо политики обработки данных из формы — честная страница о том, что собирается только технический журнал веб-сервера. Контраст проверен на 140 элементах, провалов нет.

статикаnginxбез внешних скриптов
Читать разборRead the caseLeer el caso
АудитAuditAuditoría международныйinternationalinternacional сданоdeliveredentregado

Аудит сайта автосервиса в Дубае

ЗадачаTaskTarea

Владелец был уверен, что сайт мёртв и всё решают соцсети, и собирался вкладываться в рекламу. Спорить с этим бесполезно — нужно было проверить.The owner was convinced the site was dead and that social media decides everything, and was about to put money into ads. Arguing is pointless — it needed checking.Владелец был уверен, что сайт мёртв и всё решают соцсети, и собирался вкладываться в рекламу. Спорить с этим бесполезно — нужно было проверить.

РешениеSolutionSolución

Прошёл сайт целиком и замерил вместо того, чтобы оценить на глаз: живые и мёртвые ссылки, контраст кнопок, кликабельность телефона, мета-описания, вес и время загрузки, установленная аналитика. Собрал в отчёт на двенадцати страницах со скриншотами и разметкой каждой находки, с планом из четырёх фаз — без ценника и без прямой продажи.Went through the whole site and measured rather than eyeballed: live and dead links, button contrast, whether the phone number is tappable, meta descriptions, page weight and load time, installed analytics. Delivered as a twelve-page report with screenshots marking every finding and a four-phase plan — no price tag, no pitch.Прошёл сайт целиком и замерил вместо того, чтобы оценить на глаз: живые и мёртвые ссылки, контраст кнопок, кликабельность телефона, мета-описания, вес и время загрузки, установленная аналитика. Собрал в отчёт на двенадцати страницах со скриншотами и разметкой каждой находки, с планом из четырёх фаз — без ценника и без прямой продажи.

РезультатResultResultado

Сдан. Половина ссылок на главной вела в никуда, обе главные кнопки не были привязаны ни к чему, а их текст шёл тёмно-синим по такому же синему — контраст 1,02:1 при норме 4,5:1. Кликабельного телефона не нашлось ни одного на весь сайт, мета-описаний не было ни на одной странице, аналитика не стояла вообще. Вывод простой: реклама до починки сайта — деньги на ветер, её всё равно нечем считать.Delivered. Half the homepage links led nowhere, both primary buttons were wired to nothing, and their text was dark blue on the same blue — a contrast of 1.02:1 against a 4.5:1 requirement. Not one tappable phone link on the entire site, no meta descriptions on any page, and no analytics installed at all. Ads before fixing the site are money in the bin, because there is nothing to measure them with.Сдан. Половина ссылок на главной вела в никуда, обе главные кнопки не были привязаны ни к чему, а их текст шёл тёмно-синим по такому же синему — контраст 1,02:1 при норме 4,5:1. Кликабельного телефона не нашлось ни одного на весь сайт, мета-описаний не было ни на одной странице, аналитика не стояла вообще. Вывод простой: реклама до починки сайта — деньги на ветер, её всё равно нечем считать.

ручной проход с замерамискриншоты находокотчёт PDF
Читать разборRead the caseLeer el caso
АудитAuditAuditoría сданоdeliveredentregado

Аудит бренда одежды и модель партнёрской сети

ЗадачаTaskTarea

Бренд продаёт в своём городе и почти не виден в федеральном поиске. Оптовое направление при этом закрыто высоким минимальным заказом с полной предоплатой — люди с аудиторией, но без капитала до него просто не доходят.The brand sells in its own city and is barely visible in nationwide search. Meanwhile wholesale is gated behind a high minimum order paid upfront, so people with an audience but no capital never get there.Бренд продаёт в своём городе и почти не виден в федеральном поиске. Оптовое направление при этом закрыто высоким минимальным заказом с полной предоплатой — люди с аудиторией, но без капитала до него просто не доходят.

РешениеSolutionSolución

Аудит сайта и каналов, а вторым документом — партнёрская витрина в мессенджерах как недостающая ступень между розницей и оптом: партнёр входит без вложений, продаёт своим людям, а через сезон сам приходит за оптом, уже зная свой спрос и ходовые позиции.An audit of the site and channels, plus a second document: a partner storefront inside messengers as the missing step between retail and wholesale. A partner joins with nothing invested, sells to their own circle, and after a season comes to wholesale on their own.Аудит сайта и каналов, а вторым документом — партнёрская витрина в мессенджерах как недостающая ступень между розницей и оптом: партнёр входит без вложений, продаёт своим людям, а через сезон сам приходит за оптом, уже зная свой спрос и ходовые позиции.

РезультатResultResultado

Сдано два документа. Отдельная страница — риски, а не только выгоды: платить за покупателя, который пришёл бы и так, возвраты, съедающие вознаграждение, сходство с сетевым маркетингом и главное — сеть усиливает то, что работает, и не чинит то, что не работает. Поэтому в документе витрина стоит после первых пунктов аудита, а не вместо них.Two documents delivered. A page of its own covers the risks, not just the upside: paying for a customer who would have come anyway, returns eating the commission, the resemblance to multi-level marketing, and above all — a network amplifies what works and does not fix what does not.Сдано два документа. Отдельная страница — риски, а не только выгоды: платить за покупателя, который пришёл бы и так, возвраты, съедающие вознаграждение, сходство с сетевым маркетингом и главное — сеть усиливает то, что работает, и не чинит то, что не работает. Поэтому в документе витрина стоит после первых пунктов аудита, а не вместо них.

аудит сайта и каналовэкономическая модельдва PDF
Читать разборRead the caseLeer el caso
ДокументDocumentDocumento сданоdeliveredentregado

Предложение по учётной системе для кафе

ЗадачаTaskTarea

Учёт вёлся в тетради: переводы на карту не видно, сырьё не считается, себестоимости нет, курьера не с чем сверить. Владелец при этом считал, что достаточно поставить эквайринг — и учёт появится сам.Bookkeeping lived in a paper notebook: card transfers invisible, ingredients uncounted, no cost price, nothing to reconcile the courier against. The owner believed that installing card payments would make accounting appear by itself.Учёт вёлся в тетради: переводы на карту не видно, сырьё не считается, себестоимости нет, курьера не с чем сверить. Владелец при этом считал, что достаточно поставить эквайринг — и учёт появится сам.

РешениеSolutionSolución

Предложение на семь страниц: что именно сломано сейчас, три опоры учёта, разбор заблуждения про эквайринг прямым текстом, витрина в Telegram, MAX и на сайте на единой базе, этапы работ и десять готовых аналитических срезов. Сроки убраны по просьбе заказчика, оплата по этапам.A seven-page proposal: what exactly is broken today, the three pillars of bookkeeping, the card-payments misconception addressed head-on, a storefront across Telegram, MAX and the web on one shared database, the stages of work and ten ready-made analytics views.Предложение на семь страниц: что именно сломано сейчас, три опоры учёта, разбор заблуждения про эквайринг прямым текстом, витрина в Telegram, MAX и на сайте на единой базе, этапы работ и десять готовых аналитических срезов. Сроки убраны по просьбе заказчика, оплата по этапам.

РезультатResultResultado

Сдано. Документ проверен, а не заявлен: переполнений нет ни на одной из семи страниц, контраст всего текста проходит AA. Служебный серый в колонтитулах сначала дал 3,56:1 и провалил проверку — заменил токен и получил 4,88:1.Delivered. The document was verified rather than asserted: no overflow on any of the seven pages and every text style passing AA contrast. The utility grey in the running heads first came out at 3.56:1 and failed — swapping the token brought it to 4.88:1.Сдано. Документ проверен, а не заявлен: переполнений нет ни на одной из семи страниц, контраст всего текста проходит AA. Служебный серый в колонтитулах сначала дал 3,56:1 и провалил проверку — заменил токен и получил 4,88:1.

вёрстка PDFгейт контрастагейт переполнения
Читать разборRead the caseLeer el caso
РазборAnalysisAnálisis сданоdeliveredentregado

Предпроектный разбор сервиса расчёта смет

ЗадачаTaskTarea

Предприниматель хотел сервис, где мелкий подрядчик загружает техзадание и через пару часов получает готовую смету на почту. Нужно было понять, где здесь продукт, а где грабли, до того как написана первая строка кода.An entrepreneur wanted a service where a small contractor uploads a brief and gets a finished cost estimate by email a couple of hours later. The job was to work out what here is a product and what is a trap — before the first line of code.Предприниматель хотел сервис, где мелкий подрядчик загружает техзадание и через пару часов получает готовую смету на почту. Нужно было понять, где здесь продукт, а где грабли, до того как написана первая строка кода.

РешениеSolutionSolución

Разложил идею на конвейер от разбора документа до выгрузки в Excel и зафиксировал главное правило: цифры не приходят от нейросети. Модель только вытаскивает позиции из текста и подбирает к ним расценку, а умножает, накидывает накладные и считает итоги обычный код по справочнику.Broke the idea down into a pipeline from document parsing to the Excel export, and fixed the central rule: numbers never come from the neural network. The model only extracts line items and matches them to a rate; the arithmetic is done by ordinary code against a price book.Разложил идею на конвейер от разбора документа до выгрузки в Excel и зафиксировал главное правило: цифры не приходят от нейросети. Модель только вытаскивает позиции из текста и подбирает к ним расценку, а умножает, накидывает накладные и считает итоги обычный код по справочнику.

РезультатResultResultado

Сдан разбор с тремя вещами, которые убили бы проект: откуда берутся объёмы, откуда берётся база расценок и есть ли вообще спрос. Плюс развилка «коммерческая смета или нормативная» — это два разных продукта, и первая версия должна быть только одним из них. И двадцать один вопрос заказчику, начиная с проверки гипотезы на пяти его собственных парах «задание — готовая смета».Delivered as an analysis naming the three things that would have killed the project: where the quantities come from, where the price book comes from, and whether there is demand at all. Plus twenty-one questions for the client, starting with testing the premise against five of their own brief-to-estimate pairs.Сдан разбор с тремя вещами, которые убили бы проект: откуда берутся объёмы, откуда берётся база расценок и есть ли вообще спрос. Плюс развилка «коммерческая смета или нормативная» — это два разных продукта, и первая версия должна быть только одним из них. И двадцать один вопрос заказчику, начиная с проверки гипотезы на пяти его собственных парах «задание — готовая смета».

архитектура конвейераоценка рисковвопросы к заказчику
Читать разборRead the caseLeer el caso
ДокументDocumentDocumento сданоdeliveredentregado

Презентация-каталог услуг для партнёрского агентства

ЗадачаTaskTarea

Партнёру нужно было выступать перед предпринимателями и не выглядеть продавцом, а после выступления иметь под рукой весь каталог направлений.A partner needed to speak in front of business owners without coming across as a salesman — and to have the full catalogue of services at hand afterwards.Партнёру нужно было выступать перед предпринимателями и не выглядеть продавцом, а после выступления иметь под рукой весь каталог направлений.

РешениеSolutionSolución

Тридцать один слайд, где польза идёт впереди продажи: первые шесть — где бизнес теряет деньги, три вопроса для самодиагностики и правильный порядок внедрения. Дальше каталог из двенадцати направлений, каждое на своём слайде. В конце — как строится работа и шесть частых возражений с готовыми ответами, чтобы закрывать их прямо в зале. К каждому слайду заметка докладчику.Thirty-one slides that put usefulness before selling: the first six cover where a business loses money, three self-diagnosis questions and the right order of adoption. Then a catalogue of twelve directions, each on its own slide. At the end, how the work is structured and six common objections with ready answers.Тридцать один слайд, где польза идёт впереди продажи: первые шесть — где бизнес теряет деньги, три вопроса для самодиагностики и правильный порядок внедрения. Дальше каталог из двенадцати направлений, каждое на своём слайде. В конце — как строится работа и шесть частых возражений с готовыми ответами, чтобы закрывать их прямо в зале. К каждому слайду заметка докладчику.

РезультатResultResultado

Сдано. Геометрия слайдов проверена программно: восемь замечаний в первом прогоне, ноль после правок. Заказчик выступает от своего имени — меня в презентации нет нигде, это было условием.Delivered. Slide geometry was checked programmatically: eight issues on the first pass, zero after the fixes. The client presents under their own name — I appear nowhere in the deck, which was the condition.Сдано. Геометрия слайдов проверена программно: восемь замечаний в первом прогоне, ноль после правок. Заказчик выступает от своего имени — меня в презентации нет нигде, это было условием.

PPTXпроверка геометрии слайдовзаметки докладчику
Читать разборRead the caseLeer el caso
БотBotBot в продеliveen producción

Бот и мини-приложение для риелтора

ЗадачаTaskTarea

Частный агент по недвижимости вёл объекты в заметках телефона, клиентов — в переписке, а показы держал в голове. Полноценная CRM для агентства ему избыточна.A solo real-estate agent kept listings in phone notes, clients in chats and viewings in his head. A full agency CRM would be overkill.Частный агент по недвижимости вёл объекты в заметках телефона, клиентов — в переписке, а показы держал в голове. Полноценная CRM для агентства ему избыточна.

РешениеSolutionSolución

Бот для быстрого ввода на ходу плюс мини-приложение для просмотра: единая база объектов с фото, подбор под запрос клиента, карточка обращения и история показов. Всё внутри мессенджера, без установки программ.A bot for fast entry on the go plus a mini-app for browsing: one listings database with photos, matching against a client request, a card per enquiry and a viewing history. All inside the messenger, nothing to install.Бот для быстрого ввода на ходу плюс мини-приложение для просмотра: единая база объектов с фото, подбор под запрос клиента, карточка обращения и история показов. Всё внутри мессенджера, без установки программ.

РезультатResultResultado

В проде: база объектов и клиентов на сервере владельца с выгрузкой в файл, подбор по заполненным полям, история показов закрывает повторный контакт. Осознанно не делали воронки, автовыгрузку на площадки и алгоритмическую оценку объекта.Live: listings and clients on the owner own server with file export, matching over filled-in fields, viewing history closing the repeat-contact gap. Deliberately skipped pipelines, auto-publishing to portals and algorithmic valuation.В проде: база объектов и клиентов на сервере владельца с выгрузкой в файл, подбор по заполненным полям, история показов закрывает повторный контакт. Осознанно не делали воронки, автовыгрузку на площадки и алгоритмическую оценку объекта.

Telegram Bot APIмини-приложениесвоя база
Читать разборRead the caseLeer el caso
БотBotBot в продеliveen producción

Аренда авто с выкупом

ЗадачаTaskTarea

Ниша с недоверчивой аудиторией, где обычная реклама дорога и не работает: клиент приходит по рекомендации, а не по объявлению.A distrustful niche where ordinary advertising is expensive and ineffective: clients arrive on a recommendation, not from an ad.Ниша с недоверчивой аудиторией, где обычная реклама дорога и не работает: клиент приходит по рекомендации, а не по объявлению.

РешениеSolutionSolución

Бот с анкетой и прикидочным расчётом платежа, снимающий с менеджера десять одинаковых вопросов. Привлечение — не реклама, а наклейки с персональным QR партнёра: генератор делает материалы под каждого, привязка клиента техническая.A bot with an intake form and a ballpark payment estimate that removes ten repetitive questions from the manager. Acquisition runs on stickers with a partner personal QR code rather than ads: a generator produces per-partner materials and attribution is technical.Бот с анкетой и прикидочным расчётом платежа, снимающий с менеджера десять одинаковых вопросов. Привлечение — не реклама, а наклейки с персональным QR партнёра: генератор делает материалы под каждого, привязка клиента техническая.

РезультатResultResultado

В проде: заявка доходит до менеджера уже с заполненной анкетой, партнёр видит переходы и заявки по своему коду. Споров «чей это клиент» нет — привязка не зависит от того, вспомнил ли клиент промокод.Live: enquiries reach the manager with the form already filled in, and each partner sees the clicks and enquiries under their own code. No arguments over whose client it was — attribution no longer depends on the customer remembering a promo word.В проде: заявка доходит до менеджера уже с заполненной анкетой, партнёр видит переходы и заявки по своему коду. Споров «чей это клиент» нет — привязка не зависит от того, вспомнил ли клиент промокод.

Telegram Bot APIгенератор QR-материаловучёт партнёров
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma в продеliveen producción

Конвертер legacy-системы в low-code

ЗадачаTaskTarea

Корпоративная система на устаревшей платформе: сотни экранов, мало специалистов на рынке, любое изменение занимает недели. Ручной перенос упирается в объём и неоднородность.A corporate system on an outdated platform: hundreds of screens, few specialists on the market, every change taking weeks. Manual migration runs into sheer volume and inconsistency.Корпоративная система на устаревшей платформе: сотни экранов, мало специалистов на рынке, любое изменение занимает недели. Ручной перенос упирается в объём и неоднородность.

РешениеSolutionSolución

Пакет из трёх инструментов: конвертер переносит то, что описано формально; линтер проверяет результат по правилам и ловит потерянные проверки и типы; эталонный экран задаёт, как должен выглядеть перенос, и служит основой приёмки.A package of three tools: a converter that migrates whatever is described declaratively; a linter that checks the output against rules and catches lost validations and types; and a reference screen that defines what a good migration looks like and doubles as the acceptance baseline.Пакет из трёх инструментов: конвертер переносит то, что описано формально; линтер проверяет результат по правилам и ловит потерянные проверки и типы; эталонный экран задаёт, как должен выглядеть перенос, и служит основой приёмки.

РезультатResultResultado

Пакет передан заказчику вместе с эталоном — инструмент остаётся у него, а не уходит с подрядчиком. Объём считается по выборке, а не на глаз. Бизнес-правила без описания, деньги и права доступа переносятся только руками.The package was handed over with the reference screen — the tooling stays with the client rather than leaving with the contractor. Scope is estimated from a sample, not by eye. Undocumented business rules, money and access rights are migrated by hand only.Пакет передан заказчику вместе с эталоном — инструмент остаётся у него, а не уходит с подрядчиком. Объём считается по выборке, а не на глаз. Бизнес-правила без описания, деньги и права доступа переносятся только руками.

конвертерлинтер правилэталонный образец
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web в продеliveen producción

SEO-аудит блога на 1500 статей

ЗадачаTaskTarea

Блог на 1 491 статью: показы есть, кликов мало. Нужно понять, где именно теряется трафик, а не гадать.A blog of 1,491 articles: impressions were there, clicks were not. The goal was to find where traffic is actually lost instead of guessing.Блог на 1 491 статью: показы есть, кликов мало. Нужно понять, где именно теряется трафик, а не гадать.

РешениеSolutionSolución

Разбор выгрузки Вебмастера за три месяца, поиск страниц без входящих ссылок, расшивка каннибализации, правка заголовков и описаний, фиксация порядка сборки и автопроверки перед каждой публикацией.Analysis of a three-month Webmaster export, hunting for pages with no inbound links, untangling keyword cannibalisation, rewriting titles and descriptions, fixing the build order and adding automated checks before every publish.Разбор выгрузки Вебмастера за три месяца, поиск страниц без входящих ссылок, расшивка каннибализации, правка заголовков и описаний, фиксация порядка сборки и автопроверки перед каждой публикацией.

РезультатResultResultado

762 статьи-сироты из 1 491 найдены и связаны; sitemap, тихо схлопнувшийся с 2 217 адресов до 65, восстановлен, а его размер теперь проверяется после каждой сборки. Главная находка: 1 632 запроса стоят в топ-10 и собирают 42 429 показов при нуле кликов.762 orphan articles out of 1,491 found and linked; a sitemap that had quietly collapsed from 2,217 URLs to 65 was restored, and its size is now checked after every build. The key finding: 1,632 queries sit in the top 10 and collect 42,429 impressions with zero clicks.762 статьи-сироты из 1 491 найдены и связаны; sitemap, тихо схлопнувшийся с 2 217 адресов до 65, восстановлен, а его размер теперь проверяется после каждой сборки. Главная находка: 1 632 запроса стоят в топ-10 и собирают 42 429 показов при нуле кликов.

Яндекс.Вебмастерсвои скрипты перелинковкиавтопроверки публикации
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web в продеliveen producción

Лендинг под платный трафик

ЗадачаTaskTarea

Страницу услуги готовили к рекламе. С холодным трафиком каждый визит платный, и слабые места страницы начинают стоить денег.A service page was being prepared for advertising. With cold paid traffic every visit costs money, and weak spots start showing up on the invoice.Страницу услуги готовили к рекламе. С холодным трафиком каждый визит платный, и слабые места страницы начинают стоить денег.

РешениеSolutionSolución

Калькулятор, считающий выгоду по цифрам самого посетителя, а не по обещаниям. Разметка пути семью целями вместо одной. Сравнительный блок и раздел «кому не подойдёт», отсекающий неподходящих до обращения.A calculator that works out the benefit from the visitor own numbers rather than from promises. The journey mapped with seven goals instead of one. A comparison block and a "who this is not for" section that filters out poor fits before they get in touch.Калькулятор, считающий выгоду по цифрам самого посетителя, а не по обещаниям. Разметка пути семью целями вместо одной. Сравнительный блок и раздел «кому не подойдёт», отсекающий неподходящих до обращения.

РезультатResultResultado

Семь целей вместо одной показывают место обрыва, а не только факт неудачи. Мобильные дефекты найдены на реальном телефоне: эмулятор браузера их не показывал, а причиной оказалась одна строка калькулятора, распиравшая контейнер. Счётчик перенесён в шаблон генератора — раньше его не было на соседних страницах раздела.Seven goals instead of one reveal where the journey breaks, not merely that it did. Mobile defects were found on a real phone — the browser emulator missed them, and the culprit was a single calculator row stretching its container. The analytics counter moved into the generator template; until then neighbouring pages had none.Семь целей вместо одной показывают место обрыва, а не только факт неудачи. Мобильные дефекты найдены на реальном телефоне: эмулятор браузера их не показывал, а причиной оказалась одна строка калькулятора, распиравшая контейнер. Счётчик перенесён в шаблон генератора — раньше его не было на соседних страницах раздела.

Яндекс.Метрикацели и событияпроверка на реальных устройствах
Читать разборRead the caseLeer el caso
ИИ-решениеAI solutionSolución IA в продеliveen producción

Проверка ИИ-новостей перед публикацией

ЗадачаTaskTarea

Блог пишет о технологиях и приводит клиентов на услуги. Ошибка в статье превращается в ошибку в решении читателя, поэтому пересказывать новости как есть нельзя.The blog writes about technology and brings in client work. An error in an article turns into an error in the reader decision, so news cannot simply be retold as received.Блог пишет о технологиях и приводит клиентов на услуги. Ошибка в статье превращается в ошибку в решении читателя, поэтому пересказывать новости как есть нельзя.

РешениеSolutionSolución

Процедура из пяти шагов перед каждой публикацией: дойти до первоисточника, проверить лицензию, сверить каждое числовое утверждение, выяснить возможности именно той сборки, которую поставят, и посмотреть возраст проекта.A five-step procedure before every publication: reach the primary source, check the licence, verify every numeric claim, establish what the specific build people will actually install can do, and look at the project age.Процедура из пяти шагов перед каждой публикацией: дойти до первоисточника, проверить лицензию, сверить каждое числовое утверждение, выяснить возможности именно той сборки, которую поставят, и посмотреть возраст проекта.

РезультатResultResultado

За неделю три новости, и в каждой пересказ разошёлся с документацией: названа несуществующая модель; «выложили» то, чего нет в открытом доступе; проект назван открытым без файла лицензии. Проверка занимает около двадцати минут и превращает пересказ в материал, которого больше нигде нет.Three news items in one week, and in each the retelling diverged from the documentation: a model named that does not exist; something announced as released that is not publicly available; a project calling itself open with no licence file. The check takes about twenty minutes and turns a retelling into material available nowhere else.За неделю три новости, и в каждой пересказ разошёлся с документацией: названа несуществующая модель; «выложили» то, чего нет в открытом доступе; проект назван открытым без файла лицензии. Проверка занимает около двадцати минут и превращает пересказ в материал, которого больше нигде нет.

первоисточникипроверка лицензийредакционный чек-лист
Читать разборRead the caseLeer el caso
БотBotBot в продеliveen producción

МАНГО

ЗадачаTaskTarea

Быстро набрать подписчиков в каналы сразу в 7 городах за счёт приглашений — под физический приз.Rapidly grow channel subscribers across 7 cities at once through invites — driven by a physical prize.Sumar suscriptores en canales de 7 ciudades a la vez mediante invitaciones — con un premio físico.

РешениеSolutionSolución

Реферальный бот в MAX под ключ: персональная ссылка-приглашение, счётчик прогресса, антифрод (один человек = один засчёт), админка с разбивкой по городам.Turnkey referral bot in MAX: personal invite link, progress counter, anti-fraud (one person = one credit), admin panel with a per-city breakdown.Bot de referidos llave en mano en MAX: enlace personal de invitación, contador de progreso, antifraude (una persona = un registro), panel de administración por ciudad.

РезультатResultResultado

819 участников и 1818 переходов за первые 24 часа, одновременный запуск в 7 городах.819 participants and 1,818 clicks in the first 24 hours, launched simultaneously in 7 cities.819 participantes y 1818 clics en las primeras 24 horas, lanzamiento simultáneo en 7 ciudades.

MAX Bot APIбэкенд + веб-админка
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma в продеliveen producción

SpyGambl

ЗадачаTaskTarea

Бесплатная библиотека рекламных креативов с фильтрами по гео и формату — узкая вертикаль, ручное пополнение.A free ad-creatives library with filters by geo and format — a narrow vertical, manually curated.Una biblioteca gratuita de creatividades publicitarias con filtros por geo y formato — un vertical concreto, con curación manual.

РешениеSolutionSolución

Каталог креативов + браузерное расширение для импорта объявления «в один клик» с нужным гео; медиа через CDN, тяжёлые гифки автоматически в видео.Creatives catalog + a browser extension to import an ad "in one click" with the right geo; media via CDN, heavy GIFs auto-converted to video.Catálogo de creatividades + una extensión de navegador para importar un anuncio "en un clic" con el geo correcto; medios por CDN, GIFs pesados convertidos a vídeo automáticamente.

РезультатResultResultado

В проде: 140+ гео, вес страницы с баннерами снижен в 8 раз (6,3 → 0,8 МБ), отклик ~60 мс. Седьмой этап (сентябрь 2026) — автопостинг свежих креативов в Telegram-сообщество на ~4 200 участников с темами по странам и планировщиком «день/ночь» — выкачен в бой.Live: 140+ geos, banner-page weight cut 8× (6.3 → 0.8 MB), response ~60 ms. Stage seven (September 2026) — auto-posting fresh creatives to a ~4,200-member Telegram community with per-country topics and a day/night scheduler — shipped to production.En producción: 140+ geos, peso de la página con banners reducido 8× (6,3 → 0,8 MB), respuesta ~60 ms. La séptima etapa (septiembre de 2026) — publicación automática de creatividades nuevas en una comunidad de Telegram de ~4.200 miembros con temas por país y un planificador día/noche — ya está en producción.

Next.jsReactPostgreSQLбраузерное расширениеCDNTelegram Bot API
ПлатформаPlatformPlataforma международныйinternationalinternacional в продеliveen producción

AlexMap

ЗадачаTaskTarea

У турбизнеса города за рубежом нет своего цифрового справочника организаций с картой и рубрикатором.A city’s tourism sector abroad had no digital directory of businesses with a map and rubricator.El sector turístico de una ciudad en el extranjero no tenía un directorio digital de organizaciones con mapa y rubricador.

РешениеSolutionSolución

С нуля собран боевой городской справочник (аналог 2ГИС): интерактивная карта, публичный сайт + админка наполнения, мультигород и мультиязык из коробки.Built a production city directory from scratch (a 2GIS analog): interactive map, public site + content admin, multi-city and multi-language out of the box.Directorio urbano de producción creado desde cero (un análogo de 2GIS): mapa interactivo, sitio público + panel de contenido, multiciudad y multilingüe de serie.

РезультатResultResultado

Развёрнут в бою: 24 топ-рубрики + 18 подрубрик, фильтры «открыто сейчас»/удобства/цена, геолокация, светлая/тёмная тема. Служит ядром для смежных продуктов.Deployed in production: 24 top rubrics + 18 sub-rubrics, "open now" / amenities / price filters, geolocation, light/dark theme. Serves as the core for adjacent products.Desplegado en producción: 24 rúbricas principales + 18 subrúbricas, filtros "abierto ahora" / servicios / precio, geolocalización, tema claro/oscuro. Sirve de núcleo para productos afines.

FastAPIReactLeafletPostgreSQLRedis/CeleryDocker
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma в продеliveen producción

WeToCar

ЗадачаTaskTarea

Витрина под подбор и доставку б/у авто из Китая под заказ — с честным расчётом стоимости «под ключ».A storefront for sourcing and delivering used cars from China to order — with an honest turnkey price estimate.Un escaparate para seleccionar y entregar coches usados desde China por encargo — con un cálculo honesto del precio llave en mano.

РешениеSolutionSolución

Каталог на тысячи авто, который фоном синхронизируется с китайскими источниками в свою базу; калькулятор растаможки; заявки с антиспамом; админка; боты уведомлений в Telegram и MAX.A catalog of thousands of cars that syncs in the background from Chinese sources into our own database; a customs calculator; leads with anti-spam; an admin panel; notification bots in Telegram and MAX.Un catálogo de miles de coches que se sincroniza en segundo plano desde fuentes chinas a nuestra propia base de datos; una calculadora de aduanas; solicitudes con antispam; un panel de administración; bots de notificaciones en Telegram y MAX.

РезультатResultResultado

В проде: каталог реально наполнен (тысячи авто), автосинхронизация каждые 3 часа, ежедневная докачка фото, все ключевые страницы отвечают. Добавлены 4 городские посадочные под рекламу; на телефоне страница стала 8,7 экрана вместо 10,7, путь до формы — 5,6 экрана вместо 7,9.Live: the catalog is genuinely populated (thousands of cars), auto-sync every 3 hours, daily photo top-up, all key pages responding. Four city landing pages for ads were added; on a phone the page shrank from 10.7 to 8.7 screens, and the scroll to the form from 7.9 to 5.6 screens.En producción: el catálogo está realmente poblado (miles de coches), autosincronización cada 3 horas, recarga diaria de fotos, todas las páginas clave respondiendo. Se añadieron 4 páginas de aterrizaje por ciudad para publicidad; en el móvil la página pasó de 10,7 a 8,7 pantallas y el recorrido hasta el formulario, de 7,9 a 5,6.

Next.js 15PostgreSQLPrismaTelegram + MAX Bot API
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma международныйinternationalinternacional в продеliveen producción

X&X

ЗадачаTaskTarea

У диаспоры нет единого цифрового пространства — новости, кино, знакомства, услуги и игры разбросаны по чужим платформам без учёта языка и культуры.A diaspora had no single digital space — news, cinema, dating, services and games scattered across foreign platforms with no regard for language or culture.Una diáspora sin un espacio digital único — noticias, cine, citas, servicios y juegos dispersos en plataformas ajenas, sin tener en cuenta el idioma ni la cultura.

РешениеSolutionSolución

Супер-апп из пяти сервисов под единым брендом: знакомства с национальной спецификой, новостной агрегатор на реальных лентах, онлайн-кинотеатр с режимом изучения языка, маркетплейс услуг и игра-квиз по истории.A super-app of five services under one brand: dating with national specifics, a news aggregator on real feeds, an online cinema with a language-learning mode, a services marketplace and a history quiz game.Una súper-app de cinco servicios bajo una sola marca: citas con especificidad nacional, un agregador de noticias sobre fuentes reales, un cine en línea con modo de aprendizaje de idioma, un marketplace de servicios y un juego de preguntas de historia.

РезультатResultResultado

Все 5 сервисов в проде, бот с верификацией по номеру запущен; кинотеатр — 42 фильма, новости на 3 языках, прогресс игры сохраняется.All 5 services live, a bot with phone verification launched; the cinema — 42 films, news in 3 languages, game progress is saved.Los 5 servicios en producción, un bot con verificación por teléfono lanzado; el cine — 42 películas, noticias en 3 idiomas, el progreso del juego se guarda.

ReactTypeScriptTailwindFastAPIaiogram
Читать разборRead the caseLeer el caso
ИИ-решениеAI solutionSolución IA международныйinternationalinternacional разработаноdevelopeddesarrollado

OneClick / Quipu

ЗадачаTaskTarea

В регионе низкая цифровая грамотность, но все шлют голосовые в WhatsApp* — нужен сервис расшифровки без установки приложения.Low digital literacy in the region, but everyone sends voice notes on WhatsApp* — a transcription service was needed with no app to install.Baja alfabetización digital en la región, pero todos envían notas de voz por WhatsApp* — hacía falta un servicio de transcripción sin instalar ninguna app.

РешениеSolutionSolución

Официальный WhatsApp*-бот: принимает голосовое → отдаёт структурированное саммари (тезисы, решения, задачи) на испанском; фото документов и рукопись — следующими релизами. Один бэкенд, два интерфейса (бот + веб-кабинет).An official WhatsApp* bot: takes a voice note → returns a structured summary (points, decisions, tasks) in Spanish; document photos and handwriting in later releases. One backend, two interfaces (bot + web dashboard).Un bot oficial de WhatsApp*: recibe una nota de voz → devuelve un resumen estructurado (puntos, decisiones, tareas) en español; fotos de documentos y manuscritos en próximas versiones. Un backend, dos interfaces (bot + panel web).

РезультатResultResultado

Пройдена бизнес-верификация Meta*, поднят номер и вебхук — инфраструктура готова, бэкенд на финальной сборке.Passed Meta* business verification, number and webhook up — infrastructure ready, backend in final assembly.Superada la verificación de negocio de Meta*, número y webhook activos — infraestructura lista, backend en montaje final.

WhatsApp* Cloud APIASR (транскрибация)LLM-саммаризация
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web в продеliveen producción

Протокол

ЗадачаTaskTarea

Кофейне нужно вовлекающее приложение: меню, заказ, программа лояльности и игровая система развития пользователя.A coffee shop needed an engaging app: menu, ordering, a loyalty program and a gamified user-progression system.Una cafetería necesitaba una app atractiva: menú, pedidos, un programa de fidelidad y un sistema de progresión de usuario gamificado.

РешениеSolutionSolución

Установимое PWA с двумя входами (SMS/почта и Telegram, один аккаунт), игровой движок (XP, уровни, достижения, инвентарь, задания, лидерборд), меню с корзиной, push и полноценная админка.An installable PWA with two logins (SMS/email and Telegram, one account), a game engine (XP, levels, achievements, inventory, quests, leaderboard), a menu with cart, push and a full admin panel.Una PWA instalable con dos accesos (SMS/correo y Telegram, una sola cuenta), un motor de juego (XP, niveles, logros, inventario, misiones, clasificación), menú con carrito, push y un panel de administración completo.

РезультатResultResultado

Все 24 критерия готовности первого релиза пройдены (24/24, автопроверка на боевом сервере), фронт 64 КБ gzip; прогон живым браузером выявил и починил реальные баги.All 24 first-release readiness criteria passed (24/24, automated check on the production server), frontend 64 KB gzip; a live-browser run found and fixed real bugs.Superados los 24 criterios de preparación del primer lanzamiento (24/24, verificación automática en el servidor de producción), frontend 64 KB gzip; una prueba con navegador real encontró y corrigió errores reales.

NodeExpressReactViteSQLiteVAPID push
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web международныйinternationalinternacional в продеliveen producción

Сансара

ЗадачаTaskTarea

Запустить полноценное онлайн-издание с редакцией, мультиязычием и приоритетом на SEO/GEO.Launch a full-fledged online publication with an editorial team, multilingual support and a focus on SEO/GEO.Lanzar una publicación en línea completa con equipo editorial, soporte multilingüe y enfoque en SEO/GEO.

РешениеSolutionSolución

Монорепо: публичный сайт на Next.js + отдельная React-админка на общей базе; статьи, рубрики, поиск, роли (автор/редактор/админ), workflow статусов, медиа-менеджер, тёмная/светлая тема.A monorepo: public site on Next.js + a separate React admin on a shared database; articles, rubrics, search, roles (author/editor/admin), a status workflow, media manager, dark/light theme.Un monorepo: sitio público en Next.js + un panel React independiente sobre una base de datos común; artículos, rúbricas, búsqueda, roles (autor/editor/admin), un flujo de estados, gestor de medios, tema claro/oscuro.

РезультатResultResultado

Запущен в продакшн по HTTPS; пройден сквозной QA (логин → создание → публикация → сайт → удаление — все зелёные), интегрирован фирменный логотип.Launched in production over HTTPS; passed end-to-end QA (login → create → publish → site → delete — all green), brand logo integrated.Lanzado en producción por HTTPS; superado el QA de extremo a extremo (login → crear → publicar → sitio → eliminar — todo en verde), logotipo de marca integrado.

Next.js 14PrismaPostgreSQLnext-intlDocker
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma в продеliveen producción

РЭНТЭБАС

ЗадачаTaskTarea

Автоматизировать управление общежитием на ~200 мест: места, проживающие, договоры, деньги, аналитика, личный кабинет жильца.Automate managing a ~200-bed dormitory: beds, residents, contracts, money, analytics, a resident’s personal account.Automatizar la gestión de una residencia de ~200 plazas: plazas, residentes, contratos, dinero, analítica, un área personal para el residente.

РешениеSolutionSolución

Веб-приложение: реестр мест со статусами и историей, карточки и договоры с файлами, финучёт (начисления/оплаты/долг, выгрузка), дашборды, ЛК жильца, ролевая модель, аудит действий.A web app: bed registry with statuses and history, cards and contracts with files, finance tracking (charges/payments/debt, export), dashboards, a resident portal, a role model, an action audit.Una aplicación web: registro de plazas con estados e historial, fichas y contratos con archivos, contabilidad (cargos/pagos/deuda, exportación), cuadros de mando, portal del residente, modelo de roles, auditoría de acciones.

РезультатResultResultado

Развёрнут на сервере под HTTPS, прошёл ревизию кода двумя независимыми аудиторами, пакет готов к подписанию акта приёмки. Работа по договору с ТЗ.Deployed on a server over HTTPS, passed a code review by two independent auditors, package ready for the acceptance sign-off. Contract work with a spec.Desplegada en un servidor por HTTPS, superada una revisión de código por dos auditores independientes, paquete listo para la firma de aceptación. Trabajo por contrato con especificación.

FastAPISQLAlchemyPostgreSQLReactViteDocker
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web в продеliveen producción

Сайт РСО с кабинетом заявок

ЗадачаTaskTarea

По предписанию прокуратуры ресурсоснабжающей организации нужен сайт с онлайн-подачей заявлений на техприсоединение к сетям.By a prosecutor’s order, a utility company needed a website with online submission of applications for grid connection.Por orden de la fiscalía, una empresa de suministros necesitaba un sitio con envío en línea de solicitudes de conexión a las redes.

РешениеSolutionSolución

Корпоративный сайт в строгом стиле + сквозной сценарий: регистрация → заявление с загрузкой файлов → админка → смена статуса → заявитель видит статус и получает email. Раскрытие информации по стандартам, хранение заявок ≥ 5 лет.A corporate site in a strict style + an end-to-end flow: registration → application with file uploads → admin → status change → the applicant sees the status and gets an email. Information disclosure to standards, applications stored ≥ 5 years.Un sitio corporativo de estilo sobrio + un flujo completo: registro → solicitud con carga de archivos → panel → cambio de estado → el solicitante ve el estado y recibe un correo. Divulgación de información conforme a normas, solicitudes almacenadas ≥ 5 años.

РезультатResultResultado

Развёрнут и стабильно работает (валидный TLS, контейнеры в аптайме), закрыл предписание прокуратуры.Deployed and running stably (valid TLS, containers in uptime), closed out the prosecutor’s order.Desplegado y funcionando de forma estable (TLS válido, contenedores en uptime), cumplió con la orden de la fiscalía.

FastAPISQLAlchemyReactPostgreSQLCaddyDocker
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web в продеliveen producción

Горячий момент

ЗадачаTaskTarea

Продавать сети кофейных точек B2B-размещение их автоматических кофе-точек на чужих площадях.Sell a coffee-point chain B2B placement of their automated coffee points on third-party premises.Vender a una cadena de puntos de café la colocación B2B de sus puntos de café automáticos en locales de terceros.

РешениеSolutionSolución

Одностраничник под референсы клиента + no-code админка (не-айтишник сам включает/переставляет секции, ведёт блог, точки на карте с автогеокодингом, оборудование, заявки) + дашборд QR-аналитики: какая наклейка принесла заявку, с конверсией по точкам.A one-pager built on the client’s references + a no-code admin (a non-techie toggles/reorders sections, runs a blog, points on a map with auto-geocoding, equipment, leads) + a QR-analytics dashboard: which sticker brought a lead, with conversion per point.Una landing sobre las referencias del cliente + un panel no-code (una persona no técnica activa/reordena secciones, lleva un blog, puntos en un mapa con geocodificación automática, equipos, solicitudes) + un panel de analítica QR: qué pegatina trajo una solicitud, con conversión por punto.

РезультатResultResultado

Развёрнут и работает по HTTPS; заявки уходят в Telegram без персданных (сознательно, под 152-ФЗ). Дашборд связывает метку с конверсией по каждой точке.Deployed and running over HTTPS; leads go to Telegram with no personal data (deliberately, under privacy law). The dashboard links a tag to conversion for each point.Desplegado y funcionando por HTTPS; las solicitudes van a Telegram sin datos personales (deliberadamente, conforme a la ley de privacidad). El panel vincula la etiqueta con la conversión de cada punto.

WagtailDjangoTelegram Bot APIавтогеокодинг
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma международныйinternationalinternacional разработаноdevelopeddesarrollado

WELLEX CLUB

ЗадачаTaskTarea

Построить с нуля цифровую экосистему велнес-клуба: витрина, вход через бота, личный кабинет-приложение и CRM.Build a wellness club’s digital ecosystem from scratch: storefront, bot-based entry, a personal-account app and a CRM.Construir desde cero el ecosistema digital de un club de bienestar: escaparate, acceso mediante bot, una app de área personal y un CRM.

РешениеSolutionSolución

По трём ТЗ собрана единая система: тёмный лендинг с UTM-атрибуцией, Telegram-бот как источник лидов, Mini App с хабом Score и клубной картой QR, CRM со скорингом лидов, рейтингом партнёров и рассылками.Across three specs, a single system: a dark landing with UTM attribution, a Telegram bot as a lead source, a Mini App with a Score hub and a QR club card, a CRM with lead scoring, partner ranking and mailings.A partir de tres especificaciones, un sistema único: una landing oscura con atribución UTM, un bot de Telegram como fuente de leads, una Mini App con un hub Score y una tarjeta de club QR, un CRM con scoring de leads, ranking de socios y envíos.

РезультатResultResultado

В проде: сайт, приложение, CRM, бот, PWA с установкой и подписанный Android-APK; 5 языков; контраст проверен автозамером 645 надписей на 12 экранах в 5 схемах (WCAG в норме везде).Live: site, app, CRM, bot, an installable PWA and a signed Android APK; 5 languages; contrast verified by auto-measuring 645 labels across 12 screens in 5 themes (WCAG passing everywhere).En producción: sitio, app, CRM, bot, una PWA instalable y un APK de Android firmado; 5 idiomas; contraste verificado midiendo automáticamente 645 textos en 12 pantallas y 5 temas (WCAG correcto en todas partes).

Node.jsSQLitePWAAndroid APKnginx
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma в продеliveen producción

PROMO

ЗадачаTaskTarea

Обычный промокод-слово «протекает»: его пересылают и применяют посторонние, а партнёр получает деньги за чужих людей. Офлайн-магазину нужна партнёрская программа с защитой от накрутки.A plain word promo-code "leaks" — it gets forwarded and used by outsiders, and the partner is paid for people they never brought. An offline shop needed a referral program hardened against abuse.Un promocódigo de palabra "se filtra" — se reenvía y lo usan terceros, y el socio cobra por gente que no trajo. Una tienda física necesitaba un programa de referidos a prueba de abuso.

РешениеSolutionSolución

Под ключ в MAX: вместо слова — одноразовый QR/код с TTL, сгорающий на первом чеке; веб-конструктор, где магазин сам без разработчика настраивает вознаграждение, скидки и антифрод; кассирский сценарий в боте; сегментные рассылки.Turnkey in MAX: instead of a word, a one-time QR/code with a TTL that burns on the first receipt; a web builder where the shop configures rewards, discounts and anti-fraud itself with no developer; a cashier flow in the bot; segmented broadcasts.Llave en mano en MAX: en vez de una palabra, un QR/código de un solo uso con TTL que se quema en el primer ticket; un constructor web donde la tienda configura recompensas, descuentos y antifraude sin desarrollador; un flujo de cajero en el bot; envíos segmentados.

РезультатResultResultado

В проде и в реальной эксплуатации у клиента: магазин сам завёл настройки, есть живые партнёры и привязки; 61 автопроверка (сценарии + денежная логика + рассылки) зелёная. Сентябрь 2026: добавлен раздел «Розыгрыши» (личные ссылки участников, засчитываются только новые люди, фоновая сверка состава) и прогнан полный живой цикл в MAX — заявка партнёра → ключ → QR → код покупателя → касса → начисление, повторный скан отбит.Live and in real use by the client: the shop self-configured it, with real partners and attributions; 61 automated checks (scenarios + money logic + broadcasts) green. September 2026: a "Giveaways" section added (personal participant links, only new people count, background membership check) and a full live cycle run in MAX — partner request → key → QR → buyer code → checkout → accrual, with a repeat scan rejected.En producción y en uso real por el cliente: la tienda se autoconfiguró, con socios y atribuciones reales; 61 verificaciones automáticas (escenarios + lógica de dinero + envíos) en verde. Septiembre de 2026: se añadió la sección "Sorteos" (enlaces personales de participantes, solo cuentan personas nuevas, verificación en segundo plano) y se ejecutó el ciclo completo en vivo en MAX — solicitud del socio → clave → QR → código del comprador → caja → acreditación, con el escaneo repetido rechazado.

PythonFastAPIPostgreSQLMAX Bot APIJinja2
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma в продеliveen producción

ПОЕХАЛИ

ЗадачаTaskTarea

Сервису поиска попутчиков нужна живая двухсторонняя площадка: публикация поездок, поиск, уведомления и удержание — сразу в двух мессенджерах.A rideshare service needed a live two-sided marketplace: posting trips, search, notifications and retention — across two messengers at once.Un servicio de viajes compartidos necesitaba un mercado bilateral vivo: publicar viajes, búsqueda, notificaciones y retención — en dos mensajeros a la vez.

РешениеSolutionSolución

Под ключ на FastAPI + PostgreSQL + Celery с двумя React-мини-аппами (пользователь и админка), ботами в Telegram и MAX на общей базе, движком рассылок (18 сегментов, картинка + кнопки, лимит частоты) и подпиской на маршрут с авто-уведомлением при публикации подходящей поездки.Built turnkey on FastAPI + PostgreSQL + Celery with two React mini-apps (user and admin), Telegram and MAX bots on a shared database, a broadcast engine (18 segments, image + buttons, frequency cap) and route subscriptions that auto-notify when a matching trip is posted.Construido llave en mano sobre FastAPI + PostgreSQL + Celery con dos mini-apps en React (usuario y administración), bots de Telegram y MAX sobre una base común, un motor de envíos (18 segmentos, imagen + botones, límite de frecuencia) y suscripción a rutas con notificación automática al publicarse un viaje que coincide.

РезультатResultResultado

Развёрнут в проде на своём сервере, оба бота живые, в ленте реальные поездки, база выросла до нескольких сотен участников; на боевом найдены и устранены два тихих отказа — вес ответа сжат с 390 до 112 КБ (gzip) и снят конфликт TLS, из-за которого приложение не открывалось у части абонентов.Deployed to production on its own server, both bots live, real trips in the feed, the base grown to several hundred participants; two silent failures were found and fixed in production — response weight compressed from 390 to 112 KB (gzip) and a TLS conflict removed that had blocked the app for some carriers’ subscribers.Desplegado en producción en su propio servidor, ambos bots activos, viajes reales en el feed, la base creció hasta varios cientos de participantes; en producción se detectaron y corrigieron dos fallos silenciosos — el peso de la respuesta se comprimió de 390 a 112 KB (gzip) y se eliminó un conflicto de TLS que impedía abrir la app a los abonados de algunos operadores.

FastAPIPostgreSQLCeleryReactTelegram + MAX Bot APICaddy
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma международныйinternationalinternacional разработаноdevelopeddesarrollado

PALMA

ЗадачаTaskTarea

Агентству недвижимости Дубая нужна не просто витрина объектов, а white-label площадка с многоуровневой партнёрской сетью, где агенты и рекомендатели приводят покупателей и получают комиссию.A Dubai real-estate agency needed more than an object storefront — a white-label platform with a multi-level partner network where agents and referrers bring buyers and earn commission.Una agencia inmobiliaria de Dubái necesitaba algo más que un escaparate de objetos — una plataforma white-label con una red de socios multinivel donde agentes y recomendadores traen compradores y ganan comisión.

РешениеSolutionSolución

Под ключ: Telegram-витрина объектов (фильтры по типу/району/бюджету, галереи, заявки) + 3-уровневая партнёрская сеть с многоуровневой комиссией и снимком цепочки на момент заявки + CRM (воронка, заявки, визиты, выплаты) + импорт XML-фидов (Cian/Avito/Яндекс.Недвижимость); у каждого партнёра свой брендированный бот.Turnkey: a Telegram property storefront (filters by type/district/budget, galleries, leads) + a 3-level partner network with multi-level commission and a chain snapshot at lead time + a CRM (funnel, leads, visits, payouts) + XML-feed import (Cian/Avito/Yandex.Realty); each partner gets their own branded bot.Llave en mano: un escaparate de propiedades en Telegram (filtros por tipo/distrito/presupuesto, galerías, solicitudes) + una red de socios de 3 niveles con comisión multinivel y una instantánea de la cadena al crear la solicitud + un CRM (embudo, solicitudes, visitas, pagos) + importación de feeds XML (Cian/Avito/Yandex.Realty); cada socio tiene su propio bot de marca.

РезультатResultResultado

Живой стенд по HTTPS с подключённым ботом и данными по объектам; сквозной прогон и 104 автопроверки зелёные. Партнёр любого из трёх уровней подключает свой Telegram-бот по токену за секунды, CRM фиксирует, из чьего бота пришёл покупатель, — база для комиссий; интерфейс в iOS-стиле прошёл UX-ревизию «глазами заказчика» перед показом. Карта и ипотечный калькулятор — следующим этапом.A live stand over HTTPS with the bot connected and object data in place; end-to-end run and 104 automated checks green. A partner at any of the three levels connects their own Telegram bot by token in seconds, and the CRM records which bot the buyer came from — the basis for commissions; the iOS-style UI passed a "through the client's eyes" UX review before the demo. A map and mortgage calculator are the next stage.Un stand en vivo por HTTPS con el bot conectado y datos de objetos cargados; recorrido de extremo a extremo y 104 verificaciones automáticas en verde. Un socio de cualquiera de los tres niveles conecta su propio bot de Telegram por token en segundos, y el CRM registra desde qué bot llegó el comprador — la base para las comisiones; la interfaz estilo iOS pasó una revisión UX "con los ojos del cliente" antes de la demo. Un mapa y una calculadora hipotecaria son la siguiente etapa.

PythonFastAPISQLiteTelegram Bot APInginx
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma разработаноdevelopeddesarrollado

SPACE

ЗадачаTaskTarea

Микробизнесу и самозанятым нужен единый кабинет, где готовые решения (в первую очередь геймификация Telegram-ботов) подключаются самостоятельно за пару кликов, без разработчика.Micro-businesses and the self-employed needed a single dashboard where ready-made solutions (first of all Telegram-bot gamification) plug in by themselves in a couple of clicks, with no developer.Los micronegocios y autónomos necesitaban un panel único donde las soluciones listas (ante todo la gamificación de bots de Telegram) se conectan solas en un par de clics, sin desarrollador.

РешениеSolutionSolución

Своя SaaS-платформа: вход через Telegram с серверной проверкой подписи, кабинет и профиль, каталог участников со свайп-знакомствами, доска объявлений, модуль геймификации ботов (баллы, награды, приглашения, рассылки), партнёрская программа, панель владельца.An in-house SaaS platform: Telegram login with server-side signature verification, a dashboard and profile, a member catalog with swipe-matching, a classifieds board, a bot-gamification module (points, rewards, invites, broadcasts), a partner program, an owner panel.Una plataforma SaaS propia: acceso por Telegram con verificación de firma en el servidor, panel y perfil, un catálogo de participantes con emparejamiento por swipe, un tablón de anuncios, un módulo de gamificación de bots (puntos, premios, invitaciones, envíos), un programa de socios, un panel de propietario.

РезультатResultResultado

MVP развёрнут в проде по HTTPS, сквозная авторизация через Telegram работает; 33+31 автотест геймификации зелёные, контраст проверен на 28 сочетаниях экранов и тем. Биллинг, ИИ-студия и MAX — следующий этап.The MVP is deployed in production over HTTPS, end-to-end Telegram auth works; 33+31 gamification tests green, contrast verified across 28 screen/theme combinations. Billing, an AI studio and MAX are the next stage.El MVP está desplegado en producción por HTTPS, la autenticación por Telegram funciona de extremo a extremo; 33+31 pruebas de gamificación en verde, contraste verificado en 28 combinaciones de pantalla y tema. La facturación, un estudio de IA y MAX son la siguiente etapa.

PythonFastAPISQLiteTelegram Login + Bot APInginx
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma в продеliveen producción

ВИТРИНА

ЗадачаTaskTarea

Локальному офлайн-магазину нужна возможность раздавать «партнёрские витрины»: любой человек за полминуты получает магазин-бота под своим именем с теми же товарами, а продажи проходят через магазин-принципал.A local offline shop needed to hand out "partner storefronts": anyone gets a bot-shop under their own name with the same goods in half a minute, while sales flow through the principal shop.Una tienda física local necesitaba repartir "escaparates de socio": cualquiera obtiene una tienda-bot con su propio nombre y los mismos productos en medio minuto, mientras las ventas pasan por la tienda principal.

РешениеSolutionSolución

Мультиарендная (multi-tenant) платформа, всё привязано к магазину: витрина-мини-апп в формате вертикальной ленты 9:16, единый каталог с транзакционным остатком, партнёрские ключи и сквозная атрибуция заказа, маршрутизация всех ботов через один вебхук, админка с воронкой и выплатами.A multi-tenant platform where everything is scoped to the shop: a storefront mini-app as a vertical 9:16 feed, a single catalog with transactional stock, partner keys and end-to-end order attribution, routing of all bots through one webhook, an admin with a funnel and payouts.Una plataforma multi-tenant donde todo está acotado a la tienda: un escaparate mini-app como feed vertical 9:16, un catálogo único con stock transaccional, claves de socio y atribución de pedido de extremo a extremo, enrutamiento de todos los bots por un solo webhook, un panel con embudo y pagos.

РезультатResultResultado

Демо-стенд развёрнут по HTTPS, бот и вебхук живые, витрина рендерит каталог; подключение партнёра — задача около 30 секунд. Эквайринг и выплаты — второй этап.A demo stand deployed over HTTPS, bot and webhook live, the storefront renders the catalog; onboarding a partner takes about 30 seconds. Acquiring and payouts are the second stage.Un stand demo desplegado por HTTPS, bot y webhook activos, el escaparate renderiza el catálogo; dar de alta a un socio toma unos 30 segundos. La pasarela de pago y los pagos son la segunda etapa.

PythonFastAPISQLiteTelegram Bot APICaddy
Читать разборRead the caseLeer el caso
БотBotBot в продеliveen producción

Биржа Труда

ЗадачаTaskTarea

Региональному рынку нужна биржа подработки и смен «кто может выйти прямо сейчас» — с тремя типами занятости (смена / подработка / постоянка) и переходом смены в постоянную работу, работающая для аудитории, далёкой от приложений.A regional market needed a gig-and-shift exchange answering "who can start right now" — with three employment types (shift / recurring gig / permanent) and a shift-to-permanent path, working for an audience far from apps.Un mercado regional necesitaba una bolsa de trabajos y turnos que respondiera "quién puede empezar ahora mismo" — con tres tipos de empleo (turno / trabajo recurrente / permanente) y un paso de turno a permanente, funcional para un público alejado de las apps.

РешениеSolutionSolución

Под ключ bot-first продукт в Telegram и MAX на общей базе (FastAPI + PostgreSQL 16, 27 таблиц): регистрация по номеру без SMS, карточки-стопка со свайпами и кнопками-дублёрами, взаимный матч с обменом контактами, жёсткие фильтры по возрасту и категориям, серверная админка с воронкой, модерацией и ручным заведением бизнесов до прихода владельца.A turnkey bot-first product in Telegram and MAX on a shared database (FastAPI + PostgreSQL 16, 27 tables): phone sign-up without SMS, a swipe card stack with duplicate buttons, mutual matching with contact exchange, hard filters by age and category, and a server-rendered admin with a funnel, moderation and manual seeding of businesses before the owner arrives.Un producto bot-first llave en mano en Telegram y MAX sobre una base común (FastAPI + PostgreSQL 16, 27 tablas): registro por teléfono sin SMS, una pila de tarjetas con swipes y botones duplicados, emparejamiento mutuo con intercambio de contactos, filtros estrictos por edad y categoría, y un panel en servidor con embudo, moderación y alta manual de negocios antes de que llegue el dueño.

РезультатResultResultado

MVP развёрнут в проде на своём сервере через systemd, бот живой, сквозной сценарий работает end-to-end (регистрация → карточки → матч → контакты); диалог внутри бота, отзывы/рейтинг и рассылки — следующий этап.The MVP is deployed in production on its own server via systemd, the bot live, the core flow working end-to-end (sign-up → cards → match → contacts); in-bot dialog, reviews/rating and broadcasts are the next stage.El MVP está desplegado en producción en su propio servidor vía systemd, el bot activo, el flujo central funcionando de extremo a extremo (registro → tarjetas → match → contactos); el diálogo dentro del bot, reseñas/valoración y envíos son la siguiente etapa.

FastAPIPostgreSQL 16Jinja2Telegram + MAX Bot APIAPSchedulerCaddy
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web в продеliveen producción

dex-memecoins

ЗадачаTaskTarea

Нужен инструмент, который сам изучает и анализирует топовые мемкоины Solana по данным DexScreener — с оценкой риска и хайпа.A tool was needed that studies and analyzes the top Solana memecoins on its own using DexScreener data — with risk and hype scoring.Hacía falta una herramienta que estudie y analice por sí sola las principales memecoins de Solana con datos de DexScreener — con puntuación de riesgo y de hype.

РешениеSolutionSolución

Python-анализатор без внешних зависимостей: собирает ~370 токенов, схлопывает пары в токены, считает оборот к ликвидности, покрытие капы, ускорение объёма, риск-скор 0–100 и хайп-скор, отсекает накрученный объём и LP-токены пулов; развёрнут как веб-дашборд (Caddy + systemd, режим только для чтения, basic-auth).A dependency-free Python analyzer: it gathers ~370 tokens, collapses pairs into tokens, computes turnover-to-liquidity, market-cap coverage, volume acceleration, a 0–100 risk score and a hype score, and filters out wash-traded volume and pool LP tokens; deployed as a web dashboard (Caddy + systemd, read-only mode, basic auth).Un analizador en Python sin dependencias: reúne ~370 tokens, colapsa los pares en tokens, calcula rotación sobre liquidez, cobertura de capitalización, aceleración de volumen, una puntuación de riesgo 0–100 y una de hype, y descarta el volumen inflado y los tokens LP de pools; desplegado como panel web (Caddy + systemd, modo solo lectura, autenticación básica).

РезультатResultResultado

Работает и локально (CLI), и как веб-сервис на поддомене; полный прогон ~370 токенов занимает около 10 секунд.Runs both locally (CLI) and as a web service on a subdomain; a full pass over ~370 tokens takes about 10 seconds.Funciona tanto localmente (CLI) como servicio web en un subdominio; una pasada completa sobre ~370 tokens tarda unos 10 segundos.

PythonDexScreener APICaddysystemdLinux VPS
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web международныйinternationalinternacional в продеliveen producción

welx.lol

ЗадачаTaskTarea

Многостраничный сайт креативного агентства для рынка Дубая/ОАЭ: английский и ещё четыре языка, светлая и тёмная темы с переключателем, доступность по WCAG AA, PWA, блог.Multi-page creative-agency website for the Dubai/UAE market: English plus four more languages, light and dark themes with a toggle, WCAG AA accessibility, PWA, and a blog.Sitio web multipágina de una agencia creativa para el mercado de Dubái/EAU: inglés y cuatro idiomas más, temas claro y oscuro con conmutador, accesibilidad WCAG AA, PWA y un blog.

РешениеSolutionSolución

Статический сайт без зависимостей: контент в JSON, шаблон и сборка на Node. Две темы с переключателем и prefers-color-scheme (после редизайна основная — светлая); для розового акцента выведен отдельный доступный токен под AA-контраст. Маскот и иконки вырезаны из макетов через альфа-канал. PWA-прекэш, JSON-LD с юрреквизитами и лицензией ОАЭ, шрифты у себя, без cookie; блог и раздел об ИИ по 10 статей, страница геймификации с 52 механиками, глоссарий на 57 терминов — на 5 языках.Dependency-free static site: content in JSON, template and build on Node. Two themes with a toggle and prefers-color-scheme (light became primary after the redesign); a dedicated accessible pink token derived to meet AA contrast. Mascot and icons keyed out of the mockups via alpha. PWA precache, JSON-LD with legal details and the UAE licence, self-hosted fonts, no cookies; a blog and an AI section of 10 articles each, a gamification page with 52 mechanics, a 57-term glossary — in 5 languages.Sitio estático sin dependencias: contenido en JSON, plantilla y compilación en Node. Dos temas con conmutador y prefers-color-scheme (tras el rediseño el claro es el principal); se derivó un token rosa accesible para cumplir el contraste AA. La mascota y los iconos se recortaron de las maquetas mediante canal alfa. Precaché PWA, JSON-LD con los datos legales y la licencia de EAU, fuentes propias, sin cookies; un blog y una sección de IA con 10 artículos cada uno, una página de gamificación con 52 mecánicas y un glosario de 57 términos — en 5 idiomas.

РезультатResultResultado

Опубликован на собственном домене welx.lol (сентябрь 2026): axe 0 нарушений на 10 страницах в обеих темах, цели нажатия не меньше 24×24, нет горизонтальной прокрутки на 320/360/390/768, PWA-прекэш весь отдаёт 200; 20 статей и глоссарий на 5 языках работают без единой куки.Published on its own domain welx.lol (September 2026): axe reports 0 violations across 10 pages in both themes, tap targets at least 24×24, no horizontal scroll at 320/360/390/768, the PWA precache all returns 200; 20 articles and the glossary work in 5 languages without a single cookie.Publicado en su propio dominio welx.lol (septiembre de 2026): axe informa 0 infracciones en 10 páginas en ambos temas, objetivos táctiles de al menos 24×24, sin desplazamiento horizontal en 320/360/390/768, la precaché PWA devuelve 200 en todas; 20 artículos y el glosario funcionan en 5 idiomas sin una sola cookie.

HTMLCSSJavaScriptNode.jsPWA / Service WorkerCaddy
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web в продеliveen producción

Умный Бизнес

ЗадачаTaskTarea

Собрать лендинг для digital-агентства из Читы под услуги автоматизации на нейросетях, чат-боты для мессенджеров, разработку сайтов, маркетинг и дизайн — с продвижением по своему региону.Build a landing page for a Chita-based digital agency covering neural-network automation, messenger chatbots, website development, marketing and design — with promotion targeted at its home region.Crear una landing para una agencia digital de Chitá que cubre automatización con redes neuronales, chatbots para mensajería, desarrollo de sitios web, marketing y diseño — con promoción orientada a su región.

РешениеSolutionSolución

Статический лендинг (HTML/CSS/JS) в тёмной теме со стеклянными карточками и бэкендом приёма заявок на Python; настроены SEO и локальное GEO под Забайкальский край (Schema.org ProfessionalService/FAQPage с areaServed по городам, гео-мета, llms.txt и robots.txt с разрешением ИИ-краулерам); развёрнут на nginx как systemd-сервис.A static landing page (HTML/CSS/JS) in a dark glass-card theme with a Python lead-capture backend; SEO and local GEO tuned for the Zabaykalsky Krai (Schema.org ProfessionalService/FAQPage with areaServed by city, geo meta tags, llms.txt and robots.txt allowing AI crawlers); deployed on nginx as a systemd service.Una landing estática (HTML/CSS/JS) con tema oscuro de tarjetas de vidrio y un backend en Python para captar solicitudes; SEO y GEO local ajustados para la región de Zabaikalie (Schema.org ProfessionalService/FAQPage con areaServed por ciudad, metaetiquetas geográficas, llms.txt y robots.txt que permiten rastreadores de IA); desplegada en nginx como servicio systemd.

РезультатResultResultado

Сайт развёрнут и работает на HTTPS (umniybusiness.ru); форма заявок принимает и сохраняет обращения на сервере, SEO-файлы (robots.txt, sitemap.xml, llms.txt, OG-картинка) отдаются корректно.The site is deployed and live over HTTPS (umniybusiness.ru); the lead form accepts and stores submissions on the server, and the SEO files (robots.txt, sitemap.xml, llms.txt, OG image) are served correctly.El sitio está desplegado y activo por HTTPS (umniybusiness.ru); el formulario recibe y guarda las solicitudes en el servidor, y los archivos SEO (robots.txt, sitemap.xml, llms.txt, imagen OG) se sirven correctamente.

HTMLCSSJavaScriptPythonnginxSchema.orgSEO/GEO
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web в продеliveen producción

Лендинг мастера огненного массажа

ЗадачаTaskTarea

Мастеру огненного массажа, работающему по гастрольной схеме (выезды в Москву и Санкт-Петербург с базовым городом), нужен продающий сайт под запуск рекламы. Ключевое ограничение — тексты нельзя строить на медицинских обещаниях: реклама с диагнозами и словами «лечение/вылечу» не проходит модерацию и нарушает закон «О рекламе».A fire-massage practitioner working a touring model (visiting Moscow and St. Petersburg from a home base) needed a selling landing page to launch advertising. The core constraint: copy could not rely on medical promises — advertising with diagnoses and words like "treat/cure" fails ad moderation and violates advertising law.Una maestra de masaje con fuego que trabaja en modo itinerante (viaja a Moscú y San Petersburgo desde una ciudad base) necesitaba una landing de ventas para lanzar publicidad. La restricción clave: los textos no podían basarse en promesas médicas — anunciar con diagnósticos y palabras como «tratar/curar» no pasa la moderación e infringe la ley de publicidad.

РешениеSolutionSolución

Статический сайт без фреймворков с генерацией отдельных страниц под каждый город из одного шаблона и JSON-конфига (сборка Python-скриптом). Форма заявок — лёгкий API на стандартной библиотеке Python под слабый сервер без Node. Развёрнут за Caddy с автоматическим HTTPS. Все тексты переписаны с диагнозов на описания состояний, без слов «лечение» и «гарантирую», чтобы пройти модерацию рекламы.A framework-free static site that generates a separate page per city from a single template and JSON config (assembled by a Python script). The lead form is a lightweight API on the Python standard library, sized for a low-spec server with no Node. Deployed behind Caddy with automatic HTTPS. All copy was rewritten from diagnoses to descriptions of conditions, dropping words like "cure" and "guarantee", so it passes ad moderation.Un sitio estático sin frameworks que genera una página por ciudad a partir de una sola plantilla y un archivo JSON (ensamblado con un script en Python). El formulario es una API ligera sobre la biblioteca estándar de Python, pensada para un servidor de bajos recursos sin Node. Desplegado detrás de Caddy con HTTPS automático. Todos los textos se reescribieron, pasando de diagnósticos a descripciones de estados y eliminando palabras como «curar» y «garantizar», para superar la moderación publicitaria.

РезультатResultResultado

Сайт запущен и работает на боевом домене с валидным SSL: отдельные посадочные страницы под каждый город, рабочая форма заявок, копирайт, совместимый с требованиями рекламного законодательства. Готов к подключению рекламных кампаний.The site is live on a production domain with a valid SSL certificate: per-city landing pages, a working lead form, and copy compliant with advertising-law requirements. Ready to connect ad campaigns.El sitio está en producción con un certificado SSL válido: páginas de aterrizaje por ciudad, un formulario de contacto funcional y textos conformes con los requisitos de la ley de publicidad. Listo para conectar campañas.

HTMLCSSPythonCaddyLet's Encrypt
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web разработаноdevelopeddesarrollado

ФудДвор — редизайн

ЗадачаTaskTarea

Фронтенд бренда на общей кодовой базе маркетплейса выглядел сломанным: токенами покрыто ~4% стилей, ~280 цветов прибиты хардкодом и не меняются при смене бренда, модалки вне бренд-скоупа, 100+ эмодзи вместо иконок.A brand’s frontend on a shared marketplace codebase looked broken: tokens covered only ~4% of styles, ~280 colors were hardcoded and did not change with the brand, modals rendered outside the brand scope, and 100+ emojis stood in for icons.El frontend de una marca sobre una base de código compartida del marketplace se veía roto: los tokens cubrían solo ~4% de los estilos, ~280 colores estaban fijos en el código y no cambiaban con la marca, los modales se renderizaban fuera del ámbito de la marca y 100+ emojis hacían de iconos.

РешениеSolutionSolución

Собран отдельный тематический слой через Python-генератор, скоупнутый на бренд: новая палитра и шрифт с проверенным WCAG-контрастом, замена 100+ эмодзи на inline-SVG-иконки, перекраска модалок, мобильная оптимизация; отдельно составлен список правок, требующих пересборки фронта разработчиком.Built a separate theme layer via a Python generator, scoped to the brand: a new palette and font with verified WCAG contrast, 100+ emojis replaced with inline-SVG icons, modals recolored, mobile optimization; plus a list of fixes that require the developer to rebuild the frontend.Se creó una capa de tema aparte mediante un generador en Python, acotada a la marca: una nueva paleta y fuente con contraste WCAG verificado, 100+ emojis reemplazados por iconos SVG en línea, modales recoloreados, optimización móvil; además de una lista de correcciones que requieren que el desarrollador recompile el frontend.

РезультатResultResultado

Тема (~54 КБ, ~148 правил) собрана по бренд-буку заказчика (фирменный шрифт, красно-жёлтая палитра, референс из его ниши) и залита в живой preview-стенд через SFTP; проверена вживую замерами: шрифт и бренд-цвета применились, контраст-пары проходят WCAG; добавлена каплевидная метка с логотипом, эмодзи заменены иконками. Команда заказчика проверяет превью перед переносом в бой.The theme (~54 KB, ~148 rules) is built to the client’s brand book (brand font, red-and-yellow palette, a reference from their niche) and uploaded to a live preview stand via SFTP; verified by on-page measurement: the font and brand colors applied, contrast pairs pass WCAG; a teardrop logo marker added, emojis replaced with icons. The client’s team is reviewing the preview before moving it to production.El tema (~54 KB, ~148 reglas) está construido según el manual de marca del cliente (fuente corporativa, paleta rojo-amarillo, una referencia de su nicho) y subido a un stand de preview en vivo por SFTP; verificado por medición en página: la fuente y los colores de marca se aplicaron, los pares de contraste pasan WCAG; se añadió un marcador en forma de gota con el logotipo y los emojis se reemplazaron por iconos. El equipo del cliente revisa el preview antes de pasarlo a producción.

CSS дизайн-токеныPython-генераторlucide SVG
Читать разборRead the caseLeer el caso
БотBotBot разработаноdevelopeddesarrollado

threads-poster

ЗадачаTaskTarea

Автопостинг в личный аккаунт Threads*: посты, ветки-цепочки и отложенная публикация по расписанию.Auto-posting to a personal Threads* account: posts, reply chains and scheduled deferred publishing.Publicación automática en una cuenta personal de Threads*: posts, cadenas de respuestas y publicación diferida programada.

РешениеSolutionSolución

Node.js-инструмент на официальном Threads* Graph API: авторизация с долгоживущим токеном и его продлением, публикация постов и цепочек (веток), очередь отложенных постов с планировщиком по времени и контролем суточных лимитов публикаций.A Node.js tool on the official Threads* Graph API: authorization with a long-lived token and its renewal, publishing of posts and reply chains, and a scheduled queue of deferred posts with daily publish-limit control.Una herramienta en Node.js sobre la Threads* Graph API oficial: autorización con token de larga duración y su renovación, publicación de posts y cadenas de respuestas, y una cola programada de publicaciones diferidas con control del límite diario de publicaciones.

РезультатResultResultado

Код собран и проверен (проверка синтаксиса + dry-run прогоны). Живая публикация ждёт официальный API-токен — нужна модерация приложения на стороне платформы.Code is complete and validated (syntax check + dry-run passes). Live posting awaits the official API token — platform app review is pending.El código está terminado y validado (comprobación de sintaxis + pruebas en dry-run). La publicación en vivo espera el token oficial de la API — la revisión de la app por la plataforma está pendiente.

Node.jsThreads* Graph API
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma разработаноdevelopeddesarrollado

SPL Launch

ЗадачаTaskTarea

Собрать прозрачный тулкит запуска SPL-токена на Solana под собственный бренд: изолированные по ролям зашифрованные кейсторы, единый прогон от минта до листинга, отзыв полномочий и независимая проверка результата в сети — без клонирования чужих тикеров и без имитации активности.Build a transparent toolkit for launching an SPL token on Solana under your own brand: role-isolated encrypted keystores, a single run from mint to listing, authority revocation and independent on-chain verification — no cloning of other projects' tickers and no faked activity.Construir un kit transparente para lanzar un token SPL en Solana bajo marca propia: keystores cifrados aislados por rol, una ejecución única desde el minteo hasta el listado, revocación de autoridades y verificación independiente en la cadena, sin clonar tickers ajenos ni simular actividad.

РешениеSolutionSolución

TypeScript-конвейер (@solana/web3.js, Metaplex/Umi, SPL-Token, Raydium SDK v2, Streamflow) с пошаговым запуском, resume и веб-панелью на Express. Метаданные и арт публикуются на настоящий Arweave через Turbo, полномочия mint/freeze отзываются, mutable снимается, а отдельный модуль verify независимо перечитывает состояние минта из сети. Вестинг — реальными замками Streamflow вместо дробления supply по ярлыкам.A TypeScript pipeline (@solana/web3.js, Metaplex/Umi, SPL-Token, Raydium SDK v2, Streamflow) with stepwise execution, resume and an Express web panel. Metadata and art are published to real Arweave via Turbo, mint/freeze authorities are revoked, mutability is removed, and a separate verify module re-reads mint state directly from the chain. Vesting uses real Streamflow locks instead of splitting supply across labeled wallets.Un pipeline en TypeScript (@solana/web3.js, Metaplex/Umi, SPL-Token, Raydium SDK v2, Streamflow) con ejecución por pasos, reanudación y un panel web en Express. Los metadatos y el arte se publican en Arweave real vía Turbo, se revocan las autoridades de mint/freeze, se elimina la mutabilidad y un módulo verify independiente vuelve a leer el estado del mint directamente de la red. El vesting usa bloqueos reales de Streamflow en vez de repartir el supply entre wallets etiquetadas.

РезультатResultResultado

На devnet прошёл первый живой end-to-end прогон: токен создан, шаги 1–5 отработали. Независимая проверка подтвердила mintAuthority=null, freezeAuthority=null, isMutable=false, supply 1e15, полная стоимость запуска 0.0207 SOL. Метаданные легли на рабочий Arweave-URI, пригодный и для mainnet. Вестинг, пул Raydium CPMM и сжигание LP — следующий этап.First live end-to-end run completed on devnet: token created, steps 1–5 executed. Independent checks confirmed mintAuthority=null, freezeAuthority=null, isMutable=false, supply 1e15, and a full launch cost of 0.0207 SOL. Metadata landed on a working Arweave URI usable for mainnet too. Vesting, the Raydium CPMM pool and LP burn are the next stage.Primera ejecución integral en vivo completada en devnet: token creado, pasos 1–5 ejecutados. Verificaciones independientes confirmaron mintAuthority=null, freezeAuthority=null, isMutable=false, supply 1e15 y un costo total de lanzamiento de 0.0207 SOL. Los metadatos quedaron en un URI de Arweave funcional, apto también para mainnet. El vesting, el pool Raydium CPMM y el quemado de LP son la siguiente etapa.

TypeScriptNode.js@solana/web3.jsMetaplex / UmiRaydium SDK v2StreamflowArweaveExpress
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web в продеliveen producción

Личный сайт эксперта по недвижимости

ЗадачаTaskTarea

Эксперту по недвижимости из Иркутска нужен личный сайт вместо отсутствия онлайн-присутствия: услуги, приём заявок и видимость в поиске и ИИ-ассистентах.A real-estate expert from Irkutsk needed a personal website instead of having no online presence: services, lead intake, and visibility in search and AI assistants.Una experta inmobiliaria de Irkutsk necesitaba un sitio web personal en lugar de no tener presencia en línea: servicios, captación de solicitudes y visibilidad en buscadores y asistentes de IA.

РешениеSolutionSolución

Рукописный статический лендинг + блог, развёрнут на VPS под nginx с HTTPS; настроены SEO и GEO: структура заголовков, Schema.org JSON-LD (RealEstateAgent/Person/WebSite/FAQPage/BlogPosting), sitemap, robots; форма заявки на email; свой домен.A hand-coded static landing page plus a blog, deployed on a VPS under nginx with HTTPS; SEO and GEO set up: heading structure, Schema.org JSON-LD (RealEstateAgent/Person/WebSite/FAQPage/BlogPosting), sitemap, robots; a lead form to email; own domain.Una landing estática escrita a mano más un blog, desplegada en un VPS con nginx y HTTPS; SEO y GEO configurados: estructura de encabezados, Schema.org JSON-LD (RealEstateAgent/Person/WebSite/FAQPage/BlogPosting), sitemap, robots; un formulario de contacto al correo; dominio propio.

РезультатResultResultado

Сайт в эфире на собственном домене с валидным HTTPS и авто-продлением сертификата: 6–7 страниц (главная, направления услуг, обо мне, цены, контакты), блог с SEO/GEO-статьями и микроразметкой, рабочая форма заявки.The site is live on its own domain with a valid auto-renewing HTTPS certificate: 6–7 pages (home, service areas, about, pricing, contacts), a blog with SEO/GEO articles and structured markup, and a working lead form.El sitio está en línea con dominio propio y certificado HTTPS válido con renovación automática: 6–7 páginas (inicio, áreas de servicio, sobre mí, precios, contactos), un blog con artículos SEO/GEO y marcado estructurado, y un formulario de contacto funcional.

HTMLCSSJavaScriptnginxUbuntu VPSLet's EncryptSchema.org JSON-LD
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web разработаноdevelopeddesarrollado

ProSport.Photo

ЗадачаTaskTarea

Спортивному фотожурналисту нужен сайт-витрина личного бренда с прицелом на поисковую выдачу по фото. Ограничение: владелец сам заливает по 300–500 фото за раз (до ~12 000 в год) с телефона на плохой связи и не хочет ни одного лишнего действия на кадр.A sports photojournalist needed a personal-brand showcase site aimed at ranking in image search. The constraint: the owner uploads 300–500 photos at a time (up to ~12,000 a year) from a phone on poor connections and wants zero extra steps per shot.Un fotoperiodista deportivo necesitaba un sitio-escaparate de marca personal orientado a posicionar en la búsqueda de imágenes. La restricción: el propietario sube 300–500 fotos a la vez (hasta ~12.000 al año) desde el móvil con mala conexión y no quiere ni un paso extra por foto.

РешениеSolutionSolución

Next.js 15 (App Router, TS strict): доменный слой с тестами, резюмируемая загрузка по tus-протоколу (докачка с того же байта после обрыва), обработка в sharp через очередь BullMQ (очистка метаданных с сохранением IPTC, водяной знак, WebP, превью), публичная лента и страница репортажа с авто-«ритмом» галереи по пропорциям (без кадрирования) и лайтбоксом.Next.js 15 (App Router, TS strict): a tested domain layer, resumable tus-protocol uploads (resume from the same byte after a drop), sharp processing via a BullMQ queue (metadata scrub keeping IPTC, watermark, WebP, thumbnails), a public feed and a report page with an auto-"rhythm" gallery by aspect ratio (no cropping) and a lightbox.Next.js 15 (App Router, TS strict): una capa de dominio con tests, subidas reanudables por protocolo tus (reanudar desde el mismo byte tras un corte), procesamiento en sharp mediante una cola BullMQ (limpieza de metadatos conservando IPTC, marca de agua, WebP, miniaturas), un feed público y una página de reportaje con una galería de "ritmo" automático por proporción (sin recortar) y un lightbox.

РезультатResultResultado

Демо-стенд развёрнут (pm2 + nginx, отдельный порт): 326 тестов зелёные, покрытие 91.9%; загрузка 50 файлов с искусственным обрывом на 20-м кадре докачалась до конца (0 потерь), отдача media через nginx ~24 КБ/кадр в WebP; галерея проверена программно — ни один кадр не обрезан, 0 нарушений контраста. Админка, рубрики и Schema/sitemap — следующий этап.A demo stand deployed (pm2 + nginx, separate port): 326 tests green, 91.9% coverage; a 50-file upload with a forced drop on the 20th frame resumed to completion (0 losses), media served via nginx at ~24 KB/frame in WebP; the gallery verified programmatically — not a single frame cropped, 0 contrast violations. Admin, rubrics and Schema/sitemap are the next stage.Un stand demo desplegado (pm2 + nginx, puerto aparte): 326 tests en verde, 91,9% de cobertura; una subida de 50 archivos con un corte forzado en el fotograma 20 se reanudó hasta completarse (0 pérdidas), medios servidos por nginx a ~24 KB/fotograma en WebP; la galería verificada por programa — ni un solo fotograma recortado, 0 infracciones de contraste. El panel, las rúbricas y Schema/sitemap son la siguiente etapa.

Next.js 15TypeScriptPostgreSQL 16Drizzle ORMtusBullMQ + Redissharpnginx + pm2
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma в продеliveen producción

Отказоустойчивая инфраструктура

ЗадачаTaskTarea

Держать распределённый парк серверов у нескольких провайдеров в разных странах так, чтобы отказ любого узла или провайдера не ронял сервис — с автоматическим контролем состояния, восстановлением и защитой от компрометации, без ручного дежурства.Run a distributed fleet of servers across several providers and countries so that the failure of any node or provider doesn't take the service down — with automatic health control, recovery and compromise protection, and no manual on-call.Mantener un parque distribuido de servidores en varios proveedores y países de modo que el fallo de cualquier nodo o proveedor no tumbe el servicio — con control de estado automático, recuperación y protección contra compromisos, sin guardias manuales.

РешениеSolutionSolución

Инженерная обвязка отказоустойчивости: health-мониторинг с проверкой доступности и минимального числа живых узлов, watchdog с авто-перезапуском зависших сервисов, ежечасные валидируемые бэкапы с ротацией, тёплый резерв (warm-standby) на втором провайдере с быстрым переключением, полный харденинг хостов — доступ только по ключам, защита от брутфорса, авто-обновления безопасности, детект руткитов и майнеров со своим вайтлистом.A fault-tolerance engineering layer: health monitoring that checks reachability and a minimum count of live nodes, a watchdog that auto-restarts hung services, hourly validated backups with rotation, a warm standby on a second provider with fast switchover, and full host hardening — key-only access, brute-force protection, automatic security updates, rootkit and miner detection with a custom whitelist.Una capa de ingeniería de tolerancia a fallos: monitoreo de salud que comprueba la disponibilidad y un número mínimo de nodos vivos, un watchdog que reinicia automáticamente los servicios colgados, copias de seguridad validadas cada hora con rotación, un warm standby en un segundo proveedor con conmutación rápida, y hardening completo de los hosts — acceso solo por claves, protección contra fuerza bruta, actualizaciones de seguridad automáticas, detección de rootkits y mineros con lista blanca propia.

РезультатResultResultado

Инфраструктура в бою и стабильна: мониторинг раз в 5 мин, watchdog раз в 2 мин, ежечасные бэкапы с хранением 14 копий, ежедневное сканирование на руткиты; финальная проверка — все сервисы живы, 0 перезапусков, 0 находок майнеров на всех серверах, резерв доступен.The infrastructure is in production and stable: monitoring every 5 min, watchdog every 2 min, hourly backups keeping 14 copies, daily rootkit scans; the final check showed all services alive, 0 restarts, 0 miner findings across all servers, and the standby reachable.La infraestructura está en producción y es estable: monitoreo cada 5 min, watchdog cada 2 min, copias cada hora conservando 14 versiones, escaneo diario de rootkits; la verificación final mostró todos los servicios activos, 0 reinicios, 0 hallazgos de mineros en todos los servidores, y el standby accesible.

Linuxsystemd + cronCaddy / nginxBash-мониторингfail2banrkhunterмульти-провайдер VPS
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma в продеliveen producción

«Сходим?» — платформа встреч по интересам

ЗадачаTaskTarea

Основателю стартапа офлайн-встреч (афиша, события, знакомства по интересам) нужно было за 3–5 рабочих дней запустить живую площадку на своём домене и инфраструктуре: на базе открытого движка событий, но с полным ребрендингом «до нуля упоминаний» движка, русской локализацией и требованиями РФ.The founder of an offline-meetups startup (events listing, meetups by interest) needed a live platform launched in 3–5 working days on his own domain and infrastructure: built on an open-source events engine but fully rebranded with "zero mentions" of the engine, Russian localisation and Russian regulatory requirements.El fundador de una startup de encuentros presenciales (cartelera, eventos, quedadas por intereses) necesitaba lanzar una plataforma viva en 3–5 días laborables en su propio dominio e infraestructura: sobre un motor de eventos de código abierto, pero con un rebranding total "sin una sola mención" del motor, localización al ruso y requisitos regulatorios de Rusia.

РешениеSolutionSolución

Развёрнуто на сервере заказчика в Docker; движок собран из исходников под собственным именем, интерфейс, письма и юртексты переведены и переименованы (570 недостающих русских строк), свой почтовый сервер с DKIM/SPF/DMARC, HTTPS сразу на 10 доменов (основной + 9 редиректов), ежедневные бэкапы с проверкой восстановления, живой слой дизайна в brand.css. Патчи исходников: поля профиля «пол» и «интересы», серверный фильтр мата, удаление категории по требованиям РФ, «Поделиться» в Telegram и MAX; документация для заказчика и мобильный аудит на 390px.Deployed on the client’s server in Docker; the engine built from source under its own name, UI, emails and legal texts translated and rebranded (570 missing Russian strings), an own mail server with DKIM/SPF/DMARC, HTTPS for 10 domains at once (main + 9 redirects), daily backups with restore checks, a live design layer in brand.css. Source patches: "gender" and "interests" profile fields, a server-side profanity filter, a category removed per Russian rules, "Share" to Telegram and MAX; client documentation and a 390px mobile audit.Desplegado en el servidor del cliente con Docker; el motor compilado desde el código fuente bajo su propio nombre, interfaz, correos y textos legales traducidos y renombrados (570 cadenas rusas que faltaban), servidor de correo propio con DKIM/SPF/DMARC, HTTPS para 10 dominios a la vez (principal + 9 redirecciones), copias diarias con prueba de restauración, una capa de diseño viva en brand.css. Parches al código: campos de perfil "sexo" e "intereses", filtro de lenguaje soez en el servidor, una categoría eliminada por las normas rusas, "Compartir" en Telegram y MAX; documentación para el cliente y auditoría móvil a 390px.

РезультатResultResultado

В проде на домене заказчика: закрыты все 11 критериев приёмки; после теста заказчика с iPhone за день исправлены 8 замечаний со скринами «было/стало». Следующий этап — мини-приложения в Telegram и MAX и ИИ-наполнение афиши.Live on the client’s domain: all 11 acceptance criteria closed; after the client’s iPhone test, 8 remarks fixed within a day with before/after screenshots. Next stage — Telegram and MAX mini-apps and AI-generated event listings.En producción en el dominio del cliente: cerrados los 11 criterios de aceptación; tras la prueba del cliente en iPhone, 8 observaciones corregidas en un día con capturas "antes/después". Siguiente etapa — mini-apps en Telegram y MAX y cartelera generada por IA.

Dockeropen-source движок событий (сборка из исходников)PostgreSQLnginxLet's Encryptсвой SMTP + DKIM/SPF/DMARC
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web в продеliveen producción

Сайт автора методики саморегуляции

ЗадачаTaskTarea

Практику оздоровительной методики с онлайн-академией (8 ступеней × 12 уроков = 96 уроков), семинарами и консультациями нужен сайт-витрина с продажей курсов через Telegram и MAX — и переработка формулировок так, чтобы прошли модерацию рекламы и эквайринга.A wellness-method practitioner with an online academy (8 levels × 12 lessons = 96 lessons), seminars and consultations needed a showcase site selling courses via Telegram and MAX — and copy reworked so that ad moderation and payment acquiring would approve it.Un practicante de una metodología de bienestar con academia en línea (8 niveles × 12 lecciones = 96 lecciones), seminarios y consultas necesitaba un sitio-escaparate que venda cursos a través de Telegram y MAX — y textos reformulados para pasar la moderación publicitaria y del adquirente de pagos.

РешениеSolutionSolución

Разобран Telegram-экспорт материалов заказчика (тексты, медиа, отзывы — с вырезанием медицинских и эзотерических обещаний); подготовлены два макета на выбор — светлый шестистраничный по стратегии клиента и тёмно-синий с золотом одностраничник с диагональными плитами и буквами-водяными знаками. Статика без сборки, адаптивные изображения (srcset), герой с вырезанным портретом, формы открывают Telegram с готовым текстом.The client’s Telegram export of materials (texts, media, testimonials — with medical and esoteric promises cut out) was sorted; two mockups prepared — a light six-page version following the client’s strategy and a dark-blue-and-gold one-pager with diagonal slabs and watermark lettering. Static, no build step, responsive images (srcset), a hero with a cut-out portrait, forms that open Telegram with a pre-filled message.Se ordenó la exportación de Telegram con los materiales del cliente (textos, medios, testimonios — recortando promesas médicas y esotéricas); se prepararon dos maquetas — una clara de seis páginas según la estrategia del cliente y una de una sola página en azul oscuro con dorado, bloques diagonales y letras como marca de agua. Estático sin compilación, imágenes adaptativas (srcset), un hero con retrato recortado, formularios que abren Telegram con un texto preparado.

РезультатResultResultado

Заказчик выбрал тёмный вариант; сайт залит на его хостинг, домен направлен, SSL выпущен — запущен 2 сентября 2026. Далее по договорённости — админка на WordPress и английская версия.The client chose the dark version; the site uploaded to their hosting, domain pointed, SSL issued — launched on 2 September 2026. Next, as agreed — a WordPress admin and an English version.El cliente eligió la versión oscura; el sitio se subió a su hosting, el dominio se apuntó, el SSL se emitió — lanzado el 2 de septiembre de 2026. Después, según lo acordado — un panel en WordPress y la versión en inglés.

HTMLCSSJavaScriptsrcsetTelegram deep linksхостинг заказчика
Читать разборRead the caseLeer el caso
ПлатформаPlatformPlataforma международныйinternationalinternacional в продеliveen producción

Backy — цифровая лояльность для кафе (Перу)

ЗадачаTaskTarea

Владельцу нескольких маленьких заведений в Перу нужно было заменить бумажные штамп-карты цифровыми, чтобы новое кафе подключалось без повторной разработки, а персонал начислял визиты за секунды; затем — выйти с продуктом к другим заведениям под собственным брендом.The owner of several small venues in Peru needed to replace paper stamp cards with digital ones so that a new café could be onboarded without re-development and staff could credit visits in seconds; then — to bring the product to other venues under its own brand.El dueño de varios locales pequeños en Perú necesitaba sustituir las tarjetas de sellos de papel por digitales, de modo que un café nuevo se incorporara sin volver a desarrollar y el personal acreditara visitas en segundos; después — llevar el producto a otros locales bajo marca propia.

РешениеSolutionSolución

Мультитенантная PWA-платформа: цифровая штамп-карта «каждый N-й продукт бесплатно», устанавливается на телефон без App Store и Google Play; QR-начисление сканером персонала, push-рассылки с сегментацией, панель владельца с ролями (владелец/кассир, отключение сотрудника). Для продаж — презентации на русском и испанском по 14 слайдов с формулой окупаемости без выдуманных цифр; ребрендинг в Backy и переезд на новый домен с редиректами старых ссылок и QR.A multi-tenant PWA loyalty platform: a digital stamp card ("every Nth product free") installable on a phone without the App Store or Google Play; QR crediting via a staff scanner, segmented push campaigns, an owner panel with roles (owner/cashier, staff deactivation). For sales — 14-slide decks in Russian and Spanish with a payback formula and no invented numbers; a rebrand to Backy and a move to a new domain with redirects for old links and QR codes.Una plataforma de fidelización PWA multiempresa: tarjeta de sellos digital ("cada N-ésimo producto gratis") que se instala en el teléfono sin App Store ni Google Play; acreditación por QR con el escáner del personal, campañas push segmentadas, un panel del propietario con roles (propietario/cajero, desactivación de empleados). Para las ventas — presentaciones de 14 diapositivas en ruso y español con fórmula de retorno y sin cifras inventadas; rebranding a Backy y mudanza a un dominio nuevo con redirecciones de enlaces y QR antiguos.

РезультатResultResultado

В проде у 3 заведений (пекарня, ресторан, спа) с владельцами и кассирами; владелец сам пользуется новыми функциями без разработчика. После ребрендинга интерфейс на 4 языках, старые QR-коды на столах продолжают работать.Live at 3 venues (a bakery, a restaurant and a spa) with owners and cashiers; the owner uses new features without a developer. After the rebrand the UI runs in 4 languages, and the old QR codes on tables keep working.En producción en 3 locales (una panadería, un restaurante y un spa) con propietarios y cajeros; el propietario usa las funciones nuevas sin desarrollador. Tras el rebranding la interfaz funciona en 4 idiomas y los QR antiguos de las mesas siguen funcionando.

FastAPIPostgreSQLRedisReactPWAQRnginx
Читать разборRead the caseLeer el caso
ИИ-решениеAI solutionSolución IA в продеliveen producción

ИИ-ежедневник для предпринимателя (PWA)

ЗадачаTaskTarea

Заказчику нужен голосовой ежедневник-«бизнес-ассистент»: надиктовал — задачи и встречи сами разложились по датам с напоминаниями; в формате PWA, а не нативного приложения, чтобы не проходить сторы.The client needed a voice-driven daily planner / "business assistant": dictate — and tasks and meetings lay themselves out by date with reminders; as a PWA rather than a native app, to skip the app stores.El cliente necesitaba una agenda por voz / "asistente de negocios": dicta — y las tareas y reuniones se ordenan solas por fecha con recordatorios; como PWA y no app nativa, para no pasar por las tiendas.

РешениеSolutionSolución

FastAPI + SQLite + React/Vite как PWA; распознавание речи и разбор текста вынесены в сменные провайдеры (правила/LLM, локально/по API — переключаются одной строкой в конфиге). Два канала напоминаний: Telegram-бот с привязкой одноразовым кодом и Web Push (VAPID). Админка с учётом расходов на ИИ по каждому пользователю; ежедневные бэкапы базы через VACUUM INTO с хранением 30 дней.FastAPI + SQLite + React/Vite as a PWA; speech recognition and text parsing moved into swappable providers (rules/LLM, local/API — switched with one config line). Two reminder channels: a Telegram bot linked via a one-time code and Web Push (VAPID). An admin panel with per-user AI cost accounting; daily database backups via VACUUM INTO kept for 30 days.FastAPI + SQLite + React/Vite como PWA; el reconocimiento de voz y el análisis de texto se separaron en proveedores intercambiables (reglas/LLM, local/API — se cambian con una línea de configuración). Dos canales de recordatorios: un bot de Telegram vinculado con un código de un solo uso y Web Push (VAPID). Panel de administración con contabilidad del gasto en IA por usuario; copias diarias de la base mediante VACUUM INTO conservadas 30 días.

РезультатResultResultado

Развёрнут в проде по HTTPS на своём поддомене, перенесён между серверами без потери данных; напоминания приходят в Telegram и пушами, заказчик пользуется. Подключение Whisper и платных LLM — по мере получения ключей заказчика.Deployed to production over HTTPS on its own subdomain and migrated between servers without data loss; reminders arrive in Telegram and as push notifications, the client uses it. Whisper and paid LLMs plug in as the client provides keys.Desplegado en producción por HTTPS en su propio subdominio y migrado entre servidores sin pérdida de datos; los recordatorios llegan por Telegram y notificaciones push, el cliente lo usa. Whisper y los LLM de pago se conectan a medida que el cliente entrega las claves.

FastAPISQLiteReact + VitePWA / Web PushTelegram Bot APICaddy
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web сданоdeliveredentregado

Кафе: сайт, бот в мессенджере и розыгрыши

ЗадачаTaskTarea

У кафе национальной кухни был сайт-визитка, а розыгрыши среди гостей вели вручную: номерки записывали, оплату сверяли по переписке, победителя тянули как придётся.A national-cuisine cafe had a brochure site, while prize draws among guests were run by hand: tickets written down, payments checked in chat, the winner picked however it happened.У кафе национальной кухни был сайт-визитка, а розыгрыши среди гостей вели вручную: номерки записывали, оплату сверяли по переписке, победителя тянули как придётся.

РешениеSolutionSolución

Сайт на статике со своим сервером и сертификатом: меню наборами, реальные условия доставки и часы работы, политика данных, оферта, разметка заведения и гео-теги. Поверх — бот в MAX, где номерок покупают прямо в переписке, админка владельца с сеткой номерков, бронью на 15 минут, отметкой оплат и рассылкой подписчикам, и мини-приложение с той же сеткой внутри мессенджера. Выбор победителя — с контрольной строкой, по которой результат можно перепроверить.A static site on its own server with a certificate: a set-based menu, real delivery terms and opening hours, a privacy policy, a public offer, restaurant markup and geo tags. On top — a bot in MAX where a draw ticket is bought inside the chat, an owner admin panel with the ticket grid, a 15-minute hold, payment marking and broadcasts to bot subscribers, plus a mini app with the same grid inside the messenger. The winner is drawn with a verification string anyone can re-check.Сайт на статике со своим сервером и сертификатом: меню наборами, реальные условия доставки и часы работы, политика данных, оферта, разметка заведения и гео-теги. Поверх — бот в MAX, где номерок покупают прямо в переписке, админка владельца с сеткой номерков, бронью на 15 минут, отметкой оплат и рассылкой подписчикам, и мини-приложение с той же сеткой внутри мессенджера. Выбор победителя — с контрольной строкой, по которой результат можно перепроверить.

РезультатResultResultado

В проде. Страница похудела с 1603 до 303 КБ (−81%), первый экран с 700 до 230 КБ, открытие с 3,2 до 1,8 секунды; при повторном заходе картинки берутся из кэша. Цикл розыгрыша прогнан вручную на 35 номерках, владельцу отдана памятка. Автопроверки — 73 из 73, по ходу найдены и исправлены 3 ошибки; первый живой покупатель споткнулся о ввод телефона — это место исправлено.Live. The page dropped from 1603 to 303 KB (−81%), the first screen from 700 to 230 KB, load time from 3.2 to 1.8 seconds; on a repeat visit images come from cache. The full draw cycle was run by hand across 35 tickets, and the owner got a written how-to. Automated checks pass 73 of 73, with 3 bugs found and fixed along the way; the first real buyer stumbled on the phone field, and that step was fixed.В проде. Страница похудела с 1603 до 303 КБ (−81%), первый экран с 700 до 230 КБ, открытие с 3,2 до 1,8 секунды; при повторном заходе картинки берутся из кэша. Цикл розыгрыша прогнан вручную на 35 номерках, владельцу отдана памятка. Автопроверки — 73 из 73, по ходу найдены и исправлены 3 ошибки; первый живой покупатель споткнулся о ввод телефона — это место исправлено.

статика + nginxFastAPISQLiteMAX Bot APIWebP с фолбэкомsystemd
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web сданоdeliveredentregado

Переезд сайта с конструктора на свой сервер

ЗадачаTaskTarea

Компания по подбору автомобилей из Китая сидела на конструкторе: чужая плашка на страницах, никакого приёма заявок кроме мессенджера и невозможность достроить что-либо своё.A company sourcing cars from China sat on a website builder: someone else branding on the pages, no way to take enquiries beyond a messenger, and nothing of their own could be added.Компания по подбору автомобилей из Китая сидела на конструкторе: чужая плашка на страницах, никакого приёма заявок кроме мессенджера и невозможность достроить что-либо своё.

РешениеSolutionSolución

Снял сайт с конструктора и поставил на свой сервер с доменом и автопродлением сертификата. Сверху достроил то, чего в конструкторе не бывает: мини-приложение в мессенджере с кнопкой «оставить номер» без ручного ввода, админку со входом по одноразовому коду, заявки со статусами и заметками, базу подписчиков и рассылки, а также редактор сайта прямо в админке — тексты правятся на месте, меняются картинки, цвета и порядок блоков.Moved the site off the builder onto its own server with a domain and auto-renewing certificate. Then added what a builder never has: a messenger mini app with a "leave your number" button that needs no typing, an admin panel with one-time-code login, enquiries with statuses and notes, a subscriber base with broadcasts, and a site editor inside the admin panel — text edited in place, images, colours and block order changed by the owner.Снял сайт с конструктора и поставил на свой сервер с доменом и автопродлением сертификата. Сверху достроил то, чего в конструкторе не бывает: мини-приложение в мессенджере с кнопкой «оставить номер» без ручного ввода, админку со входом по одноразовому коду, заявки со статусами и заметками, базу подписчиков и рассылки, а также редактор сайта прямо в админке — тексты правятся на месте, меняются картинки, цвета и порядок блоков.

РезультатResultResultado

Работа сдана с честным списком хвостов: каталог по API и настоящий телефон вместо заглушки. Картинки ужаты с 8,00 до 3,95 МБ (−50%), один фон — в 9,6 раза; все 52 ресурса страницы отдаются без ошибок, консоль чистая. Админка отвечает отказом и без входа, и с чужого номера. Ночные бэкапы хранятся 14 дней, соседний проект на сервере не тронут. В сентябре калькулятор растаможки переехал на свой домен: исходный скрипт падал на каждом расчёте, после исправления прежние итоги сошлись до рубля; в админке появилась вкладка тарифов, каталог переведён на свою базу.Handed over with an honest list of loose ends: the car catalogue via API and a real phone number instead of a placeholder. Images shrank from 8.00 to 3.95 MB (−50%), one background by 9.6×; all 52 page resources return cleanly and the console is clear. The admin panel refuses access both without login and from a foreign number. Nightly backups are kept 14 days, and a neighbouring project on the server was left untouched. In September the customs calculator moved to its own domain: the original script crashed on every calculation, and after the fix the old totals match to the rouble; the admin panel gained a rates tab and the catalogue moved to our own database.Работа сдана с честным списком хвостов: каталог по API и настоящий телефон вместо заглушки. Картинки ужаты с 8,00 до 3,95 МБ (−50%), один фон — в 9,6 раза; все 52 ресурса страницы отдаются без ошибок, консоль чистая. Админка отвечает отказом и без входа, и с чужого номера. Ночные бэкапы хранятся 14 дней, соседний проект на сервере не тронут. В сентябре калькулятор растаможки переехал на свой домен: исходный скрипт падал на каждом расчёте, после исправления прежние итоги сошлись до рубля; в админке появилась вкладка тарифов, каталог переведён на свою базу.

nginxFastAPISQLiteMAX Bot APIsystemdLet's Encrypt
Читать разборRead the caseLeer el caso
РазборAnalysisAnálisis сданоdeliveredentregado

Разбор компании по официальной отчётности

ЗадачаTaskTarea

Партнёр собирался брать известный сервис за образец для своего проекта и хотел понять, насколько тот успешен на самом деле. В публичных пересказах звучали обороты, которые ничем не подтверждались.A partner was about to model his own product on a well-known service and wanted to know how successful it actually is. The turnover figures circulating in public retellings were backed by nothing.Партнёр собирался брать известный сервис за образец для своего проекта и хотел понять, насколько тот успешен на самом деле. В публичных пересказах звучали обороты, которые ничем не подтверждались.

РешениеSolutionSolución

Записка по открытым данным: выписка из реестра, годовая отчётность за пять лет, пояснения к балансу, данные второго юрлица группы. Считал по строкам отчётности, а не по рассказам. Отдельно проверил тезис про оборот в месяц — цифра оказалась потолком шкалы в телеметрии кассы, а не выручкой.A note built on open data: the company registry extract, five years of annual accounts, notes to the balance sheet, and the accounts of a second legal entity in the group. I read the line items instead of the retellings. The claimed monthly turnover turned out to be the top of a scale in cash-register telemetry, not revenue.Записка по открытым данным: выписка из реестра, годовая отчётность за пять лет, пояснения к балансу, данные второго юрлица группы. Считал по строкам отчётности, а не по рассказам. Отдельно проверил тезис про оборот в месяц — цифра оказалась потолком шкалы в телеметрии кассы, а не выручкой.

РезультатResultResultado

Сдана, 16 страниц. Выручка выросла в десять раз за пять лет, но накопленный убыток от продаж — 86 млн ₽, чистые активы отрицательные, прибыль двух лет держалась на строке прочих доходов, а дыру закрывали беспроцентные займы участников. По составу владельцев видно, что это проект внутри крупной региональной компании, а не венчурный стартап. Вторая редакция опровергла мою же гипотезу о спрятанном обороте и исправила два вывода первой.Delivered, 16 pages. Revenue grew tenfold in five years, yet the accumulated operating loss reached 86m roubles, net assets are negative, two years of profit rested on a single "other income" line, and the gap was covered by interest-free shareholder loans. The ownership makes it a venture inside a large regional company rather than a startup. The second edition disproved my own hypothesis about hidden turnover and corrected two conclusions from the first.Сдана, 16 страниц. Выручка выросла в десять раз за пять лет, но накопленный убыток от продаж — 86 млн ₽, чистые активы отрицательные, прибыль двух лет держалась на строке прочих доходов, а дыру закрывали беспроцентные займы участников. По составу владельцев видно, что это проект внутри крупной региональной компании, а не венчурный стартап. Вторая редакция опровергла мою же гипотезу о спрятанном обороте и исправила два вывода первой.

открытая бухгалтерская отчётностьвыписки из реестровсверка данныхотчёт PDF
Читать разборRead the caseLeer el caso
СайтWebsiteSitio web сданоdeliveredentregado

Витрина авто: объявление из пересланного поста

ЗадачаTaskTarea

Владелец пригоняет автомобили и публикует их постами в мессенджере. Нужна витрина, которую он наполняет сам — без разработчика, без компьютера и без заполнения длинных форм.The owner imports cars and posts them in a messenger. He needed a storefront he fills himself — no developer, no computer, no long forms.Владелец пригоняет автомобили и публикует их постами в мессенджере. Нужна витрина, которую он наполняет сам — без разработчика, без компьютера и без заполнения длинных форм.

РешениеSolutionSolución

Одна страница работает и как сайт, и как мини-приложение в боте: поиск, фильтр по марке, карточка с галереей, ценой «под ключ» с разбивкой и сроком доставки, кнопка связи только по заполненным каналам. Наполнение — через пересылку: владелец кидает боту свой пост с фото, и объявление собирается само, альбом склеивается в одно. Админка открывается с телефона, вход с компьютера — по коду от бота. Разборщик сверяет курс с итоговой суммой и чинит опечатки в исходном посте.One page works both as a site and as a mini app inside the bot: search, brand filter, a card with a gallery, an all-in price broken down by component and a delivery time, and a contact button showing only the channels actually filled in. Listings arrive by forwarding: the owner sends the bot his own post with photos and the listing assembles itself, an album merging into a single entry. The admin panel opens on a phone; desktop login is a code from the bot. The parser checks the exchange rate against the final price and fixes typos in the source post.Одна страница работает и как сайт, и как мини-приложение в боте: поиск, фильтр по марке, карточка с галереей, ценой «под ключ» с разбивкой и сроком доставки, кнопка связи только по заполненным каналам. Наполнение — через пересылку: владелец кидает боту свой пост с фото, и объявление собирается само, альбом склеивается в одно. Админка открывается с телефона, вход с компьютера — по коду от бота. Разборщик сверяет курс с итоговой суммой и чинит опечатки в исходном посте.

РезультатResultResultado

Сдан и работает по защищённому адресу без покупки домена. Фото готовятся под телефон, страница автомобиля стала короче на треть, проверено в светлой и тёмной теме на узком экране. Запуск теперь за владельцем: нужен токен бота и контакты для кнопки связи. После переделки под телефон фото отдаются в трёх размерах, админка сжимает снимки до 2000 px, а первая машина видна без прокрутки.Delivered and served over a secure address without buying a domain. Photos are prepared for phones, the car page is a third shorter, and it was checked in light and dark themes on a narrow screen. Launch is now on the owner side: the bot token and contact details. After a mobile rework photos come in three sizes, the admin panel scales uploads down to 2000 px, and the first car is visible without scrolling.Сдан и работает по защищённому адресу без покупки домена. Фото готовятся под телефон, страница автомобиля стала короче на треть, проверено в светлой и тёмной теме на узком экране. Запуск теперь за владельцем: нужен токен бота и контакты для кнопки связи. После переделки под телефон фото отдаются в трёх размерах, админка сжимает снимки до 2000 px, а первая машина видна без прокрутки.

FastAPISQLiteCaddyTelegram Bot APIsystemd
Читать разборRead the caseLeer el caso
РазборAnalysisAnálisis сданоdeliveredentregado

Общий кошелёк баллов для города: модель

ЗадачаTaskTarea

Запрос от партнёра: программа лояльности, общая для разных заведений города — баллы копятся в одних местах и тратятся в других. До кода нужно было понять, кто кому платит и что именно считается.A partner asked for a loyalty scheme shared across different venues in one city — points earned in some places and spent in others. Before any code, the question was who pays whom and what exactly gets counted.Запрос от партнёра: программа лояльности, общая для разных заведений города — баллы копятся в одних местах и тратятся в других. До кода нужно было понять, кто кому платит и что именно считается.

РешениеSolutionSolución

Разобрал экономику до разработки. Предмет договора перевернул: считать не выручку партнёров, которую невозможно проверить, а собственные транзакции системы — начисления и погашения. Участников разделил на два типа: те, к кому ходят часто и кто наполняет кошельки, и те, кто принимает баллы как часть оплаты и приводит новых людей. Описал пять способов зафиксировать покупку на кассе — от интеграции с кассовой программой до веб-кассы на телефоне продавца. Условие пилота: минимум по одному участнику каждого типа.I worked out the economics first. The billing basis was flipped: count the system own transactions — points issued and redeemed — rather than partner revenue, which cannot be verified. Participants split into two kinds: places people visit often that fill the wallets, and places that accept points as part-payment and bring in new customers. Five ways to register a purchase at the counter were described, from till integration to a web till on the seller phone. Pilot condition: at least one participant of each kind.Разобрал экономику до разработки. Предмет договора перевернул: считать не выручку партнёров, которую невозможно проверить, а собственные транзакции системы — начисления и погашения. Участников разделил на два типа: те, к кому ходят часто и кто наполняет кошельки, и те, кто принимает баллы как часть оплаты и приводит новых людей. Описал пять способов зафиксировать покупку на кассе — от интеграции с кассовой программой до веб-кассы на телефоне продавца. Условие пилота: минимум по одному участнику каждого типа.

РезультатResultResultado

Отдан разбор и готовые тексты для переговоров с брендами. Технической базой предложен собственный движок партнёрских программ, который закрывает большую часть задачи: одноразовые QR, гашение на кассе, защита от накрутки, админка-конструктор и рассылки.The analysis and ready-to-send texts for negotiating with brands were handed over. The proposed technical base is my own partner-programme engine, which already covers most of it: one-time QR codes, redemption at the counter, anti-fraud, a builder-style admin panel and broadcasts.Отдан разбор и готовые тексты для переговоров с брендами. Технической базой предложен собственный движок партнёрских программ, который закрывает большую часть задачи: одноразовые QR, гашение на кассе, защита от накрутки, админка-конструктор и рассылки.

разбор экономикимодель тарификациисценарии интеграции с кассой
Читать разборRead the caseLeer el caso
ДокументDocumentDocumento международныйinternationalinternacional сданоdeliveredentregado

Предложение по токену с выплатами держателям

ЗадачаTaskTarea

Пришёл запрос на токен, держатели которого получают выплаты в стабильной монете. Заказчик прислал своё видение архитектуры и пятиэтапный план — требовалось оценить работу и ответить по существу.A request came in for a token whose holders receive payouts in a stablecoin. The client sent his own architecture and a five-stage plan — the job was to price the work and answer on the merits.Пришёл запрос на токен, держатели которого получают выплаты в стабильной монете. Заказчик прислал своё видение архитектуры и пятиэтапный план — требовалось оценить работу и ответить по существу.

РешениеSolutionSolución

Разобрал чужую архитектуру и предложил три изменения: не писать собственную программу на старте, а взять готовый проверенный механизм раздачи; проверку личности делать через состояние аккаунта, а не через перехватчик переводов, который не поддерживают биржи и часть кошельков; закрыть шесть дыр в снимке держателей — от токенов в эскроу до судьбы невостребованных выплат. Отдельно — юридический блок по двум юрисдикциям и раздел о том, что не входит в работу.I reviewed the proposed architecture and suggested three changes: do not write a custom on-chain program at the start, use a proven off-the-shelf distribution mechanism; handle identity checks through account state rather than a transfer hook that exchanges and some wallets do not support; and close six gaps in the holder snapshot, from tokens sitting in vesting escrow to the fate of unclaimed payouts. Plus a legal section for two jurisdictions and a section on what the work excludes.Разобрал чужую архитектуру и предложил три изменения: не писать собственную программу на старте, а взять готовый проверенный механизм раздачи; проверку личности делать через состояние аккаунта, а не через перехватчик переводов, который не поддерживают биржи и часть кошельков; закрыть шесть дыр в снимке держателей — от токенов в эскроу до судьбы невостребованных выплат. Отдельно — юридический блок по двум юрисдикциям и раздел о том, что не входит в работу.

РезультатResultResultado

Предложение собрано в PDF с этапами от короткого техзадания до инвестиционной готовности. Цена работ отделена от внешних расходов — аудита, юридической структуры и инфраструктуры, — чтобы разговор не закончился скандалом на середине. Отдельным разделом написано прямо: смарт-контракт ничего не обещает, формула выплат живёт в юридических документах.The proposal was delivered as a PDF with stages running from a short specification to investment readiness. The fee is separated from external costs — audit, legal structure and infrastructure — so the conversation does not collapse halfway. One section says it plainly: a smart contract promises nothing; the payout formula lives in the legal documents.Предложение собрано в PDF с этапами от короткого техзадания до инвестиционной готовности. Цена работ отделена от внешних расходов — аудита, юридической структуры и инфраструктуры, — чтобы разговор не закончился скандалом на середине. Отдельным разделом написано прямо: смарт-контракт ничего не обещает, формула выплат живёт в юридических документах.

архитектурный разбороценка рисковэтапы и границы работPDF
Читать разборRead the caseLeer el caso
РазборAnalysisAnálisis сданоdeliveredentregado

Разведка данных перед проектом каталога

ЗадачаTaskTarea

Идея — собрать собственный каталог автомобилей с зарубежных площадок и продавать доступ к данным. До сметы нужно было понять объём, свежесть и во что превратится счёт за инфраструктуру через полгода.The idea: build an own catalogue of cars from foreign marketplaces and sell API access to the data. Before any estimate, the question was volume, freshness and what the infrastructure bill turns into six months in.Идея — собрать собственный каталог автомобилей с зарубежных площадок и продавать доступ к данным. До сметы нужно было понять объём, свежесть и во что превратится счёт за инфраструктуру через полгода.

РешениеSolutionSolución

Провёл разведку и посчитал последствия для архитектуры. Объём — около 244 тысяч активных объявлений, у каждого по 15–20 фотографий. Отсюда три решения: фотографии не зеркалить, а хранить ссылки и тянуть при первом показе; синхронизироваться по ленте изменений, а не обходить каталог целиком; названия моделей и комплектаций приводить к привычному виду словарём с ручной вычиткой.I ran the reconnaissance and worked through the architectural consequences. Volume — roughly 244,000 active listings with 15–20 photos each. Three decisions follow: do not mirror photos but store links and fetch on first view; sync from a change feed instead of crawling the whole catalogue; and normalise model and trim names with a dictionary plus human proofreading.Провёл разведку и посчитал последствия для архитектуры. Объём — около 244 тысяч активных объявлений, у каждого по 15–20 фотографий. Отсюда три решения: фотографии не зеркалить, а хранить ссылки и тянуть при первом показе; синхронизироваться по ленте изменений, а не обходить каталог целиком; названия моделей и комплектаций приводить к привычному виду словарём с ручной вычиткой.

РезультатResultResultado

Отдан разбор с тремя вариантами стоимости владения — от проверки идеи до нескольких площадок — и оценкой трудоёмкости первой версии. Три вопроса, которые не удалось проверить, записаны как неизвестные: именно от них зависит самая дорогая строка сметы, и выдумывать их я не стал.Delivered as an analysis with three cost-of-ownership options — from proving the idea to covering several marketplaces — and an effort estimate for the first version. Three questions I could not verify are written down as unknowns: they drive the most expensive line in the estimate, and I would not invent them.Отдан разбор с тремя вариантами стоимости владения — от проверки идеи до нескольких площадок — и оценкой трудоёмкости первой версии. Три вопроса, которые не удалось проверить, записаны как неизвестные: именно от них зависит самая дорогая строка сметы, и выдумывать их я не стал.

техническая разведкаоценка объёма данныхсмета инфраструктуры
Читать разборRead the caseLeer el caso
ИИ-решениеAI solutionSolución IA в продеliveen producción

Интерфейс в чате вместо мини-приложения

ЗадачаTaskTarea

Мини-приложение к боту часто заводят только ради вёрстки: таблиц, карточек, списков. Это сайт, домен, сертификат и поддержка — всё ради того, чтобы сообщение выглядело прилично.A mini app is often bolted onto a bot purely for layout — tables, cards, lists. That means a site, a domain, a certificate and maintenance, all so a message looks decent.Мини-приложение к боту часто заводят только ради вёрстки: таблиц, карточек, списков. Это сайт, домен, сертификат и поддержка — всё ради того, чтобы сообщение выглядело прилично.

РешениеSolutionSolución

Собрал двух ботов на одном и том же примере — расчёте доставки груза — в старом и новом формате сообщений. В новом: коллаж из фотографий, таблица с выделенным итогом, сворачиваемые блоки, формула, карта, чеклист этапов, дата в часовом поясе читателя, кнопка «скопировать номер», оглавление с переходами и блок кода. Отдельно проверил живую генерацию: ответ дорисовывается на глазах, но черновик живёт полминуты и в историю не попадает.I built two bots around the same example — a freight delivery quote — in the old and the new message format. The new one carries a photo collage, a table with a highlighted total, collapsible blocks, a formula, a map, a stage checklist, a date in the reader time zone, a copy-number button, an anchored table of contents and a code block. I also tested live generation: the answer draws itself in front of you, but the draft lives half a minute and never enters the history.Собрал двух ботов на одном и том же примере — расчёте доставки груза — в старом и новом формате сообщений. В новом: коллаж из фотографий, таблица с выделенным итогом, сворачиваемые блоки, формула, карта, чеклист этапов, дата в часовом поясе читателя, кнопка «скопировать номер», оглавление с переходами и блок кода. Отдельно проверил живую генерацию: ответ дорисовывается на глазах, но черновик живёт полминуты и в историю не попадает.

РезультатResultResultado

Вывод забран в работу: там, где мини-приложение нужно было только ради вёрстки, оно больше не нужно — из сметы уходит целый слой хостинга и поддержки, а сообщение работает в группах и каналах, где мини-приложения недоступны. Мини-приложение остаётся там, где есть состояние: корзина, календарь записи, личный кабинет.The conclusion went straight into practice: where a mini app existed only for layout, it is no longer needed — a whole layer of hosting and maintenance leaves the estimate, and the message works in groups and channels where mini apps are unavailable. Mini apps stay where there is real state: a cart, a booking calendar, a personal account.Вывод забран в работу: там, где мини-приложение нужно было только ради вёрстки, оно больше не нужно — из сметы уходит целый слой хостинга и поддержки, а сообщение работает в группах и каналах, где мини-приложения недоступны. Мини-приложение остаётся там, где есть состояние: корзина, календарь записи, личный кабинет.

Telegram Bot API 10.1Pythonблочные сообщения
Читать разборRead the caseLeer el caso
Платформы

Своя платформа API данных по авто из Китая: новые и б/у

Вместо платного посредника своя платформа данных по авто из Китая: новые и б/у, ключи с суточным лимитом, журнал изменений, формат…

кейсAPIавто из Китая
Смотреть кейс
Платформы

Платформа продажи доменов из портфеля: рабочее демо по ТЗ

Владельцы портфеля доменов принесли ТЗ на платформу продажи. Я собрал демо по всем этапам: витрина, заглушки в трёх шаблонах, бэк-…

кейсдоменыпрототип
Смотреть кейс
Платформы

Совместные закупки в одном PWA: заказ, сборка и выдача в пункте

Организатор совместных закупок собирал заявки в трёх мессенджерах. Я собрал одно PWA: город, пункт выдачи, заказ и общий лимит поз…

кейсPWAсовместные закупки
Смотреть кейс
Платформы

SPACE: моя платформа готовых решений для микробизнеса с входом через Telegram

Мой собственный продукт: платформа, где предприниматель входит через Telegram и подключает готовые решения сам. Разбираю, что пост…

кейсSaaSTelegram
Смотреть кейс
Платформы

Партнёрская витрина за полминуты: как устроена мультиарендная платформа

Человек за полминуты получает магазин-бота под своим именем, а продажа идёт через магазин. Показываю, где такая схема ломается и п…

кейсплатформапартнёрская программа
Смотреть кейс
Платформы

Клуб, а не гаджет: сайт, бот, мини-приложение и CRM как одна система

Когда продукт состоит из устройства, приложения и сообщества, их хочется строить по отдельности. Показываю, почему это одна систем…

кейсплатформагеймификация
Смотреть кейс
Платформы

One Click: справочный портал ES/EN с редактором для заказчика

Испаноязычной платформе QR/NFC-страниц нужна была справка, которую сотрудники могли бы править сами, без программиста. Я собрал дв…

кейссправочный порталCMS
Смотреть кейс
Платформы

X&X Market: маркетплейс услуг и объявлений в Telegram

Как сделать доску объявлений и услуг мастеров без отдельного сайта и приложения? Я построил X&X Market внутри супер-аппа в Telegra…

кейсTelegram Mini Appмаркетплейс
Смотреть кейс
Платформы

X&X CINEMA: онлайн-кинотеатр внутри супер-аппа в Telegram

Как запустить онлайн-кинотеатр без разработки отдельного приложения под каждую платформу? Я сделал X&X CINEMA внутри супер-аппа в …

кейсTelegram Mini Appкино
Смотреть кейс
Платформы

X&X NEWS: новостная лента внутри супер-аппа в Telegram

Как собрать новостной сервис, который живёт внутри мессенджера и не требует отдельного приложения? Я сделал X&X NEWS — ленту с агр…

кейсTelegram Mini Appновости
Смотреть кейс
Платформы

База знаний с собственной CMS: кейс разработки под ключ

Заказчику нужна была живая база знаний для своего онлайн-сервиса, которую сотрудники могли бы редактировать сами, без разработчика…

база знанийсправочный порталCMS
Смотреть кейс
Платформы

Медиа-портал под ключ: редакция, SEO и заготовка под ИИ-контент

Редакция-заказчик пришла с растущим тематическим изданием, которое упиралось в ручной труд и медленную выдачу в поиске. Я собрал м…

медиа-порталонлайн-СМИредакция
Смотреть кейс
Платформы

Платформа делового нетворкинга для крупного мероприятия: кейс

Организатор крупного офлайн-мероприятия хотел, чтобы гости не просто ходили по залу с бейджем, а реально знакомились и обменивалис…

нетворкингмероприятиегеймификация
Смотреть кейс
Платформы

Платформа афиши и билетов в мессенджере: кейс разработки

Клиенту нужна была не просто афиша, а полноценный сервис билетов внутри мессенджера — с честной оплатой, QR-контролем на входе и и…

афиша событийпродажа билетовгеймификация
Смотреть кейс
Платформы

Суперапп для сообщества автовладельцев внутри мессенджера

Заказчик хотел собрать активное сообщество автовладельцев без отдельного мобильного приложения. Я спроектировал платформу из бота,…

супераппмессенджерсообщество
Смотреть кейс
Платформы

Туристический портал региона с нуля: почему мы не собираем такие проекты на конструкторах

Региональные турсайты — это обычно унылые списки ссылок с неработающей картой, из которых пользователь уходит в соцсети. Рассказыв…

веб-разработкатуризмкартография
Смотреть кейс
Платформы

Как мы оцифровали мифологию и родословные народа в единую цифровую экосистему

Устные предания, редкие монографии и веб-страницы из 2000-х жили отдельно друг от друга — искать и связывать было невозможно. Пока…

цифровое наследиеграф данныхSVG
Смотреть кейс
Платформы

Как одна платформа лояльности обслуживает сразу несколько независимых кафе в Куско

Разработал мультитенантную платформу лояльности для нескольких независимых кафе в Куско: цифровая штамп-карта без установки прилож…

программа лояльностимультитенантностьразработка для кафе
Смотреть кейс
Платформы

Как я превратил офлайн-мероприятие в цифровую нетворкинг-платформу: кейс MEDIABIZ

На крупном офлайн медиа-ивенте сотни гостей рисковали потеряться в толпе и не найти нужные контакты. Я построил нетворкинг-платфор…

нетворкингTelegram мини-аппмероприятия
Смотреть кейс
Платформы

Как я собрал разрозненное сообщество автовладельцев в одну платформу с геймификацией в MAX

Сообщество автовладельцев АвтоВсё жило в десятке разрозненных чатов, а заявки и приглашения терялись без учёта. Я построил бота и …

MAXмини-аппгеймификация
Смотреть кейс
Сайты

Интернет-магазин косметического средства: демо по ТЗ за ночь

Производитель косметического средства принёс ТЗ на магазин. Я собрал демо: каталог, корзина с промокодами и бонусами, оформление, …

кейсинтернет-магазинкосметика
Смотреть кейс
Сайты

Лендинг массажиста с онлайн-записью и предоплатой: разбор проекта

Частный мастер ручного массажа из села в Забайкальском крае. Лендинг со свободными окнами, предоплатой и правилом отмены за 24 час…

кейслендингонлайн-запись
Смотреть кейс
Сайты

Сайт врача-косметолога из Петербурга: первый этап сдан, второй ждёт материалов

Врач-косметолог из Петербурга принимает в двух коворкингах и не ведёт соцсети. Я собрал статический сайт на её сервере: прайс, про…

кейссайт врачакосметология
Смотреть кейс
Сайты

Аудит сайта по закону о персональных данных: с доказательствами

Проверил не документы, а поведение сайта учреждения культуры. Метрика с Вебвизором и отраслевой счётчик ставили 12 cookie за 4 сек…

кейс152-ФЗаудит сайта
Смотреть кейс
Сайты

Корпоративный сайт компании из ОАЭ: два языка и анимация без шаблонности

Официальный сайт компании из свободной зоны ОАЭ на двух языках. Задача — не выглядеть сделанным ИИ и хорошо работать на телефоне. …

кейскорпоративный сайтОАЭ
Смотреть кейс
Сайты

Каталог косметики: пустая витрина, 591 товар и связь с кассой

Сеть магазинов косметики: каталог заполнен, а сайт показывает демо-товары в долларах. Две причины пустой витрины, разметка 591 тов…

кейсинтернет-магазининтеграция с кассой
Смотреть кейс
Сайты

Переезд с конструктора за один день: как это было по часам

Итог переезда я уже описывал, а здесь — сам процесс. Показываю, что происходило с утра до вечера, где застрял и почему неожиданнос…

кейссайт под ключсвой сервер
Смотреть кейс
Сайты

Переезд с конструктора на свой сервер: что получает бизнес взамен

Переезд с конструктора имеет смысл не ради экономии на подписке. Разбираю, что появилось на своём сервере: приём заявок, бот, адми…

кейссайт под ключсвой сервер
Смотреть кейс
Сайты

Сайт автора методики: как переписать формулировки, чтобы прошли модерацию

У автора оздоровительной методики онлайн-академия, семинары и консультации. Показываю, почему две трети времени ушло на формулиров…

кейссайт под ключмодерация рекламы
Смотреть кейс
Сайты

500 фото за раз на плохой связи: сайт, спроектированный под загрузку

Обычное портфолио проектируют под просмотр. Этот сайт пришлось проектировать под наполнение — и это изменило всю архитектуру.

кейссайт под ключфотография
Смотреть кейс
Сайты

Лендинг под свой регион: разметка, гео и разрешение для ИИ-краулеров

Лендинг агентства под свой край: что именно размечается машиночитаемо, зачем пускать ИИ-роботов и почему для одной страницы статик…

кейссайт под ключлокальное SEO
Смотреть кейс
Сайты

«Сайт мёртв, все в соцсетях»: что показал замер вместо спора

С убеждением «сайт не нужен» бесполезно спорить — его надо проверять. Показываю, что именно замеряю за день и почему отчёт отдаётс…

кейсаудит сайтареклама
Смотреть кейс
Сайты

Сайт без формы заявки: когда убрать её — правильное решение

Форма собирала имя и телефон и уводила их на сторонний сервис, хотя в этой нише человек звонит, а не заполняет поля. Разбираю, что…

кейссайт под ключперсональные данные
Смотреть кейс
Сайты

Калькулятор растаможки на сайте: как считать чужие деньги и не соврать

Менеджер считал растаможку вручную по каждому обращению. Сделал калькулятор, где к каждой ставке подписан нормативный акт, а две н…

кейссайт под ключлогистика
Смотреть кейс
Сайты

Лендинг под Яндекс.Директ: калькулятор, цели и мобильные дефекты

Прежде чем лить платный трафик, страницу надо к нему подготовить. Разбираю, что именно я делал: калькулятор окупаемости вместо абс…

лендингЯндекс.Директаналитика
Смотреть кейс
Сайты

Лендинг мастера телесных практик: один сайт на два города

Мастер принимает наездами в двух городах, и каждый переезд ломает и рекламу, и запись. Разбираю, как сделан лендинг, где город опр…

услугилендингзапись онлайн
Смотреть кейс
Сайты

Интерактивная карта расселения народа: кейс данные на карте

Данные о том, где и как расселён народ, были разбросаны по таблицам и текстам — увидеть картину целиком было невозможно. Разбираю …

кейскартаданные
Смотреть кейс
Сайты

Онлайн-запись для салона красоты: кейс автоматизации записи

Салон красоты вёл запись по телефону и в тетради: администратор не успевал, клиенты терялись, окна в расписании простаивали. Разби…

кейсбьютизапись
Смотреть кейс
Сайты

Лендинг для Яндекс.Директа: заявки на аудит 152-ФЗ с аналитикой

Чтобы реклама в Яндекс.Директе окупалась, нужна посадочная, заточенная под одно действие и с честной аналитикой. Я собрал лендинг …

кейслендингЯндекс.Директ
Смотреть кейс
Сайты

АвтоМост: витрина авто из Китая с подгрузкой каталога через API

Импортёр авто из Китая вручную лазит по площадкам, переводит характеристики и считает таможню для каждого клиента. Я собрал АвтоМо…

кейсвитринаавто из Китая
Смотреть кейс
Сайты

Сайт и админка для сети кофеен самообслуживания «Горячий момент»

У сети кофеен самообслуживания «Горячий момент» было 37 точек, франшиза для офисов и ноль присутствия в интернете. Я собрал сайт п…

кейссайтадминка
Смотреть кейс
Сайты

Как я собрал каталог на 2000 авто из Китая в одиночку

Задача звучала как работа для команды: каталог на 2000 автомобилей с живой подгрузкой из Китая, расчётом логистики и таможни. Расс…

кейсWeToCarкаталог
Смотреть кейс
Сайты

Цифровая карта лояльности для кафе: PWA вместо бумажных штампов

Сети маленьких заведений нужна была программа лояльности без затрат на два нативных приложения и без пересборки кода под каждое но…

программа лояльностиPWAштамп-карта
Смотреть кейс
Сайты

Сайт кафе национальной кухни с доставкой: меню, сеты, заказ через мессенджеры и соответствие 152-ФЗ

У кафе национальной кухни с доставкой не было своего сайта — заказы шли из разрозненных мессенджеров, а меню жило в переписке. Я с…

сайт кафедоставка едылендинг
Смотреть кейс
Сайты

Лендинг для эксперта по недвижимости: упаковал оффер «0 ₽ для покупателя» и приём заявок без сервера

Эксперт по недвижимости с 15-летним опытом работал на сарафане и в мессенджерах, но не имел солидной точки входа и не мог внятно д…

личный сайтлендингнедвижимость
Смотреть кейс
Сайты

Зачем турфирме отдельный сайт, если есть страница в соцсети: кейс ДельТур

Туристической фирме ДельТур нужен был современный сайт вместо страницы в соцсети — чтобы представлять направления и собирать заявк…

сайт турфирмыкорпоративный сайтформа заявки
Смотреть кейс
Сайты

Как я сделал сайт РСО с электронной подачей заявок на техприсоединение по 416-ФЗ

Ресурсоснабжающей организации в Забайкалье нужен был официальный сайт с электронной подачей заявок на техприсоединение — по закону…

госсайтресурсоснабжающая организация416-ФЗ
Смотреть кейс
Боты и мини-аппы

Контроль материалов в 1С: лимиты по видам работ и согласование расхода

Расширение для 1С:Бухгалтерии строительной организации: лимиты материалов по видам работ из сметы, согласование перемещений и расх…

кейс1Срасширение 1С
Смотреть кейс
Боты и мини-аппы

Возврат домена у бывшего разработчика: пакет документов для организации

Домен сайта образовательной организации остался на частном лице, бывшем разработчике за границей. Товарный знак домен не защищает,…

кейсдоменюридический разбор
Смотреть кейс
Боты и мини-аппы

Заказ такси для таксопарка небольшого района: предложение и кликабельное демо

Таксопарк небольшого района города платит подписку за чужой сервис заказа. Я собрал предложение: витрина заказа в боте MAX и PWA н…

кейсбот в MAXPWA
Смотреть кейс
Боты и мини-аппы

Витрина решений: 48 карточек для бизнеса в Telegram-группе по нишам

Telegram-группа с темами как каталог готовых решений для малого бизнеса: 48 карточек по единому шаблону из пяти слайдов, 13 тем-ни…

кейсTelegramкаталог решений
Смотреть кейс
Боты и мини-аппы

Шагай Наадан: три игры на одном броске костей в Telegram Mini App

Собственный проект: Telegram Mini App по бурят-монгольской игре в шагай. Три режима на одном броске, правила в чистых функциях и 4…

кейсTelegram Mini Appигры
Смотреть кейс
Боты и мини-аппы

Kinly: семейный ИИ-ассистент в Telegram и MAX на одном коде

Собственный продукт: бот и мини-приложение, где семья вводит дела голосом, фото и пересылкой, а ИИ раскладывает их по задачам, пок…

кейсTelegramMAX
Смотреть кейс
Боты и мини-аппы

Бот спортивной аналитики: как я проверил модель и признал, что рынок точнее

Бэктест на 4150 матчах дал 51,3% попаданий против 47,3% у правила «всегда хозяева», но линия контор угадывает 53,8% против 51,5% у…

кейсчат-ботыаналитика данных
Смотреть кейс
Боты и мини-аппы

Интерфейс прямо в чате: когда мини-приложение больше не нужно

Собрал двух ботов на одном примере: старый формат и новый. Показываю, какой слой работ уходит из сметы, если вёрстка сообщения бол…

кейсTelegramботы
Смотреть кейс
Боты и мини-аппы

Сколько стоит свой каталог данных: разведка до начала работ

Четверть миллиона объявлений и по два десятка фото у каждого меняют и архитектуру, и счёт за инфраструктуру. Разбираю, что дала ра…

кейсданныеархитектура
Смотреть кейс
Боты и мини-аппы

Общий кошелёк баллов для города: как устроить, чтобы это работало

В программе лояльности сложнее всего не техника, а экономика. Показываю, почему считать надо собственные транзакции, а не выручку …

кейслояльностьэкономика продукта
Смотреть кейс
Боты и мини-аппы

Витрина из пересланных постов: объявление собирается само

Продавец уже публикует посты, так что заставлять его заполнять формы бессмысленно. Сделал витрину, которая понимает его пост: альб…

кейсмини-приложениебот
Смотреть кейс
Боты и мини-аппы

Кафе, сайт и розыгрыши в мессенджере: как это работает вместе

Розыгрыши среди гостей вели вручную: номерки записывали, оплату сверяли в переписке. Собрал связку «сайт плюс бот плюс админка», г…

кейсобщепитбот в MAX
Смотреть кейс
Боты и мини-аппы

Перевод legacy-системы на low-code: конвертер, линтер и эталон

Перенос корпоративной системы со старой платформы на low-code вручную упирается в объём: сотни экранов и форм. Разбираю, как устро…

миграцияlegacylow-code
Смотреть кейс
Боты и мини-аппы

Сайт digital-агентства: как показать работу, которую не видно

Агентство продаёт разработку и автоматизацию: результат нельзя сфотографировать, как ремонт или торт. Разбираю, как упаковывать не…

веб-разработкаупаковка услугдизайн
Смотреть кейс
Боты и мини-аппы

Витрина зарубежной недвижимости: три уровня доступа и своя CRM

Одна витрина объектов должна показывать три разные картины: покупателю — объекты, партнёру — свои сделки и вознаграждение, менедже…

недвижимостьCRMвеб-разработка
Смотреть кейс
Боты и мини-аппы

Биржа подработки в небольшом городе: от смены к постоянной работе

В небольшом городе работодатель не может закрыть смену, а человек не может найти подработку — при том, что они в двух кварталах др…

рынок трудаTelegramлокальный бизнес
Смотреть кейс
Боты и мини-аппы

Аренда авто с выкупом: бот и наклейки с партнёрским QR вместо рекламы

Сервису аренды автомобилей с выкупом нужны заявки, а обычная реклама в этой нише дорогая и холодная. Разбираю, как я собрал бота с…

автобизнесTelegramпартнёрская программа
Смотреть кейс
Боты и мини-аппы

Бот и мини-приложение для риелторов: объекты, показы и заявки в одном окне

Риелтор держит объекты в заметках, переписке и голове одновременно. Разбираю, как я собрал бота с мини-приложением: единая база об…

недвижимостьTelegramмини-приложение
Смотреть кейс
Боты и мини-аппы

MDating (бывш. X&X Dating): сервис знакомств с проверкой родства в Telegram

Сервис знакомств начинался как X&X Dating внутри супер-аппа в Telegram, а в октябре 2026 стал отдельным продуктом MDating для монг…

кейсTelegram Mini Appзнакомства
Смотреть кейс
Боты и мини-аппы

Сайт, боты и админка для национального театра: как это устроено

Национальный театр жил на конструкторе с архивом за много лет. Перенёс сайт на свой сервер без потери новостей и ссылок, дал театр…

кейстеатрботы
Смотреть кейс
Боты и мини-аппы

Городской справочник организаций с картой: кейс разработки под ключ

Заказчику нужен был собственный городской справочник по типу известных картографических сервисов, но заточенный под его город и би…

городской справочниккарта организацийгеосервис
Смотреть кейс
Боты и мини-аппы

Реферальный бот-конкурс приглашений: кейс разработки

Розничная сеть попросила механику «приведи друга» с призами за приглашённых. Рассказываю, как я построил бота с честным засчётом, …

реферальный ботконкурс приглашенийгеймификация
Смотреть кейс
Боты и мини-аппы

Розыгрыши для кафе: онлайн-оплата и математически проверяемая честность

Кафе вело розыгрыши вручную и постоянно слышало «вы сами себе накрутили». Мы сделали веб-систему, где гость выбирает номерной биле…

веб-разработкарозыгрышиcommit-reveal
Смотреть кейс
Боты и мини-аппы

Бот лояльности на MAX для цветочного магазина: баллы, даты и безопасный реферал

Локальный цветочный магазин хотел удерживать клиентов и возвращать их за повторными покупками, но без ручной возни флориста. Я соб…

MAXпрограмма лояльностицветочный магазин
Смотреть кейс
Боты и мини-аппы

Онбординг-бот на MAX для сетевого бизнеса: как достроить выпадающее звено

Лидер крупной партнёрской структуры терял новичков из холодного трафика между рекрутингом и первым результатом. Рекрутинг, обучени…

MAXсетевой бизнесонбординг
Смотреть кейс
Боты и мини-аппы

Как я построил семейную соцсеть с родовым древом для бурят-монгольской аудитории

Разработал семейную соцсеть Гэрэл с интерактивным родовым древом, лентой семьи и картой рода для бурят-монгольской аудитории. Расс…

семейная соцсетьродовое древоэтнический продукт
Смотреть кейс
Боты и мини-аппы

Как я построил городской справочник по типу 2ГИС с нуля: кейс AlexMap для Куско

Городу Куско не хватало удобного справочника заведений с картой. Я построил AlexMap — платформу по типу 2ГИС с рубрикатором, поиск…

картысправочникивеб-разработка
Смотреть кейс
Боты и мини-аппы

Как вырастить канал в MAX руками подписчиков: кейс «Хантууз»

Бренд Хантууз хотел растить канал в MAX без рекламного бюджета. Я построил игровую систему конкурса приглашений с ботом, честным п…

MAXботыгеймификация
Смотреть кейс
Боты и мини-аппы

Как я автоматизировал раздачу призов за приглашения в разных городах без ручного учёта

Кооператив Артель раздавал призы за приглашённых участников в семи городах, но считал их вручную в таблицах. Я построил реферально…

MAXреферальный ботантифрод
Смотреть кейс
Боты и мини-аппы

Как я превратил организацию мероприятий в системный бизнес с билетами и рефералкой

Организатор мероприятий вёл продажи и учёт гостей вручную по чатам и таблицам. Я построил Telegram-платформу с афишей, продажей би…

Telegramпродажа билетовпрограмма лояльности
Смотреть кейс
ИИ

Бронирование боксов для склада хранения: от демо к рабочей системе

Склад ответственного хранения, 93 бокса в двух ярусах. Сначала я собрал демо: схема склада, бронь на 15 минут, кабинет арендатора …

кейсбронированиеself-storage
Смотреть кейс
ИИ

Tilda Assistant: локальный помощник для админки Tilda через диалог с ИИ

Локальный инструмент для рутины в админке Tilda: открывает видимый Chromium с моей сессией, читает проекты и страницы, снимает скр…

кейсTildaИИ-агент
Смотреть кейс
ИИ

Свои MCP-серверы: Одноклассники, ТенЧат, ВКонтакте и Postmypost из диалога с ИИ

Четыре собственных MCP-сервера, через которые ИИ читает ленты и переписку, готовит черновики и отправляет по моей команде. У каждо…

кейсMCPИИ-агенты
Смотреть кейс
ИИ

Ферзь: рабочее место руководителя без штатных юриста и кадровика

Руководителю небольшого учреждения или бизнеса нужны юрист, кадровик, экономист и закупщик, а нужного специалиста рядом может не о…

кейсSaaSИИ-агенты
Смотреть кейс
ИИ

Распознавание и перевод старомонгольского текста по фото

Китайские сервисы оказались недоступны, поэтому текст на старописьменной монгольской вязи распознал открытой моделью image2bichig …

кейсOCRперевод
Смотреть кейс
ИИ

Мультсериал по либретто спектакля, собранный ИИ

По либретто национального спектакля собрал пробный ролик, трейлер на 54 секунды и первую вертикальную серию на 52 секунды. Весь сю…

кейсИИ-видеонейросети
Смотреть кейс
ИИ

Расшифровка голосовых в мессенджере: сервис без установки приложения

Голосовое нельзя просмотреть глазами и найти поиском. Сделал бота, который возвращает не просто расшифровку, а структуру: тезисы, …

кейсИИ в бизнесеботы
Смотреть кейс
ИИ

Обвязка для ИИ: цена ответа в рублях и потолок на сутки

Бизнес не может планировать расходы на ИИ, если видит только токены. Разбираю слой между агентом и моделью: цена каждого ответа в …

ИИ-агентыархитектураконтроль расходов
Смотреть кейс
ИИ

Сервис OCR и расшифровки аудио: кейс распознавания без облака

Компании нужно было превращать поток сканов и аудиозаписей в текст, но данные нельзя было отправлять в чужое облако. Разбираю кейс…

кейсOCRтранскрибация
Смотреть кейс
Другое

CRM и приложение для строительной компании: объект, задачи, отчёты с фото

Строительная компания с алмазной резкой и бурением не видела объёмов и теряла инструмент. Я собрал систему вокруг объекта: четыре …

кейсCRM для стройкиPWA
Смотреть кейс
Другое

КП для небольшой гостиницы на русском и китайском: что в него вошло

Владелица небольшой гостиницы из Китая, 15 номеров и лапшичная рядом. Короткое предложение на русском и китайском и расширенное на…

кейскоммерческое предложениегостиница
Смотреть кейс
Другое

Предложение для этно-кафе: три блока и презентация гостевого PWA

Владелец небольшого этно-кафе с двумя точками. Я собрал коммерческое предложение на один лист с тремя блоками и презентацию гостев…

кейсPWAкафе
Смотреть кейс
Другое

Приложение для автошколы: учёт часов вождения и контроль инструкторов

Владелец небольшой автошколы хотел одно приложение на пять ролей и учёт часов практического вождения. Я подготовил коммерческое пр…

кейсавтошколаPWA
Смотреть кейс
Другое

CRM для логистической компании: откуда пришла каждая заявка

CRM рядом с сайтом логистической компании: у каждой заявки записано, откуда человек узнал о компании и куда обратился. Раздвоенная…

кейсCRMисточники заявок
Смотреть кейс
Другое

Конвейер роликов «фото + инфографика» с автоответами по кодовому слову

HTML-шаблон, покадровый рендер с проверкой, что текст не заходит на лицо, публикация и автоответы по кодовому слову. Сделан 91 рол…

кейсавтоматизациявидеоконтент
Смотреть кейс
Другое

Инструменты для партнёров турклуба: повод заговорить вместо голой ссылки

Тест на 6 вопросов, «угадай цену», подбор поездки по месяцу, открытка, тренажёр возражений и калькулятор окупаемости на chimitdorz…

кейспартнёрские сетитуризм
Смотреть кейс
Другое

Паллетный учёт на ТСД для оптовика: приложение и расширение 1С

Оптовик мясной продукции, 7 терминалов на Android. Приложение для учёта паллет и расширение для 1С УТ: приёмка фуры, разделение, р…

кейсТСД1С
Смотреть кейс
Другое

Как игры для бизнеса стали отдельным направлением

Из нескольких проектов выросла отдельная рубрика на 65 статей. Рассказываю, какие игровые механики я делал для клиентов, что из эт…

кейсигры для бизнесагеймификация
Смотреть кейс
Другое

Токен с выплатами держателям: что я предложил изменить в чужой архитектуре

Запрос был на токен, держатели которого получают выплаты. Показываю, почему на старте не стоит писать свою программу, чем опасен п…

кейсблокчейнпредложение клиенту
Смотреть кейс
Другое

Разбор компании по официальной отчётности: что видно в цифрах

Партнёр хотел брать известный сервис за образец. Прочитал отчётность за пять лет по строкам и показал, откуда там прибыль, кто на …

кейсаналитикаконкурентная разведка
Смотреть кейс
Другое

Парк серверов у разных провайдеров: как держать его без дежурства

Отказоустойчивость небольшого парка не требует дорогих решений. Требует дисциплины: проверка по существу, копия, которую проверили…

кейсинфраструктурабезопасность
Смотреть кейс
Другое

Прозрачный запуск токена: что проверяется в сети, а не на слово

Разница между честным проектом и пустышкой не в коде, а в том, что можно проверить со стороны. Показываю четыре свойства, которые …

кейсблокчейнпрозрачность
Смотреть кейс
Другое

Автопостинг через официальный API: почему это дольше и почему всё равно так

Инструмент для постов, веток и отложенных публикаций. Показываю, почему выбрал официальный путь, и собираю грабли, на которые наст…

кейсавтоматизациясоцсети
Смотреть кейс
Другое

Редизайн чужого фронтенда: когда токенами покрыто 4% стилей

Редизайн на общей кодовой базе маркетплейса. Половина работы — понять, что вам вообще разрешено менять, и честно выписать то, что …

кейсдизайн-системафронтенд
Смотреть кейс
Другое

Презентация, после которой не выглядишь продавцом

Выступать перед предпринимателями и не выглядеть продавцом — задача не про оформление, а про порядок слайдов. Показываю структуру,…

кейспрезентацияпродажи
Смотреть кейс
Другое

ИИ считает смету: где здесь продукт, а где грабли

Подрядчик загружает техзадание и получает смету на почту. Идея рабочая, но в ней три места, где проект умирает, — и все три провер…

кейсИИ в бизнесепредпроектный разбор
Смотреть кейс
Другое

«Поставим эквайринг — и учёт появится сам»: разбор частого заблуждения

Учёт в тетради, переводы на карту не видно, себестоимости нет. Владелец был уверен, что достаточно поставить приём карт. Показываю…

кейсавтоматизацияобщепит
Смотреть кейс
Другое

Партнёрская сеть как недостающая ступень между розницей и оптом

Между розницей и оптом с высоким минимальным заказом проваливаются люди с аудиторией, но без капитала. Разбираю, чем закрыть этот …

кейспартнёрская программааудит
Смотреть кейс
Другое

Проверка ИИ-новостей перед публикацией: три разбора за неделю

За одну неделю разобрал три новости об ИИ, и в каждой пересказ разошёлся с документацией. Показываю процедуру, которой пользуюсь: …

контентфактчекингИИ
Смотреть кейс
Другое

SEO-аудит блога на 1500 статей: 762 страницы, на которые никто не ссылался

Разбор собственного блога по выгрузке из Вебмастера: 2 995 запросов, 124 903 показа и 762 статьи, на которые не ведёт ни одной вну…

SEOаудитаналитика
Смотреть кейс
Другое

Анализатор рынка на публичных данных: как отделить сигнал от шума

Скрипт, который собирает публичные данные торговой площадки и отсеивает заведомые пустышки по формальным признакам. Разбираю архит…

аналитика данныхавтоматизацияпарсинг
Смотреть кейс
Другое

Партнёрская система в мессенджере: QR вместо промокода-слова

Промокод-слово ломается там, где его должен произнести живой человек: клиент забыл, стесняется или назвал неправильно. Разбираю па…

партнёрская программаQRмессенджеры
Смотреть кейс
Другое

PWA для кофейни: две двери входа и геймификация вместо бумажных штампов

Бумажные карточки со штампами теряются, а ставить ради кофе приложение из магазина никто не будет. Разбираю, как устроено PWA кофе…

общепитPWAгеймификация
Смотреть кейс
Другое

Кейсы цифровизации кофеен: что реально дало результат

Собрал реальные кейсы, как кофейни уходят от бумажных штампов и блокнотов: PWA-лояльность, бот заказа, QR-меню, аналитика по точка…

кофейникейсыцифровизация
Смотреть кейс
Другое

Русификация головного устройства авто: кейс перевода интерфейса

У привезённого из Китая автомобиля мультимедиа и бортовое меню на китайском — пользоваться неудобно и небезопасно за рулём. Разбир…

кейсавто из Китаярусификация
Смотреть кейс
Другое

WebAR-экскурсия для туризма: кейс дополненной реальности в браузере

Туристам неудобно ставить отдельное приложение ради одной экскурсии, а печатные таблички быстро устаревают. Разбираю кейс WebAR-эк…

кейсWebARтуризм
Смотреть кейс
Другое

Софт для заполнения ВЭД-документов: кейс автозаполнения деклараций

Декларант вручную переносил данные из инвойсов и спецификаций в таможенные документы — часы монотонной работы и риск описки. Разби…

кейсВЭДтаможня
Смотреть кейс
Другое

Ежедневник с голосовым вводом: кейс планировщика, который слушает

Заносить дела в планировщик руками долго, и половина задач так и не попадает в список. Разбираю кейс ежедневника с голосовым вводо…

кейсголосовой вводпланировщик
Смотреть кейс
Другое

ИИ-проверка кодов ТН ВЭД: фура из 50 000 посылок за минуты

Декларант тратил часы на сверку кодов ТН ВЭД по фуре, а таможня заставляла переделывать сотни позиций. Я собрал сервис, где ИИ и б…

кейсИИТН ВЭД
Смотреть кейс
Другое

Медиа-журнал с нуля: стек, сроки и решения (кейс Сансара)

Онлайн-журнал — это не «блог на Тильде»: редакция, рубрикатор, медиа, вёрстка длинных текстов, SEO. Рассказываю, как собрал такой …

кейсСансарамедиа
Смотреть кейс
Другое

Кейс: что изменилось у клиента за 6 месяцев сопровождения

Обезличенный типовой кейс: что реально меняется за полгода сопровождения — заявки, скорость, ошибки, время сотрудников. Цифры до/п…

кейсрезультатысопровождение
Смотреть кейс
Другое

Система онлайн-управления общежитием: места, договоры, финансы и оплата вместо бумаги и таблиц

Оператор общежития на две сотни мест управлял всем вручную — бумага, таблицы, риск двойных броней и непрозрачные финансы. Я постро…

система управленияобщежитиеавтоматизация
Смотреть кейс
Другое

Этно-мюзикл с цифровым иммерсивом: как мы синхронизировали видеопроекцию с живой сценой

Если проекция отстаёт от оркестра на две секунды, иммерсивное шоу превращается в дешёвое караоке. Рассказываем, как мы построили н…

ArtTechиммерсивпроекции
Смотреть кейс
Другое

Цифровые этно-раскраски нового поколения: вектор, фактчекинг и сакральная палитра

Молодёжь считает традиционную культуру музейной, а обычные цифровые раскраски строятся на чужих стоковых шаблонах. Показываем изну…

UI/UXвекторная графикаSVG
Смотреть кейс
Другое

Игра-толкователь: веб-игра про этимологию и общие корни слов

Автор книги о смыслах слов придумала игру, где игрок сам доказывает родство слов из разных языков. Мы сделали технику: движок-траф…

веб-играэтимологияedtech
Смотреть кейс

Нужен похожий проект?

Соберу сайт, бота, мини-апп, ИИ-решение или платформу под вашу задачу — под ключ, с прозрачной сметой.