Orbit
Бесплатный таск-менеджер для работы в реальном времени, ориентированный на клавиатуру.
Задачи, доски, спринты, проекты и документы обновляются в тот же момент, когда кто-либо что-либо меняет. Отточенность, которую вы ожидаете от платного таск-менеджера, но без счёта за каждого пользователя в конце месяца.
Никаких тарифов. Никакого биллинга. Никаких платных уровней. Ни сейчас, ни потом.
Живое демо · Документация · Быстрый старт · Релизы · Список изменений · Самостоятельный хостинг · Участие в разработке
Статус self-hosting: Preview. Репозиторий поддерживает локальную оценку, но это ещё не поддерживаемый production-релиз. Ознакомьтесь с текущими ограничениями в трекере готовности.
Последний релиз исходного кода
2026.09.08 добавляет предложения похожих задач при создании, ленту обновлений проектов рабочего пространства и модерацию комментариев для участников и администраторов. Также обновлены зависимости, элементы управления preview-развёртыванием, документация и скриншоты.
Перед обновлением существующей установки прочитайте полный список изменений и руководство по обновлению.
В релизах используются датированные теги исходного кода; self-hosting остаётся в статусе Preview.
Зачем нужен Orbit
Таск-менеджер стоит около 18 долларов на человека в месяц. Для команды из двадцати человек это больше четырёх тысяч долларов в год — только чтобы поддерживать список задач в порядке.
Альтернативы не были настоящим решением. Бесплатные медленные и ощущаются как заполнение формы. Self-hosted тяжело запускать. Дешёвые дешёвы не просто так, и рано или поздно все они просят привязать карту.
Поэтому мы создали таск-менеджер, который хотели сами, сделали его бесплатным и открыли исходный код. Не бесплатный со звёздочкой, не бесплатный для трёх пользователей, не бесплатный до следующего раунда инвестиций. В этом репозитории нет кода биллинга, и мы не планируем его добавлять.
Orbit спонсируется Noveum AI: они оплачивают хостинговый экземпляр и инженерное время. Всё под лицензией Apache-2.0, поэтому вы можете запустить его самостоятельно и вообще не зависеть от нас.
Скриншоты
| Задачи — быстрый список или доска. Любое свойство меняется с клавиатуры. | Палитра команд. Cmd K — и можно перейти куда угодно или сделать что угодно. |
|---|---|
| Спринты с объёмом работ, очками, burndown и переносом. | Документы с расширенным редактором, которые живут рядом с описываемыми задачами. |
| HTML-страницы как один самодостаточный файл, с живым предпросмотром и собственным URL. | Исходник, разделённый режим или предпросмотр. CSS и script остаются в файле. |
| Стендап: всё рабочее пространство как Kanban, отфильтрованное по одному человеку одним кликом. | Аналитика: объём работ, пропускная способность, отток и распределения. |
| Обновления проектов: отчёты о состоянии со всего рабочего пространства в одной ленте. | Похожие задачи: проверьте существующую задачу, прежде чем создавать новую. |
Больше — в docs/assets/screenshots: каждый экран в обеих темах.
Что он умеет
| Задачи | Приоритеты, метки, состояния, оценки, исполнители, несколько ревьюеров и связи. Предложения похожих задач при создании. Быстрый список или доска с drag-and-drop, доступная с клавиатуры |
| Спринты и циклы | Планирование с фиксированными временными интервалами, объёмом работ, очками, burndown и переносом |
| Проекты и этапы | Группировка работы между командами и спринтами, отслеживание состояния и чтение обновлений проектов рабочего пространства |
| Документы | Расширенный редактор, коллекции, комментарии, публичные ссылки для общего доступа, самодостаточные HTML-страницы |
| Стендап | Всё рабочее пространство как Kanban, отфильтрованное по работе, которой человек владеет или которую проверяет, по клику на его плитку |
| Аналитика | Объём работ, пропускная способность, отток и распределение по исполнителю, проекту, метке и оценке |
| Поиск и представления | Фильтры по всем данным, сохраняемые и доступные для общего доступа или приватные |
| Реальное время | Каждое изменение рассылается через websocket ровно тем людям, которым разрешено его видеть |
| Клавиатура в первую очередь | Cmd K для всего, g для навигации, отдельные клавиши для действий. Нажмите ? |
| MCP-сервер | AI-агенты читают доску и создают задачи с вашими разрешениями через OAuth |
| Уведомления | Встроенный inbox, с настройками для каждого типа событий и тихими часами |
| Slack (с ограничением доступа) | Личные DM-уведомления, разворачивание задач в связанных каналах и синхронизация участников после того, как оператор завершит развёртывание Slack |
| GitHub | Pull request-ы, связанные с задачами, которые они закрывают |
| Аутентификация | Passkeys, Google, GitHub, email OTP. Пароль опционален и по умолчанию отключён |
| Роли | Администратор, участник, контрибьютор и гость; права проверяются на сервере |
| Темы | Светлая и тёмная, обе полноценные |
Быстрый старт
Вам нужны Bun 1.3 или новее и Docker. Это весь список.
git clone https://github.com/Noveum/orbit.git
cd orbit
bun install
cp .env.example .env
bun run infra:up # postgres, redis and minio
bun run db:push # create the schema
bun run db:test-setup # create the test databases
bun run db:seed # load a demo workspace
bun run dev # http://localhost:3000
Войдите как alex@orbit.example. Seed загружает три команды, семь человек, тридцать две задачи, проекты, спринты и документы, так что сразу будет на что нажать.
Затем нажмите Cmd K, откройте вторую вкладку, измените что-нибудь в одной и посмотрите, как обновится другая.
| Сервис | Порт |
|---|---|
| web | 3000 |
| realtime (только для разработки) | 3100 |
| postgres | 5434 |
| redis | 6380 |
| minio | 9010 |
Полное руководство в docs/getting-started.md.
Референсное развёртывание (Preview)
Приведённая ниже конфигурация описывает профиль развёртывания Noveum AI. Это не обязательство по поддержке production, не зависящее от провайдера.
Orbit — это одно приложение Next.js. Ему нужны Postgres, Redis и S3-совместимый bucket, у всех есть бесплатные тарифы, поэтому небольшая команда может запускать его бесплатно.
Кнопка запрашивает Resend, чтобы новое развёртывание могло отправлять коды входа. Вместо этого можно настроить вход по паролю, через Google или GitHub. Production отказывается собираться или запускаться без одного полностью настроенного метода; см. Аутентификация.
Два момента, которые не опциональны и приводят к запутанным сбоям, если ошибиться:
- Корневая директория —
apps/web, а функции выполняются на node. Не устанавливайтеbunVersionвapps/web/vercel.json. Это переводит все функции на runtime Bun, где websocket-апгрейд на/api/wsмолча никогда не происходит, а браузер бесконечно повторяет попытки подключиться к сокету, который никогда не открывается. - Никогда не задавайте
NEXT_PUBLIC_REALTIME_URLв production. Сокет обслуживается с того же origin, что и страница, и Orbit игнорирует эту переменную в production. Если оставить её заданной, конфигурация развёртывания будет только вводить в заблуждение.
Supabase для Postgres, Upstash для Redis, Cloudflare R2 для файлов и Resend для email — это комбинация, которую используем мы. Другие провайдеры пока не сертифицированы в рамках этого проекта.
Полное руководство, включая запуск на собственном сервере за nginx: docs/self-hosting.md.
Для AI-агентов
Orbit поставляется с MCP-сервером, поэтому Claude, Cursor, VS Code или любой другой инструмент, поддерживающий MCP, может читать вашу доску и работать с ней.
claude mcp add --transport http orbit https://orbit.example.com/mcp
Только OAuth, никаких API-ключей. Вы выбираете рабочее пространство, повторно подтверждаете passkey и одобряете scopes, а разрешение можно отозвать в настройках. У агента никогда не больше прав, чем у человека, который его авторизовал, потому что инструменты работают через ту же политику, что и всё остальное. Токену только с orbit.read вообще не показываются инструменты записи.
Около шестидесяти инструментов для задач, спринтов, проектов и документов. Что уже работает сегодня:
"Что блокирует проект Realtime Sync Engine?" "Создай баг в Engineering: вход по passkey не работает в Safari, когда не зарегистрирован credential. Высокий приоритет, назначь на меня." "Суммируй, что каждый закрыл вчера."
В docs/mcp.md описаны настройка и полный список инструментов.
Документация
| Начало работы | Локальный запуск за пять минут |
| Концепции | Рабочие пространства, команды, задачи, спринты, проекты, документы, представления |
| Self-hosting | Vercel, Supabase, Upstash, R2 или собственный сервер |
| Конфигурация | Все переменные окружения |
| Горячие клавиши | Полный список |
| MCP-сервер | Подключение AI-ассистента |
| Интеграции | GitHub и настройка Slack с контролем доступа |
| Список изменений | Новые возможности, исправления и заметки об обновлениях для каждого релиза |
| Релизы и обновления | Версионирование, публикация, проверки при деплое и откат |
| Архитектура | Как изменение попадает на каждый экран |
| Тестирование | Запуск и написание тестов |
| Устранение неполадок | Сбои, с которыми мы реально сталкивались |
| Дорожная карта | Что дальше, и чего мы делать не будем |
Как это устроено
apps/web Next.js 16: UI, REST handlers, auth, /api/ws, /mcp
apps/realtime Websocket host, local development only, never deployed
packages/realtime-server Connection hub: tickets, scopes, presence, Redis fan-out
packages/realtime-client Browser client: subscribe, patch, reconnect
packages/mcp-server MCP tools and the handler behind /mcp
packages/core Domain operations shared by REST, MCP and the hub
packages/services Markdown, storage, email, notifications, Slack, GitHub
packages/db Drizzle schema, migrations, client, seed
packages/shared Zod validators, domain types, event contracts, policy
Везде TypeScript в строгом режиме, где any считается ошибкой линтера. Next.js 16 и React 19. Postgres через Drizzle. Redis для рассылки realtime-обновлений. Bun в качестве инструментария, node как среда выполнения, потому что функция Vercel может обновить websocket только на node.
Каждое изменение записывается в Postgres, наращивает монотонный sync_id и публикуется в Redis, после чего хаб рассылает его тем подключениям, чья область видимости даёт право его увидеть. Клиент обновляет свой кеш на месте, а не перезапрашивает данные, поэтому позиция прокрутки и выделение сохраняются. Подробности в docs/architecture.md.
Участие в разработке
Мы рады любому вкладу, и не только коду. Документация, отчёты об ошибках, переводы, доступность и дизайн: всё это в счёт.
bun run verify # lint, comment policy, types, tests. The same four CI runs
С чего начать:
-
Good first issues, небольшие задачи с путями к файлам прямо в описании
-
Help wanted, всё, с чем мы будем рады помощи
-
Дорожная карта, если интересуют крупные задачи
Несколько правил проекта, о которых иначе вы узнаете с удивлением уже на ревью: только Bun, никаких npm и pnpm. Никаких комментариев в коде: сборка падает на них, поэтому смысл закладывайте в имена, а пояснения пишите в pull request. Никакого any, никаких non-null assertions. Никаких длинных тире. И фича не считается готовой, пока для неё нет теста, который падает, если фича сломалась.
Полное руководство в CONTRIBUTING.md. В репозитории лежат и собственные файлы контекста, CLAUDE.md и AGENTS.md, поэтому редактор сам подхватит соглашения, и вам не придётся объяснять их каждый раз.
Участники
Здесь может быть ваше лицо. Серьёзно, даже за исправление опечатки.
Сообщество
-
Discussions для вопросов и идей
-
Issues для багов и конкретных задач
-
Security для всего, что не должно быть публичным
Если Orbit вам полезен, звезда поможет другим его найти.
Спонсор
Noveum AI разрабатывает инструменты оценки и наблюдаемости для AI-систем и оплачивает хостинг Orbit и время инженеров. Orbit не является воронкой продаж для Noveum AI. Здесь нет апселлов, никаких «свяжитесь с отделом продаж» и никаких закрытых функций. Нам нужен был менеджер задач, а хорошего бесплатного не нашлось, поэтому мы написали свой и отдали его всем.
Лицензия
Apache License 2.0. Используйте, запускайте, изменяйте, выпускайте: в коммерческих целях или любых других. Патентная оговорка защищает вас, а NOTICE просит лишь об одном: публичный форк должен выбрать собственное имя, чтобы вашу сборку никто не путал с этой.
Создан Noveum AI и всеми, кто внёс свой вклад.