IMRelay Chat
IMRelay Chat for WordPress. Adds the IMRelay chat widget to your site; answers from your own documentation and hands over to your team.
by IMRelay · github.com/fivebucksventures/imrelay-chat · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/fivebucksventures/imrelay-chat/archive/refs/heads/main.zipIMRelay Chat — WordPress plugin
Puts IMRelay Chat on a WordPress site.
Its own repo because it is not Next.js. PHP, a different toolchain, and a
release cadence tied to WordPress rather than to the app. The IMRelay app lives
in imrelay/.
What it does
Injects one script tag:
<script src="https://www.imrelay.io/widget/widget.js" data-relay data-site="HANDLE" defer></script>
That tag is byte-for-byte the one an owner would paste by hand, and the same one the Wix app writes. Build once, wrap twice: the snippet is the substrate and the wrappers are delivery. If the tag shape changes it changes in one place and all three follow.
The two things worth knowing before changing anything
🔴 It holds no secret. data-site is an opaque public handle that is in page
source on every visitor's browser anyway. Every control lives on IMRelay's side:
the per-site origin allowlist decides which websites may open a chat, the rate
limits decide how fast. A plugin holding an API key would be a credential in a
database on shared hosting, which is exactly what this avoids.
⚠️ The tag shape is a public API. Plugins sit on customers' sites for years
and cannot be quietly re-specified. data-relay and data-site are fixed.
Layout
imrelay-chat.php |
Plugin header, enqueue, the script_loader_tag filter |
includes/class-imrelay-settings.php |
The IMRelay Chat top-level menu item |
uninstall.php |
Removes options only. Never touches IMRelay data |
readme.txt |
wordpress.org format, used by the plugin directory |
build.sh |
Produces the installable .zip |
Releasing
./build.sh # -> imrelay-chat-1.0.0.zip
A self-hosted zip needs no approval from anybody, which is why it ships first. A wordpress.org listing needs their plugin review; a Wix App Market listing needs Wix's. Both are gates outside our control, the same shape as Meta's App Review, and neither blocks getting this into a customer's hands.
Local development
Point the plugin at a local IMRelay by adding to wp-config.php:
define( 'IMRELAY_ORIGIN', 'http://localhost:3000' );
⚠️ The origin check still applies. Set the WordPress site's own address in IMRelay under Channels → IMRelay Chat, or the widget will load and then refuse, which looks identical to it not loading at all.