Duck

The JavaScript UI Unframework

Frameworks are great, but you don't need one
A simple method of building web apps without using a framework
Simple
Scalable
Flexible
Website built in Duck
Introduction
For web applications where you don’t require a framework, but still require organization, reusability, and scalability. Duck provides a simple framework-like developer experience.
Unlike traditional frameworks, like Vue or React, Duck does not consist of any underlying importable module(s) and is hence dubbed an “Unframework”.
One of the main goals behind Duck was to simplify and strip down JavaScript UI development as much as humanly possible, without using any external dependencies/libraries, but still remain feasible to use as a "framework". This included completely eliminating any possible forms of “behind the scenes” underlying abstractions and even simplifying the way of writing JavaScript. Stripping things more and more, and some more, lead to the eventual inception of Duck.
Duck is great for,
  • A low-investment way to start a web app project before commiting to a framework
  • Implementing add-on features into existing websites/projects, such as widgets, plugins, etc
  • Web applications where you want flexibility, control over events/timing, and control of the DOM
Duck is for all developer skill levels. In fact, Duck was invented in the same way that you probably learned HTML for the first time - with just a single blank index.html file. I think this is something that beginner and professional developers alike can all appreciate.
Duck does not require any build tools such as webpack or rollup.
The "Un"framework
Instead of an underlying library, Duck consists of five underlying principles,
  • Philosophies
  • Core
  • Rules
  • Patterns
  • Recipes
Philosophies are fundamental guiding principles, the core contains the fundamental code scaffolds, rules should be followed, patterns can be used, and recipes can be used for common tasks.
The Gist
In practice, Duck is based on two things,
  • Stores
  • Components
And, that’s it! More or less anyway... Get started to start building web applications in Duck!
Released under the MIT License
Copyright © 2022 Tom Knapp-Ramos