Giter Site home page Giter Site logo

marcodpt / app Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 930 KB

A minimalistic hyperscript framework

Home Page: https://marcodpt.github.io/paw/#/users

License: MIT License

HTML 4.20% JavaScript 95.80%
app bootstrap dashboard font-awesome json-schema spa components hyperscript no-vdom router page-builder seo low-code themes framework ssr

app's Introduction

Paw

A minimalistic hyperscript framework.

Demo

Features ❤️

  • Theme builder
  • Built-in router
  • SPA with SSR index.html optimized for SEO
  • No build steps
  • No vDom
  • Stop the nonsense of rewriting any JS library for a framework!
  • JSON Schema based forms
  • HTML to Hyperscript converter
  • Table data with great flexibility
  • Graph
  • Chart
  • Barcode
  • Maps

Motivation 📢

Why are JS frameworks bad?

Frameworks like:

suffer from the same problem.

We can argue that vDom is slow so svelte solves the problem by compiling javascript in the build steps.

We can argue that the frameworks are heavy and svelte solves the problem again, qwik only loads js on demand, and hyperapp is too minimalistic.

We can argue that build steps are unecessary complication and hyperapp is the clear winner here.

But this is getting away from the central problem with these approaches, which they ALL suffer from.

The problem is that frameworks need to control JavaScript centrally in the elements and/or components that are used.

This implies that the code of a library external to the framework must be rewritten.

See for example the number of existing Bootstrap javascript implementations:

These projects exist for the reason that vDom and the implementation of a component library conflict.

If you need a less popular external library and/or use a framework with a smaller community, you will have to reimplement javascript or wait for someone to do it with all the difficulties and bugs involved.

Why web components are bad?

Libraries like Shoelace allow you to use reactive components within these frameworks without having to be reimplemented.

The problem is data exchange, two way data binding needs to be implemented individually for each framework.

Components written in HTML do not have the good parts of these vDom frameworks that allow you to easily pass objects, arrays and functions to them, greatly limiting their capacity and making the API difficult.

Why I build this project?

I wanted to have components with all the capabilities of javascript frameworks (passing objects, arrays and functions).

And have a simplified interface to access work done in libraries like Bootstrap without having to reimplement javascript.

The fact that using hyperscript allows you to encapsulate the logic of the components in small modules that make the weight of the vDom unnecessary.

I didn't want to have to deal with the complications of build steps.

And I wanted the libraries I used to only be loaded when called (using es6 modules or dynamically adding the script to the page).

And to achieve good SEO, produce an SSR home page with the customization options that exist in the open source world.

I didn't find anything on github or google that went this route, so I created it.

TODO 🔧

  • dynamic tests implementation

  • separate router and data-paw as a plugin

  • make a bundled and minified version available

  • put a hello world in the documentation and in the generated index.html

  • datalist do not work on firefox mobile

  • semantic html tests, no string cmp

  • formatter should be a component?

  • allow icon with input to avoid unicode and translation

  • separate input and output options

  • allow to see other tests variants

  • dynamic validation with functions

  • input wrapper review

  • remove or minimize lang support

  • remove non bootstrap options support, minimize options and review settings

  • separate outputs

  • remove whitespace for pre tag

  • external links simbol and remove data-paw-path

  • copy features to home article and allow to edit it

  • better array ctrl support (minimize, up, down, remove, add)

  • deep router param is an array (?, +, *) support at the end of var

  • allow icon, title and description in navbar and sidebar

  • finish documentation

  • finish static tests

  • finish dynamic tests

Contributing 🤝

It's a very simple project. Any contribution, any feedback is greatly appreciated.

Support ⭐

If this project was useful to you, consider giving it a star on github, it's a way to increase evidence and attract more contributors.

Acknowledgment 🙏

This work would not be possible if it were not for these related projects:

A huge thank you to all the people who contributed to these projects.

app's People

Contributors

marcodpt avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.