Builders made easy

Powerful library for crafting your own form builders and beyond.

export const formBuilder = createBuilder({
entities: [
createEntity({
name: "textField",
validate: (value) => z.string().parse(value),
}),
],
});

Introduction

Getting started

Learn how to get started with Builder through our guides.

Installation

Step-by-step guides for setting up and using the library.

Core concepts

Learn the core concepts to better understand the library.

Guides

Explore our guides to spark your inspiration.

API reference

Dive into the API Reference for detailed guidance.


Live Example

A simple example of what can be accomplished with Builder.

View on Github

Introduction

Builder is a versatile TypeScript library designed for crafting custom form builders and much more. You can also develop website builders, dashboard builders, and any other builders you envision.

Some key characteristics:

  • Headless: Bring your own components and design the user experience as you want.
  • Full-stack: Provides comprehensive tools for building both the interface and validate schemas on the back-end.
  • Typesafe: Ensures full type safety by default in every aspect.
  • Multi-platform: Runs on web, mobile, servers, serverless, and workers.
  • Framework agnostic: Features a core that is independent of any front-end framework.
  • Zero dependencies: Offers a streamlined, lightweight library.
  • Unopinionated: Affords you the freedom to build anything you imagine.
  • Progressively Enhanceable: Embraces web standards.

Currently, Builder offers support for React, with plans to extend compatibility to other front-end frameworks in the future.

Alpha Stage

We are successfully using Builder in real-world production apps. However, it's important to note that the project is currently in the alpha stage, which means that breaking changes can occur even in minor or patch updates.


Getting Involved

You're welcome to join our community, engage in discussions, open issues, contribute, and make new friends!

Submit an issue

If you encounter any issues or bugs, we encourage you to report them on our GitHub Issues page.

Before submitting a new issue, please check if there is a solution or question posted on our GitHub Issues page already.

When opening a new issue, please be as explicit as possible, preferrably by following our Bug Report Template.

Join the community

For sharing ideas and engaging in discussions, our GitHub Discussions forum is the perfect place.

We are open to considering any ideas that provide real value to other developers and fall within the scope of the project.

We will appreciate any type of contributions, including pull requests, documentation improvements, videos, blog posts, and so on.