Форум, который не умрёт: приглашаю программистов обсудить мой проект МИФ (Мой Идеальный Форум)
Вместо вступления — это проект статьи, которую я создал с помощью DeepSeek, скормив ему десятки моих писем и тем с портала (их я писал полностью сам), где я публиковался последние годы. Я лучше признаюсь в этом сразу, и, возможно, это объяснит и прояснит что-то тем, кому «показалось»). Я также сразу признаюсь в графоманстве и избыточном словесном поносе, который я и попытался победить с помощью кита. А потом не удержался и переписал половину… Почему проект статьи? Мне претит что-то выпрашивать, а статья получилась именно такой. Мне хотелось бы что-то предлагать, но предлагать надо что-то готовое и с понятным планом, а этого пока нет. И в итоге, следуя логике — лучше выложить что-то, чем ничего, выкладываю пока так. Но всё озвученное тут актуально и в силе.
Начнем с моей ностальгии.
Помните старые добрые форумы? Когда заходишь в раздел «Гараж» на какой-нибудь autolada или в ветку об электронике на radiokot, и там живут (всё ещё!) реальные люди, а не накрученные боты и SEO-помойка? Потом пришли соцсети, алгоритмы, бесконечные «вам может понравиться» — и всё превратилось в поток мусора, который кто-то модерирует непонятно по каким правилам. Всё вытесняется визуально-развлекательным шлаком, где механизмы выдачи основаны на приоритете реакций, эмоций, повестки владельца: лайки, дизы, число комментариев без учёта содержания. А форумы раньше — это разделы, подразделы, структурирование тем, прикреплённые правила, опросы, удобочитаемая и каталогизируемая информация, где можно легко разобраться, если хоть раз пользовался большим форумом типа 4pda, форумхаус или рутрекер.
Я — не программист. Я — взрослый дядя с работой, семьёй, опытом системного администрирования, техподдержки, ремонта электроники, разных хобби, крутящихся вокруг «гаражного изобретательства» (и немного баловства-программирования), и ностальгией по живому интернету. Последние несколько месяцев я приболел идеей, которую назвал МИФ (Мой Идеальный Форум). Суть: децентрализованный живой форум, который никто не может контролировать и уничтожить, где контент фильтруешь ты сам (или доверяешь фильтры тем, кому веришь), а база данных общая и бессмертная. Как у меня эта болезнь развивалась, можно отследить по моим статьям.
Я уже обсудил эту идею со многими, в том числе с автором проекта Atlas (Артуром — radarsu) — он строит гораздо более сложную протокольную экосистему с верификацией (без идентификации) людей, FairShares и т.д. Я долго с ним переписывался, и у меня ощущение, что мы говорим об одном и том же, но он слишком заумно и с погружением в нюансы и целесообразность, а я слишком бестолково, глобально и утопично. У него свой путь, в котором я, возможно, поучаствую или хотя бы потестирую его труды и поддержу словом. Но наш диалог убедил меня, что моя «наивная» идея имеет право на жизнь и может быть реализована поверх существующих протоколов (Atlas, Nostr, TOR, да хоть по HTTP) как приложение «клиент-узел» с общей распределённой реплицируемой базой данных на всех узлах.
Представьте распределённую по устройствам (смартфоны, компьютеры, сайты, серверы) участников базу данных, которая хранит оглавление форума (разделы, подразделы, темы) и посты (как минимальный объект, привязанный к этому оглавлению). Эта база не лежит на одном сервере. Она реплицируется на всех узлах, которые хотят её хранить. Но никто не обязан хранить всё — ты выбираешь только те разделы, которые тебе интересны.
Почему именно форум, а не чат или соцсеть?
На мой взгляд, форумы — пока единственный удобный способ общения для реального решения твоих проблем, конструктивного общения или творчества. Форум подразумевает размещение информации надолго, а значит — более ответственный подход к созданию первого поста, его оформлению и сопутствующим материалам. В отличие от мессенджеров, здесь можно отследить путь дискуссии: стартовое сообщение (тема), а далее чётко по времени последовательные комментарии. Ленты, чаты, поисковики, соцсети, порталы, подборки — убивают конструктив общения, отвлекают, подсовывают и навязывают вам то, что нужно другим, а не вам. Я могу возмущаться по этому поводу много и знаю, что многие меня поддерживают, и даже если нет, то в личных спорах-рассуждениях я почти всех переубедил))
Ключевые моменты на данном этапе:
- Максимально свободная лицензия и открытый исходный код без хозяина, без выгодоприобретателя и всего того, что может привязать будущее проекта к кому-то и ограничить его чьими-то желаниями. Это наиболее утопично во всей этой истории и вызывает больше всего ухмылок, но таким образом я просто хочу заявить свой альтруизм в этой истории и желание, чтобы оно было таким и дальше. Но я прекрасно осознаю реальное положение дел и, по факту, мне важнее само развитие проекта, а не доскональное соблюдение его принципов… Опять же — лучше попробовать так, чем не сделать ничего. Моё отношение к жизни можно увидеть в моих постах и статьях. Для простоты — это некая игра для меня, где я сам для себя придумал правила и надеюсь, что кому-то ещё будет интересно в это поиграть. Если нет — то изменим правила или придумаем новую игру))
- Единая для всех структура базы с базовым функционалом её использования, синхронизации, репликации и децентрализации существует самодостаточно и отдельно, и стандартизируется сообществом, а приложения-клиенты, которые её будут отображать, распространять и реплицировать, разрабатываются кем угодно и как угодно. К базе от сообщества прилагается минималистичный клиент для базового отображения форума, исповедующий максимальный аскетизм, простоту и лозунг «ничего лишнего».
- Оглавление (структура разделов форума) обязательно для всех — иначе не понять, что где искать. Оглавление, список узлов, сообществ и фильтров — единственное, что передаётся в обязательном порядке всем узлам. Изменения в структуре принимаются голосованием узлов, активно использующих данный раздел (рекомендующих его в фильтрах и хранящих его контент). Первыми идут базовые разделы и подразделы, выбранные сообществом, далее идут наиболее популярные разделы и подразделы, выводимые выше по факту использования, а дальше (по кнопке «посмотреть ещё») — бесконечное количество любых других разделов.
- Каждый клиент сам решает, какие фильтры применять. Фильтр — как VLAN в коммутаторах: ты просто говоришь «показывай мне посты из таких-то разделов, от таких-то авторов, с такими-то тегами». Можно подписаться на готовые фильтры от сообщества или конкретного человека или использовать фильтры по умолчанию, рекомендованные программой-клиентом. И ты, точно как коммутатор на основе VLAN, можешь не пропускать дальше то, что заблокировано твоими фильтрами.
- Узлами может быть что угодно — программы-клиенты на смартфонах и компьютерах пользователя, обычные сайты в интернете, onion-сайты, сайты из fediverse, офлайн-программы (синхронизация базы в которых хоть через флешку, хоть через голубей-дронов) и т.д., на что хватит фантазии и целесообразности. Для простоты можно начать с обычных сайтов в интернете и с приложения на смартфоне.
- Транспортом информации между клиентами или используемым протоколом может быть тоже что угодно — HTTP, TOR, Atlas Артура, Nostr, протоколы fediverse, торренты, p2p, радиомосты, WiFi, Bluetooth, лазеры, почтовые открытки… Это не важно. Важно — наличие единой, распространяемой и реплицируемой базы форума.
- Ты можешь модерировать (ставить плюсы/минусы) в тех темах, которые хочешь почистить. А можешь просто читать — и положиться на фильтры уважаемых тобой модераторов. Про фильтры и модерацию у меня есть очень много уже обсуждений, критики и рассуждений, и в результате для меня сформировалось уже достаточно убедительное видение, которое надо как-то понятно донести до остальных. Это требует времени. Пока лишь могу выложить эти обсуждения отдельно.
- Вознаграждение для активных фильтрующих — отложенное, на основе плюсов, которые наберёт одобренный ими контент. Но это опционально, база работает и без этого, и без крипты (как некоторые советуют), но не отрицает всего этого.
- База данных (или любая её часть) живёт, пока она существует хотя бы на одном узле. Хранение и возможность репликации поддерживаются сколько угодно долго, пока есть те, кому это нужно. Тебя может фильтровать большинство узлов или даже все узлы, препятствуя распространению того, что хранится у тебя, но пока оно у тебя хранится — первый же плюс от кого-то вернёт эту возможность.
- Конфиденциальность вшита по умолчанию. Вернее, всё будет работать и без какой-либо авторизации, но не отрицает её на уровне приложений-клиентов или прочих надстроек. Ты, запуская приложение на своем смартфоне без какой-либо авторизации, можешь загрузить что угодно из базы и попытаться выложить что угодно, как полный аноним. Для создания цепочки сообщений, привязанных к твоей текущей личности, можно создать ключ подписи, и ты сможешь им подписывать сообщения и иметь доступ к их изменениям (но все изменения также сохраняются в базе — если хоть кто-то решил это отслеживать и хранить). Сама база хранит только эти ключи, привязанные к созданным тобой объектам, чтобы ты, имея ответную часть, смог продолжить делать новые под этой «личностью» или редактировать их. А вот в клиентах может быть реализовано уже что угодно.
…
Что мы получаем на выходе:
- Главное — вот именно для этого и нужен был Интернет… имхо, конечно… далее всё опционально…
- Никто не заблокирует форум «за неудачную шутку» — нет единого владельца и хозяина со своим взглядом на мир и возможностью удалить тему.
- Никто не навязывает тебе алгоритмическую ленту и поиск.
- Ты можешь мигрировать с одного клиента на другой — твои данные и фильтры остаются с тобой, и ты хозяин своего контента (это, кстати, ключевая особенность протокола Атлас, и мне она тоже очень понравилась).
- Никакой коммерции, если ты не хочешь. Проект изначально и навсегда бесплатный и в пользу всего человечества без исключения, но не запрещающий коммерциализировать наработки в любом виде. Главное — у любого сохраняется доступ ко всей базе.
Причём здесь «замена авито, соцсетей и библиотек»?
В базовой версии проект должен дать бесплатный и общедоступный способ размещать объявления, делиться опытом, осуществлять бартер знаний, навыков, опыта, продукции и давать всё то, для чего на самом деле нужен Интернет, полезный человечеству. Это квинтэссенция и сублимация всех полезных форумов. Их апогей.
Я не шучу. Одна структурированная база данных может закрыть десятки сценариев. В это просто нужно вникнуть и осознать)) Или просто поверить.
Сравнение с проектом Atlas (Артура)
Артур — реально крутой программист с 15-летним стажем, он строит Atlas Protocol — сложную многоуровневую систему с верификацией личности, FairShares (внутренняя валюта за контент), Proof of Work, «убежищами» и «гидами». Я отношусь к его работе с огромным уважением. Atlas решает проблему спама и ботов на порядки жёстче моего МИФ.
Но наши подходы отличаются:
- Atlas предполагает, что сеть сама должна активно бороться со спамом через экономические механизмы и верификацию (без идентификации) людей. Это мощно, но сложно и требует доверия к верификаторам. Также вокруг этого у него строится целая экономическая модель, которая, по моему мнению, допускает множество спекуляций, а по его мнению, это разумная плата за рабочий механизм. И я ему верю.
- МИФ говорит: «Ребята, а давайте просто дадим каждому пользователю возможность выбрать себе модератора по вкусу?» Это ближе к Nostr (клиент решает всё), но с приятной фишкой — ты можешь делегировать фильтрацию другим. Не хочешь заморачиваться? Нажал «использовать фильтры сообщества "Программисты"» — и всё, мусора в их разделе больше нет, а только максимально структурированное, каталогизированное и полезное «о программировании». Всё как мы, зануды, любим))
- Артур разрабатывает протокол для разнообразных приложений. А мне нужен только форум. Вернее, даже его база, доступная всем и отображаемая всем так, как им хочется.
Что мне предложил Артур:
- Идея «Shelters» (узлы, которые гарантируют хранение данных) и «Guides» (узлы-индексаторы, которые подсказывают, где лежит нужная информация). В МИФ это будут сообщества с их фильтрами и рекомендациями узлов.
- Протоколы передачи — Atlas работает по HTTP и WebRTC, значит, его можно использовать как транспорт для МИФ. Или TOR, или Nostr-релеи — мост-конвертер никто не отменял.
Чем МИФ проще:
- Нет внутренней криптовалюты (FairShares). Нет сжигания токенов. Нет глобальной верификации личности. Нет Proof of Work на каждый пост. Но при этом это возможно.
- Вместо этого — честная фильтрация на стороне клиента и возможность подписываться на чужие фильтры.
Да, это «мягкая модерация», как называет её Артур. Да, если кто-то создаст армию ботов и начнёт писать тонны спама, он может засорить сеть. Но его сообщения увидят только те, кто не использует фильтры. А большинство обычных пользователей выберут надёжного модератора — и никогда не увидят этого мусора. Это не техническое решение, это социальное. И оно уже работает в некоторых глобальных проектах (подписка на сабреддиты, к примеру) и в старых форумах (доверие к администратору).
При чём здесь ZeroNet и Nostr?
ZeroNet — способ делать сайты, которые не хранятся на одном компьютере, а одновременно находятся у всех, кто их открывает. Если вы заходите на такой сайт, вы не просто смотрите его — вы помогаете его хранить и передавать дальше. Это идеальная транспортная основа для МИФ. Я, кстати, общался с одним из авторов форка ZeroNet, но пока не смог его особо заинтересовать из-за его общей внезапно возникшей апатии к подобным проектам. Но я много почерпнул из его статей и размышлений.
Nostr — открытый децентрализованный протокол для создания устойчивых к цензуре социальных сетей. В отличие от традиционных соцсетей, у Nostr нет единого владельца или центрального сервера. Архитектура переворачивает модель «клиент-сервер» с ног на голову: релеи — «глупые» серверы, клиенты — «умные» приложения. Клиент сам отвечает за модерацию. МИФ идёт дальше: ты можешь делегировать эту модерацию другим, а можешь вообще не париться и пользоваться настройками по умолчанию выбранного клиента. Nostr для меня пока наиболее удачный пример того, что всё это реализуемо… нужно лишь нафантазировать чуть дальше…
Скажу это ещё раз: я не программист. Я много раз ощущал реакцию «рука-лицо» от собеседника, когда пытался им рассказать, как я всё это вижу. Мне часто просто не хватает нужных слов и понятных примеров, а собеседнику — возможности сбросить сковывающие его рамки: «так никто не делает», «за это никто не заплатит», «это никому не нужно, так как не принесёт денег» и т.д. Особенно это было заметно на фриланс-площадках. Исполнители, откликнувшись на мои задачи, бесплатно тратили часы разговоров, пытаясь меня переубедить вышеупомянутыми лозунгами, вместо того чтобы просто попробовать дать мне то, что я прошу, пытаясь им это ещё и оплатить.
Мои знания в разработке — это Паскаль, Бейсик, ассемблер и C++ из института в 90-х. И несколько работающих хобби-проектов на php. Потом был опыт системного и сетевого администрирования, ремонта и обслуживания компьютеров и серверов, но не кодинга. Я «специалист техподдержки», эникей и починятор. Зачастую по жизни я решатель чужих проблем)) Поэтому я не буду писать код сам (разве что прототип на коленке в виде детских рисунков). Моя роль — идея, координация, тестирование, поиск ресурсов, скромное спонсорство и просто искренняя благодарность и дружба за ваше участие.
Что я уже сделал:
- Сформировал для себя понимание того, что я хочу и как я это вижу. Осталось объяснить это остальным.
- Обсудил с фрилансерами (оплачивал консультации, но на удивление многие консультировали бесплатно ещё на стадии переговоров по заказу) — большинство разговоров прошли впустую, но двое опытных ребят подтвердили, что идея технически жизнеспособна, если правильно организовать индексацию и структуру базы.
- Нашёл потенциального партнёра — Артура, автора Atlas. Он не против, если МИФ будет построен поверх Atlas или рядом с ним, и обещал мне, что одним из первых базовых приложений на его Атласе будет именно форум)) Ну и просто он очень лояльно ко мне отнёсся и потратил немало времени, обсуждая и критикуя мои идеи. Спасибо ему ещё раз.
- Я выделил небольшой ежемесячный бюджет на решение конкретных задач, когда команда добровольцев зайдёт в тупик или нужно будет срочно оплатить хостинг, библиотеку или работу фрилансера. Это не «зарплата», а «толчок идти дальше». Бюджет небольшой, но его и тратить пока некуда. Пока я оплачиваю консультации и пробую различные платные инструменты (в тот же ИИ вот полез, но сразу понял, как сильно я в этом отстал).
- Всё, что наработано, будет выкладываться публично — мысли, обсуждения, материалы, наработки — чтобы каждый мог подхватить и продолжить. Я уже сформировал базу статей, которую начал потихоньку везде транслировать.
Что мне нужно от вас:
- Критика и обсуждение. Покажите мне, где моя наивность превращается в нереализуемость. Поругайте. Верните на землю… Ну, так как всё, что многие так любят))
- Помощь в проработке техзаданий, создании планов разработки, определении навыков ключевых специалистов, кого надо нанять, привлечь, убедить или заманить в проект)).
- Энтузиасты, которые помогут найти тех, кто соорудит нам первый прототип базы данных.
- Энтузиасты, готовые написать прототип клиента (десктоп, мобильный, или хотя бы консольный).
- Тестеры, которые попробуют поднять свой узел и помучают его фильтрами, ботами, нагрузкой.
- Любой совет и помощь.
- Я всё это готов оплачивать в озвученных рамках, сам пока определяя важность и необходимость. Но если у нас сформируется хоть какая-то команда, то выбирать, на что тратить бюджет, будет она.
Зачем всё это человечеству?
Интернет умирает от дерьмификации (можно погуглить термин — enshittification) — когда платформа сначала привлекает пользователей, потом душит бизнес, потом кормит рекламой и алгоритмами. Мы забыли, что такое свободная дискуссия без модератора-владельца-выгодоприобретателя. Мы привыкли, что наш контент принадлежит корпорации, а не нам.
МИФ – это попытка вернуть форумы, но с нормальной технической основой:
- Бессмертная база данных, которую не убить удалением одного сервера.
- Полный контроль пользователя над своим контентом и над отображением чужого.
- Прозрачные правила — ты сам выбираешь, чьим правилам следовать.
- Никакой криптоспекуляции, только хобби, энтузиазм и желание сделать интернет снова живым.
- На пороге грядущих возможных катаклизмов — сохранить наработанное, дать возможность общаться, распределяя всё между всеми заинтересованными.
Почему это не про деньги:
Я не собираюсь зарабатывать на МИФ. Я готов вкладывать свои деньги в хостинг и консультации, но не жду отдачи. Найм исполнителей (программистов, разработчиков, тестеров) — за счёт пожертвований, стартапов и идейного участия. Повторю — для меня это хобби и игра. А я умею играть в долгую)) Как пример — 19 лет назад мы в одной, тогда популярной, браузерной стратегии достигли многого, управляя большими кланами (300–400 живых игроков), захватывая сервера, манипулируя их администрацией. Именно тогда я баловался на php и Delphi, создавая разные онлайн- и офлайн-инструменты (парочка которых, на удивление, работает и сейчас, и ими вполне даже пользуются). Более 10 лет я просто ради интереса, азарта и «спора» возрождал развалившийся и умирающий клан, выводя его в топы, и добился своего. В жизни были и более интересные примеры, но они не для общего внимания. Я не прошу мне верить, но предлагаю попробовать и хотя бы поиграть в это))
Если проект вырастет до чего-то большего — пусть им управляет сообщество. Я просто хочу, чтобы у моих детей был форум, где они смогут спросить про ремонт принтера, компьютера, микроволновки и получить ответ от живого человека, а не от нейросети или проплаченного поисковика. Чтобы они смогли предложить свои услуги или найти исполнителей. Чтобы Интернет снова стал Форумом — именно тем, что изначально обозначало это слово — «Греческие форумы — непревзойденные центры общественной жизни в Древней Греции. Эти места собирали под своими колоннами граждан всех возрастов и социальных слоев, становясь площадкой для дискуссий, политических собраний, торговли, культурных мероприятий и обмена знаниями».
Как присоединиться?
Я создаю тут тему и постараюсь быть в ней каждый вечер (если не буду в командировках или отпуске) и отвечу на все вопросы. Если кто-то захочет помочь — буду счастлив. Если кто-то просто скажет «идея бред, потому что…» — это тоже ценно, возможно, вы спасёте других (мне уже не помочь) от бесполезной траты времени.
По созданию чатов, групп, созвонов — вы можете это потом делать сколько угодно, но я пока предлагаю всё тот же формат форума. Иначе зачем я тут распинался?)) Могу отдельно доказать, что чаты и прочая подобная активность тут только навредят. Проверено многократно. А спешить мне некуда. Хотя понимаю, сколько людей из-за этого пройдут мимо.
Если кто-то готов создать нам форум отдельный, то будет замечательно. На его основе можно будет многое протестировать.
Но мне пока достаточно любого существующего форума. Я присутствую на многих площадках и ресурсах. Найти меня можно по нику howtpi в Mastodon, matrix, jabber, pikabu, runion и т.д.
Пожалуйста, не стесняйтесь указывать на мои технические ошибки. Я не обижусь. Я очень необидчивый. В написанном много фантазии и предположений, но без мозгового штурма и обсуждения даже самая бредовая идея не станет рабочей.
Потенциальным спонсорам времени, знаний, умений:
Моя скромная финансовая поддержка. Если проект потребует покупки домена, сервера, оплаты API или выполнения конкретной задачи на фрилансе — я это профинансирую. Но основная работа — добровольная, на энтузиазме.
Спасибо, что дочитали. Жду ваших комментариев.
P.S. Отдельное спасибо Артуру (Atlas Protocol) — его смелость строить децентрализованный интернет вдохновила меня не бросать МИФ. Идём параллельными путями, но в одном направлении.
