# Browser Extension

Because site validation can't be left to the sites' own devices, Ringspace provides a reference browser extension to demonstrate how a user might interact with a webring.

## Demonstration

For this demo, I have two sites set up: `http://site1:8001` and `http://site2:8002`. I also have a ring set up at `http://192.168.1.113:8000`. Forgive the local addresses; it's testing!

I have the Ringspace extension loaded in my browser. When I visit any site, the extension makes a request to `.well-known/webrings.json`. If it finds a manifest, the icon changes to a "found" state.

![Ringspace icon found state](extension-1.png)

Clicking on the icon, the Ringspace UI appearss, showing what it found.

![Ringspace extension UI](extension-2.png)

1. The Site name, description, and public key.

2. Any joined ring information.

3. A validation button.

Clicking "Validate" queries the ring servers at `/api/member/validate` with the manifest information. Standing and vote information, as well as manifest validation are added to the UI. If successful, the icon turns green and a checkmark badge appears.

![Ringspace validation success](extension-3.png)

Errors and validation failures are noted in orange and red, respectively.


![Ringspace validation error](extension-4.png)
![Ringspace validation failure](extension-5.png)
