← Back to lab
ProductIn beta testingProject 11 / 14

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

Ask for a walkthrough

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
Switching the survey on in the dashboard, then seeing it appear on the studio's site.
A visitor rates the site and leaves a short note.
Feedback and a survey running on an invented ceramics studio site, from one script tag.
Feedback and a survey running on an invented ceramics studio site, from one script tag.
The site overview: engagement over 28 days and the four experiences.
The site overview: engagement over 28 days and the four experiences.
The feedback editor with a live preview of the real widget.
The feedback editor with a live preview of the real widget.
All responses in one feed, with sentiment, page and device.
All responses in one feed, with sentiment, page and device.
The survey, one question per screen, on the same site.
The survey, one question per screen, on the same site.

Up close

The details that carry it.

Emoji feedback
Emoji feedbackThe rating saves on the first click, before any follow-up.
One switch per experience
One switch per experienceEach card shows where and when it appears, and turns it on for the site.
Partial answers kept
Partial answers keptA survey left halfway still shows every answer given.

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.

Project notes

This project is in beta testing, open to invited testers. It keeps changing as I use it and learn from the people who do.

Something similar in mind?

Most of these started as a question I couldn't let go of. If you have one too, let's talk.

To MaxAn ideaWhat would you like to build?I've been wondering whether…I read every message myselfWrite →