Возвращаюсь к идее личного архива

Сегодня понял, чем буду заниматься после того, как доделаю релиз IntB 3.05. Кстати, это случится уже скоро: я нашёл утилиту для конвертации базы из MySQL в Postgres и вчера начал тестирование под ним. Заодно обнаружил, что для некоторых столбцов не заданы значения по умолчанию, что могло приводить к ошибкам, если в MySQL включен strict mode. Возможно, именно с этим была связана ошибка, о которой месяц назад писал один пользователь в личке, но тогда я так и не мог понять причину, а он — предоставить более-менее внятную информацию об ошибке, кроме того, что сайт выдаёт 503.
А делать я буду движок личного архива — реализовывать ту самую идею, о которой писал два года назад. По-моему, такого ещё никто толком не делал, в отличие от тех же форумных и блоговых движков, которых более чем достаточно. А ещё это всё же не такой масштабный проект, как движок сообщества.
Сегодня наконец-то в голове сложилась картина, каким он должен быть, и как хранить информацию так, чтобы с одной стороны была поддержка хеш-тегов и полнотекстового поиска, а с другой — формат хранения был бы максимально простым и антихрупким. Нужно просто следовать рекомендациям из IndieWeb: хранить основные данные в текстовых файлах в формате YAML+Markdown (как это делается в Jekyll), а метаданные (хештеги, потоки, сведения об источниках) — в базе SQLite с возможностью её пересборки на основе данных в текстовых файлах.
И тогда проект, по сути будет состоять из трёх независимых частей. Первая — принимать публикации по протоколу MicroPub и сохранять их в эти файлы и базу, а также обеспечивать аутентификацию через IndieAuth, генерацию токенов и базовые функции управления сайтом. Вторая — отвечает за непосредственно вывод страниц сайта-архива. Причём главная страница и первые страницы каждого из потоков информации и календарные страницы будут в виде статики, а прочая информация (скажем, вывод хештегов или результатов поиска) — подгружаться через AJAX. И третья будет отвечать за сбор данных с внешних источников и преобразование их в формат MicroPub с последующим обращением к первой. Впрочем, на начальном этапе для этих целей можно вообще задействовать внешние сервисы типа IFTTT.
Ещё пришла в голову мысль сделать аутентификацию по ключу вместо пароля. Т.е. если на сервере нет файла-ключа, предлагается сгенерировать пару приватный-публичный, где публичный ключ пойдёт на сервер, а приватный сохранится в LocalStorage броузера (с возможностью импорта/экспорта в файл, конечно же). А если файл уже есть, то он будет использоваться для проверки того, что запрос подписан правильным приватным ключом. Правда, тогда в интерфейсе управления сайтом все запросы придётся делать через AJAX, чтобы эти самые подписи генерировать.