name: antigravity-manager description: Comprehensive guide to Antigravity Manager architecture, workflows, and development. Use this to understand how to work on the project.
Antigravity Manager Developer Guide
🏗️ Architecture Overview
Antigravity Manager is a hybrid Desktop Application built with Electron, React, and NestJS. It follows a modular architecture where the frontend (Renderer) communicates with the backend (Main) via type-safe IPC (ORPC).
graph TD
User[User Interface] -->|React/Vite| Renderer[Renderer Process]
Renderer -->|ORPC Client| IPC[IPC Layer]
IPC -->|ORPC Router| Main[Main Process]
Main -->|Bootstraps| Server[NestJS Server]
Main -->|Calls| Services[Service Layer]
Services -->|Read/Write| DB[(SQLite Database)]
Services -->|HTTP| Cloud[Cloud APIs (Google/Anthropic)]
Key Technologies
- Frontend: React 19, TailwindCSS v4, TanStack Router, TanStack Query.
- Backend: Electron (Main), NestJS (Core Logic), Better-SQLite3 (Data).
- Communication: ORPC (Type-safe IPC wrapper around Electron IPC).
- Build: Electron Forge + Vite.
📂 Directory Structure
-
src/main.ts: Electron Main Process entry point. -
src/preload.ts: Bridge between Main and Renderer. -
src/renderer.tsx: React App entry point. -
src/components/: Reusable React UI components (Radix UI based). -
src/ipc/: IPC Routers and Handlers (Domain logic).-
router.ts: Main ORPC router definition. -
account/,cloud/,database/: Domain-specific handlers.
-
-
src/server/: NestJS application modules (proxies/gateways). -
src/services/: Core business logic (framework agnostic).-
GoogleAPIService.ts: Gemini/Cloud interactions. -
AutoSwitchService.ts: Account rotation logic.
-
-
src/routes/: Frontend routing definitions (File-based).
🚀 Development Workflow
Prerequisites
- Node.js 18+
- npm (Project uses
package-lock.json)
Common Commands
-
Start Dev Server:
npm start -
Lint Code:
npm run lint -
Unit Test:
npm run test:unit -
E2E Test:
npm run test:e2e -
Build Production:
npm run make
🧠 Core Concepts
IPC Communication (ORPC)
The project uses orpc for type-safe communication.
-
Define: Create a router in
src/ipc/router.tswith Zod schemas. -
Implement: Add logic in handlers (e.g.,
src/ipc/account/handler.ts). - Call: Use the generated client in React components.
Database Access
Data is stored in a local SQLite file (test.db in dev, user data in prod).
- Use
Better-SQLite3for direct access. - Logic should be encapsulated in
src/servicesorsrc/ipc.
Account Management
- Accounts are added via OAuth (Google/Claude).
-
GoogleAPIServicehandles token exchange and refreshing. -
AutoSwitchServicemonitors usage and switches active accounts automatically.
⚠️ Critical Rules
- Type Safety: strict TypeScript usage; Zod for runtime validation.
-
Components: Use
src/components/ui(Radix primitives) for consistency. - Async: Handle all IPC/DB calls asynchronously with try/catch.
- Security: Never commit secrets. API keys are user-provided or encrypted locally.
chat Comments (0)
Sign in to join the discussion and leave a comment.
Skill Details
GitHub Stars
1k
GitHub Forks
142
Created
Mar 2026
Last Updated
4 months ago
development
development architecture patterns
Related Skills
Build your own?
Join 12,000+ developers contributing to the Claude ecosystem.
No comments yet. Be the first to share your thoughts!