Agencies managing several clients lose time chasing approvals across WhatsApp and email, and have no record of who signed off on what. A plain approval link makes that worse: because the link is a bearer token, anyone it is forwarded to can approve on the client's behalf.
Make the approval link safe to send rather than trying to keep it secret. Possession of the link opens the post, but approving requires a code emailed to the client's address on file, and the verified address is stored on the approval. Publishing was built around scheduled posts so approval and delivery are one flow rather than two tools.
Next.js App Router with TypeScript and Tailwind, Drizzle ORM over Neon Postgres across a 25-table schema, Clerk for agency auth and Resend for transactional email. Includes an emailed-code verification table with hashed codes and attempt limits, role-based team access with per-client assignments, a cron-driven publish loop with readiness checks, OAuth token handling and metrics sync for X and Instagram, and a token-authenticated client portal separate from the agency dashboard.
Live at getrevvy.pro. X and Instagram have publishing implementations; LinkedIn and TikTok are reminder-only, with no posting API in use. Billing is built against Stripe and Korapay but not yet enabled.





