Трибуна Dmitriy Strukov
712

SimpleAdmin — универсальная админпанель без помощи программиста

В закладки

Меня зовут Дмитрий Струков, я CEO сервиса SimpleAdmin. Это универсальная административная панель, позволяющая подключить приложение (мобильное, веб) на любом языке программирования к сервису. Человек без специальных технических навыков при помощи интерфейса сможет добавить необходимые поля и ресурсы для управления контентом на сайте.

Идея

Однажды ко мне пришла идея создания своего open source проекта. Довольно часто на этапе собеседования в компанию просят выполнить тестовое задание, и очень удобно вместо этого просто отправить ссылку на репозиторий с примерами кода. А перспектива помочь коллегам с решением их повседневных проблем еще больше зарядила меня энергией.

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

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

Реализация

Для воплощения идеи в жизнь выбрал Ruby on Rails, и на данный момент у нас монолит. Разработка приложений на этом фреймворке происходит с очень высокой скоростью, и у меня большой опыт работы в стартапах с ним. Тестовое покрытие — около 5-10%, поэтому появлялись неочевидные баги уже на staging сервере. Но тем не менее я считаю, что мой продукт не на том этапе, чтобы уходить с головой в тесты. Пока достаточно нескольких интеграционных тестов для проверки основного функционала.

Опять же для скорости выбрал Heroku как площадку для хостинга приложения. Большое количество встроенных инструментов для бэкапов, мониторинга.

Команда

Долгое время приходилось работать в одиночку, так как необходимых ресурсов для того, чтобы нанять команду разработчиков у меня не было. У меня был небольшой опыт обучения, и первыми членами команды были новички, которые хотели получить опыт и новые знания.

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

На начало октября я собрал команду: Front-end разработчик, 4 Backend разработчика, контент-менеджер.

Основная мотивация членов моей команды — получить опыт, знания и создать сервис, который был бы полезен компаниям, уменьшал их расходы и сокращал время на разработку этой части приложения.

Разработка сервиса заняла около 2-3 месяцев, активно искать клиентов мы начали в октябре. В репозитории уже более 650 комитов и было выполнено 10 релизов.

Использование сервиса

Для разработки сложной административной системы с нуля потребуется один сильный разработчик с рейтом $40-50 в час и около 120 часов (3 рабочих недели). Итого мы получаем $6000. А если учитывать что, возможно, у вас есть несколько проектов на разных языках программирования, то мы имеем достаточно ощутимую цифру. Благодаря сервису SimpleAdmin можно сэкономить ресурсы в разы.

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

Страница "Ресурса"

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

Для работы с контентом необходимо выполнить несколько достаточно простых шагов:

  • Перейти на страницу управления ресурсами.
  • Создать ресурс, выбрав из списка необходимый.
  • Добавить необходимые поля (для осуществления операций над ресурсами добавьте поле ID).
Редактирование полей

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

Кроме того, есть много других функций, которые вы можете выполнять:

  • импорт и экспорт в формате Excel;
  • возможность выбора полей для сортировки, поиска;
  • генератор тестовых данных (например, заполните поле SKU для продуктов), виджеты статистики;
  • резервное копирование данных.

Сервис можно использовать в E-commerce, для мобильных, веб-, API-приложений.

Результаты и планы

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

Конкурентов на рынке СНГ у нас нет. На рынке Европы и США — Forestadmin, который получил инвестиции и сотрудничает в основном с крупными игроками. Цена подписки для бизнеса начинается от $200 в месяц, для Enterprise — еще больше.

Мы отличается ценой — подписка стоит $15 в месяц — и функционалом, который является уникальным и разрабатывается с оглядкой на мнение клиентов и постоянных пользователей. Специально для этого мы разработали страницу, где вы можете проголосовать или предложить функционал, которого нет. Мы следим за конкурентами, но это не означает, что мы бездумно копируем их модель.

В ближайшее время планируем сделать интеграцию с такими крупными сервисами, как Heroku, Gitlab. Увеличить количество клиентов и активных пользователей до 100 за ближайшие полгода. Это позволит оплачивать хостинг и труд разработчиков.

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

Вы тоже можете рассказать о своём проекте, как автор этого материала. Соберите побольше информации — и публикуйте материал в подсайт «Трибуна».

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Dmitriy Strukov", "author_type": "self", "tags": [], "comments": 25, "likes": 6, "favorites": 18, "is_advertisement": false, "subsite_label": "tribuna", "id": 56478, "is_wide": false, "is_ugc": true, "date": "Thu, 24 Jan 2019 14:36:00 +0300" }
{ "id": 56478, "author_id": 230156, "diff_limit": 1000, "urls": {"diff":"\/comments\/56478\/get","add":"\/comments\/56478\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/56478"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199116 }

25 комментариев 25 комм.

Популярные

По порядку

Написать комментарий...
4

Дмитрий, зря Вы тут пишите.
Вы бы лучше статьи писали на medium
Например в разделе
https://medium.com/swlh/
Плюс изучили бы всех Ваших иностранных конкурентов, заказали бы обзорные статьи по продуктам конкурентов и Вашего продукта.
Плюс нашли twitter аккаунты Ваших конкурентов и занились вирусным пролайкиванием подписчиков и новостей по Вашим конкурентам.
Это принесло бы куда больше пользы и денег.
Можно еще на producthunt попробовать.
Тут писать смысла нет, клиенты от сюда не придут, просто в пустую пишите.

Ответить
2

Спасибо за обратную связь! Мы уже занимается этим направлением

Ответить
0

Зажимать информацию об идее или продукте — плохая затея. Самые крутые инсайты и люди приходят оттуда, откуда и представить было нельзя. Только нужно быть достаточно открытым для этого.

Ответить
0

Вы слишком переоцениваете 2% мирового рынка, впрочем как и многие.
Как итог все наши "стартаперы", хотят вначале покорить локальный рынок, а уже потом идти заграницу. Это утопичный подход.
У парня действительно есть шансы найти клиентов, если он перестанет писать на локальных ресурсах, а начнет осваивать иностранные площадки для раскрутки.

Ответить
0

> Как итог все наши "стартаперы", хотят вначале покорить локальный рынок, а уже потом идти заграницу. Это утопичный подход.

Полностью согласен. Но вопросы у всех будут одинаковые — кто ЦА, какая ценность продукта, кто/что основные конкуренты. Чем на большем количестве площадок вы рассказываете о проекте, тем быстрее понимаете список важных вопросов и начинаете формулировать на них ответы, попутно переосмысливая продукт.

Ответить
0

Согласен с Вами, но...
Единственный feedback, который можно получить на наших площадка это обливание грязью.
У нас делают следующим образом.
Если проект еще не успешен, то тебя начинают поливать помоями.
Если ты сделал фирму забугром, нашел иностранных инвесторов - то ты красавчик.
Знаете почему я не рассказываю о своем продукте тут? Да потому что я не хочу чтобы меня поливали помоями, хотя мне есть чем похвастаться и поделиться.
Но клиентов мне это не даст, плюс я получу кучу негатива и обвинений непонятно в чем как этот парень.
Надо слушать feedback только от платяжеспособной и платящей аудитории.

Ответить
1

Раньше так и было. Но сейчас стартап и предпринимательская культура развиваются и люди начинают чаще задавать осмысленные вопросы и критиковать по делу. Хотя и не щадя чувства автора.

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

Ответить
0

рейт в 40-50 долларов для программиста в России - очень хорош! Правда и 120 часов - этот минимальная реализация по факту, хотя в руби может и по другому.

Ответить
1

Лол, даже в яндексе столько мало кто получает. Ну тут конечно разработка более качественная и на совершенно другом уровне. Инновационный продукт. Система управления контентом на руби - такого мир ещё не видывал.

Ответить
0

А вы из Яндекса :)?

Ответить
–1

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

Ответить
0

<цитата>
Меня зовут Дмитрий Струков, я CEO сервиса SimpleAdmin.
</цитата>

Не нашёл что-то контактов организации на сайте. На какие счета принимаете платежи.

<цитата>
Разработка приложений на этом фреймворке происходит с очень высокой скоростью, и у меня большой опыт работы в стартапах с ним.
</цитата>
<цитата>
Кроме того, есть много других функций, которые вы можете выполнять:
импорт и экспорт в формате Excel;
возможность выбора полей для сортировки, поиска;
генератор тестовых данных (например, заполните поле SKU для продуктов), виджеты статистики;
резервное копирование данных.
</цитата>

Судя по функционалу, работа просто кипит.

<цитата>
Конкурентов на рынке СНГ у нас нет.
</цитата>

Сильное заявление.
Любая админка для фреймворков реализует в 100 раз больший функционал, чем вы тут написали.
В чём ваше конкурентное преимущество хотя бы перед ними, в статье даже близко нет.

Ответить
0

Тоже не понял. В сети куча полуфабрикатных CRUD-решений на любой вкус. Или, опять же, я просто не понял и несу чушь.

Ответить
0

В этом и проблема, даже не смог подать, какая ЦА у сервиса. Для кого пригодиться и как использовать.
<цитата>
Сервис можно использовать в E-commerce, для мобильных, веб-, API-приложений.
</цитата>
А ещё беременным и сидящим в декрете.

Ответить
0

А из-за чего ирония? Описал список приложений где сервис реально можно применить

Ответить
0

У вас не описано ни одного кейса, так что можно не скромничать и дописать, что можно использовать как контрацептивы, вместо кондомов. Откроете для себя новые рынки, привлечете новых клиентов.

Ответить
0

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

Ответить
0

Так будет не лишним всё таки пояснить, чем лучше вордпресса, там тоже не нужен "non technical парень".

Если снять двойной слой розовых очков, то можно увидеть, что обычные админки для сайтов перекрывают ваш разрабатываемый функционал (E-commerce), а api для мобилок легко через плагины делается.

А вы в статье говорите, что нет конкурентов.

Называете себя СЕО, хотя даже нет реквизитов организации на сайте.

Функционал в виде выгрузки в эксель и бекапы, да думаю стыдно про такую мощь писать.

Ответить
0

Что-то я не понял, у меня приложение на питоне и мне надо поставить вашу админку на руби? Какой смысл, проще взять готовую под свой язык программирования. Да она будет не полностью соответствовать требованиям, но явно лучше чем у вас сейчас, которую тоже надо допиливать под требования.

У Вас какие-то оторванные от жизни идеи, будете допиливать функционал для клиента за 15 баксов в месяц?)

Ответить
0

Я вообще ни хрена не понял. Что это? Для чего это? Вот есть у меня сайт на WP - я могу пользоваться вашим продуктом? Зачем мне нужно пользоваться, какие мои задачи он решает?

Вы уж извините, но все написано жутко непонятно. Вот например, фраза:

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

1) Откуда в нашем примере взялась запись? Запись это что? Запись в блоге, в вашей админке или в базе данных?
2) Почему из того, что пост имеет згоаоловок, следует, что запись будет ресурсом?
и т.д.

Ответить
0

Попробую еще раз. У нас есть блог, есть записи в блоге. Запись это таблица внутри которой есть поля, заголовок и описание.

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

Ответить
0

Вот вы оставили развёрнутый комментарий, из которого всё стало понятно. Правда так думаете?

У вас на сайте даже нет документации по продукту (скриншот и одно предложение не считаются).

В принципе - да всё просто, есть таблица, есть абстракции, всё понятно. Любой "non technical парнень" разберётся.

Ответить
0

Дмитрий, всё действительно очень мутно. Не понятно, нужно ли вашему решению для взаимодействия API какое-то, или надо дать полный доступ к БД. Не написано (не показано) как происходит интеграция, например, 5 таблиц при заполнении одной, работает ли ваше решение со связанными полями или это упрощённая версия какого-нибудь phpmyadmin.

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

У вас может быть отличный продукт, но если 9/10 человек ничего не понимает, то вы его не продадите. Я помню ваш предыдущий пост и с того момента понимания не добавилось ни на йоту.

Ответить
0

Соглашусь с комментариями выше, что у вас не сформулирована боль пользователя и ЦА. Мне, как разработчику, понятно почему. Вы сфокусированы на features вашего продукта, даже видео крутится вокруг возможностей. Пользователям это не интересно. У них есть боль (какая? как они решают её сейчас?), а ваш продукт — это подорожник, которым они хотят её успокоить. Это мышление продакта. Посмотрите другие видео продуктов для non-technical пользователей и обратите внимание на этот момент. Он принципиальный.

Также советую начать читать Тёмную сторону (https://t.me/temno). Будет ощущение дискомфорта, но это как раз и связано с различиями в мышлении разработчика и продакта. Если вы хотите продавать (= делать что-то полезное), то без последнего никак. Лучше сейчас пройти по этой дорожке — это сэкономит вам время, деньги и убережёт от разочарований в будущем.

В любом случае желаю вам удачи! Кто действует c головой — у того всё получится.

Ответить
0

Допустим у меня есть приложение на Firebase, 1 запись в базе содержит 10 полей (текстовые, с датами, цифрами), я могу на вашей системе сделать удобную админку для себя?

Ответить
0
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Приложение-плацебо скачали
больше миллиона раз
Подписаться на push-уведомления
{ "page_type": "default" }