Automate is a end to end Zapier clone, it can orchestrate, schedule, and execute automated tasks and workflows. It features a modern web client, a robust backend API, and distributed worker services for scalable automation.
- TypeScript (client, backend, workers)
- React (client)
- Express.js (backend)
- Prisma ORM (backend)
- Kafka (event streaming & messaging)
- PostgreSQL (database)
- Docker & Docker Compose (containerization & orchestration)
- Node.js (runtime)
A modern React-based web application for managing, scheduling, and monitoring automated jobs. Built with Vite, TailwindCSS, and Radix UI for a fast and responsive user experience.
A Node.js/Express API server that handles authentication, job management, and coordination between the client and distributed workers. Integrates with Kafka for messaging and PostgreSQL (via Prisma) for persistent storage.
A set of distributed worker services responsible for executing scheduled tasks. Includes:
- schedular: Schedules and dispatches jobs to the queue (Kafka).
- ts-executor: Executes jobs received from the queue.
- Docker & Docker Compose
- Node.js (v18+ recommended)
- pnpm or npm (for local dev)
- Clone the repository:
git clone <repo-url> cd automate
- Copy and configure environment variables:
- Copy
.env.examplefiles inbackend,workers/schedular, andworkers/ts-executorto.envand update as needed.
- Copy
- Start all services using Docker Compose:
docker compose -f scripts/app-docker-compose.yaml up --build
- The client (web UI) and backend API will be available at their respective ports (see docker-compose file).
- Client:
cd client pnpm install # or npm install pnpm dev # or npm run dev
- Backend:
cd backend pnpm install # or npm install pnpm dev # or npm run dev
- Workers:
cd workers/<worker-name> pnpm install # or npm install pnpm dev # or npm run dev
Pull requests and issues are welcome! Please open an issue to discuss any major changes.