You don’t climb this alone.

Contact, support and feature requests from every product you run land in one inbox. A script tag on the page, and no backend to build.

Start free See the snippet No card. A working form in two minutes.
first message first reply the same request, thirty times shipped
The route

Three stages, and you’re at the top

No ticketing system to configure first. The form is up before your coffee has gone cold.

  1. Embed

    One script tag on your site. The form renders inside a shadow DOM, so your CSS cannot break it and it cannot break yours.

  2. Triage

    Everything lands in one inbox, across every product. Similar requests are grouped on the server — thirty people asking for dark mode counts once, not thirty times.

  3. Reply

    Status, priority, history. And when someone cannot put what went wrong into words, they record it and you watch it.

Embed

One line, and your page starts listening

No build step, no dependency, no 300 kB chat bundle. The widget fetches its forms from the server, so editing one in the dashboard changes it on your site without a deploy.

<script src="https://api.echohatch.com/w.js" data-echohatch-project="pub_…" data-echohatch-type="support"></script>
What it costs you
  • 10 kBthe widget, gzipped — the rest of your page stays your page
  • 4languages it speaks itself; you translate your forms in the dashboard
  • 0cookies it sets
  • 5 MBof attachments per submission, screenshots included
When words run out

“Here, let me show you”

Some problems cannot be typed. Anyone who wants to can record what they are trying to show you, and they can see the whole time that a recording is running. Nothing is captured until someone presses the button, every input is masked, and they can throw the recording away before sending.

What gets recorded is the DOM, not the screen. That is why it works on a phone, and why a minute weighs about a hundred kilobytes instead of twenty megabytes.