imsky / imsky/holder

Holder 3

Open
#192 0 comments 2 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
5.8k
Forks
585
PR merge metrics
No merged PRs in 30d

Description

Holder is now 5 years old and has been through several refactors. Some assumptions from its initial development (Android 2 support is necessary, non-Webkit Opera is still used, IE6-IE9 are dominant) are no longer true and only make the code base more complicated. Other assumptions, like mutation observers being unavailable, are also no longer true. Looking forward, Holder should focus on being small, interoperable, and cutting-edge.

## Main goals for Holder 3

- Drop rendering support for legacy browsers (IE10 and below, Opera, Android 2)
- Drop polyfills for ES5 features
- Rewrite library to use ES6
- Add React integration
- Diff engine implementations: legacy (timer), MutationObserver

## Secondary goals for Holder 3

- Add plugin support so new features can be added as necessary by end users
- Unify placeholder options with theme options
- Render more than text, e.g. UI placeholders, identicons

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue defines broad Holder 3 goals but names no files, tests, or entry points. Start by reviewing the repository structure and current Holder implementation, then determine which goal can be scoped independently. Done would require implementing an agreed subset of the listed modernization, integration, or rendering changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, react
Domain
frontend, web-dev
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.