a2ui-project / a2ui-project/a2ui

Support "portable A2UI web Components" which can be installed in a Catalog for *any* framework adapter

Open
#1,270 4 comments 0 reactions 1 assignee Claimed by @josemontespg View on GitHub
P2 sprint ready type: feature/enhancement
Dominant language
TypeScript
Stars
16.4k
Forks
1.3k
Avg merge
2d 13h
Merged PRs (30d)
134

Description

On the web, we have adapters for many different frameworks, that allow Angular developers to define components in an Angular-specific way, and React developers to define components in a React-specific way. This is great for the use case where a developer needs to implement a component for one specific framework, because they can do so in a familiar, ergonomic way.

But, there is also a use case where you want to define a component that can be used with any web framework via any framework adapter. This is especially true of shared components which some providers may vend. E.g. MySocialMedia company might implement a MySocialMediaPost Component library which can be used to display a specific post. Then different application developers might install the my_social_media_a2ui library from NPM and add that component to their catalog. In this case, we want to make it so that MySocialMedia does not need to implement 5 different versions of their component for different frameworks, but just implement it once in a low-dependencies way, and have it useable everywhere.

Also, developers of new A2UI framework adapters (e.g. for other frameworks like Svelte, Vue etc) should be able to implement support for this type of component cheaply, and give developers access to the ecosystem of Components.

Also see https://github.com/google/A2UI/issues/931 which describes this pattern specifically as a way to centralize the basic catalog implementation.

Contributor guide

Open the contributing guide

Research direction

Review the existing framework adapters (Angular, React) to understand the adapter pattern. Examine issue #931 for context on centralizing catalog implementation. The work involves designing a low-dependency component definition system that can be consumed by any adapter. Start by exploring the core catalog and adapter interfaces to identify extension points.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.