😎 The Best Open Source Starter Template 😎 GitHub Pages Simple Forum 🔫
- Copy
.env.exampleto.envand configure your environment variables - Run
npm install - Run
npm run dev
When you run the application, you'll see helpful information in the browser console:
📦 Bundle Size: 245.67 KB (12 JS files, 3 CSS files)
🌟 GitHub Forum Platform v0.0.1
Template created by: Semyon Fedoseev
GitHub: https://github.com/fedoseevsm
Contact: Feel free to reach out for questions or contributions!
💡 This platform is built with React, TypeScript, and Tailwind CSS
Features: GitHub API integration, Markdown support, Mobile responsive
Security: Service Worker token protection, CSP headers
For more details about bundle analysis and performance monitoring, see BUNDLE_INFO.md
This application implements several security measures to protect sensitive data:
- ✅ GitHub access tokens (Personal Access or fine-grained tokens) are stored in environment variables only
- ✅ Service Worker Protection: Tokens are stored in IndexedDB and injected by service worker
- ✅ Network Tab Security: Authorization headers are not visible in DevTools Network tab
- ✅ Tokens are never logged in console output or error messages
- ✅ All error messages are sanitized to prevent token leakage
- ✅ Content Security Policy (CSP) headers prevent unauthorized script execution
- ✅ Server-side security headers (XSS protection, frame options, etc.)
- ✅ Secure Token Storage: GitHub tokens stored in IndexedDB within service worker
- ✅ Request Interception: Service worker intercepts GitHub API calls and adds auth headers
- ✅ Token Isolation: Main app never directly accesses the token after initial setup
- ✅ Automatic Cleanup: Tokens cleared from storage on logout
- ✅ Automatic Detection: Rate limit errors are automatically detected from GitHub API responses
- ✅ User-Friendly Modal: Shows helpful modal with VPN/IP change instructions
- ✅ Multilingual Support: Messages in English and Russian
- ✅ Non-Blocking: Users can continue using the app after acknowledging the modal
- ✅ Secure Logging: Rate limit events are logged without exposing sensitive data
For detailed information about rate limit handling, see RATE_LIMIT_HANDLING.md
Create a .env file based on .env.example:
cp .env.example .envRequired environment variables:
VITE_API_KEY: GitHub Personal Access Token or fine-grained token with repository access (repoorcontentspermissions)
Security best practices:
- Never commit
.envfiles to version control - Rotate tokens regularly
- Use minimum required permissions
- Monitor token usage in GitHub settings
- ✅ Sensitive data is automatically redacted from error logs
- ✅ Safe logging functions prevent accidental token exposure
- ✅ Network errors are sanitized before display to users
Приложение полностью поддерживает создание постов и топиков на русском языке с автоматической транслитерацией:
- ✅ Создание топиков на русском языке
- ✅ Создание постов с русским текстом
- ✅ Автоматическая транслитерация названий (русский → латиница)
- ✅ Сохранение оригинального текста и транслитерированной версии
Пример:
Заголовок: "Как использовать фреймворк?"
Транслитерация: "kak-ispolzovat-freymuork"
Приложение оптимизировано для мобильных устройств:
- ✅ Предотвращение нежелательного зума при вводе текста
- ✅ Оптимизированные touch targets (минимум 44px)
- ✅ Адаптивные формы для мобильных экранов
- ✅ Поддержка устройств с вырезами (notch)
- ✅ Совместимость с iOS Safari и Android Chrome
Технические решения:
- Viewport meta tag с
maximum-scale=1.0иuser-scalable=no - CSS правила для предотвращения зума на фокус
- Font-size 16px для input полей (iOS Safari requirement)
Подробное описание: см. MOBILE_ADAPTATION.md
Приложение использует оптимистичное обновление состояния для мгновенного отображения новых элементов:
- ✅ Мгновенное отображение созданных топиков и постов
- ✅ Оптимистичное обновление без перезагрузки данных
- ✅ Улучшенная производительность и UX
- ✅ Снижение нагрузки на сервер
Как работает:
- Пользователь создает топик/пост
- Ждем успешного ответа сервера
- Мгновенно добавляем элемент в локальное состояние
- UI обновляется без задержек
Подробное описание: см. STATE_OPTIMIZATION.md
Приложение включает страницу профиля с поддержкой аватарок Gravatar:
- ✅ Просмотр и редактирование профиля
- ✅ Автоматическое создание Gravatar при регистрации (новая функция)
- ✅ Загрузка собственной аватарки (JPG, PNG, GIF, WebP до 2MB)
- ✅ Кнопка сброса аватарки на Gravatar по умолчанию
- ✅ Отображение аватарок авторов в топиках и постах
- ✅ Отображаемое имя и настройки пользователя
- ✅ Интеграция с GitHub для хранения изображений
Как использовать:
- При первой авторизации пользователю автоматически генерируется аватарка Gravatar на основе username
- Клик на имя пользователя в шапке → страница профиля
/profile - Загрузка собственной аватарки через иконку камеры (опционально)
- Кнопка "Reset to Gravatar Avatar" для восстановления оригинальной Gravatar
- Аватарки авторов отображаются автоматически во всех топиках и постах
Обновления (May 2026):
- ✨ Автоматическое создание аватарки Gravatar при регистрации новых пользователей
- ✨ Отображение аватарок авторов в темах обсуждения
- ✨ Возможность сброса на оригинальный Gravatar из профиля
Подробное описание: см. USER_PROFILE.md
Приложение поддерживает полный Markdown синтаксис для создания красивых сообщений:
- ✅ Парсер Markdown с подсветкой кода и таблицами
- ✅ Редактор с подсказками и горячими клавишами
- ✅ Панель инструментов для быстрого форматирования
- ✅ Предварительный просмотр сообщений
- ✅ Поддержка GFM (GitHub Flavored Markdown)
Возможности редактора:
- Жирный/курсив:
**text**,*text*или Ctrl+B/Ctrl+I - Код:
`code`или Ctrl+` - Ссылки:
[text](url)или Ctrl+K - Списки:
- itemили Ctrl+Shift+8 - Цитаты:
> textили Ctrl+Shift+> - Таблицы и многое другое
Подробное описание: см. MARKDOWN_SUPPORT.md