Добре спроєктований опенсорсний комерційний фреймворк, який тихо втратив свого доглядача вдруге за десять років, — і конкурент, що повернувся з мертвих із бізнес-моделлю за плечима.
Аудит інженерної стратегії Solidus, комерційного фреймворку для Rails. Аудит наявної системи, проведений цілком на публічних свідченнях, із запропонованим реєстром політик.
Фреймворк, за яким написано цей звіт (ESF v0.7 — див. примітку про нотацію в «З чого почати»), вимагає відповісти на питання про мандат до того, як пропонувати політику, — тож ось відповідь, прямо. Автор не має жодного мандата над Solidus. Це аудит ззовні; ніщо нижче не є прийнятим, і зовнішній аналітик прийняти його не може. Кожен рядок PL виходить у стані proposed, адресований людям, яких справді уповноважує документ про врядування: Core Team — для всього, що торкається коду й релізів, і голосування стейкхолдерів — для всього, що торкається грошей
Solidus тримається на волонтерах: нікому не можна призначити дедлайн, за який йому не платять, — тож політика, яка вимагала б постійної праці від названих волонтерів, померла б у момент появи. Те, що проєкт може запроваджувати, він уже запроваджує добре — машинами. Депрекації валять збірку; стиль лінтується, а не обговорюється; мердж вимагає рев'ю Core Team
Ще один обов'язок, який накладає фреймворк: перш ніж писати стратегію, перевірити, чи стратегічна робота вже не ведеться. Ведеться. Провідний мейнтейнер опублікував цілісну стратегічну позицію в травні 2026-го — широке врядування, свобода ліцензії, свідома відмова від шляху JavaScript-фреймворків
Кожен рік серйозних витрат фінансував одну-єдину співпрацю, і провалилася саме та, що купила активність замість результату — $45,760 за шість «Agile Design Sprints» 2023 року (F1). Правило: оплачувана співпраця називає свій артефакт, критерій завершення і того, хто нестиме роботу після того, як гроші скінчаться. Сама модель фінансування вже усталена й свідома — незалежні розробники, оплачувані з колективу, поки фірми-мейнтейнери лишаються на клієнтській роботі
Core Team тримає явні технічні повноваження, спільнота збирається щотижня — і жодне рішення не досягає публічного артефакту: дошка роадмапу — чейнджлог, що носить ім'я роадмапу, а найясніша заява стратегії проєкту живе в маркетинговому блозі консалтингової фірми (S1). Потенційний користувач знаходить доглянутий запис того, що проєкт мав минуле, — і жодного свідчення, що він має майбутнє. Правило: кожне рішення Core Team упродовж місяця лягає статус-постом або майбутнім пунктом на дошці роадмапу. Це публікація, а не врядування — рішення, можливо, і так ухвалюються; просто їх не видно. Блог уже наполовину прокинувся сам: один реліз-анонс у травні 2026-го
Коли 2025 року зупинився оплачуваний розробник, сім адмінських pull request-ів застигли там, де стояли, і єдиним порятунком досі був один контриб'ютор, що зголосився вручну через рік (F3). Той порятунок спрацював — 30 липня 2026-го він переїхав у свіжий pull request, з підходом, якому надавав перевагу рев'юер
Solidus народжується. Агенція Stembolt форкає Spree 2.4, бо їй не подобається, куди прямує Spree. Обіцянка на старті — стабільність, легкі оновлення та зворотна сумісність
First Data купує Spree, і розробка повністю зупиняється. Форк виглядає далекоглядним; значна частина спільноти Spree мігрує на Solidus
Перший доглядач іде. JUUL Labs купує Stembolt, і робота над Solidus припиняється. Опіку підхоплює Nebulab
Фінансування йде через Open Collective. Агенції та мерчанти спонсорують щомісяця. Спонсори також починають скасовувати підтримку — сім 2019 року, сім 2020-го, сім 2021-го. Цей відтік так і не зупиняється
Починається нова адмінка. Стартує робота над solidus_admin, що має замінити застарілий інтерфейс
На неї витрачено $45,760. Шість платежів по $6,000 для Nebulab за «Agile Design Sprints», плюс $9,760 за аналіз редизайну. 2023-й стає найбільшим роком проєкту: 1,810 комітів, приблизно 60% — від людей Nebulab
Інженерія Nebulab обвалюється. Їхній провідний розробник падає з 696 комітів до 46. Робота над адмінкою просідає з 618 комітів до 205. Оголошення так і не з'являється
Стартує друге паралельне переписування: solidus_promotions, поруч із наявним движком промоакцій. Жоден не стає дефолтом
Spree повертається комерційно. Версія 5.0 розділяється на безплатну редакцію та платну Enterprise Edition за підтримки Vendo
Solidus починає публікувати щомісячні статус-апдейти. Одну людину — Юджина Чайкіна — публічно називають тим, хто рухає нову адмінку вперед. Він напише 78% адмінських комітів того року
Оплачено останню витрату. Фінансована розробка зупиняється. Гроші продовжують надходити; назовні більше нічого не йде
Щомісячні апдейти обриваються. Після п'яти випусків каденція статус-постів завершується. У травні 2026-го виходить один реліз-анонс — і далі знову тиша
Виходить Solidus v4.7.0 — Ruby 3.2+, Rails 7.2+, а CI вже покриває Rails 8.1 і Ruby 4.0, кожен підхоплений за лічені тижні після релізу
solidus_starter_frontend — сторфронт, який роками жив окремим репозиторієм — перейменовано й поглинуто в монорепо як storefront/, разом із набором тестів на 64 файли й 5,510 рядків
Spree відвантажує шість платформних релізів за п'ять тижнів. Solidus не відвантажив жодного з квітня. Баланс колективу лежить невитраченим. Дві фірми дають 78% фінансування. Нова адмінка — на версії 0.4 з вимкненими головними екранами
Проєкт відповідає. Чернетка, викладена у Slack проєкту, за годину отримує відповідь Core Team — «не стовідсотково точно… але точно корисно побачити, який вигляд має публічний стан проєкту, коли зібрати його докупи» — і два найцінніші невідомі дістають відповіді
Перевірено наново для цієї редакції: видатків досі немає — вже тринадцять місяців — при $133,750 на балансі; мета-гем без змін; порятунок осиротілого pull request-а 30 липня переїхав у свіжий
Фінанси Solidus повністю публічні — що незвично й корисно: цей розділ спирається на записи, а не на здогади. Усі цифри — з API Open Collective
Комісії хоста і платіжних систем (залишок, обчислений на знімку від 25 липня)
Сукупні підсумки сильно прикрашають картину, бо враховують і спонсорів, які давно пішли. Чесне число — активні регулярні внески: їх дев'ять, разом $1,931 на місяць — набір, повторно підтверджений незмінним у циклі списань за серпень 2026
Понад тридцять спонсорів скасували підписку, серед них великі: Engine Commerce ($1,000/місяць), Modded Euros ($850 за трьома підписками), Firstleaf ($325), Magmalabs ($325) і Deseret Book ($200). Більшість — мерчанти, а не агенції: справжні магазини, які перестали платити
У кожен рік, коли проєкт витрачав серйозно, практично все йшло на один контракт
Шість платежів по $6,000 кожен на Nebulab, усі з підписом «Solidus Admin Dashboard Agile Design Sprint 1–6», плюс $9,760 для Andrea Iurisci за «Admin Panel Redesign Analysis»
Фінансована розробка після цього тривала — $32,506 нідерландській компанії за 16 інвойсами наприкінці 2024-го, $16,888 анонімізованому отримувачу за шістьма інвойсами в першій половині 2025-го — а тоді повністю зупинилась: останню витрату оплачено 5 липня 2025 року. Відтоді надійшло тринадцять місяців доходу, і жодної виплати не було. Перевірено ще раз 8 серпня 2026 року: найсвіжіший дебет у журналі — досі той інвойс за липень 2025-го
Перший прохід дивився лише на оплачені витрати, а так можна було б пропустити гроші, вже затверджені й поставлені в чергу на виплату. Запит за всіма станами повертає 67 витрат: 64 оплачені, 3 відхилені, і жодної в очікуванні, затвердженої чи в обробці. Найсвіжіша витрата будь-якого статусу — з липня 2025 року. Отже, ніщо не зарезервоване і не в дорозі
Повторна перевірка 8 серпня ще раз прочитала журнал дебетів і побачила ту саму картину; єдине, чого не прочитати без автентифікації, — витрати, подані, але ще не затверджені: це обмеження назване, а не приховане
Дві розбіжності звірки лишаються відкритими, і їх варто назвати. 64 оплачені витрати дають у сумі $143,158 проти звітованих загальних витрат $154,612 — різниця $11,453, найімовірніше комісії за виплати. А отримане-мінус-витрачене перевищує баланс на $42,885, тобто 13% усього отриманого — що узгоджується з комісією хоста плюс обробкою платежів. Жодне з цього не верифіковано
Адміністраторів, які можуть затверджувати витрати на Open Collective, семеро: tvdeyen, Gregor MacDougall, Alberto Vena (Nebulab), Matteo Latini, Andrea Iurisci, Alessandro Desantis (співзасновник Nebulab) і Джаред Норман (Super Good)
Суміжна теорія — що спонсорство було грою за голоси — не витримує зіткнення з механікою. Вага голосу дорівнює місячному внеску з лімітом 1000; Nebulab і Super Good нарівні по $750, і жоден не витратив додаткові $250, які б добили ліміт. Голоси врядують лише тим, як витрачаються кошти і хто стає радником; вони не дають жодної влади над тим, який код мерджиться. А економіка йде на $44k не в той бік
На 25-й редакції стандарт незалежної угоди, якого, за цією знахідкою, бракувало, виявився заявленою нормою: мейнтейнери воліють взагалі не брати колективних грошей — «я волію уникати будь-якого враження, що ті з нас, хто підтримує Solidus, прямо заробляють на фінансуванні з OpenCollective» — а робота «кошти агенціям» прийнятна, «поки це прозоро і чесно оцінено», з перевагою для вправних третіх сторін
Колонку «Типовий?» перевірено ще раз 8 серпня 2026 року: мета-гем досі називає solidus_api, solidus_backend, solidus_core, solidus_legacy_promotions і solidus_sample — і досі оминає solidus_admin та solidus_promotions
Гем має гайд міграції на 190 рядків, який покриває встановлення, міграцію наявних даних промоакцій, перемикання поведінки магазину, синхронізацію легасі-промоакцій у замовленнях, роботу з кастомними сторфронтами, портування кастомних правил і, нарешті, видалення легасі-гема з Gemfile
Одинадцять комітів за шість тижнів, чотири людини з двох організацій, включно з Альберто Веною з Nebulab
Разом із ним прийшов не семитижневий скелет. solidus_starter_frontend роками жив як окремий репозиторій і приніс 64 файли спеків і 5,510 рядків тестів — компоненти, контролери, хелпери, мейлери, request-спеки включно з авторизацією і 19 системних спеків на автентифікацію й кешування. Ці спеки копіюються в кожен згенерований магазин, а CI на кожен push встановлює магазин і ганяє їх наскрізно
Залишкова ціна реальна, але вужча, ніж звучало раніше: два движки промоакцій — це 205 файлів тестів на той самий домен, і кожна нова інсталяція досі тягне дві адмінки
Для комерційної платформи найпереконливіше свідчення — справжній магазин. Пошук публічних репозиторіїв, що залежать від Solidus, дає близько тридцяти результатів
Джаред Норман сам назвав це у How to Fail at Solidus, зауваживши, що багато впроваджень Solidus лишаються невидимими для спільноти
Опціональні можливості Solidus тримає в окремих репозиторіях. Із 35 в офіційній організації у 2026-му ще працюють над платежами (Stripe, PayPal), підписками, автентифікацією, перекладами та інструментами для розробників. Сплять із жовтня 2023-го: GraphQL API, вебхуки і старий сторфронт
Nebulab дали приблизно 1,096 з 1,810 комітів 2023 року — близько 60% — і приблизно 3 з 223 у 2026-му. Жодного публічного оголошення про цей перехід не було; ретельний пошук нічого не знайшов
Вони лишаються активною консалтинговою компанією на 27 людей і досі платять за найвищий рівень спонсорства. Але їхня сторінка послуг тепер перелічує «Shopify Development» точно нарівні з «Solidus Development»
Дві речі з документа про врядування варто процитувати точно, бо разом вони чітко окреслюють прогалину
Публічна дошка роадмапу містить 76 пунктів — 65 змерджених pull request-ів і 7 закритих issue проти 3 відкритих, спрямованих уперед. Вона записує те, що вже зроблено
Блог публікував щомісячні статус-апдейти з травня по жовтень 2025-го, затих — і відтоді опублікував одне оголошення про реліз: для v4.7, у травні 2026
Межа цієї знахідки: я не встановив, чи існують протоколи зустрічей десь непублічно. Твердження тут лише про те, що ззовні жодного запису не знайти
Не читайте всі 40 відкритих pull request-ів як недбалість мейнтейнерів. У квітні 2026-го Джаред Норман опублікував оголошення, яке пояснило раптову хвилю перших внесків: онлайн-дошка вакансій давала кандидатам завдання виправляти issue Solidus як етап відбору
У репозиторії немає SECURITY.md, і це підштовхує до висновку, що платіжний фреймворк живе без політики розкриття вразливостей. Це не так. Політика живе на рівні організації і вказує на опублікований процес, помітно сильніший, ніж у більшості проєктів такого розміру
За цим стоїть трек-рекорд: п'ять опублікованих advisories між 2020 і 2022, з оцінкою серйозності, один із CVE
Два спостереження, які варто тримати в голові. Перше: список підтримуваних версій актуальний — у ньому названа 4.7, випущена в квітні 2026, — тобто цю політику підтримують, поки блог і роадмап стоять. Це чесний сигнал того, що саме проєкт продовжує тягнути, коли вважає ставки достатньо високими. Друге: жодного advisory не опубліковано з 2022 року. Це чотири тихі роки: або нічого не знайшли, або процес затих разом з усім іншим; ніщо тут не дозволяє розрізнити ці два варіанти
github/CODEOWNERS містить одне правило: * @solidusio/core-team
Чого я не зміг перевірити: і налаштування захисту гілок, і членство в core team вимагають адмінських прав в організації, а запити повернули помилки доступу, а не відсутності. Тож вимога рев'ю спирається на опубліковану політику
Rails 8 постачає Propshaft як дефолтний пайплайн асетів; Sprockets — попереднє покоління
Шлях встановлення вже покритий безперервною інтеграцією, і покритий ґрунтовно. solidus_installer.yml запускається на кожен push і pull request у main: він встановлює нативну бібліотеку для зображень, запускає справжній інсталятор зі справжніми прапорцями, піднімає застосунок і перевіряє, що головна сторінка рендериться, звіряє резолвнуту версію платіжного гема, а потім запускає власний набір тестів згенерованого застосунку зі звітом про покриття. Другий воркфлоу покриває шлях генератора розширень
CI зелений на шляху встановлення, якого документація не описує. Офіційний гайд дає дві команди. CI тихо виконує три. Розробник, який іде за гайдом, влучає точно в той баг, який CI обходить, — а пояснення живе в коментарі до коду, а не там, де читає користувач
Фікс, на який Solidus неявно чекає, лежить незмердженим у гемі, що не релізився два роки і вже витіснений апстрімом
У Solidus немає package.json, немає lock-файла і немає графа npm-залежностей ніде в репозиторії
Spree, для порівняння, носить package.json, pnpm-lock.yaml, pnpm-воркспейс, Turborepo і Biome, плюс одинадцять JavaScript-пакетів
Визначення пакета нової адмінки оголошує жорстку залежність від solidus_backend — старої адмінки, — а її компоненти посилаються на вебадреси старої адмінки для коригувань, рухів запасів та історії store credit
Найгостріше тут те, що чекліст завершення вже існував. Issue #5391, відкритий у вересні 2023-го і досі відкритий, викладає план перенесення з явним обґрунтуванням послідовності — «Ми хочемо взятися спершу за легкі сторінки, щоб поступово покращувати й нарощувати компоненти нашого UI-kit, а потім перевикористати їх для міграції складніших сторінок (напр. промоакцій)» — а далі список задач
Зауважте, що це за чекліст: шість найлегших екранів у застосунку — а нижче видно, чому вибрати їх першими було помилкою. Проєкт визначив, що означає «готово», опублікував це — а потім перестав доглядати визначення. Жоден пункт не відмічено за три роки, включно з роботою, яка доказово завершена — перевірено ще раз 8 серпня 2026 року: всі шість пунктів досі порожні
Був і публічний наратив: блогопост за Q2 2023 повідомляв, що «новий досвід адмінки потребував певних початкових зусиль; тепер, коли головні компоненти збудовано, реалізувати решту розділів буде легше і швидше»
Авторство адмінки 2023 року: Елія Скіто 370, Райнер Дема 132, Марк Буске 102, Альберто Вена 6 — приблизно 98% з орбіти Nebulab. 2024-й розпорошився між шістьма людьми, поки вони згортались. 2025-й витягнула одна людина, Юджин Чайкін (комітить як chaimann), — 151 зі 193 комітів. 2026-й має 19 комітів від п'яти людей і жодного власника
Сім pull request-ів, відкритих уже рік, наводять на думку, що готова робота чекає на рев'юерів. Читання самих тредів — комітів, інлайн-коментарів рев'ю і розмов — дає точнішу відповідь
Єдиний PR, позначений готовим до рев'ю, має живий тред. Після повідомлення про конфлікт (липень 2025) і технічного заперечення від мейнтейнера, який волів нативну поведінку Turbo замість нової бібліотечної залежності (серпень 2025), долучився інший контриб'ютор
Це здорова спільнота, яка добре робить складну річ: мейнтейнер поступається в дизайнерській суперечці замість блокувати нею, а контриб'ютор зголошується підхопити чужу застряглу роботу і приймає підхід, якому віддає перевагу рев'юер. І обіцянку дотримано: 30 липня 2026 року forkata відкрив #6528 — «Admin confirm modal without external dependency» — ту саму функцію, перебудовану так, як хотів рев'юер
Побіжне спостереження: бот-рев'юер pull request-ів Copilot залишив рев'ю на #6232 у травні 2025
132 наявні компоненти разом дають 7,716 рядків і покривають приблизно дев'ятнадцять робочих екранів. Контролер «лише список» — це 30–36 рядків з одним-двома файлами компонентів
Друга, незалежна міра показує те саме. Оскільки обидві адмінки рендеряться на сервері, шаблони в'ю — чесний прокси поверхні екранів: стара адмінка несе 277 ERB-шаблонів проти 111 у новій
Плейбук міграцій Вілла Ларсона — стандартний довідник з виплати технічного боргу в масштабі — задає три фази
План перенесення Solidus формулює протилежну стратегію власними словами. Issue #5391: «Ми хочемо взятися спершу за легкі сторінки, щоб поступово покращувати й нарощувати компоненти нашого UI-kit, а потім перевикористати їх для міграції складніших сторінок (напр. промоакцій)»
Передбачений провал — саме той, який ми й спостерігаємо. Легкі сторінки налаштувань перенесли частково. Упевненість бігла попереду реальності — пост за Q2 2023 повідомляв, що «головні компоненти збудовано, реалізувати решту розділів буде легше і швидше»
На 24-й редакції Core Team відповіла на цю знахідку прямо: часткова поступка щодо послідовності — «є аргумент, що варто було почати з важкого, або принаймні дійти до нього швидше» — але суперечка щодо ставок: «viability isn't a concern… не думаю, що хтось переймається, ніби їх неможливо збудувати. Поки проєкт до 1.0, переробки — не така вже й біда»
Розумна теорія, і свідчення її не підтримують. Відкриті issue про адмінку — переважно запити на відсутні функції: «додайте створення таксономій», «додайте характеристики товару», «редагування кількості товару на складі», «увімкніть створення типів опцій» — підпис незавершеного, а не нелюбого. Тікетів про юзабіліті існує два. Статус-апдейт за травень 2025 відгукувався про роботу позитивно
Одна поправка до народного наративу — від Core Team на 24-й редакції: на старті жодної ворожнечі не було. Після розколу проєкти якийсь час співпрацювали напряму — надто щодо проблем безпеки, які зачіпали обидва, — а зв'язки обірвалися пізніше, зі зсувами стратегії та зміною тих, хто вів цей проєкт. «Єдина справжня „драма“ — хіба те, що вони використовують проєкти на Solidus як кейси на сайті Spree»
Теперішній час, той самий голос на 25-й редакції: «дуже різні підходи», незгода щодо ліцензування й технічної стратегії, і «no beef these days, though. Just different directions»
Безкоштовна редакція Spree містить сторфронт, чекаут, канали продажів, резервування запасів, маршрутизацію замовлень і API. Enterprise Edition додає три окремо ліцензовані комерційні модулі — маркетплейс, B2B, мультитенантність — плюс рівень підтримки з градуйованими гарантіями часу відповіді, релізами з довгостроковою підтримкою та цілодобовим моніторингом
Ціни не опубліковані; за однією сторонньою оцінкою, ліцензія та впровадження першого року обійдуться в п'яти-шестизначні суми
Це структурна різниця, а не збіг обставин. Опенсорсна робота Spree — це витрата на маркетинг і R&D, вписана в enterprise-звіт про прибутки й збитки; робота Solidus тримається на банці пожертв, що приносить близько $25k на рік. Колектив зі спільнотним врядуванням не може відтворити цю модель, не переставши ним бути
Spree публікує скіли для AI-агентів, які встановлюються однією командою, тримає MCP-сервер документації й рекламує свій інструмент командного рядка як такий, що працює «hands-free для AI-агентів». Усередині він несе файли інструкцій для агентів, закомічені дозволи, хуки та скіли із зафіксованими версіями
У Solidus нічого з цього немає — перевірено ще раз 8 серпня 2026 року: в корені репозиторію досі немає жодного файлу інструкцій для агентів
Чесне застереження: причинність не доведена. Spree має ще й комерційне фінансування, тож харнес може бути симптомом ресурсів, а не причиною пропускної здатності. А одна стороння стаття стверджує, що сплеск активності Spree «насамперед рухають LLM-згенеровані контрибуції»
Spree комерційно перезапустився у квітні 2025-го. Скасування спонсорств Solidus — 7 · 7 · 7 · 4 · 5 · 2 · 5 · 2 на рік, починаючи з 2019-го, — причому 2024 і 2026 — два найнижчі роки за всю історію. Жодного виходу спонсорів після перезапуску немає. Інженерія Nebulab обвалилася ще 2024 року, за цілий рік до Spree 5.0
Технічний напрям Solidus записаний — його просто легко проґавити через те, де він живе. Провідний мейнтейнер опублікував його 12 травня 2026 року — в пості, що порівнює Solidus і Spree
Статусне оновлення травня 2025-го обіцяло «подвоїти ставку на наявний GitHub-проєкт під назвою Roadmap» заради прозорості. Його справді тримали живим — оновлювали в червні 2026-го. Але з його 76 пунктів 65 — це змерджені pull request-и, а 7 — закриті issue. Рівно три відкриті issue й один відкритий pull request дивляться вперед, і один із цих трьох — господарський пункт, якого востаннє торкалися у травні 2025-го
Проєкт очевидно вміє добре проводити міграції. Промоакції йдуть із 190-рядковим гайдом, що покриває міграцію даних, перемикання поведінки, кастомні правила й видалення легасі, а на додачу прямо радить мігрувати вже зараз. Сторфронт чисто поглинули за шість тижнів чотири людини з двох організацій
Nebulab пішли з ~60% комітів до ~1% без жодного публічного оголошення
І це вже вдруге. Stembolt купили 2018 року, і вони теж пішли. Передача 2018-го вдалася лише тому, що охочий наступник випадково знайшовся. Ланцюг опіки читається так: Stembolt → Nebulab → ніхто
Вужче, ніж підказує читання самого лише репозиторію. Solidus має програму розкриття вразливостей на HackerOne, автоматичні безпекові оновлення залежностей, 18-місячне вікно патчів для трьох підтримуваних версій, два обов'язкові рев'ю перед мерджем і багатофакторну автентифікацію на релізних акаунтах (§07)
Лишається прогалина довкола цього шляху: немає автоматичних рутинних підвищень версій і немає кроку bundler-audit у збірці, тож звичайний дрейф залежностей накопичується між безпековими подіями і ловиться лише тоді, коли хтось подивиться
Концентрація коду й концентрація фінансування — одна й та сама залежність, побачена з двох боків. Найбільший індивідуальний контриб'ютор комітить з особистої адреси, без організації за спиною. Одна з двох фірм тепер рекламує роботу з Shopify нарівні з Solidus
Три роки, версія 0.4, 19 комітів за 2026 рік на цей момент, обидві адмінки в кожній інсталяції — і архітектура активно ховає проблему. Редакція 24, від Core Team: адмінка жива, і темп свідомий — реальні магазини вже сьогодні працюють на ній, хоч вона й неповна, а робота «відновиться в темпі, щойно матимемо нового кандидата на місці»
Це саме та відповідь, про яку §22 казав, що вона зсуне цей ризик з високого до низького, — і вона зсуває, з одним застереженням: зниження тримається на заявленому намірі, а закриває ризик лише фальсифікатор. Наступна видаткова операція в бухгалтерії — ось спостережуване, яке підтвердить кандидата, і станом на 8 серпня 2026 воно не з'явилося — останній видаток у бухгалтерії досі за липень 2025
На 25-й редакції намір здобув другу опору: «Адмінка — пріоритет», і модель із кандидатом свідома — незалежні розробники, оплачувані з колективу, поки фірма-мейнтейнер лишається на клієнтській роботі
Виміряно в §09. Зауважте: цей ризик стоїть нижче за R1–R3 попри високий вплив — саме тому, що він гучний і публічний: проєкт побачить, як це відбувається. Чого я не можу встановити — чи мерчанти справді переходять: сукупні завантаження досі на користь Solidus, а темпи завантажень на реліз спотворені швидшою релізною каденцією Spree
Його власний README каже, що розширення, які покладаються на старий сторфронт, «не працюватимуть із цим сторфронтом». Вплив середній, імовірність стовідсоткова — заявлена властивість, а не загроза
Solidus, за його ж власною документацією: створи Rails-застосунок, додай гем, руками напиши файл маніфесту асетів, запусти генератор і, можливо, руками збери CSS, бо «ця проблема зазвичай виникає, коли ви бандлите з гілки». А потім опинися в адмінці, яка не може відкрити замовлення
Ще вирішальніше: найбільший контриб'ютор самого проєкту публічно відмовляється від цього сегмента. How to Fail at Solidus Джареда Нормана (листопад 2024) стверджує, що Solidus пасує магазинам із великими обсягами, великим каталогам і маркетплейсам — а не простим маленьким крамницям
Проставити в #5391 галочки за тим, що код показує вже зробленим, — Settings > Zones уже давно має повний CRUD. Чекліст, який ніхто не оновлює, каже, що робота зупинилася; той самий чекліст в актуальному стані каже, що ні. Повторно підтверджено: галочки досі не проставлені станом на 8 серпня 2026
Core Team уже тримає технічну владу. Група стейкхолдерів уже збирається щотижня. Проєкт уже володіє двома каналами, створеними саме для того, щоб нести публічний напрям, — дошкою роадмапу і блогом. Нічого не треба створювати; дві приспані речі треба перезапустити. Блог навіть ворухнувся сам: один анонс релізу в травні 2026 — і знову тиша
Чому співпрацю 2025 року не продовжили. Найцінніше невідоме у звіті. Проєкт тричі окремо фінансував розробника (2020, 2024, 2025) і тричі окремо зупинявся, з повністю сухими роками між ними. Тож питання не «чому фінансування зупинилося» — зупинки тут норма, — а чому ця пауза триває тринадцять місяців, коли попередні зрештою заповнювалися. Бюджетна обережність, підрядник, що пішов далі, свідома пауза чи просто ніхто не запропонував наступної співпраці — усе це дає ідентичну бухгалтерію і передбачає протилежні відповіді. Відповідь на rev 24: «Кандидата немає. Просто зараз у нас у роботі новий кандидат, але поділитися нам нічим, окрім того, що ми над цим працюємо»
Хто такі «Logicielle B.V.» та «e.c441». Разом вони отримали $49,394 — майже третину всіх коли-небудь виплачених грошей — упродовж 2024 і 2025. Особу не встановити з публічних записів, а від неї залежить, чи купували ці витрати тяглість, чи разову роботу. Контекст на rev 25: зовнішні отримувачі — це проговорена перевага, а не аномалія: колектив свідомо фінансує незалежних розробників з досвідом Solidus, щоб мейнтейнери трималися осторонь грошей
Чи вважає Core Team нову адмінку живою. Виведено цілком із загасання комітів. Мейнтейнер може сказати, що темп навмисний. Ця єдина відповідь пересуває R3 з високого в низький. Відповідь на rev 24: жива і навмисно розмірена — реальні магазини вже сьогодні використовують незавершену адмінку в продакшені, і це сигнал використання, якого аудит, що читав лише загасання комітів, побачити не міг
Цільові пошуки публікацій про те, що Solidus застряг, покинутий чи здає позиції Spree, не повернули нічого — повторний запуск 8 серпня 2026 дав той самий результат
Вікно ввічливості звузило цю межу, не прибравши її. Один член Core Team — Джаред Норман, Super Good — відповів у Slack проєкту, і його вердикт про звіт — водночас і епістемічний статус самого звіту: «Оскільки він ґрунтується на публічно доступній інформації, він не на 100% точний, і я не з усіма оцінками тут згоден, але безумовно корисно побачити, який вигляд має публічний стан проєкту, зібраний докупи»
Routine dependency drift between security releases
Stale transitive dependencies age quietly; the exposure window before a disclosed issue is noticed widens
Low for disclosed vulnerabilities — that path is covered. Medium for drift
For a disclosed CVE, yes. For gradual drift, no
A Renovate or Dependabot version-update config landing, which would close this entirely
Two firms are 78% of the money and most of the code
Losing either firm removes ~39% of funding and a large share of throughput at once
Medium — this has already happened twice
Not for months. A departure looks exactly like a quiet quarter
Six consecutive months where no single party exceeds 25% of merged commits
The half-built admin becomes a permanent third state
The primary evaluation surface for new adopters stays broken, and the maintenance bill doubles indefinitely
No. Every signal a maintainer looks at is green
Version 1.0 becoming the default — or a recorded decision to cancel it
The new storefront breaks existing extensions by design
Governance describes a project that no longer exists
Architectural decisions are never recorded
The agent harness, and two small automation gaps
Test matrix including unreleased Rails 8.1 and Ruby 4.0
Migrations are engineered but never scheduled
A migration can stall indefinitely without anyone noticing
The steward changed in the code but not in the governance
That one of the stalled migrations is exactly what happens next
Treat this as an existing-system audit, with single-decision depth on t…
A deliberate strategy does exist — compatibility, merge authority and m…
Open with agent-harness engineering, on the grounds that no deliberate strategy exists.
The policy exists at organization level and was found by widening the s…
Report “no security policy for a payments framework” as a risk.
File the governance/reality mismatch as a debt, not a risk. (Accepted —…
67 expenses totalling $154,612 say the mechanism works and was already…
Frame the $132,180 balance as capital nobody has a mechanism to spend.
Corrected against the API — $329,677 received, $154,612 spent, and the…
Cite “$26,322 annual budget” and “$287,359 raised” from the rendered donation page.
Wrong. Six of seven pull requests are drafts never submitted for review…
The stalled 2025 admin work is finished and blocked at review; reviewer capacity is the bottleneck.
Misleading — order and product editing are switched off, six controller…
Report the new admin as “64% complete by controller count.”
Wrong measure. There is no package.json, no lockfile and no npm graph.…
Describe Solidus as paying polyglot costs, citing 246 JavaScript files.
Count correct, implication wrong — it reads as a recent exodus. It is s…
“Thirty-plus sponsors have cancelled, so the base rate is not hypothetical.”
Reject the theory that Nebulab's sponsorship was a play for voting powe…
Decline to characterize the Nebulab payments as extraction. (Net contri…
Reject "Spree caused the decline." (Cancellations are steady from 2019…
Decline to claim new merchants are choosing Spree over Solidus. (Not me…
Reframe the report from "how to recover" to "choose a role." (Accepted…
Over-generalized from one case. Promotions ships a 190-line migration g…
“Three unfinished rewrites” as a systemic pattern, generating root cause RC1.
It is written — the lead maintainer published it on 12 May 2026. This r…
Treat the project's technical direction as unwritten and derive it.
Vector removed entirely. "Director" covers business and organizational…
Treat the governance document's description of Nebulab's role as a finding at all (the governance-title strategy row, its bet, and its pre-mortem entry).
Partly external. A job board was setting candidates Solidus issues as a…
Read the 40 open pull requests as evidence of review neglect.
Wrong prescription for the mode. Unowned, undated work is the normal co…
RC1: “the gates were built; nobody is accountable for closing them, and no calendar says when.”
Metadata was misleading; the threads say more. Five chaimann drafts hav…
All seven stalled admin PRs characterized from API metadata: “the author never returned,” “reviewers engaged wherever they were asked.”
Wrong twice. The file exists and works, so marking it absent was incorr…
“Differentiated code ownership ✗ — CODEOWNERS is a single catch-all line.”
Diagnose the admin's sequencing against Larson's migration playbook, an…
A definition existed. Issue #5391 (open since Sept 2023) publishes the…
The $45,760 admin purchase shows “the project's missing completion gate appearing in a purchase order rather than in code” — no definition of finished existed.
Wrong, and it was the top-ranked risk. The published security policy sh…
R1, ranked first: “no automated dependency updating and no vulnerability audit step — a vulnerable dependency reaches every store, and you would learn from a downstream report.”
Every one double-counted. The count included _spec.rb, so the Ruby and…
Component table “Ruby files” figures: 855 / 328 / 278 / 193 / 166 / 98.
Overstated. The document assigns the Core Team "final decision as to wh…
“The governance document defines no mechanism whatsoever for deciding technical direction, so no forum has the standing to decide the admin's fate.”
Wrong, and it inverted the finding. It holds 64 spec files and 5,510 li…
Misleading — reading across a row produced false statements ("2020 · Lo…
Present spending as one table combining year-by-year totals with all-time recipient totals.
Re-verify the $132,180 balance under challenge. (Survived, and strength…
Softened. That figure covers the Open Collective account only. Donated…
“$132,180 sitting idle” as a characterization of the project's investment.
Wrong — it already exists and is stronger. The installer workflow boots…
Recommend adding CI that verifies the installation path.
Locate the real gap: CI is green on an undocumented install path. (The…
Ten of the twelve are view templates responding to AJAX requests, which…
Count 12 ERB asset files as Propshaft blockers.
Add the Rails-generation gap as a distinct finding. (Rails 8 defaults t…
Reject the JavaScript-framework direction on purpose. Simplicity, one s…
The project's actual strategy — stated, just not here
Never break an existing store. Deprecate before removing; back-port fix…
Ship replacements alongside the old version as opt-in, with a written m…
Working — see the promotions migration guide
Core stays lean; capabilities live in separate extensions.
Weakening — four official extensions dormant
Merge authority belongs to a self-appointing Core Team. Money buys vote…
Yes — the separation is deliberate and healthy
Quality is enforced by machines; style is not argued about.
The best-functioning rule in the project
Restart funded development — buying an outcome, not sprints
Routine dependency-update automation (security updates already run)
Agent harness, scoped to executing →B3 (Routine dependency-update autom…
Name the release that removes legacy promotions — a policy statement, n…
Decide the admin — by manufacturing the evidence, not deliberating with…
Dual asset-pipeline support, with an agent-executed migration
Publish technical decisions — restart the status posts, file forward-lo…
A definition of "finished" existed, and the money was not wired to it
Built by one organization, handed to nobody
The last developer's work was abandoned mid-flight
solidusio/solidus @ cdcdfaf (audited checkout)
The hard screen gets deferred for an easy one
The first screen attempted is one already on the #5391 checklist
Name the screen before starting, in public; treat "we learned it does not work" as a successful outcome
Nobody puts the funding decision on an agenda
Two stakeholder meetings pass with no agenda item
Send it as a one-page multiple-choice ballot over the three migrations
The harness gets built and nobody uses it
No pull request references it within two release cycles
Scope it narrowly to B3 and B5; if those land, it paid for itself
The funded migration is chosen by money, not readiness
Multiple choice, producing a ranked list
The diagnosis is wrong and the constraint is attention, not money
A second, outcome-shaped funding round also fails to ship
If money tied to a completion criterion fails too, cancel the admin
Why was the 2025 engagement not renewed?
Is the balance reserved against something?
Does the Core Team consider the new admin alive?
Branch-protection settings and core-team membership
Does Spree's commit volume reflect human or generated work?
solidusio/solidus #5391 — new admin porting checklist, open since Sept 2023
solidusio/solidus #5410 — new admin breaks asset compilation when the host app has Tailwind
solidusio/solidus #6035 — installer may fail silently
solidusio/solidus #6228 — store create/edit draft PR
solidusio/solidus #6232 — shipping methods draft PR
solidusio/solidus #6236 — option types draft PR
solidusio/solidus #6295 — confirmation dialog PR, adopted July 2026
solidusio/solidus #6296 — product categories draft PR
solidusio/solidus #6298 — tax rate create/edit draft PR
solidusio/solidus #6302 — payment methods create/edit draft PR
solidusio/solidus #6327 — installer fails with a Sprockets error
solidusio/solidus #6516 — align the install instructions with the storefront
rails/sprockets-rails #546 — warn instead of raising on missing manifest.js
Solidus Slack — courtesy-window thread: draft posted, Core Team reply
Record the courtesy-window answers; stakeholders none reached to partial (rev 24)
Record the follow-up answers: admin a priority, funding model deliberate (rev 25)
GitHub API re-verification sweep 2026-08-08
Open Collective ledger re-check 2026-08-08
solidus.io blog — status update Solidus v4.7, 5 May 2026
Superseded: last blog post October 2025 / nine months of silence
Record the rev-26 re-verification, evidence window 2026-08-08
Rails and Ruby release dates plus Solidus CI adoption commits
Superseded: tested against unreleased Rails and Ruby versions