Я начинаю эту тему, чтобы задокументировать свой путь в попытке превратить Discourse в более визуальную, бесконечно прокручиваемую платформу — нечто, ближе к опыту просмотра, который предлагают Reddit, X и Facebook.
Я буду использовать эту тему, чтобы делиться тем, что я пробую, что работает, что нет, какие компоненты я использую и с какими проблемами сталкиваюсь. Надеюсь, это также поможет всем, кто заинтересован в использовании Discourse для чего-то, выходящего за рамки традиционной структуры форума.
Точкой отсчета для этого проекта стало правило 90–9–1.
Оно гласит, что на большинстве социальных сетей, блогов и т. д.:
-
90% пользователей в основном просматривают и потребляют контент.
-
9% изредка реагируют, ставят лайки, делятся или комментируют.
-
1% активно создают большую часть контента.
Конечно, точные проценты будут варьироваться от сообщества к сообществу, но принцип остается актуальным: большинство посетителей — это читатели, а не авторы.
Discourse отлично справляется с обслуживанием тех 9% и 1%. Он построен вокруг обсуждений, ответов и активного участия. Однако я хочу сделать его таким же привлекательным и для гораздо более крупной группы людей, которые просто хотят открыть сайт и просматривать интересный свежий контент.
Что я пытаюсь построить
Я хочу использовать Discourse для создания более визуальной, непрерывной (в стиле doom scrolling) ленты, похожей на ленты в Reddit, X или Facebook.
В идеале этот опыт должен выглядеть примерно так:
-
Открыть главную страницу и сразу увидеть ленту с релевантными темами.
-
Непрерывно прокручивать от одной темы к другой.
-
Просматривать содержимое темы, не открывая отдельную страницу.
-
Видеть изображения, видео и отрывки текста прямо в ленте.
-
Ставить лайки, добавлять в закладки или отвечать, когда что-то привлекает внимание.
-
Автоматически убирать ранее просмотренный контент из поля зрения.
-
Возвращаться позже и видеть свежие или непрочитанные темы, а не одну и ту же главную страницу каждый раз.
-
Постепенно персонализировать ленту с использованием категорий, тегов и тем, с которыми пользователь взаимодействует.
Некоторые могут назвать это «doom scrolling», но это также просто то, как огромное количество людей теперь потребляют онлайн-контент. Они могут читать десятки сообщений, никогда не комментируя, но при этом остаются настоящими пользователями, генерирующими просмотры, делящимися ссылками и потенциально возвращающимися каждый день.
Зачем строить это на базе Discourse?
Discourse уже предоставляет большинство сложных компонентов:
-
Пользовательские аккаунты и профили
-
Категории и теги
-
Лайки, закладки и уведомления
-
Уровни доверия и модерация
-
Создание тем и ответы
-
Отслеживание прочитанного и непрочитанного
-
Рекомендуемые и связанные темы
-
Зрелая система плагинов и компонентов темы
Кажется, чего не хватает, так это ленты, спроектированной в первую очередь для открытия нового и пассивного потребления. (конечно, Discourse не был создан для этого)
На каком я сейчас этапе
- Я начал с отличной темы Redditish от @awesomerobot, которую мне пришлось форкнуть, чтобы я мог редактировать различные аспекты, такие как удаление пользовательского бокового меню. Я также сильно отредактировал CSS, чтобы оформить его так, как мы хотели.
- Включение Nested Views было необходимо, так как это покрывает стиль, необходимый для такого типа сайта.
- Я создал и добавил прокручиваемое меню в стиле YouTube, которое показывает все категории и пользовательские ссылки. Я использовал Custom Top Navigation Links, чтобы настроить и добавить ссылки.
- Модальное окно предпросмотра темы было необходимо, и я начал проектировать его, но легенда @Don создала более лучшую версию, которую можно найти здесь
- Статический кэшированный правый сайдбар везде был необходим, поэтому я начал с блоков правого сайдбара, а затем создал компонент темы, чтобы показывать его на страницах тем и т. д.
- Используя кастомные ссылки в шапке (иконки), я добавил кнопку «Создать пост» в шапку, чтобы сделать интерфейс чище.
- Изображения в постах выровнены по центру с размытым фоном, чтобы выглядеть аккуратнее (похоже на Reddit)
- Установка отрывков тем на 150 символов и их отображение между заголовком и изображением на карточках тем было необходимо (похоже на Facebook и X)
Следующими шагами станет выделенная лента, которая сможет:
-
Начинаться с недавнего контента за определенный период, например за предыдущие 14 дней.
-
Приоритизировать темы из категорий и тегов, за которыми следит пользователь.
-
Смешивать популярные или трендовые темы для открытия нового.
-
Фиксировать, когда тема действительно была просмотрена или пролистана.
-
Снижать приоритет просмотренных тем, не скрывая их навсегда.
-
Позволять прямые реакции и ответы из ленты.
Это не заменит традиционные списки тем или обсуждения. Это будет дополнительный способ открывать и потреблять тот же самый контент Discourse.
Следите за путешествием
Я буду продолжать обновлять эту тему по мере развития проекта, включая компоненты, которые я тестирую, изменения, которые я вношу, и препятствия, с которыми сталкиваюсь.
Мне также было бы интересно услышать от всех, кто пытался что-то подобное, особенно по вопросам:
-
Могут ли существующие данные об отслеживании прочтения поддерживать это.
-
Как лента могла бы работать для анонимных и новых зарегистрированных пользователей.
-
Насколько глубокой может быть персонализация без внедрения сложного алгоритма рекомендаций.
-
Создают ли непрерывные предпросмотры тем значительные проблемы с производительностью.
Цель состоит в том, чтобы признать, что «немолчаливые» 90% являются важной частью сообщества, и дать им опыт, спроектированный в соответствии с тем, как они на самом деле используют интернет.
Тестовый сайт, который я буду использовать для этого проекта: