The developer's cockpit — multi-repo git dashboard, issues, focus.
Dashboard desktop para quem trabalha com vários repositórios ao mesmo tempo. Construído em Electron + Vue 3 + TypeScript.
Hoje em dia um projecto raramente vive num único repositório. É normal ter:
- 1 repo para o front-end
- 1 repo para o back-end / API
- 1 repo para o painel admin
- 1 repo para a app mobile
- 1 repo para a landing page
- 1 repo para serviços partilhados / SDK
- 1 repo para infra / deploy
- … e por aí fora
Quando precisas de fazer uma alteração que toca em vários módulos, a história repete-se:
cd repo-1 && git status && git add . && git commit -m "..." && git push
cd ../repo-2 && git status && git add . && git commit -m "..." && git push
cd ../repo-3 && git status && git add . && git commit -m "..." && git push
# ...e assim por dianteAbrir 10 terminais. Saltar de janela em janela. Esquecer um repo no caminho. Reabrir tudo no dia seguinte. É lento, é cansativo e tira o foco.
Ferramentas como o GitHub Desktop são óptimas — mas pensadas para um repo de cada vez. Quando o teu fluxo é multirepo, ficas a faltar metade da coisa.
O Orbit trata um projecto como um conjunto de repositórios agrupados, e dá-te uma vista única para operar sobre todos eles.
- Multi-repo dashboard — vê o estado (staged / unstaged / branch / ahead-behind) de todos os repos num só ecrã.
- Bulk actions — commit, push e pull em vários repos seleccionados de uma vez só.
- Diff viewer integrado — slide-in, com stats de adições/remoções, toggle working-tree/staged, e stage/unstage directamente do viewer.
- Resolvedor de conflitos built-in — lida com merge conflicts sem ter de saltar para o editor.
- Histórico visual — log de commits com filtros por repo.
- Issues no mesmo sítio — issues locais (offline, em SQLite) + integração com issues do GitHub, lado a lado.
- Notas — editor próprio para briefs, ideias, rascunhos e contexto que não cabe num README.
- Drag & drop — organiza grupos de repos e reordena à vontade. Auto-save.
- Backup do workspace — exporta/importa a configuração do projecto em
.orbit.json. - Multi-idioma & temas — i18n com vue-i18n, theme picker integrado.
- Tudo offline — armazenamento local em SQLite (
better-sqlite3). Não precisa de conta, não precisa de cloud.
- Electron 33 — shell desktop
- Vue 3 + Composition API + Pinia — UI e estado
- TypeScript — tipagem em todo o lado (renderer + main)
- Tailwind CSS + radix-vue — design system
- simple-git — operações git no main process
- better-sqlite3 — persistência local
- vue-draggable-plus — drag & drop
- electron-vite — build & hot-reload
electron/main.ts ← cria a BrowserWindow, regista IPC handlers
electron/ipc/*.ts ← git, github, notes, localIssues, backup, conflicts
electron/preload.ts ← expõe window.electron via contextBridge
src/ ← Vue SPA (router em hash, Pinia stores)
Toda a operação git/IO acontece no main process; o renderer fala com ele só por IPC. Sem nodeIntegration, sem dores de cabeça de segurança.
# clonar
git clone <url-do-repo>
cd orbit
# instalar
npm install
# correr em dev (hot-reload)
npm run dev
# build de produção
npm run build
# empacotar para a tua plataforma
npm run dist:mac # ou dist:win / dist:linuxO Orbit é uma versão 0.1. Construído em duas semanas. Funciona, mas tem bastante para evoluir.
- Stash management (criar / listar / aplicar / dropar)
- Rebase interactivo com UI
- Cherry-pick entre branches
- Suporte a submodules
- Atalhos de teclado configuráveis
- Pesquisa global (commits, issues, notas, ficheiros)
- Integração com GitLab e Bitbucket (hoje só GitHub)
- Pull Request review dentro do app
- CI status por repo (✓/✗ ao lado do branch)
- Templates de commit (Conventional Commits, gitmoji, etc.)
- Hooks visuais (pre-commit / pre-push) com toggle on/off
- Modo "focus" — esconde tudo excepto um repo, com timer Pomodoro
- Sync opcional entre dispositivos (mantendo a opção offline-first)
- Plugin system para extensões da comunidade
- Suporte a monorepos (workspaces) como "primeiros cidadãos"
- Auto-update via electron-updater
O projecto é open source e contribuições são bem-vindas. Mas um aviso, com a mão no coração:
Isto é código de duas semanas, movido a café e bebida energética. Há partes que ainda precisam de carinho. Não me julguem muito 😅. Issues construtivas e PRs são abraçados de braços abertos.
- Abre uma issue antes de PRs grandes — vamos alinhar antes de gastares tempo.
- Para bugs, inclui passos para reproduzir + versão do Orbit + sistema operativo.
- Para features, descreve o caso de uso primeiro, a solução depois.
- Mantém o código com
npm run typechecka passar.
MIT.
Orbit — feito por BIT — Bantu Internet Technologies, Lda. 🇦🇴