# OpenShock > OpenShock — a free and open-source ecosystem to control various shock collars over the internet. OpenShock is the web frontend of the OpenShock platform. Authenticated users manage hubs (ESP32-based bridges), shockers, share permissions, API tokens, and live control sessions. Unauthenticated visitors can flash firmware to a device over WebSerial or sign up for an account. ## Public pages - [/](https://openshock.app/) - [/report/api-tokens](https://openshock.app/report/api-tokens) - [/terminal](https://openshock.app/terminal) ## Authentication pages - [/activate](https://openshock.app/activate) - [/forgot-password](https://openshock.app/forgot-password) - [/login](https://openshock.app/login) - [/oauth/error](https://openshock.app/oauth/error) - [/signup](https://openshock.app/signup) - [/verify-email](https://openshock.app/verify-email) ## External resources - [openshock.org](https://openshock.org): project website - [wiki.openshock.org](https://wiki.openshock.org): user and developer documentation - [GitHub](https://github.com/OpenShock): source code and issues - [Discord](https://discord.gg/OpenShock): community chat and support ## Backend API - [v1 OpenAPI spec](https://api.openshock.app/swagger/1/swagger.json) - [v2 OpenAPI spec](https://api.openshock.app/swagger/2/swagger.json) ## Notes for crawlers Routes under `/home`, `/hubs`, `/profile`, `/settings`, `/shares`, `/shockers` require authentication and contain user-specific data — not indexable: - /home - /hubs - /hubs/[hubId]/update - /profile - /settings/account - /settings/api-tokens - /settings/api-tokens/new - /settings/audit-log - /settings/connections - /settings/sessions - /shares/public - /shares/public/[shareId]/edit - /shares/user/incoming - /shares/user/invites - /shares/user/outgoing - /shockers/[shockerId]/edit - /shockers/logs - /shockers/own - /shockers/shared