An open API service indexing awesome lists of open source software.

https://github.com/iamvany30/etc.app

etc.app for итд.com based on electron+react and of course love
https://github.com/iamvany30/etc.app

electron etcapp nowkie react

Last synced: 3 months ago
JSON representation

etc.app for итд.com based on electron+react and of course love

Awesome Lists containing this project

README

          

# итд.app (etc.app) - Windows App

![Version](https://img.shields.io/badge/version-0.9.8-blue.svg)
![Electron](https://img.shields.io/badge/Electron-34.0-2F3336.svg?logo=electron)
![React](https://img.shields.io/badge/React-19.0-20232a.svg?logo=react)
![License](https://img.shields.io/badge/license-MIT-green.svg)

**Социальная сеть нового поколения. Делитесь моментами, музыкой и мыслями.**

**итд.app** — это современный десктопный клиент для социальной платформы, построенный на базе Electron и React. Приложение обеспечивает нативный опыт использования соцсети с фокусом на производительность, кастомизацию и медиа-возможности.

![App Screenshot](https://raw.githubusercontent.com/iamvany30/etc.app/main/showcase.gif)

---

## ✨ Ключевые особенности

### 🚀 Производительность и UI
* **Виртуализация списков:** Использование `react-virtuoso` для рендеринга бесконечных лент новостей и комментариев без лагов.
* **Современный дизайн:** Адаптивный интерфейс с поддержкой тем (Светлая, Dim, Dark) и кастомных цветовых акцентов.
* **Theme Engine:** Продвинутая система тем, поддерживающая загрузку сторонних оболочек (CSS/JS) «по воздуху».

### 🎵 Музыка и Медиа
* **Глобальный плеер:** Встроенный аудиоплеер с поддержкой плейлистов, визуализатором частот и сохранением прогресса.
* **Умная обработка медиа:**
* Автоматическое сжатие видео (FFmpeg) и изображений (WebP via Web Workers) перед загрузкой.
* Поддержка GPU-ускорения для обработки видео.
* Автоматическое извлечение метаданных (ID3 теги) из аудиофайлов.

### 🔐 Безопасность и Авторизация
* **Stealth Login:** Уникальная система бесшовного входа, использующая сессию из основного браузера (Chrome/Edge) через `browser_helper`.
* **Безопасное хранение:** Токены шифруются с использованием `safeStorage` Electron.

### ⚡ Функционал
* **Real-time уведомления:** Server-Sent Events (SSE) для мгновенного получения лайков, ответов и подписок.
* **Markdown:** Полная поддержка форматирования текста (спойлеры, код, жирный шрифт) в постах и комментариях.
* **Офлайн режим:** Корректная обработка потери соединения и диагностика сети.

---

## 🛠 Технологический стек

### Core
* **Runtime:** [Electron 34](https://www.electronjs.org/)
* **Frontend:** [React 19](https://react.dev/), React Router 7
* **Build Tool:** React Scripts (CRA), Electron Builder

### Media Processing
* **FFmpeg Static / Fluent-FFmpeg:** Обработка аудио и видео на стороне клиента.
* **Web Workers:** Фоновое сжатие изображений без блокировки UI.
* **JSMediaTags:** Парсинг музыкальных метаданных.

### State & Networking
* **Context API:** Управление состоянием (User, Music, Modal).
* **Native Net:** Использование нативного сетевого стека Electron для обхода CORS и стабильных стримов.

---

## 🚀 Установка и запуск

### Предварительные требования
* Node.js (версии 18 или выше)
* npm

### Шаги для разработки

1. **Клонирование репозитория**
```bash
git clone https://github.com/iamvany30/etc.app.git
cd etc.app
```

2. **Установка зависимостей**
```bash
npm install
```

3. **Запуск в режиме разработки**
Команда запускает React-сервер и Electron-окно параллельно.
```bash
npm run dev
```

### Сборка продакшн-версии

Для создания установщика (exe/dmg/AppImage):

```bash
npm run dist
```
Билд будет находиться в папке `dist/`.

---

## 🎨 Система тем

**итд.app** поддерживает динамическую загрузку тем. Темы — это пакеты, содержащие `theme.json`, CSS и JS файлы, которые могут изменять внешний вид и поведение клиента.

* **Локальные темы:** Хранятся в `%APPDATA%/etc.app/themes`.
* **Удаленные темы:** Синхронизируются с GitHub репозитория.

Пример манифеста темы (`theme.json`):
```json
{
"name": "Dracula",
"version": "1.0.0",
"colors": {
"accent": "#bd93f9",
"background": "dim"
}
}
```

---

## 🤝 Контрибьютинг

Мы приветствуем любой вклад в развитие проекта!

1. Форкните репозиторий.
2. Создайте ветку для вашей фичи (`git checkout -b feature/amazing-feature`).
3. Закоммитьте изменения (`git commit -m 'Add amazing feature'`).
4. Запушьте ветку (`git push origin feature/amazing-feature`).
5. Откройте Pull Request.

---

## 📜 Лицензия

Распространяется под лицензией MIT. Подробнее см. файл `LICENSE`.

---


Created by iamvany

Copyright © 2026