# hyperapp/hyperapp

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/hyperapp-hyperapp).**

19,211 stars · 776 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/hyperapp/hyperapp
- awesome-repositories: https://awesome-repositories.com/repository/hyperapp-hyperapp.md

## Description

Hyperapp is a lightweight JavaScript framework for building web applications. It functions as a declarative state management system that synchronizes the user interface with a centralized application state.

The framework utilizes a virtual DOM to render user interfaces and reconcile changes to the browser display. It employs a subscription model to synchronize external web APIs and asynchronous events with the global state.

The system manages data through a single-state-tree architecture, where updates are handled via discrete actions and pure functions. This approach ensures that the view updates automatically whenever the underlying state changes.

## Tags

### Web Development

- [Lightweight UI Frameworks](https://awesome-repositories.com/f/web-development/lightweight-ui-frameworks.md) — Provides a minimalist JavaScript framework designed for building fast web applications with low bundle size.
- [Pure Function Renderers](https://awesome-repositories.com/f/web-development/frontend-development-tools/frontend-frameworks/rendering-engines/render-functions/pure-function-renderers.md) — Generates the user interface by passing the current state into a pure function that returns a virtual tree.
- [Virtual DOM Implementations](https://awesome-repositories.com/f/web-development/frontend-development-tools/frontend-frameworks/rendering-engines/virtual-dom-implementations.md) — Uses a lightweight virtual DOM representation to optimize UI rendering through state reconciliation.
- [Centralized State Management](https://awesome-repositories.com/f/web-development/hydration-state-management/browser-side-state-management/centralized-state-management.md) — Maintains application data in a single source of truth within the browser environment.
- [Virtual DOM Reconciliation](https://awesome-repositories.com/f/web-development/virtual-dom-reconciliation/virtual-dom-reconciliation.md) — Efficiently updates the browser DOM by comparing a virtual tree to the actual display.
- [Web Application Frameworks](https://awesome-repositories.com/f/web-development/web-application-frameworks.md) — A small-footprint framework for creating web applications that synchronize browser APIs and UI states.
- [Synchronous Event Wrappers](https://awesome-repositories.com/f/web-development/browser-integration-utilities/browser-apis/synchronous-event-wrappers.md) — Manages asynchronous web events and requests using a simplified model to keep logic easy to follow.

### Part of an Awesome List

- [State Managers](https://awesome-repositories.com/f/awesome-lists/devtools/state-managers.md) — Manages global application data through a declarative subscription model and discrete action updates.
- [Web API Integration](https://awesome-repositories.com/f/awesome-lists/devtools/web-api-integration.md) — Integrates browser capabilities like network requests and timers through a declarative subscription model. ([source](https://github.com/hyperapp/hyperapp#readme))
- [Frontend Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/frontend-frameworks.md) — A micro-framework for building modern web applications.
- [Web Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/web-frameworks.md) — 1kb JavaScript library for building frontend applications.

### Data & Databases

- [Application State Management](https://awesome-repositories.com/f/data-databases/application-state-management.md) — Manages global application state and triggers view updates via discrete actions. ([source](https://github.com/hyperapp/hyperapp#readme))

### Software Engineering & Architecture

- [Action-Based State Transitions](https://awesome-repositories.com/f/software-engineering-architecture/action-based-state-transitions.md) — Implements a pattern where discrete action objects trigger state changes through pure functions.
- [Centralized State Stores](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/layering-presentation/application-layer-architectures/state-management-architectures/centralized-state-stores.md) — Maintains the entire application state in a single immutable object tree as the source of truth.
- [Declarative State Managers](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/layering-presentation/state-management-patterns/declarative-state-managers.md) — Updates global application data through discrete actions and pure functions to trigger automatic view changes.
- [State Change Subscriptions](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/state-management/reactive-subscription-systems/state-change-subscriptions.md) — Provides a subscription model to synchronize external web APIs and asynchronous events with application state.

### User Interface & Experience

- [Declarative UI Paradigms](https://awesome-repositories.com/f/user-interface-experience/declarative-ui-paradigms.md) — Uses a declarative model where the interface is automatically reconciled whenever the underlying state changes.
- [Virtual DOM Rendering Engines](https://awesome-repositories.com/f/user-interface-experience/virtual-dom-rendering-engines.md) — Creates a lightweight virtual representation of the interface to reduce browser rendering overhead. ([source](https://github.com/hyperapp/hyperapp#readme))
- [API Subscription Managers](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/interaction-and-event-handling/event-handling-architectures/event-handling/declarative-event-managers/api-subscription-managers.md) — Manages asynchronous web events and HTTP requests by connecting them to state through subscriptions.
