About this project

DeployBar is a native macOS menu bar application built in Swift that consolidates deployment monitoring across multiple cloud providers into a single, compact interface. Instead of juggling multiple browser tabs and dashboards, users get one menu bar status indicator, a SwiftUI popover showing provider-agnostic deployment snapshots, and native macOS notifications when deployments start, succeed, fail, cancel, or are removed. The app is local-first by design: there is no DeployBar backend service, no hosted credential sync, and no Electron shell. Provider API tokens are stored exclusively in the macOS Keychain under the service identifier com.deploybar.tokens, while non-secret settings are persisted as JSON in ~/Library/Application Support/DeployBar/settings.json. The project is released under the MIT License and distributed as a signed, notarized Homebrew Cask. Supported providers include Vercel (REST API), Railway (GraphQL API), Netlify (REST API), Render (REST API), Cloudflare Pages (API v4), Cloudflare Workers (API v4 with Builds history), DigitalOcean App Platform (Apps API), Heroku (Platform API), Fly.io (GraphQL API), GitHub Deployments (REST API), and GitLab Deployments (REST API). Each provider maps its native deployment states into a unified status model covering queued, building, ready, failed, canceled, and removed states. The app supports automatic resource discovery from settings, monitored target configuration, and refresh scheduling with stale snapshot retention, issue backoff, and faster polling while deployments are live. The codebase targets macOS 13+ and uses Swift 6, Swift Package Manager, SwiftUI for popover and settings surfaces, and AppKit NSStatusItem for menu bar integration. Release builds include Sparkle app updates via GitHub Releases. The project includes tests for status mapping, response parsing, provider requests, discovery, redaction, monitored target matching, and refresh behavior. Future plans include deeper provider diagnostics, optional failure log tailing, and more polish around account and resource discovery.