Skip to content
swayam

About this project

Swayam is a portfolio piece, not a startup.

It's built and dogfooded by Amar Gupta to demonstrate end-to-end ownership of a non-trivial automation surface — from pg_cron rows and a Supabase trigger, through an Electron dispatcher and a dedicated MCP sub-server, to a Claude Code instance with its own brain file, to a Realtime-backed dashboard. Signup stays gated so the live API tokens and inboxes don't leak.

About the builder

Amar Gupta

AI-powered full-stack engineer · 7+ years · building agent-native software

Swayam is part of a five-product portfolio of dogfooded apps that share infrastructure: a custom MCP fabric, Supabase with RLS, channel-based wakes, and a desktop Electron relay. I built every layer of this one — the cron scheduler, the dispatcher that bifurcates by channel, the dedicated CC instance, and the Realtime dashboard that watches it run.

Currently building

Setu (chat relay), Sandesh (publishing), Sankalp (job autopilot), Swayam (automation), Sathi (personal manager)

Open to

Senior / staff full-stack · AI eng · MCP and agent infra roles

pg_cron orchestrationMCP server designSupabase RealtimeChannel-based wakesPostgres triggersLLM tool callingCron schedulingTypeScript / Next.js 16

What Swayam demonstrates

Six skills, one running system.

01

Automation orchestration

pg_cron rows inside Supabase fire on schedule, an Electron dispatcher turns each fire into a wake frame, a dedicated Claude Code session answers, and the dashboard renders the run live — no Vercel cron, no polling, no cold starts.

02

Channel isolation

Earlier, routines and operator chat shared one CC session and attention dropped per task. Swayam carved a dedicated `swayam-channel` with its own MCP sub-server (`/swayam/api/mcp`), its own SSE bridge, and its own CC instance against a routine-specific brain file.

03

Realtime fan-out

The browser dashboard subscribes to `swayam_messages` Realtime postgres_changes — both INSERT and streaming UPDATE deltas land live. `REPLICA IDENTITY FULL` on the table makes partial chunks paint as they arrive.

04

pg_cron + Postgres triggers

Schedules are rows in `scheduled_routines` with cron expressions and timezones. pg_cron jobs reference them; a `metadata.channel` field routes the wake. Change the cron expr, the next fire moves. The DB IS the scheduler.

05

Dual-broadcast pattern

A single field (`routine.metadata.channel`) branches the dispatcher: swayam routines write to `swayam_messages` + broadcast `swayam_chat_message`; legacy setu routines stay on `chat_messages` + `chat_message`. Zero handler forking.

06

Scheduled-routine UX

Cron expressions are human-translated (`0 9 * * *` → "every day at 9:00am") and the next fire-time is computed client-side. Routines surface last-run status, fail-streak, jitter, and a one-click enable/pause — the operator never edits cron syntax raw.

Sibling products

Swayam is one of five.

Setu, Sandesh, Sankalp, Swayam, and Sathi share the same Supabase project, the same MCP fabric, and the same channel-based wake protocol. Each lives at its own subdomain and demonstrates a different end-to-end use case.

Hiring?

I'm open to senior / staff roles.

Full-stack, AI eng, MCP / agent infra. Happy to walk a hiring panel through any layer of this system live — pg_cron rows, the bifurcating dispatcher, the swayam-channel MCP, or the Realtime dashboard that watches it tick.