# PiterJS — Complete Community & Technical Specification ## Overview PiterJS is Saint Petersburg's largest open-source JavaScript and Frontend engineering community. Established in St. Petersburg, PiterJS hosts monthly free developer meetups featuring hardcore technical talks, live coding demos, architecture breakdowns, and high-density engineering networking. ## Meetup Format & Structure - **Frequency**: Monthly (typically Thursday / Friday evening) - **Duration**: 3 hours (15:30 - 18:30 UTC) - **Talk Length**: 30-40 minutes + 15 minutes Q&A per speaker - **Attendance**: Free entry upon registration (300 slots per meetup) - **Streaming & Media**: Live streaming on VK Video / YouTube, with post-meetup slide releases and video archive. ## Call for Papers (CFP) Guidelines PiterJS welcomes speakers with original engineering experience: - Hardcore performance optimization (WebGPU, WASM, V8 internals) - Frontend architecture at scale (Micro-frontends, Monorepos, Module Federation) - Modern tooling built in Rust/Go (Rspack, Turbopack, Biome, Rolldown) - AI integration in Web applications (Local LLMs, WebNN, Agentic UI) - Real-world case studies from production systems ## Next Meetup // PiterJS #94 - **Title**: PiterJS #94 - **Date**: 30 СЕНТЯБРЯ 2026 // 18:30 - **Summary**: PiterJS #94: харнесы для AI-агентов, выбор стейт-менеджера и игра «Слабое звено». - **State Management // 19:10** — "Когда простой API становится ловушкой при выборе стейт-менеджера" — Арсений Филатов, Фронтенд-разработчик государственных IT-сервисов Простой API часто выглядит главным аргументом за стейт-менеджер: меньше кода, быстрее старт, «всем понятно». Но при длинных цепочках — событие, мутация, эффект, гонки запросов — простота API не гарантирует простоту понимания цепочки изменений. В докладе разберём прозрачность и детерминизм логических цепочек и покажем, как перевести эти свойства в измеряемые критерии. На пилоте с Effector, Redux Toolkit, MobX и Zustand посмотрим, какая факторная структура получается и где «удобный API» расходится с управляемостью поведения. - **AI Tooling // 19:50** — "Harness — база" — Дмитрий Земляченко, Старший разработчик, Selectel Мы привыкли думать, что AI-агент — это просто LLM, которой мы дали промпт. Но между вашим запросом и изменённым кодом находится целая система: context, tools, skills, MCP и workflow. На примере современных coding agents разберём, что на самом деле происходит внутри harness, как формируется контекст, почему модель можно менять прямо посреди сессии и зачем агенту вообще нужны tools и skills. А заодно посмотрим на пару практических инструментов, которые помогают давать LLM больше полезного контекста — и на то, куда эта идея приводит. - **Игра // 20:45** — "Слабое звено" — Ярослав Силкин, Синьор мемолог, PiterJS Слабое звено :) ## Venue & Directions - **Location**: Юмани - **Address**: Санкт-Петербург, Пискарёвский просп., 2, корп. 2, БЦ Бенуа - **Metro**: — - **Directions**: — ## Archive - **PiterJS #94** (30 сентября 2026) — [Когда простой API становится ловушкой при выборе стейт-менеджера](https://piterjs.org/#!meetup=g79cp0_9bma7r) - **PiterJS #93** (27 августа 2026) — [Factory store: масштабирование без компромиссов](https://piterjs.org/#!meetup=7v9148_5ouuec) - **PiterJS #92** (23 июля 2026) — [Оптимизация покадровой перемотки видео в Сhromium](https://piterjs.org/#!meetup=l4rjgo_15wo8u) - **PiterJS #91** (18 июня 2026) — [Объекты в JS не бесплатные](https://piterjs.org/#!meetup=w0he5t_c6zte6) - **PiterJS #90** (21 мая 2026) — [Использование Web Workers в современных React-приложениях](https://piterjs.org/#!meetup=dug7ut_g1ks1b) - **PiterJS #89** (23 апреля 2026) — [Serverless: от теории к практике с нуля](https://piterjs.org/#!meetup=1gbs91_w8h9lp) - **PiterUX⁴** (16 апреля 2026) — [Как сделать проект в портфолио, который привлечёт клиентов и запомнится студиям](https://piterjs.org/#!meetup=chf4lr_ow1ixs) - **PiterJS #88** (19 марта 2026) — [Доказательства с нулевым разглашением](https://piterjs.org/#!meetup=x76iw2_37zxt9) - **PiterJS #87** (26 февраля 2026) — [Нейросети не генерят техдолг, это вы их просите!](https://piterjs.org/#!meetup=ko6ga_rvibpr) - **PiterJS #86** (29 января 2026) — [Что может фронтендер рассказать дизайнеру](https://piterjs.org/#!meetup=16t4un_a87dnm) - **PiterJS #85** (25 декабря 2025) — [CSS: Итоги 2025 года](https://piterjs.org/#!meetup=kts3br_ofrm4j) - **PiterUX:3** (11 декабря 2025) — [Создание образовательных дизайн-продуктов](https://piterjs.org/#!meetup=v8gjsg_jet70w) - **PiterJS #84** (27 ноября 2025) — [Реактивный CSS близко](https://piterjs.org/#!meetup=tx5uqh_fox5zo) - **PiterJS #83** (30 октября 2025) — [Порождающие паттерны](https://piterjs.org/#!meetup=87i10y_jhwxcg) - **Giper Meetup** (10 октября 2025) — [из Санкт-Петербурга](https://piterjs.org/#!meetup=gv3qok_or91m8) - **PiterJS #82** (18 сентября 2025) — [Функциональное программирование в Angular](https://piterjs.org/#!meetup=kn5idq_z2952b) - **PiterJS #81** (21 августа 2025) — [CouchDB - JS в базе данных](https://piterjs.org/#!meetup=r8uyni_blriag) - **PiterJS #80** (31 июля 2025) — [Тёмная сторона вайб-кодинга](https://piterjs.org/#!meetup=x26sfz_205w1s) - **PiterJS #79** (19 июня 2025) — [Сделать конфетку из старого монолита](https://piterjs.org/#!meetup=k0f2qu_3fxl13) - **PiterJS #78** (27 мая 2025) — [Склеиваем экраны: как View Transitions API улучшает пользовательский опыт](https://piterjs.org/#!meetup=tgc5es_yh9ozv) - **PiterJS #77** (24 апреля 2025) — [Эволюция SSR в React приложениях](https://piterjs.org/#!meetup=l3oywg_ivox54) - **PiterJS #76** (20 марта 2025) — [Использование технологий ИИ в клиентских веб приложениях](https://piterjs.org/#!meetup=yff077_ykkw2s) - **PiterJS #75** (20 февраля 2025) — [Проектирование Асинхронной структуры данных с максимальной эффективностью на примере WebSocket](https://piterjs.org/#!meetup=4k926r_8itew8) - **PiterJS #74** (23 января 2025) — [Gsap](https://piterjs.org/#!meetup=1ybck7_adz77t) - **PiterJS #73** (18 декабря 2024) — [Как написать local-first приложение. А главное, зачем?](https://piterjs.org/#!meetup=5ovhr9_4fkeq1) - **PiterJS #72** (21 ноября 2024) — [Neovim - новая эпоха консольных редакторов](https://piterjs.org/#!meetup=g0vci5_4w0t22) - **PiterJS #71** (24 октября 2024) — [Cesium JS или когда надоели формы](https://piterjs.org/#!meetup=rapn4q_sk39e3) - **PiterJS #70** (30 сентября 2024) — [Тестируем свои нервы: опыт перехода с Cypress на Playwright](https://piterjs.org/#!meetup=slbgoe_558ggo) - **PiterJS #69** (29 августа 2024) — [Поэтапная разработка RAG системы с GigaChat](https://piterjs.org/#!meetup=53ljtr_dyvp9z) - **PiterJS #68** (25 июля 2024) — [🎳 Не SOLID'ное программирование](https://piterjs.org/#!meetup=jin9vm_38zeoh) - **PiterJS #67** (18 июня 2024) — [Atomic CSS Deep Dive](https://piterjs.org/#!meetup=7or9rv_itwf3f) - **PiterJS #66** (23 мая 2024) — [Тесты - это просто](https://piterjs.org/#!meetup=j2owhj_hfb4ky) - **PiterJS #65** (25 апреля 2024) — [Тестирование, как точка личного роста](https://piterjs.org/#!meetup=jq4eyy_94ntbq) - **PiterJS #64** (28 марта 2024) — [Опыты на людях в IT](https://piterjs.org/#!meetup=voijhz_tuml1b) - **PiterJS #63** (21 февраля 2024) — [Программирование без стресса: ключевые принципы](https://piterjs.org/#!meetup=m4etbx_g8azkn) - **PiterJS #62** (25 января 2024) — [Серверные компоненты в React: Как мы пишем фронт на бэке и зачем это нужно](https://piterjs.org/#!meetup=e1z8jn_rf57fw) - **PiterJS #61** (14 декабря 2023) — [Роль сервера в SSR](https://piterjs.org/#!meetup=996q6o_z9d4j6) - **PiterJS #60** (23 ноября 2023) — [10 000+ элементов: DOM vs Canvas](https://piterjs.org/#!meetup=t8b5g0_y8tg5y) - **PiterJS #59** (19 октября 2023) — [Как поставить разработку фронтенда на поток](https://piterjs.org/#!meetup=dpo0g1_mtil11) - **PiterJS #58** (21 сентября 2023) — [ChatGPT для разработчиков: Как использовать ChatGPT правильно](https://piterjs.org/#!meetup=3k9dw6_ec5tkb) - **PiterJS #57** (17 августа 2023) — [PiterJS: как это было и как будет](https://piterjs.org/#!meetup=9b5du3_bzy2u5) - **PiterJS #48** (11 июня 2020) — [Юридические риски для программиста](https://piterjs.org/#!meetup=pvp3e5_fmlf1s) - **PiterJS #47** (21 мая 2020) — [Cordova + React = 🤎](https://piterjs.org/#!meetup=1r9gct_s24bl0) - **PiterJS #46** (23 апреля 2020) — [Разработка сложных компонентов: деливерим быстро, поддерживаем легко](https://piterjs.org/#!meetup=jc41ei_1trp1t) - **PiterJS #45** (20 февраля 2020) — [Storybook или как фронтендеры изобретали чистые функции с TDD](https://piterjs.org/#!meetup=47ccoq_s9gx89) - **PiterJS #44** (30 января 2020) — [Express API — Essentials with TypeScript](https://piterjs.org/#!meetup=e1hn5n_9ndanp) - **PiterJS #43** (17 декабря 2019) — [Программирование — это лава!](https://piterjs.org/#!meetup=w69m86_yon6yz) - **PiterJS #42** (14 ноября 2019) — [Логирование на JS](https://piterjs.org/#!meetup=3zgk3b_wvb8ow) - **PiterJS #41** (10 октября 2019) — [React + SSR там, где их уже не ждали](https://piterjs.org/#!meetup=w8sl9n_5602ag) - **PiterJS #40** (16 августа 2019) — [Презентация приложения для проведения презентаций](https://piterjs.org/#!meetup=34dfz_enbg0c) ## Design System Tokens & Style Guide The PiterJS web portal is styled using the **ON Energy Design System**: - **Colors**: - Caution Yellow: `#fff313` - Midnight Steel: `#000000` - Industrial White: `#eeeeee` - Carbon: `#333333` - Gunmetal: `#4b4b4b` - Aluminum: `#afafaf` - **Typography**: Inter / Space Grotesk (weight 300 for headlines with -0.04em letter-spacing, weight 400 for UI/body), JetBrains Mono for code and badges. - **Rhythm**: Full-bleed section layout (Dark Hero -> Yellow Manifesto -> White Schedule -> Dark Archive -> Carbon Community).