Zenith is a premium, highly fluid, and source-available alternative to IFTTT and Zapier. It empowers users to build automated workflows (Applets) connecting various third-party services and webhooks, featuring a beautifully designed Flutter frontend and a rock-solid, scalable backend.
- Visual Builder: A fluid, Dual-Flow (Canvas vs. Wizard) Flutter interface bursting with premium animations and micro-interactions.
- Background Execution: A robust queue-based NestJS Microservice worker system to reliably execute actions without blocking.
- Self-Hosted & Open Source: Full control over your data and APIs. No enterprise paywalls.
- Custom Integrations: Easily add your own webhooks, API endpoints, or OAuth services (with AES-256-GCM token encryption natively integrated).
- Frontend: Flutter (Riverpod for state, go_router for navigation, fluid animations via AnimatedSwitcher)
- Backend API: Node.js (NestJS)
- Database: PostgreSQL (TypeORM, JSONB dynamic payloads)
- Task Queue / Engine: Redis + BullMQ (NestJS Microservice)
- Security:
@boringnode/encryption(chacha20poly1305)
Start the PostgreSQL database and Redis queue:
cd infrastructure
podman-compose up -dIf you are using Docker instead of Podman, use
docker-compose up -d.
Install dependencies and start the development server:
cd backend
npm install
npm run start:devStart the background BullMQ consumer in a separate terminal:
cd backend
npm run start:workerInstall Flutter dependencies:
cd frontend
flutter pub get
dart run build_runner build -dEnsure Flutter is installed and set up by running:
flutter doctorFix any issues reported before proceeding.
| Platform | Command |
|---|---|
| Auto-detect | flutter run |
| Android Emulator / Device | flutter run -d android |
| Windows Desktop | flutter run -d windows |
| Web (Chrome) | flutter run -d chrome |
| iOS Simulator (macOS only) | flutter run -d ios |
Android Note: The emulator uses
10.0.2.2to reach your host machine'slocalhost. TheApiConstantshelper inlib/core/constants/api_constants.darthandles this automatically.
Windows Note: Developer Mode must be enabled in Windows Settings to allow Flutter to create symlinks required for building with plugins.
cd frontend
flutter build apk --releaseOutput: build/app/outputs/flutter-apk/app-release.apk
cd frontend
flutter build appbundle --releaseOutput: build/app/outputs/bundle/release/app-release.aab
Requires Developer Mode to be enabled in Windows Settings.
cd frontend
flutter build windows --releaseOutput: build/windows/x64/runner/Release/
cd frontend
flutter build web --releaseOutput: build/web/ — deploy this folder to any static hosting provider (e.g., Firebase Hosting, Vercel, Netlify).
cd frontend
flutter build ios --releaseThen open ios/Runner.xcworkspace in Xcode and archive for distribution via App Store Connect.
If you encounter stale errors after code changes, always run a clean build:
# Run each on a separate line in PowerShell
flutter clean
flutter pub get
flutter runThis project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International Public License (CC BY-NC 4.0).