Work / feedback.monster
feedback.monster
A personal link for collecting anonymous feedback, with an optional AI filter that softens or sharpens the tone of each message.
- Role
- Product, design and engineering
- Status
- Beta
- Stack
- Next.js, Supabase, OpenAI, Stripe

The problem
Honest feedback helps you decide what to do next, but asking for it is awkward and blunt feedback can sting. People need a low-friction way to get candid input and choose how it's delivered to them.
What I did
- •Public feedback pages, also served on per-user subdomains through middleware rewrites, that accept anonymous messages without an account.
- •AI processing that rewrites feedback as softer, neutral or harsher and can add two to four actionable next steps.
- •A dashboard with onboarding, avatars, Google and Microsoft sign-in, and a custom prompt on each profile page.
- •Email notifications for new feedback and a weekly digest, sent through AWS SES with React email templates.
- •A Stripe subscription for the Pro plan with a free trial, and generated OpenGraph images for every user page.
How it works
Next.js App Router on Supabase for auth and Postgres. Row level security lets anyone submit feedback while only the recipient can read or delete it. Supabase is self-hosted on Coolify and redeployed from GitHub Actions on every push to main, with Sentry for errors.
Decisions and trade-offs
- •Self-hosting Supabase meant running the database directly, including per-table autovacuum tuning after vacuum runs pinned the CPU.
- •Moved email to AWS SES directly, with a webhook handler for delivery events.
- •Fixed OAuth and sign-out redirects that pointed at localhost when running behind a reverse proxy.
Where it stands
Live in beta with free and Pro tiers.
Need this on your team?
I take contract roles as a senior product engineer. Tell me about the team and the work.