Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/radarsu/demand

Lighweight and blazingly fast framework that uses latest browser features with an aproach "use the platform" to provide you the greatest setup. No magic included.
https://github.com/radarsu/demand

Last synced: about 2 months ago
JSON representation

Lighweight and blazingly fast framework that uses latest browser features with an aproach "use the platform" to provide you the greatest setup. No magic included.

Awesome Lists containing this project

README

        


demand logo

Simplicity is the ultimate sophistication.


npm
license
stars
social twitter


Lighweight and blazingly fast framework using latest browser features with use the platform approach to provide you the greatest setup. No magic included.

## What problem it solves?

**Webpack**: CommonJS module resolution **adds tons of code to every js file**. It bundles stuff, which nowadays **is bad for http2 and cache'ing resources**.

**Angular** is **huge, initial page load is slow**. We decided to load all the JavaScript, html and css in the ES6 module dynamically, so **initial website loading takes absolutely no time** and all **component-based resources are added during runtime on-demand**.

**Vue and React** are close to what we are, but **they do hell-a-lot of magic**. Virtual DOM, Webpack, getters and setters. We replace that with simple and neat **lit-html**.

## What do we use?
- **@pika/web** - runs npm dependencies directly in the browser. No Browserify, Webpack or import maps required.
- **Gulp** for building process.
- **lit-element** for WebComponents.

## Features

1. **Convention over configuration** - we make certain assumtions. When a simple convention can produce less and cleaner code - we go for it.

2. **Lightweight** - we use **lit-html** and continue it's thought, that adding any line of code should be considered twice. We don't do fancy stuff.

3. **Minimum dependencies** - everything that can be done relatively easy using native NodeJS & JavaScript should be done this way. Every external dependency reduces security. We avoid that.

4. **No bundling** - bundling is obsolete with HTTP/2. We use ES6 modules instead.

5. **No magic** - we avoid hidden actions, using getter's and setter's, doing some magic stuff and side-effects that you might be unaware of.

6. **On-demand-loading** - unlike **webpack** and other bundlers, we load everything into browser on-demand. Every script is an independent module.

7. **Only-best-setup** - you don't need https or would like to use http1? Sorry, we support only http2 & https setup, because we think is the best. Same goes for old browsers. We prefer to force users to update stuff!

8. **Performance** - we are focused on performance in every aspect. Fastest building, fastest rendering, fastest compilation, fastest initial page load speed and fastest hot module replacement.