Заложить репозиторий: философия, архитектура, модель угроз, ADR
Документы фиксируют принятые проектные решения Bare: клиент без фреймворков и сборки, Go-сервер одним бинарём, E2EE на WebCrypto, сервер-реле без истории, локальная история с экспортом/импортом, Web Push + VAPID. Кода нет — сначала документы. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SW4ZXtKn5NjX8NH3Lhm2ND
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
# Философия
|
||||
|
||||
Bare — максимально простой веб-чат. Utility, а не платформа. Название буквальное: голый, без лишнего, ничего не спрятано за слоями абстракций.
|
||||
|
||||
## Принципы
|
||||
|
||||
### 1. Bare = голый web
|
||||
|
||||
HTML, CSS, vanilla JS, нативные браузерные API. Ноль npm-зависимостей на клиенте. Никакой сборки — ES-модули как есть.
|
||||
|
||||
### 2. Сервер — реле, а не архив
|
||||
|
||||
Сервер никогда не является местом, где живёт история. Он передаёт и забывает.
|
||||
|
||||
### 3. История живёт только на устройстве
|
||||
|
||||
Зашёл с другого места — там только новые сообщения. Перенос истории — явный ручной экспорт/импорт.
|
||||
|
||||
### 4. Забыл пароль — значит забыл
|
||||
|
||||
Восстановления нет, и это не политика, а криптография: пароль — материал ключа.
|
||||
|
||||
### 5. Оператор не может читать сообщения
|
||||
|
||||
E2EE по умолчанию. У админа с полным доступом к серверу — только шифротекст.
|
||||
|
||||
### 6. Аудируемость через простоту
|
||||
|
||||
Клиент — несколько читаемых файлов без сборки. Любой может проверить глазами, что код делает.
|
||||
|
||||
### 7. Простота важнее функций
|
||||
|
||||
Каждая фича должна оправдать своё существование. По умолчанию — нет.
|
||||
|
||||
## Non-goals
|
||||
|
||||
Это не «пока не успели», а осознанные решения не делать:
|
||||
|
||||
- Облачная синхронизация истории между устройствами.
|
||||
- «Удалить у всех» после доставки.
|
||||
- Серверный поиск — поиск только локальный.
|
||||
- Файлы, медиа, голос, реакции, треды (v1).
|
||||
- Forward secrecy (v1).
|
||||
- Федерация.
|
||||
Reference in New Issue
Block a user