Як ми з нуля зібрали повноцінну інфраструктуру за допомогою Cursor AI
Вітаю, спільното! Мене звати Дмитро, я працюю DevOps Security та AWS Specialist у DevSecOps, Inc . Це моя перша стаття на DOU (сподіваюся, не остання — якщо сподобається нашій шановній українській айті-спільноті). Оригінал допису англійською ви можете переглянути у мене в LinkedIn.
У цій статті хочу поділитися досвідом перших кроків у роботі з Cursor AI — інструментом, який не просто доповнює код, а здатен з нуля зібрати повноцінну інфраструктуру. Це історія про експеримент, який несподівано спрацював і відкрив новий рівень взаємодії з ШІ.
День 0. Ідея
До нас зайшов новий проєкт. Оцінка виконання — два місяці. Під час планування з’явилась ідея:
«А що, якби інфраструктуру повністю написав ШІ? Без шаблонів, без ручної праці. Тільки правила — і хай працює».
Ми обрали Cursor. Це не просто редактор — це середовище, у якому ти керуєш ШІ за допомогою правил, які називаються stdlib (standard library). Cursor сам створює код, інфраструктуру, логіку — все.
І я скажу прямо: він справився чудово.
За 3,5 години (не враховуючи часу на написання інструкцій) Cursor згенерував повністю робочу інфраструктуру:
- Хмара — CloudFormation (CDK)
- Бекенд — Python / Lambda у контейнері
- База даних — DynamoDB
- Фронтенд — React
В результаті маємо:
3,5 години — до робочої версії.
Ще півтора дня — на тестування, документацію й доведення до пуття.
Разом — 2 дні до продакшену, без жодного рядка вручну.
День 1. Знайомство
Я почав читати. Ось три статті, які дали мені старт:
З’ясовується, Cursor — це форк Visual Studio Code. Але не просто редактор, а редактор із блекджеком, ШІ та правилами.
Ти не пишеш код — ти пишеш правила. І ШІ сам усе будує.
Це не просто інструмент. Це прискорювач. Особливо коли проєкт вузькоспеціалізований, і знайти розробника складно.
День 2. Створюю правила
Оформлюю двотижневу безкоштовну підписку. За 8 годин створюю власну stdlib.
Структура виглядає ось так:


Пишу в чат Cursor’а такий запит:
Ось архітектура проєкту (додаю зображення). Потрібно з нуля зібрати застосунок за цією схемою. Опис проєкту: @project-overview.mdc Інструкції: @dev-backend-python-lambda-rules.mdc @dev-cdn-rules.mdc @dev-dynamodb-guideline.mdc @dev-dynamodb-rules.mdc @dev-experience-kiosk-rules.mdc @dev-frontend-rules.mdc @dev-s3-media-rules.mdc

І тут почалася магія.
За перші 30 хвилин — 30 файлів. Згодом — понад 20 000 рядків коду. Все — в одному коміті.


Спочатку наша архітектура виглядала так:

Але Cursor створив дещо більше — він додав API Gateway, про який ми спочатку не подумали.

Лише під час обговорення ми зрозуміли, що ШІ підстрахував нас і додав те, що ми проґавили.
Щоб переконатися, що все працює, я попросив Cursor написати автотест, який перевіряє всю API-логіку.

Що мається на увазі під «перевіркою»
Тест допоміг ШІ виявити баги — і одразу їх виправити.
ШІ діє як джуніор: пробує → перевіряє → не працює → пробує знову. Іноді він брутфорсить, не до кінця розуміючи контекст — але не зупиняється, доки не досягне результату.
Ось трохи вивіду логів скріпта ./scripts/test-api.sh:
Created test file: test.txt
Step 1: Getting upload URL
Response:
{
"upload_url": "https://example-example.s3.amazonaws.com/media/example/test.txt?",
"media_id": “example”,
"metadata": {
"pk": "MEDIA#example==",
"sk": "METADATA#test.txt",
"user_id": "anonymous",
"file_name": "test.txt",
"content_type": "text/plain",
"created_at": "2025-03-26T10:17:01.559575",
"expires_at": 1745576221,
"status": "active"
}
}
Got media ID: example==
Step 2: Uploading file to S3
upload: ./test.txt to s3://example-example/media/example==/test.txt
Upload successful
Waiting for S3 consistency...
Step 3: Getting media info
Media info:
{
"download_url": "https://example-example.s3.amazonaws.com/media/example/test.txt?",
"metadata": {
"user_id": "anonymous",
"created_at": "2025-03-26T10:17:01.559575",
"content_type": "text/plain",
"status": "active",
"sk": "METADATA#test.txt",
"file_name": "test.txt",
"pk": "MEDIA#example",
"expires_at": 1745576221.0
}
}
Got download URL: https://example-example.s3.amazonaws.com/media/example/test.txt?
Step 4: Creating QR code
QR Response:
{
"qr_code": "",
"media_id": "example",
"mapping": {
"pk": "QR#example",
"sk": "MAPPING",
"url": "https://example-example.s3.amazonaws.com/media/5Jp9m2tMZVu8Zx2L36a2iA%3D%3D/test.txt?",
"created_at": "2025-03-26T10:17:06.606781",
"expires_at": 1743589025,
"status": "active"
}
}
QR code saved to qr_code.png
Step 5: Testing direct download
download: s3://example-example/media/example/test.txt to ./downloaded_file.txt
Download successful
✓ Files match - test passed!
✓✓✓ All tests completed successfully! ✓✓✓
Cleaning up temporary files...

День 3. Полірування
- Останній день пішов на:
- Рефакторинг правил
- Переклад stdlib англійською
- Перевірку логіки, яку створив Cursor
Увесь код, усі шаблони — написані AI. Людина не писала жодного рядка вручну.
Наприкінці
Це не майбутнє. Це вже сьогодення.
Коли Тоні Старк розмовляв із Джарвісом і отримував нову броню, він робив те саме, що ми зробили з Cursor. Тільки не у фільмі — а в реальному житті.
ШІ працює — якщо правильно написані правила. Але тепер відповідальність лежить на операторі.
У моєму випадку — на мені. Я — DevOps, і тепер повинен не лише розбиратися в AWS і CI/CD, а й розуміти фронтенд, бекенд і архітектуру, які створив ШІ. З Cursor кожен стає трохи CTO. Розробник, тестувальник, ДевОпс — усі піднімаються на новий рівень. Як колись друкарські машинки поступилися Word, книги — відео, а солдатики — комп’ютерним іграм, так і ШІ поступово бере на себе написання ПЗ.
А ми можемо нарешті зосередитися на чомусь новому. Можливо, навіть важливішому.
35 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарівдочитав статтю рівно до того моменту, коли побачив що запити робляться мовою росії
хороша стаття — там можно усе те брати та питати його що йому бiльше пiдходить
Чи можна пояснити як готувати документацію для проекта? Чи може і її готувати АІ, якщо так то який сервіс?
Може писати усю документацію Cursor (платна версія). В нас зараз один продукт проходить фінальну стадію у AWS Marketplace. Так в ньому документація вся ШІ написана. Я лише перевіряв, дивився чи все правильно і відповідає дійсності.
Можу платну відео-консультацію провести, випишіть конкретні питання, що вас цікавлять. Я вам покажу на прикладах
Цікава стаття, дякую!
Поки що найкраще працює, якщо давати йому короткі, вичерпні та деталізовані інструкції, самостійно виходить у більшості випадків дичина, яку потім правити виходить довше.
Це тільки у мене не проходить оплата українською картою за про акаунт? Рятуйте, тести лінь писати самому😁
Вітаю! Не знаю з приводу оплати з української картки. Мені компанія купляла підписку, вона в США знаходиться.
цикава история но не понятно как за этой поделкой следить ? кто ее будет обновлять (на новые библиотеки) и расширять для нового функционала ?
Чи робили ви перевірку згенерованого коду, чи «повірили на слово»? Ще цікаво, як ви оцінюєте масштабованість і підтримуваність отриманого коду, якщо таке взагалі передбачено?
Якщо ваш проєкт дійсно простенький і максимально стандартний, тоді абсолютно підтримую рішення. Але перше питання таки лишається )
Перевірили згенерований код, зробили кілька цікавих спостережень — і довелося трохи підправити 🙂
1. ШІ використовував дещо застарілі версії пакетів (оскільки кожна модель має свою «дату знань»), тому довелося змусити Cursor пошукати актуальні версії в інтернеті й оновити залежності вручну.
2. Якість коду в цілому не дотягує до best practices — і за композицією, і за структурою логіки. Але оскільки це мікропроєкт, ми задовольнилися середнім рівнем.
У випадку масштабніших рішень до ШІ треба підходити інакше: використовувати мультиагентне середовище, додавати перевірки якості, рефакторинг та контроль на кожному етапі.
Погоджуюсь з висновками, зараз теж досліджую досвід з Cursor, і мені здається, що його вигода нівелюється двома речима: скоупом проєкту та досвідом оператора.
Я більше часу, певно, витрачаю на матюки і правки за курсором, бо просто бачу яку дич він часто пропонує, навіть з контекстом всієї кодбази )
Чи маєте якісь висновки щодо того, як балансувати використання агентів з ростом складности проєкту?
ахаха, це точно...
Поки немаю...
Це щоб його навчити, потрібно самому розібратися як йому «правильно делегувати» задачі, чи коректно написати .cursor/rules, по яким він сам буде бачити помилки і виправляти те що написав...
Може згодом, як знайду робочу формулу то поділюся досвідом у новій статті, а також якщо керівництво дозволить оприлюднити правила для нього написанні.
іншими словами, інженера він не замінить?
Хтось повинен робити ревью та виправляти помилки.
Враховуючи, що помилки можуть бути не в коді, а в бізнес-логіці та нюансах бізнес-домену, підозрюю, що іноді простіше й безпечніше зробити фічу ручками, ніж користатися ШІ.
Саме так
або костиль тільки в певному місці працює правильно😂
Не можу зрозуміти: а який скоуп проєкту? Зрозуміло, що у скоупі є деплой на AWS. А що окрім цього?
Тому що діаграму деплою що у статті можна й без ШІ за декілька годин запрограмувати.
Володимире, дякую за запитання!
Справді, в статті ми більше фокусувалися на процесі взаємодії з Cursor, ніж на деталізації самого проєкту — і це гарний привід доповнити контекст.
Проєкт передбачав повну автоматизацію деплою інфраструктури під новий веб-додаток:
• бекенд на Python (у вигляді Lambda),
• фронтенд на React,
• базу даних (DynamoDB),
• CloudFormation/CDK,
• CI/CD пайплайн,
• S3, API Gateway, IAM-права — повний стек.
Скоуп включав не просто шаблонну інфраструктуру, а її інтеграцію, логіку взаємодії, тестування, документацію — все це Cursor згенерував на основі правил.
Щодо діаграми — її ми малювали самостійно, як вихідну архітектуру, яку мав реалізувати ШІ. Цікаво, що в результаті Cursor навіть додав компонент, який ми спершу не врахували — API Gateway.
Тобто завдання було не просто в «намалювати і задеплоїти», а перевірити, наскільки глибоко може піти AI у вирішенні комплексного технічного завдання з мінімальним людським втручанням.
Зі статті я зрозумів, що оцінка проєкту — 2 місяці («зайшов новий проєкт. Оцінка виконання — два місяці»), та за допомогою ШІ ви зробили цей проєкт за 2 дні. («Разом — 2 дні до продакшену»)
Які функції треба було реалізувати на бекенді та фронтенді? Тут десь згадувався — це згенерувати куар-код, по ньому віддати файл та залоговути цю подію до БД? Чи які ще юз-кейси були?
Так, справді — частина логіки була описана побіжно, тому з радістю деталізую.
Проєкт стосувався інтерактивного кіоску, де користувач (дитина) могла:
• зробити фото,
• обрати ефект чи персонажа,
• отримати вже оброблене зображення,
• і завантажити його через QR-код.
Після вибору ефекту зображення автоматично редагується (AI/фільтри), зберігається у S3, генерується QR-код, який веде на файл, і ця зв’язка зберігається до 30 днів. Потім фото і код видаляються автоматично.
Cursor згенерував:
• бекенд: API для завантаження фото, застосування ефекту, логування, генерування QR-коду,
• фронтенд: веб-сторінка для завантаження фото за QR-кодом (відсканував код — відкрилась відповідна сторінка, натиснув Download — зображення завантажилось).
Уточнення по фронтенду:
Йдеться лише про сторінку для завантаження фото за QR-кодом.
Інтерфейс самого кіоску ми не розробляли — таке завдання не ставилось.
я там окремо поставив кілька питань, але ця відповідь, в принципі, вичерпно на них відповідає. Тобто в загальному проєкт простий як дрова, скоуп манюсінький і фіксований, до шаленої масштабованости не схильний.
Тоді інше питання — що ж тоді в тих 20 000 рядках коду? )
У тих 20 000 рядках коду було:
• код усіх компонентів і інфраструктури,
• Cursor використав TypeScript для всіх частин проєкту — це додало чимало рядків через типізацію й дрібні деталі.
Якби використовувався Python, кількість рядків, ймовірно, була б удвічі меншою.
а проганяли рефакторинг через той же cursor? У мене непогано з цим справлявся.
Так
Зазвичай там 10 копій одного того ж кода в 10 компонентах з трошки зміненим порядком строк, 3 різних лiби для парсинга yaml/json, 5 разів скопипастена конфигурация секурити груп в CDK з різними пропущеними руламі у кожній і т.д. :))
Дякую, зрозумів!
Окрема вам подяка за висвітлення досвіду програмування з ШІ. Дуууууже актуальна тема, яку деякі люди не чипають взагалі.
Нещодавно робив подкаст на тему вайб-кодінгу: www.youtube.com/live/QFSyaJ7-_4o
Запрошую до перегляду!
І таким людям як Ви дуже дякую, за запитання і за зацікавленність.
Для себе зрозумів, що надалі буду ділитися досвідом. 🫡 😎
Дякую за подкаст, подивлюся. =)
Запити до Cursor руснявою? Бл* реально, в 2025??
Напевно світч з 1С в АІ)
->
Т.е. условно вместо 5 devops без AI оставляем 1 с AI, а4-х увольняем -> профит )).
Угу 🤣😆40-секнудне відео процесу як ті файли створюються, якщо цікаво можна переглянути
В оригінальній статті, є
Например, искать как заработать не в IT 🤣.
Але ж там 3 дні, а не 3.5 години... на абсолютно стандартну архітектуру з доки AWS/CDK, яку 2 місяці робити — треба мабуть цілу команду наймати, що б достатньо мітінгів нашедуліти
хаха
Значит никого не уволят👏. Пока🤔, но это не точно😉.