ReactNode.jsPythonPostgreSQLSupabaseThree.jsDockerMicrosoft Azure
August 3, 2026Nebula

Nebula pulls the inventory of every cloud and DevOps account you connect and draws it as an interactive 2D or 3D graph of resources, relationships, costs and health. Instead of clicking through five portals, you see the whole estate at once. I built it to support real migration and scaling decisions. It’s on its way to becoming a white-label product that any team can brand and self-host.
How it works
- Extractors (Python): one per provider (Azure, AWS, GitHub, GitLab and Azure DevOps). Each queries the provider’s API and writes resources and relationships to Postgres. They support dry runs, JSON output and stale-resource cleanup, and the API launches them per connection, either on demand or on a schedule.
- API (Node.js + Express): an authenticated REST API with graph streaming over server-sent events, focus mode, search, sharing, analytics, a cron scheduler and an MCP server, so AI assistants can query the graph with per-tool scopes and an audit log.
- Frontend (React): a force-directed graph with several rendering engines: Canvas2D by default, a WebGL engine built on PixiJS for large graphs, a three.js 3D view and an isometric view.
- Rules engine: flags CIDR overlaps and domain or name collisions before a change goes in.
Security and ops
- Connection credentials are encrypted at rest with AES-256-GCM and decrypted only to hand to the extractor process.
- Supabase Auth with JWT verification on the API, role checks and Row-Level Security in Postgres.
- Ships as Docker images for the API and frontend, or a single combined image. Hosting plans are documented for Azure App Service and Container Apps, with scale-to-zero for the free tier.