База данных для экспериментов

У меня бродит множество идей для различных проектов. Сейчас идей более 300.

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

И иногда для таких мини проектов мне нужен очень простой бэкенд. Несколько табличек в базе.

Почему просто не поднять маленькую БД?

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

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

Что не нравится в классической БД?

1. Возня

Несмотря на то что БД поднять несложно, всё равно это возня, на которую время тратить не хочется.

Хочется создавать базу и таблицу в пару кликов.

2. Стоимость облачных сервисов

Облачные сервисы где управление БД упрощено, неоправданно дороги.

Также бесит тарификация “по использованию”, когда ты даже не можешь предсказать свои расходы за месяц.

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

3. Нет удобного просмотра и редактирования

Ставить PhpStorm, DataGrip или какой-нибудь другой менеджер БД ради доступа к своей базе? Ну нафиг.

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

Может сделать таблицу Google Sheets?

Да, можно сделать табличку в Google Sheets. Но это не так уж удобно.

Хуже всего, что интеграция с Google Sheets будет непростой. Это знает каждый кто подключался к апи Google Sheets.

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

Что же нужно?

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

И как будем использовать?

Пример 1. Бэкенд для бота

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

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

Пример 2. Админка для управления пользователями

Для другого проекта у меня есть идеи по монетизации.

Но пока нет работающего толком продукта, полноценный модуль аутентификации и регистрации пилить не хочется.

А когда начну взимать плату, то вместо прикручивания платёжки можно ведь принимать оплаты в ручном режиме?

До 10 активных платных пользователей это несложно. Нужно только что-то что позволит выдавать и отключать доступ, а также учитывать кто когда заплатил и когда заканчивается оплаченный период.

Тут-то и пригодится наколеночная админка с произвольными полями. Будет быстрее, чем проектировать и реализовывать модуль подписки. Да и менять будет легче.

Готовые решения

Я искал готовые решения. И не нашёл.

Даже от безысходности хотел запилить что-то своё.

Но благодаря блогу Flavio Copes я узнал про такой проект как Pocketbase.io. Открытый исходный код, self-hosted, есть просмотр и редактирование, а также апи. То, что нужно!

Рассказав о своей находке друзьям, мне посоветовали ещё два похожих инструмента для self-hosted БД: Directus и Keystone.js.

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