Instantly push messages from mobile to computer

Scan this QR code to try it now.

Did you know? Most mobile devices can now scan a QR code directly from the camera.

var channel =
    await qrPush.open({
      target: "/send.html
    "})

var message =
    await channel.receive()
Receive a message
// in send.html
qrPush.send({greeting: "hello"})
Send a message

Get started now

Get setup with just three lines of code.

See the full docs.

A great user experience

Dynamic QR codes are a simple and secure way for multi-device usecases. Here are some usecases that are a perfect fit for QRpu.sh:

key icon Sign in to web applications from app
social profile icon Sharing social profiles in person
kettlebells icon Dashboards for health tracking apps
office building icon Self checkin services

Pricing

QRpu.sh is free to use, without an account. Go straight to the docs and get started.

Hacker

  • No account needed
  • Short urls
  • Small QR codes
  • App URL schemes
  • Free forever

Business

  • Multiple events in channel
  • fast send with WebRTC
  • Sender metadata
  • OS specific redirects
  • Coming soon

QRpu.sh is currently in beta phase. Contact us to find out more about release plans.

Contact us

QRpu.sh is run by trykno.com. If you would like to get in touch, please email us at team@trykno.com. Or use the form below:

Documentation

QRpu.sh offers a JavaScript API for sending and receiving messages. The client code is open source.

Install

From CDN

<script src="https://www.qrpu.sh/qr-push.js"></script>

Opening a channel

qrPush.open(otions)

Used to start a connection with the push servers.

Returns a promise that will resolve with a channel once it is ready to accept a message.

Options

  • target: The url of the page which will open when the QR code is scanned. This url will have the push url added as the "qrpu.sh" search parameter .
  • display (optional): Should the QR code be displayed when the channel is opened. Default value is true.

Receiving a message

channel.receive()

Wait to receive a message over the channel. This returns a promise that will complete when a sender has sent a message over the channel.

Sending a message

qrPush.send(message, pushURL = undefined)

Used to send a message over the referenced channel.

The message will be serialised as JSON to be sent to the receiver.

Normally no pushURL needs to be specified as it will be inferred from the page url.

Displaying an overlay

channel.displayOverlay()

Displays the QR code over the top of the current page.

Adding QR code into web page

The push URL can be accessed directly to have full control over adding the QR code into your page.

channel.dataPushURL

A data URL that contains an SVG representation of the QR code. It can be displayed at any resolution.

var $img = document.getElementById('my-qr-img')
$img.src = channel.dataPushURL

channel.pushURL

The URL that needs to be scanned, use this to handle encoding the QR in your application code.