Личный проект удобно начинать.

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

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

За время работы над AllBlog я собрал несколько выводов, которые теперь стараюсь держать в голове.

1. Рабочая функция важнее идеальной архитектуры

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

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

Это не призыв писать всё наспех. Но личный проект легко заморозить бесконечной подготовкой.

Сначала рабочий сценарий. Затем улучшение структуры.

2. Мелкие проблемы заметнее крупных идей

Разработчик может гордиться сложным поиском или обработкой файлов, а пользователь заметит:

  • кривой отступ;
  • кнопку без состояния наведения;
  • поле другой высоты;
  • неработающую пагинацию;
  • белый блок в тёмной теме.

Интерфейс оценивается целиком. Одна неприятная мелочь способна испортить впечатление от большой функции.

3. Каждый новый раздел увеличивает количество связей

Добавить галерею не означает создать только страницу галереи.

Нужно подумать:

  • как она появится в меню;
  • найдётся ли через поиск;
  • как выглядит пустое состояние;
  • что будет на телефоне;
  • какие права нужны в админке;
  • как обрабатываются ошибки;
  • как удаляются файлы.

Функция почти никогда не существует сама по себе.

4. Админка заслуживает нормального интерфейса

Есть соблазн сделать панель управления по принципу «главное, что работает».

Но именно владелец сайта пользуется ею чаще всего.

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

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

5. Ошибки должны быть понятными

Сообщение вроде:

Undefined array key

полезно разработчику, но ничего не говорит пользователю.

Хорошая система разделяет два уровня:

  • подробности попадают в журнал;
  • интерфейс показывает понятную причину и возможное действие.

Это относится не только к публичным страницам, но и к инструментам админки.

6. Контент нельзя откладывать до завершения разработки

Личный сайт невозможно полностью закончить.

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

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

Разумнее чередовать:

небольшое улучшение → публикация
новая функция → публикация
исправление → публикация

Так проект остаётся живым не только в коде, но и для читателя.

7. Собственные инструменты дают лучшие темы для статей

Необязательно каждый раз искать внешнюю новость.

Почти любая сделанная функция может превратиться в материал:

  • зачем понадобилась;
  • как устроена;
  • какие ошибки возникли;
  • почему выбран конкретный подход;
  • что изменилось после запуска.

Так статья получается основанной на реальном опыте, а не на пересказе документации.

8. Список улучшений никогда не закончится

Это нормально.

Главное — отличать три типа задач:

  1. критические ошибки;
  2. улучшения, которые заметно помогают пользователю;
  3. идеи, которые просто хочется попробовать.

Если делать их в случайном порядке, можно неделю полировать декоративный эффект и не исправить сломанную кнопку.

Небольшой список приоритетов возвращает проекту направление.

Что изменилось в моём подходе

Раньше новая идея почти автоматически означала новую функцию.

Теперь я чаще задаю вопросы:

  • решает ли она реальную задачу;
  • вписывается ли в существующий интерфейс;
  • смогу ли я её поддерживать;
  • нужна ли она сейчас;
  • можно ли сначала сделать более простой вариант.

Отказ от лишней функции иногда улучшает проект сильнее, чем ещё один пункт меню.

Почему я продолжаю

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

Здесь нет финальной версии.

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

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