A minimal toolkit for building web components and applications with dependency injection, observables, and templating.
Joist is a small (~2kb) toolkit designed to enhance web components with essential features like dependency injection, observables, and templating. It solves the challenge of building productive, reusable components across diverse environments, from legacy platforms to modern frameworks, by providing minimal, focused utilities.
Frontend developers working with web components in mixed-technology stacks, such as those integrating with Salesforce, ServiceNow, React, or Lit, who need lightweight tools to boost productivity.
Developers choose Joist for its minimal footprint and focused functionality, offering just the essentials to streamline web component development without the overhead of larger frameworks, making it versatile for any JavaScript environment.
A small (~2kb) library to help with the creation of web components and web component based applications
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The entire toolkit is around 2kb, ensuring fast load times and low overhead, aligning with its philosophy of adding only essentials to web components.
Works seamlessly from legacy platforms like Salesforce and ServiceNow to modern frameworks like React and Lit, making it ideal for mixed-technology stacks.
The @joist/di package provides a small, efficient DI container for sharing state and services between custom elements, simplifying component communication.
@joist/observable enables easy tracking and reaction to property changes with a straightforward API, enhancing reactivity without complex setups.
Focuses only on core utilities like DI and observables, so advanced needs such as routing, form handling, or animations require additional third-party libraries.
As a collection of separate packages (e.g., @joist/di, @joist/element), integration can become complex, leading to version management and setup overhead.
Lacks the extensive community plugins, tools, and learning resources found with larger frameworks, which may slow down development for complex projects.