The problem Hayon solves
Publishing consistently across social networks is tedious. Every platform has a different interface, different content requirements, different optimal posting times, and different analytics views. Teams end up context-switching constantly, using spreadsheets to track schedules, and manually copy-pasting content between apps. Hayon replaces all of that with a single workflow:- Create — Compose your post with text, media, and platform-specific options in one place.
- Generate — Use AI (powered by Google Gemini) to create platform-appropriate captions automatically.
- Schedule — Set a publish time or post immediately; Hayon queues everything through RabbitMQ for reliable delivery.
- Analyze — Review engagement across all platforms from a unified analytics dashboard.
Key features
Multi-platform publishing
Post to Bluesky, Tumblr, Facebook, Threads, and Mastodon simultaneously. Each platform receives independently tracked status updates.
AI-generated captions
Generate platform-specific captions with Google Gemini AI. One image or idea, multiple tailored captions in seconds.
Smart scheduling
Schedule posts for any future date and time. Hayon uses RabbitMQ’s delayed message exchange to fire jobs precisely on time.
Rich analytics
Track post performance with timeline, growth, platform comparison, and heatmap views. A dedicated analytics worker fetches data on demand.
Real-time notifications
Receive instant success or failure alerts via WebSockets (Socket.IO) and Firebase push notifications — no polling required.
Subscription management
Built-in Stripe integration handles plan upgrades, billing portal access, and webhook-based subscription lifecycle events.
How the system works
At a high level, Hayon is a monorepo with a clear separation between a Next.js frontend and a Node.js/Express backend. The two communicate exclusively over HTTP REST APIs. There is no shared runtime code between them. When a user creates and schedules a post:- The frontend uploads any media to AWS S3 via the backend.
- The backend optionally calls Google Gemini to generate a caption suggestion.
- On submission, the backend publishes a job message to RabbitMQ.
- A separate worker process consumes the queue, calls the relevant social platform APIs, and writes status results back to MongoDB.
- The worker emits a Socket.IO event to notify the frontend of success or failure in real time.
Tech stack
Frontend
Next.js 16 (App Router) · React 19 · Tailwind CSS v4 · shadcn/ui (Radix UI primitives) · Recharts · Socket.IO client · TypeScript
Backend
Node.js · Express v5 · MongoDB (Mongoose v8) · JWT access and refresh tokens · Google OAuth 2.0 (Passport.js) · TypeScript
Infrastructure
Redis (caching and session data) · RabbitMQ (job queue with delayed message exchange) · AWS S3 (media storage) · Stripe (payments) · Google Gemini AI (caption generation) · Firebase (push notifications)
Deployment
Vercel for the Next.js frontend · AWS EC2 for the Express backend · Nginx as reverse proxy · Logtail / Better Stack for structured logging
Subscription plans
Hayon ships with two built-in plans enforced at the API level:| Plan | Posts per month | AI caption generations |
|---|---|---|
| Free | 30 | 15 |
| Pro | 60 | 30 |
backend/src/config/plans.ts and checked by middleware before any post or generation request is processed. Upgrading a plan triggers a Stripe Checkout session; the resulting subscription lifecycle is managed via Stripe webhooks.
Supported social platforms
Hayon currently supports publishing to:- Bluesky — via the AT Protocol (
@atproto/api) - Facebook — via Meta’s Graph API (OAuth 2.0)
- Threads — via Threads API (Meta OAuth)
- Tumblr — via Tumblr OAuth 1.0a
- Mastodon — via Mastodon’s REST API (mastodon.social instance by default)
backend/src/routes/platforms/) and posting service that handles credentials, content formatting, and error classification.
Next steps
Quickstart
Get Hayon up and running locally in minutes. Covers prerequisites, environment variables, and your first post.
Architecture
Deep-dive into how Hayon’s components connect — from the request lifecycle to background job processing.
Platform integrations
Learn how to connect Bluesky, Facebook, Threads, Tumblr, and Mastodon accounts.
API reference
Explore the full REST API for posts, analytics, platforms, and payments.
