Soil

screenshot of Soil

Type-safe HTML and custom components at your fingertips.

Overview

Soil is an innovative foundational library designed to streamline the development of long-lasting web applications. In the fast-evolving web ecosystem, Soil stands out by allowing developers to declaratively create type-safe HTML and SVG elements, effectively blending HTML with JavaScript in a seamless manner. This approach not only simplifies the coding process but also ensures that applications remain reliable and maintainable over time.

As web frameworks often introduce a range of complexities and interoperability issues, Soil offers a refreshing alternative by embracing modern web standards. It focuses on providing a minimal set of basic elements that support high-quality application development, making it competitive with the most popular frameworks in terms of performance, testability, and development experience.

Features

  • Declarative Syntax: Easily create type-safe HTML and SVG elements with a writing style that feels natural and intuitive.

  • Component Architecture: Encourages building components that are framework-agnostic, closely resembling Web Components for effective UI rendering and interaction.

  • Dynamic HTML Manipulation: Utilize type-safe functions that map directly to standard HTML elements, ensuring a clean and consistent coding experience.

  • Custom Component Support: Develop custom components that can seamlessly integrate and behave like native elements, enhancing reusability across your application.

  • Dependency Management: Supports pure dependency injection, allowing for streamlined management of component dependencies via default parameters or factory functions.

  • Simple Communication: Facilitates easy communication between components, even those that are distant, using native CustomEvent for efficient event handling.

  • Installation Ease: Available on npm's registry, Soil can be quickly installed using npm or Yarn, making it accessible for rapid project initiation.

  • Improved Auto-Completion: The library’s design provides better auto-completion experiences during development, saving time and reducing the likelihood of errors.

typescript
Typescript

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.

web-components
Web Components

Web components provide a way to create reusable, encapsulated UI components using standard web technologies such as HTML, CSS, and JavaScript. They allow developers to create complex UI components that can be easily shared across multiple projects and frameworks. Web components are built using four main specifications: Custom Elements, Shadow DOM, HTML Templates, and ES Modules.

webpack
Webpack

Webpack is a popular open-source module bundler for JavaScript applications that bundles and optimizes the code and its dependencies for production-ready deployment. It can also be used to transform other types of assets such as CSS, images, and fonts.