A GitHub automation platform built with Node.js, TypeScript, and NestJS. ShobApp24 lets you install a GitHub App, listen to real-time webhook events across your repositories, and trigger custom automation pipelines - think n8n, but scoped entirely around GitHub and built as a production-grade multi-tenant SaaS.
Key capabilities:
- Real-time GitHub webhook processing for 17+ event types.
- Configurable workflows with ordered action steps per repository.
- Secure code execution triggered by events via isolated workers.
- Event-driven architecture with RabbitMQ and three independent worker queues.
- Stripe subscriptions with plan-based feature enforcement.
- AI-powered analytics using Google Gemini on commit and repo events.
- GitHub Workflows - Create workflows triggered by specific GitHub events on selected repositories.
- Action Steps - Send emails, forward webhooks, collect viewer data, or run AI analytics and so on.
- Async Processing - RabbitMQ workers handle all GitHub and Stripe events asynchronously with dead-letter queues.
- Subscription Plans - Three tiers (Free, Basic, Pro) with Stripe checkout, proration, and billing portal.
- Plan Enforcement - Custom NestJS guards enforce workflow and action limits per plan before hitting services.
- Security - Webhook signature verification, Redis rate limiting, and input validation via Zod.
- Observability - Liveness and readiness health endpoints with deep checks on Postgres, Redis, and RabbitMQ.
- Backend: Node.js 22, TypeScript 5.7, NestJS 11
- Database: PostgreSQL, Prisma ORM 7
- Messaging: RabbitMQ
- Cache / Rate Limiting: Redis 7
- Auth: BetterAuth
- Payments: Stripe SDK
- AI: Google Gemini
- Email: Resend
- GitHub: Octokit
- Validation: Zod 4
- Package Manager: pnpm
- Testing: Jest, Supertest
- CI/CD: GitHub Actions, Docker Hub, GCP VM
The application is organized into focused NestJS modules. Each domain owns its controller, service, and data access logic with no cross-boundary leakage.
Core modules:
auth- Email/password signup, sessions, email verification, password reset.github- GitHub App OAuth flow, webhook ingestion, paginated repo listing.workflow- Workflow CRUD with plan-limit enforcement.action- Action step management per workflow.stripe- Subscription checkout, upgrades, downgrades, cancellation, billing portal.worker/github- Async processor for incoming GitHub webhook events.worker/stripe- Async processor for incoming Stripe events.worker/send-email- Async outbound email dispatcher.health- Liveness and readiness probes.rate-limit- Redis-backed request rate limiting.guards- Plan limit enforcement via@CheckLimitand@RateLimitdecorators.
GitHub webhook events are never processed synchronously. The /github/webhook endpoint verifies the signature, enqueues the payload, and returns 200 immediately. A dedicated worker picks it up and dispatches to the correct handler using the strategy pattern - no switch statements, new event types are added by registering a new handler class.
Plan limits are enforced via guards that intercept requests before the service layer is ever reached:
Free - 3 workflows, 12 actions per workflow
Basic - 7 workflows, 20 actions per workflow
Pro - Unlimited
- Docker and Docker Compose
-
Configure environment variables:
cp .env.example .env # Fill in credentials for GitHub App, Stripe, Resend, etc. -
Start everything:
docker compose -f docker-compose.local.yml up -d
That's it. Docker Compose spins up the app along with Postgres, Redis, and RabbitMQ in one command.
- Node.js 22+
- pnpm 10+
-
Install dependencies:
pnpm install
-
Configure environment variables:
cp .env.example .env # Fill in credentials for GitHub App, Stripe, Resend, etc. -
Generate Prisma client and push schema:
npx prisma generate npx prisma db push
-
Start the dev server:
pnpm start:dev
pnpm test # Unit tests
pnpm test:cov # Unit tests with coverage
pnpm test:e2e # End-to-end tests
pnpm test:watch # Watch modeEvery pull request and push to main runs the full build and test pipeline via GitHub Actions:
- Install dependencies with frozen lockfile
- Generate Prisma client
- Build the application
- Run unit and end-to-end tests
On a successful main build, the deploy workflow builds a Docker image, pushes it to Docker Hub, SSHs into the GCP VM, and restarts the service via Docker Compose. No manual deployments.
Contributions, issues, and feature requests are welcome! Please follow the guidelines outlined in the contributing.md file.
MIT License