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

Лет 5 назад, я делал свой первый pet-проект. Это был Discrod бот для модерации сервера, создания каналов, прослушивания музыки и несколько прикольных, но малозначимых фич) Именно тогда, я впервые затронул тему баз данных. В силу своего скромного опыта, я использовал самую простенькую sqlite базу хранящуюся в проекте. Она была настолько простой что я не уверен что там были связи, не говоря уже про индексы....

После этого проекта я стал более глубоко изучать эту тему, перешел на PostgreSQL. Я долго мучался с таблицами, связями, не мог представить их в голове, все время забывал что где, особенно после длительного перерыва. И тогда, я решил сделать простой сервис для визуализации схемы БД.

На рынке уже тогда были такие сервисы, но они были крайне неудобные, непонятные, выклянчивали подписку за "воздух". А как говориться: "Отрицаешь - предлагай". И я решил сделать свое творение. Так зародился Structly — простой и удобный инструмент для визуализации схем БД. Сервис задумывался как:

  • Красивый и удобный в интерфейсе

  • Ориентированным в первую очередь на разработчиков, Архитекторов БД, Технических команд, Системных проектировщиков

В этой статье я расскажу, как вечерами и на выходных делал Structly (и продолжаю делать) и как не бросил проект на полпути.

как сейчас выглядит основной интерфейс
как сейчас выглядит основной интерфейс

Идея проекта и первая попытка

При постоянном переключении между проектами или долгого перерыва некоторые детали забываются, меняются, устаревают. Очень важно видеть базу прямо перед глазами что бы эффективно работать с ней. Когда база маленькая и имеет всего несколько табличек все очень легко. Но когда база разрастается на десятки таблиц и несколько схем - вот это уже реально становится проблемой. Она существует где-то между SQL-миграциями, документацией (если повезло) и головами команды.

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

Первый прототип Structly
Первый прототип Structly

Я показал этот проект некоторым людям, он им прямо зашел - я понял, что надо продолжать его развивать. С этого прототипа я даже заработал 2 тысячи помогая одногруппникам по учебе для визуализации бд при проектной работе. Мелочь, а приятно) А дальше…
А дальше меня забрала рутина, работа, задачи и дедлайны. Проект постепенно ушёл на второй план, а потом я и вовсе про него забыл.

Возрождение спустя год

Спустя год, после нескольких коммерческих проектов я вспомнил про Structly: решил заново возродить сервис, но уже взяться за него с головой. Я накидал в заметках телефона, будущий функционал приложения и вышел не маленький список чего бы я хотел в нем видеть. Но обо всем по порядку)

Первую версию — простое приложение с базовой логикой — я собрал буквально за пару дней, используя FastApi на бэке и Next.js на фронте. Использовал ChatGPT для генерации фронта — и это сильно ускорило старт.

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

Следующим шагом я решил реализовать импорт таблиц из существующих миграций базы данных. Structly научился распознавать все команды ALTER TABLE и корректно отображать конечную структуру, что значительно облегчило работу с уже существующими проектами. После этого возникла идея добавить функцию экспорта. Сейчас Structly позволяет сохранять визуализацию схемы в формате PNG, JPG и PDF, а в ближайших планах — экспорт данных в SVG. Это делает инструмент не только удобным для проектирования новых схем, но и полезным для документирования и обмена существующими структурами баз данных.

Экспорт схемы в png
Экспорт схемы в png

В больших системах, особенно после нормализации базы данных, часто появляются специальные таблицы, предназначенные для хранения базовых справочных данных. На этапе миграций в них заранее вшиваются необходимые значения, и далее система просто ссылается на них в работе. Раньше такие таблицы оставались «за кулисами». Я решил изменить это и дать возможность визуализировать их напрямую. Так появился новый функционал SDT (Seed Data Tables), который позволяет отображать эти таблицы на фронте, видеть их содержимое и связи с другими таблицами.

Кроме того, Struсtly теперь понимает индексы и учитывает их в контексте схемы, предоставляя более полное и наглядное представление структуры базы данных. В крупных проектах количество таблиц и связей может быть огромным, и расставлять их вручную не хочется. Можно нажать «волшебную кнопку», и приложение автоматически расставит таблицы за вас, упрощая работу с визуализацией и экономя массу времени.

Так а в чем же основная фича Structly?

И вот мы подошли к самому главному: уже сегодня продукт позволяет работать с базой командой — видеть изменения коллег в реальном времени и совместно управлять схемой и таблицами. А так же введена система DVC (Database Version Control) - Подобие git прямо в браузере. Вы можете переключаться между ветками, делать коммиты, видеть diff sql и видеть на графе все изменения. Я считаю, это очень мощная функция. Она дает аналитикам работать параллельно над несколькими решениями и тестировать их.

И, конечно, в 2026 году невозможно обойтись без AI-функций. Structly сможет анализировать схему (PK, FK, циклы), выявлять архитектурные проблемы и поддерживать качество структуры базы данных. Также станет возможна генерация таблиц по описанию задачи прямо на схеме с последующим редактированием.

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

Что дальше?

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

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

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

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

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