roarke.ioAbout

by Roarke · portfolio infrastructure

Feedback Loops

Closed-loop user feedback across every project. Collect, confirm, reach me, repeat.

Most teams treat feedback as an afterthought — a form buried in a footer, an inbox nobody checks. This closes the loop instead: every real note is confirmed by its sender, reaches me, and gets acknowledged. And you can run the whole thing yourself, right now, without signing up.

Try it — it's the real widget

This very page runs it. Look for the feedback button in the bottom-right corner. Leave your email and you'll get the confirm-and-thanks in your inbox — tap it and you've just run the entire loop yourself. It's the same button on every site in the portfolio.

How the loop closes

Most feedback tools stop at collecting. The point here is the half that usually goes missing — confirming the note is real and getting it to a human.

  1. 1Leave a note. Tap the button, say what is on your mind, optionally add your email. No signup, no friction.
  2. 2Confirm it is you. First time with an email, you get one message back — a thank-you with a single tap to confirm. That confirm is what keeps the bots out.
  3. 3It reaches me. Confirmed notes land in my inbox and I get the heads-up to follow up. Unconfirmed and spam never make it through.
  4. 4Come back anytime. Already confirmed once? Your next note skips the step entirely — just a thanks, straight through to me.

One script tag

Adding it to a project is a single line — no SDK, no build step. The backend handles confirmation, scoring, ticketing, and routing.

<script src="https://comms.roarke.io/widget.js"
        data-project="yourdomain.com" defer></script>

The catch: it only accepts notes from my own domains — this is portfolio infrastructure, not a hosted service. Paste it elsewhere and submissions are politely declined.

Built to be real, not a toy

Per-domain email identity

Each project sends from its own address with its own reply-to — the confirm-and-thanks never looks generic.

Confirmed-only, never buried

The moment a note is confirmed it reaches my inbox, and a daily digest sweeps up anything I have not actioned yet.

Anti-spam scored

A honeypot, per-IP rate limiting, double opt-in, and a content scorer keep the noise out before it reaches me.

Supabase-backed

Every note is stored, ticketed, and reviewable in one dashboard across the whole portfolio.

Part of a small family of drop-in widgets I run across the portfolio — feedback, cookie consent, a research-preview banner, and the showcase card you may have just arrived through. One service, one script tag each.