explaingit

google/physical-web

5,973JavaAudience · developerComplexity · 3/5Setup · hard

TLDR

Google's open standard that lets physical objects broadcast a web URL over Bluetooth so nearby phones can open it instantly, no app download required, just tap and go.

Mindmap

mindmap
  root((Physical Web))
    Core idea
      Beacon broadcasts URL
      No app needed
      Tap to open
    Technology
      Eddystone spec
      Bluetooth beacons
      mDNS and Wi-Fi
    Clients
      Android app
      iOS app
      Node.js client
    Use cases
      Vending machines
      Transit stops
      Posters and signs
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build an Android or iOS app that scans for nearby Eddystone Bluetooth beacons and shows a list of broadcast URLs from physical objects.

USE CASE 2

Deploy a Physical Web beacon on a product, poster, or kiosk so passersby can open its web page with no app install required.

USE CASE 3

Use the Node.js client to build a utility that detects nearby beacons and takes automated action based on the broadcast URL.

Tech stack

JavaNode.jsAndroidiOSBluetooth

Getting it running

Difficulty · hard Time to first run · 1h+

Requires Eddystone-compatible Bluetooth beacon hardware plus a supported mobile device to test the full end-to-end flow.

License not mentioned in the explanation, check the repository for terms.

In plain English

The Physical Web is a Google project built around a simple idea: everyday physical objects should be able to broadcast a web address, and anyone nearby with a phone should be able to tap and open it without installing an app first. Think of a vending machine, a bus stop, a poster, or a rental car each broadcasting a URL. Your phone sees that URL and you can interact with it immediately through a web browser, the same way you would tap a link on a website. The technology works by having a small wireless transmitter, called a beacon, continuously broadcast a URL over Bluetooth or other short-range wireless signals. A nearby device running a Physical Web client app scans for these broadcasts and presents the URLs to the user as a list. The beacon itself is a separate hardware specification called Eddystone, which is linked from this repository. This repository contains the Android and iOS client apps, a minimal Node.js client for building utilities, and documentation covering the technical overview, getting-started guides, and support for different broadcasting methods including Bluetooth, mDNS, Wi-Fi Direct, and SSDP. The documentation also includes branding guidelines and an FAQ. The project is presented as an open standard, not a locked-down product. The design was released publicly so developers and companies could experiment with it and comment on the specification. The goal stated in the README is to allow the web to extend naturally to physical objects in the same way it already works for content on screens, without requiring a new app for each object a person encounters.

Copy-paste prompts

Prompt 1
Using the Physical Web Android client code as a reference, build an app that scans for Eddystone BLE beacons and displays each detected URL with its signal strength in a list.
Prompt 2
How do I configure a Bluetooth beacon to broadcast a URL following the Eddystone specification so Physical Web client apps can discover it?
Prompt 3
Using the Physical Web Node.js client, write a script that listens for nearby beacons and logs each detected URL alongside the beacon's RSSI signal strength.
Prompt 4
How does Physical Web handle URL broadcasting over mDNS or Wi-Fi Direct instead of Bluetooth, and what does the client app need to support both methods?
Prompt 5
I want to attach a Physical Web beacon to a retail product so customers can scan for it with their phone, walk me through the hardware needed and the URL format the beacon should broadcast.
Open on GitHub → Explain another repo

← google on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.