NextUX
A small engagement layer for websites: one script tag gives a site emoji feedback, surveys, video messages and voice notes, all switched on and shaped from one dashboard.
At a glance
- Nothing the visitor gives is lost
- Widgets live in a shadow root
- Several widgets share a corner politely
The question
Most small sites never hear from their visitors, because every feedback tool means another integration and another redeploy. Could a site owner paste one line once and then decide from a dashboard what to ask, where and when?
What I built
A dashboard where each website gets a snippet and four experiences: emoji feedback with an optional written or recorded follow-up, multi-question surveys with branching, a picture-in-picture video message and push-to-record voice notes. Each one has its own trigger, targeting, frequency and accent colour, with a live preview that runs the real widget.
On the client's page a tiny loader reads the site's config and pulls in only the widgets that are switched on. Responses land in one feed with sentiment, page and device, so the owner can see what people said and where they said it.
Inside
How it looks in use.
- Role
- Sole designer, developer and owner
- Built with
- Next.js, Preact, Prisma, Postgres
- Runs
- Self-hosted in Docker, or on Vercel
- Status
- In beta testing





Up close
The details that carry it.



Decisions that mattered
- Nothing the visitor gives is lostAn emoji rating saves on click, and a survey saves each answer as it goes, so an abandoned follow-up or half-finished survey still counts.
- Widgets live in a shadow rootThe host page's CSS and the widget's CSS cannot touch each other, and any failure, from a dead API to a strict CSP, ends in rendering nothing rather than breaking the client's site.
- Several widgets share a corner politelyThey stack by measured height, only one opens at a time, and the ones that don't fit hide until there is room.
What I learned
The hard part of an embed isn't the widget, it's being a good guest on someone else's page. Most of my time went into the rules for staying out of the way, and those rules are what make it safe to switch things on from a dashboard without asking anyone to redeploy.
Something similar in mind?