Measuring AsyncAPI spec adoption
- Dominant language
- TypeScript
- Stars
- 716
- Forks
- 1.2k
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 35
Description
#### Reason/Context
We do not know how many people use AsyncAPI. The most accurate number we could get is the amount of the AsyncAPI users that work with AsyncAPI documents. But how measure how many people out there created/edited AsyncAPI file?
The answer is a solution that includes:
- [SchemaStore](https://github.com/SchemaStore/schemastore/issues/1048)
- promotion of using `asyncapi` in a filename created using AsyncAPI spec
- having a server where we expose all JSON Schemas provided for AsyncAPI
- storing somewhere info whenever JSON Schema is fetched by users, so we can count it as "usage"

Some more discussion -> https://asyncapi.slack.com/archives/C0230UAM6R3/p1622198311005900
#### Description
1. Create new endpoint in `server-api` service that anyone can use to fetch AsyncAPI JSON Schema files of any version
2. JSON schemas are in https://github.com/asyncapi/spec-json-schemas and can be used as normal dependency
3. Whenever JSON Schema file is fetched by the user, information should be stored somewhere. I propose Google Tag Manager as we already have it for the website, we can send data there and then easily read data. I'm all ears if there is something better and still free
4. Add AsyncAPI config to SchemaStore and have a configuration on AsyncAPI side that will always automatically open a PR against SchemaStore to provide a new location of a new version of the JSON Schema for the new AsyncAPI spec version
5. Update docs and instructions for users how to configure IDE properly and how to name files. Update official examples
If time left, we need to expose numbers somewhere. Either embed Google Analytics diagram somewhere on the AsyncAPI website or just have at least an API endpoint that exposes the latest numbers.
#### For GSoC participates
- you get to code TS in a service that is publicly available and you are sure your work will be consumed by thousands of people
- you will learn automation with GitHub Actions
- you will have a chance to learn how to integrate with different services, like Google API, unless you find a better solution and better API to use
- you will learn in-depth how autocompletion in IDEs is done with SchemaStore
Contributor guide
Research direction
Start by reviewing the server-api service, the spec-json-schemas repository, and the SchemaStore issue linked in the description. Trace how schema versions can be served and usage recorded, then review the requested GitHub Actions automation, documentation, and official examples. Done means the endpoint, usage measurement, SchemaStore integration, and user guidance are implemented or explicitly scoped.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, typescript
- Domain
- analytics, api, documentation, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100