v0.16.155 - 58.9 / 44.8

potaPota Logo

pota is a small and pluggable Reactive Web Renderer. It's compiler-less, includes an html function, and a optimized babel preset in case you fancy JSX.

The API and base components are heavily inspired by Solid, albeit things differ to an extent based on personal preferences.

The reactive library in use used to be pluggable, included oby, flimsy among other attempts at implementations. The main idea was to support all signal libraries, but subtle differences and lack of owners/context made the task difficult and time consuming. It required dedication that I rather put on the renderer.

# The Gist

The signal is used as function {count} rather than as a value {count()}.

# Key Points

  1. Reactivity that is easy to understand. If something is a function, it can be reactive; if it is not a function, it's not reactive
  2. Doesn't use prop getters, or any getters; you can destructure function arguments and objects
  3. Renders any kind of XML, including custom namespaces
  4. Provides a propsPlugin function for using custom props on any element
  5. Allows multiple callbacks on components like Show and For
  6. Functions are tracked, regardless of nesting depth
  7. Renders objects, promises, maps, sets, etc
  8. Supports Class components with automatic method registration for ready and cleanup
  9. Portal does not wrap children in a div
  10. Includes a simple but full featured Router component
  11. Does not include server side rendering (SSR)
  12. Utilities to track objects, as mutable, signalify with reconcile-like apis. See Reactivity

# All In One

# Why

To understand reactivity better, and learn the inner bits of an automatic dependency tracking reactive renderer. The Source code is small and readable. Prioritizes consistency and is subjectively easy to understand. Its driven by developer needs, not benchmarks.

# Next

Personally, this library adapts better to my expectations. The purpose of this page is to have a place to see it in action, test and document the renderer, its different components and behaviors.

Logo kindly provided by @boredofnames