HTTPS SSH

Lightweightform

npm version lerna License: Apache-2.0

Lightweightform (or LF for short) is an Angular-based open source web framework that simplifies the development of complex web forms. This repository contains the source code, documentation, and examples powering Lightweightform.

Why was Lightweightform created?

It all started with a few challenges:

  • How to build complex web forms (possibly with more than a thousand fields each) as single page applications?
  • How to handle and validate data provided by millions of users?
  • How to effectively maintain and evolve multiple of these web forms, possibly all under a single design language?

With these challenges in mind, we started to work on a framework that attempts to deal with most of the low-level aspects of building web forms whilst allowing developers to spend their time on what matters most: the business logic (or form-specific logic). The result was a powerful solution to build complex forms in a quick and simple way: Lightweightform.

Goals of Lightweightform

Extensibility and configurability

Lightweightform works under the pretext of "themes". To LF, a theme is a package which provides a set of Angular components that developers can use to build their web form applications. Themes should be built on top of LF's core.

We provide an "official" theme under the name of Bootstrap theme, available as @lightweightform/bootstrap-theme. Developers who are happy with only changing the style of the Bootstrap theme may do so by overriding the provided SCSS.

Developers may further create new components directly on top of LF's core or, if they do in fact require a whole different look for their web form applications, they are encouraged to build a new theme on top of the core using the Bootstrap theme as reference.

Being able to maintain a set of applications under a single theme is one of LF's goals in order to ease the maintenance and evolution of said applications.

Don't repeat yourself

Arguably one of the most important aspects of form development is the validation of their data. Typically this validation should occur both on the client and server side of an application in order to leverage from both efficiency and security.

It's an important goal of LF that these validations should not be written more than once, especially so in cases where there are thousands of fields to validate.

Automated testing

Forms should be thoroughly tested with automated tests.

Getting Started

We are still improving Lightweightform and will soon add more features. Yet, you can already use it to build complex and cross-platform forms and it will still probably be easier and faster than with any other framework available today.

Take a look at our tutorial as well as a few examples built using Lightweightform. The source code for a few examples may be found here.

Documentation

The documentation for Lightweightform's Bootstrap theme may be found at: https://lightweightform.io/documentation/

Examples

Example applications built with Lightweightform may be found at: https://lightweightform.io/examples/

Contributing

Contributions are always welcome. Please read our contributing guide on how to contribute.

License

Lightweightform is released under the Apache License 2.0.