• Меня зовут Арсений, мне 15 лет. У меня 99 пользователей, более 100 SQL‑миграций и приложение на Android и Windows. И, что не менее важно, — команда единомышленников и поддержка тех, кто верил в проект с самого начала.агора.com (https://агора.com)Почему я вообще за это взялсяВсё началось с простого любопытства: а смогу ли я создать что‑то подобное с нуля? Социальная сеть казалась одной из самых сложных задач для программиста: realtime‑функционал, авторизация, модерация, шифрование, мобильное приложение… Я решил проверить себя — и взялся за дело. наш учитель по информатике в школе Огромную роль сыграла поддержка друзей и знакомых: многие из них сразу заинтересовались идеей, стали первыми тестерами и давали обратную связь на каждом этапе. Отдельный вклад внесли те, кто помогал со стилями и UX — их взгляд сделал интерфейс гораздо приятнее и удобнее. А ещё у меня есть наставник в программировании — именно он помог сделать первые шаги в разработке. Благодаря его поддержке и советам мы смогли реализовать первый пиксель‑батл — и этим опередили второй ивент в соцсети ИТД блогера Nowkie. Этот опыт дал мощный толчок и вдохновил на создание собственной платформы. тот самый пиксель батлСтек технологийЯ не выбирал архитектуру на основе каких‑то глубоких теоретических выкладок — взял то, что смог понять и что не требовало вложений на старте:React 18 + TypeScript + Vite — фронтенд. Использовал CSS Modules без UI‑библиотек, всё стилизовал вручную (огромная благодарность тем, кто помог с визуальной частью!).Supabase self‑hosted (PostgreSQL + realtime + auth + storage) — поднял на VDS за 999 рублей в месяц.Cloudflare Workers — для фоновых задач: импорта Telegram‑каналов, push‑уведомлений и платёжного webhook.Capacitor — чтобы собрать Android‑приложение из того же React‑кода.Electron — для десктопного приложения под Windows.При этом я обошёлся без Next.js и бэкенда на Node.js: вся бизнес‑логика реализована в PostgreSQL через RPC‑функции и RLS‑политики.Что получилось в итоге Когда начинаешь делать соцсеть, кажется, что всё просто: посты, лайки, профили — что тут сложного? Но спустя полгода разработки список функций разрастается так, что ты словно проваливаешься в кроличью нору. Сейчас в проекте есть:Контент:посты с текстом, фото, видео и голосовыми сообщениями;Stories;комментарии с вложенностью;репосты с цитатой;хэштеги;треды.Общение:личные сообщения с E2E‑шифрованием (ECDH P‑256 + AES‑GCM);групповые чаты с голосовыми сообщениями, файлами и реакциями;Telegram‑каналы с импортом.Безопасность и модерация:трёхступенчатая очередь модерации;автомодерация NSFW‑контента через TensorFlow/NSFWJS прямо в браузере;фильтр мата;система предупреждений;бан на уровне RLS (не фронтенда);аудит‑лог всех действий;блокировки пользователей.Монетизация:подписка «Агора+» через YooKassa;совместные подписки (split‑cost);реферальная система: 15 приглашённых друзей дают месяц премиума;трекер личных подписок (Netflix, Spotify и т. д.).Соответствие 152‑ФЗ:EXIF‑стриппинг при загрузке любого фото;данные хранятся только на российской инфраструктуре;приватность профиля;E2E‑шифрование в личных сообщениях: сервер не видит содержимое.Приложения:Android (Capacitor) — с биометрией, нативными хаптиками и камерой;Windows (Electron) — с трей‑иконкой, splash‑screen и автообновлением.Про 100+ SQL‑миграций: уроки на ошибках Это не хвастовство, а скорее признание: каждая миграция — либо новая функция, либо исправление того, что сломалось после предыдущей. Вот несколько примеров, которые научили меня думать наперёд:Миграция 33 (security_fixes). Обнаружил, что RLS на таблице сообщений позволяет прочитать чужую переписку, если знаешь ID разговора. Фикс занял два часа, но чувство тревоги осталось.Миграция 40 (ban_rls_server_side). Раньше проверка бана выполнялась на фронтенде. Это означало, что любой мог открыть DevTools, удалить проверку и писать заблокированным пользователям. После исправления PostgreSQL отклоняет запросы забаненного пользователя на уровне БД — до React дело вообще не доходит.Миграция 95 (feed_rpc). Лента загружалась через 5 последовательных запросов, что на медленном соединении давало задержку 3–4 секунды. Переписал в одну RPC‑функцию —…

  • Большинство владельцев кошек знакомы с забавным поведением их питомцев, которые часто трясут головой после еды, питья или почесывания щек. Известно, что собаки и другие млекопитающие демонстрируют похожее поведение.Так почему же наши пушистые друзья так трясут головами, и означает ли это,…

  • Так уж получилось, что в России уже почти десять лет из настольных игр, которые направлены на обучение младших школьников (и чуть постарше) основам алгоритмики, программирования и робототехники доступны или зарубежные игры типа «Ricochet Robots» или «Robot Turtles». Постарше (с 12-14…

  • 30 часов хронологии того, как агент Cursor, Railway API и индустрия, которая продаёт безопасность быстрее, чем её реализует, положили малый бизнес, обслуживающий прокатные компании по всей стране.Меня зовут Джер Крейн, я основатель PocketOS. Мы делаем ПО для прокатного бизнеса —…

  • 2N2222 и 2N3904. Изображения (модифицированные) использованы с разрешения Amplified PartsМодели 2N2222 и 2N3904, зарегистрированные компанией Motorola в 1962 году и в середине 1960-х, выдержали конкуренцию с тысячами аналогов благодаря инновационным технологическим процессам, недорогим корпусам и системе нумерации JEDEC, которая превратила…

  • Microsoft и OpenAI снова изменили условия одного из главных партнерств в индустрии ИИ. Компании объявили, что OpenAI теперь сможет предлагать свои продукты клиентам через любых облачных провайдеров. Microsoft при этом остается ее основным облачным партнером, а продукты OpenAI по-прежнему должны…

  • ВведениеВ последней моей статье: «Запоминаем иностранные слова по видео-словарю, упорядоченного по грамматическим категориям и переводам» ( https://habr.com/ru/articles/1021912/ )  была создана «видео-книга» ( https://my.mail.ru/mail/emmerald/video/_myvideo/25.html ), в которой были озвучены 500 французско-русских глаголов. При ее просмотре были выявлены следующие нюансы.Во-первых, пауза между…

  • Frontend Status: Привет! Свежий дайджест фронтенда и AIПривет!Это четырнадцатый выпуск Frontend Status — дайджеста по фронтенд-разработке.В этом выпуске:📺 Vue на развилке роста: разбираем State of Vue 2026, чтобы понять, куда вложить время сегодня и не чинить стек завтра.🤖 AI без…

  • Дисклеймер: Предыдущая версия статьи была скрыта модерацией за «инициирование политической дискуссии». Я убрал все упоминания конкретных государств и конфликтов, чтобы соответствовать правилам Хабра. Статья про когнитивный механизм, а не про политику. Все примеры абстрактны и нужны для изучения реакции.Я не психолог,…

  • TL;DRЗа один месяц я в одиночку написал и развернул production-систему регулярного анализа цен и продуктов на конкурентном рынке. Сейчас в системе ~25 источников разной природы, в плане до конца года — ~60. На текущей выборке ~6000 единиц данных о продуктах,…