MCPcopy Index your code
hub / github.com/GoogleChrome/webstatus.dev

github.com/GoogleChrome/webstatus.dev @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
4,412 symbols 12,145 edges 554 files 1,044 documented · 24%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

webstatus.dev

build GitHub Issues Contributions welcome

Overview

webstatus.dev is a tool to monitor and track the status of all Web Platform features across dimensions that are related to availability across browsers, and adoption and usage by web developers.

This tool utilizes workflows to ingest data from different public sources such as:

The tool serves this data through a Go backend via an API described in a OpenAPI document.

The tool provides a frontend dashboard written in Typescript to display the data.

To understand how these components interact in the cloud and during local development, please refer to the Architecture Diagrams.

Search Syntax

webstatus.dev provides a powerful search feature to help you find the information you need. To learn more about the search syntax and its capabilities, please refer to our Search Syntax Guide.

Get the code

This repository relies heavily on devcontainers to get started.

To continue setting up locally:

git clone https://github.com/GoogleChrome/webstatus.dev
code webstatus.dev # Opens Visual Studio Code with the webstatus.dev folder.

# While inside Visual Studio Code, start the devcontainer.
# Start it by:
# 1. Opening the Command Palette (via View -> Command Palette)
# 2. Select the option: Dev containers: Rebuild and Reopen in Container

Running the services locally

After getting the code with or without devcontainer, check out the DEVELOPMENT.md for more information to get started and running locally.

Using Gemini CLI

This devcontainer comes with the Gemini CLI tool. To use it, you can set the GEMINI_API_KEY environment variable on your host machine, and it will be automatically configured in the devcontainer. If you do not set it on the host, you will need to authenticate manually after the devcontainer starts.

Deployment

For project administrators or users interested in deploying their own version, refer to the DEPLOYMENT.md.

Contributing

We welcome contributions from the community to help make webstatus.dev even better! There are many ways you can contribute, including:

  • Reporting bugs: If you find a bug, please open an issue on GitHub.
  • Suggesting enhancements: Have an idea for a new feature or improvement? Open an issue to share your suggestion.
  • Improving documentation: Help make our documentation clearer and more helpful by submitting pull requests with corrections or additions.
  • Code contributions: We welcome contributions to our codebase! If you'd like to fix a bug or implement a new feature, please submit a pull request.

Before you start contributing, please read our CONTRIBUTING.md guidelines for details. Additionally, please review our Code of Conduct.

Extension points exported contracts — how you extend this code

WebFeatureDataGetter (Interface)
WebFeatureDataGetter defines an interface for retrieving web features data from some underlying source. [7 implementers]
workflows/steps/services/wpt_consumer/pkg/workflow/get_web_feature_map.go
FeatureResultVisitor (Interface)
FeatureResultVisitor defines the methods for visiting each result type. [7 implementers]
lib/backendtypes/feature_result.go
Payload (Interface)
Payload represents a complete, versioned data structure intended for storage as a blob. The Kind() and Version() method [8 …
lib/blobtypes/migrator.go
ListRequest (Interface)
--- Generic Entity Lister --- ListRequest is an interface for list requests that support pagination. [7 implementers]
lib/gcpspanner/client.go
Event (Interface)
Event is the interface that all routable messages must implement. It allows the router to infer the Kind and APIVersion [9 …
lib/event/event.go
JobProcessor (Interface)
JobProcessor defines the contract for processing a single job within a workflow. [8 implementers]
lib/workerpool/pool.go
EventSubscriber (Interface)
(no doc) [7 implementers]
lib/gcppubsub/gcppubsubadapters/event_producer.go
Mergeable (Interface)
(no doc) [20 implementers]
lib/gds/client.go

Core symbols most depended-on inside this repo

Error
called by 344
lib/gcpspanner/searchtypes/features_search_visitor.go
Run
called by 287
workers/event_producer/pkg/producer/producer.go
Error
called by 149
lib/backendtypes/types.go
Equal
called by 83
lib/workertypes/comparables/types.go
Query
called by 79
lib/gcpspanner/client.go
Close
called by 71
lib/gcpgcs/client.go
render
called by 65
frontend/src/static/js/components/webstatus-line-chart-panel.ts
get
called by 35
lib/gds/client.go

Shape

Method 1,868
Function 1,255
Struct 825
Class 193
Interface 173
TypeAlias 75
FuncType 18
Enum 5

Languages

Go81%
TypeScript19%

Modules by API surface

backend/pkg/httpserver/server_test.go134 symbols
lib/gcpspanner/client.go132 symbols
lib/gcpspanner/spanneradapters/backend_test.go130 symbols
lib/gcpspanner/spanneradapters/backend.go106 symbols
lib/gcpspanner/feature_search_test.go71 symbols
lib/workertypes/types.go70 symbols
backend/pkg/httpserver/server.go54 symbols
lib/gcpspanner/feature_search_query.go48 symbols
lib/gcpspanner/web_features.go45 symbols
lib/gcpspanner/searchtypes/features_search_visitor.go44 symbols
frontend/src/static/js/api/client.ts43 symbols
lib/gcpspanner/saved_search_subscription.go42 symbols

For agents

$ claude mcp add webstatus.dev \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact