Кожен покинутий репозиторій колись був одержимістю о другій годині ночі. Ви знаєте цей ритм. Ідея спалає близько опівночі. Ви розгортаєте структуру репозиторію ще до того, як ваша кава охолоне. Протягом одинадцяти днів ви пушите код із маніакальною енергією людини, яка нарешті розгадала секрет. А потім спринт закінчується. Або ламається котел. Або ви просто відкриваєте код у вівторок увечері, і нитка роздумів зникає.
Більшість розробників несуть цей тягар. Це не зовсім жаль, скоріше тихий перелік «а що, якби». Ваш профіль на GitHub стає архівом добрих намірів. Творець Side Project Cemetery створив щось, що вирішує цю проблему напряму. Їхній інструмент перетворює ваш публічний профіль на освітжене місячним сяйвом кладовище, де кожен занедбаний репозиторій отримує надгробок, дату смерті та, іноді, жартівливу епітафію.
Кладовище зростає
Побічні проєкти вмирають з буденних причин. Вам потрібно було вивчити новий фреймворк, тож ви створили CLI-інструмент. Ви хотіли автоматизувати таблицю, тож написали Python-обгортку. Прототип працював достатньо добре, щоб вирішити вашу проблему, і на цьому все закінчилося. Не було користувача, який чекав би на вас, не було дедлайну, що кричав про себе, не було менеджера, який запитував би про статус. Без зовнішнього тиску мотивація має нести все навантаження. Коли мотивація падає, проєкт застигає.
Завітайте на типовий GitHub розробника, і ви побачите цю закономірність. Іржавий графік внесків для одного репозиторію. README, що закінчується на «TODO: write tests». Історія комітів, яка різко обривається шість місяців тому. Ми ставимося до цих репозиторіїв як до незручних сувенірів. Ми швидко прокручуємо повз них, ніби незавершений код — це щось, що варто приховувати. Side Project Cemetery займає протилежну позицію. Він каже: поховайте їх належним чином. Визнайте їх. А потім, якщо захочете, воскресіть один із них.
Як працює кладовище
Інтерфейс прямолінійний і простий. Ви вводите будь-яке ім'я користувача GitHub. Додаток робить запит до GitHub REST API, витягує всі публічні репозиторії та фільтрує ті, у яких не було пушів протягом останніх ста вісімдесяти днів. Кожен результат стає могилою. Ви бачите рік народження, рік смерті та епітафію, згенеровану на основі деталей репозиторію.
Деякі епітафії звучать м'яко:
- Написано на JavaScript. Помер від виснаження колбеків (callback exhaustion).
Інші пропонують більш прихильне прочитання історії:
- Не помер. Просто агресивно на паузі з 2025 року.
Якщо ви хочете більше індивідуальності, ви можете увімкнути додаткову інтеграцію з Gemini. ШІ аналізує мову та контекст репозиторію, щоб скласти персоналізовані епітафії, які виглядають специфічними, а не шаблонними. Також є додаткова інтеграція з ElevenLabs, яка зачитує надгробну промову вголос. Це здається маркетинговим трюком, поки ви не почуєте опис власної покинутої API-обгортки соковитим, похмурим голосом оповідача. У цей момент абсурдність перемагає почуття провини, а саме провина була тим, що тримала репозиторій похованим.
Rekindle: кнопка проти відчуття пригніченості
Кладовище — це лише половина справи. Справжня функція ховається під кожним надгробком: кнопка Rekindle. Натисніть її, і додаток прочитає ваш README. Він аналізує все, що ви написали про мету проєкту, зіставляє це з наявним кодом і пише короткий пітч, щоб нагадати, чому це було вам важливо від самого початку. Потім він завершує це однією маленькою, конкретною дією, яку ви могли б зробити сьогодні ввечері. Не дорожня карта. Не план рефакторингу. Одне завдання. П'ять хвилин роботи.
Це важливо, тому що найважча частина повернення до старого проєкту — це не написання коду. Це згадування того, на чому ви зупинилися, і вміння пробачити собі цю зупинку. Давньо померлий проєкт здається чимось величезним. Ви припускаєте, що вам знадобиться три години лише на те, щоб знову зрозуміти архітектуру. Кнопка Rekindle стискає це припущення до одного завдання. Мета полягає в тому, щоб ваш наступний комміт здавався делом лише п'яти хвилин, адже щойно в історії з'являється хоча б один diff, імпульс зазвичай повертається.
Чому стек має залишатися таким простим
Технічно цей проєкт практикує те, що проповідує. Він побудований на чистому HTML, CSS та JavaScript. Він використовує GitHub REST API. Тут немає серверів, немає етапів збірки, немає чергового «фреймворка місяця», який потрібно підтримувати. Ви могли б розмістити його на GitHub Pages і просто піти.
Такий мінімалізм — це функція, а не лінощі. Інструмент, що займається воскресінням старого коду, не повинен сам покладатися на крихке дерево залежностей. Якщо творець покине Side Project Cemetery на шість місяців, кладовище не стане ще одним мешканцем на власному цвинтарі. Код залишається зрозумілим. Не потрібно оновлювати конфігурації webpack або патчити Docker-образи. Це тихий аргумент на користь стриманості в інструментарії: іноді статичного сайту та API-ключа цілком достатньо.
Коли кнопка справді працює
Розробник визнає, що його власні «мертві» проєкти нагадували про себе під час розробки. Один із них був особливим — це була однонічна одержимість, написана у пориві азарту, а потім забута. Він скористався кнопкою Rekindle. Додаток прочитав README, згадав основну ідею та повернув реальне завдання, яке потрібно було завершити. Це спрацювало. Він випустив цей відсутній елемент того ж тижня.
У цьому полягає головна ідея інструменту. Пристрасть не вмирає. Вона просто засинає. Більшість покинутих репозиторіїв — це не провали інженерії. Це провали контексту. Ви втратили нитку роздумів, тому що ця нитка існувала лише у вашій голові, а ваша голова переключилася на інші думки. Side Project Cemetery виносить цей контекст назовні. Він читає README, щоб вам не доводилося реконструювати себе минулого з нуля.
Справжня метрика — це не кількість воскреслих репозиторіїв. А те, скільки з них перестають викликати у вас дискомфорт. «Цвинтар» дає їм місце для відпочинку, поки ви не будете готові. А коли ви будете готові, він вручить вам лопату та одну-єдину інструкцію: почни звідси.
Досить дозволяти своїм ідеям залишатися похованими.
Відвідайте цвинтар за посиланням https://pyaroslav.github.io/side-project-cemetery/ та прочитайте повну історію створення на Dev.to тут.
