❌

Reading view

[Showoff Saturday]: Handcrafted HTML-first progressive framework that outperforms React

[Showoff Saturday]: Handcrafted HTML-first progressive framework that outperforms React

Places.js is a HTML-first framework inspired by htmx and Solid.js signals with these features.

  • Component agnostic stores that can be integrated with vanilla JavaScript or other frameworks.
  • HTML-first pages configured through static site generation or server-side rendering.
  • No build step. Places.js can be downloaded from a CDN.
  • Partial re-rendering with signals.
  • Zero dependencies. Places.js is written entirely in vanilla JavaScript.

Places.js is optimized for fast performance. Here are some results for Places.js v0.1.0. from the the Krauset JavaScript Framework Benchmark

Places.js Solid.js Svelte Lit Vue React
Time to render 1,000 rows in milliseconds 19.8 21.4 21.8 23.3 23.9

To get started, download the places-js-latest.js file from the jsDelivr CDN. See the reference guide for a detailed tutorial.

Relevant links

Upcoming priorities

  • Adding more unit test coverage.
  • Compatibility with other hypermedia UI tools including Datastar and htmx
  • Implementing hypermedia controls.
  • Testing integration with Leaflet and other mapping libraries.

AI policy

All Places.js contributions including code changes, comments, or new issues are made by humans This means no use of ChatGPT, Claude, or any other AI tool.

Edit: Detecting rows that are swapped or deleted

I have logic that detects rows that are moved or deleted. Components are then notified to make the necessary rendering changes, and subscriptions are moved from the store.

On Krauset, swapping two rows takes 12.7 ms and removing a row takes 10.3 ms.

submitted by /u/create-third-places to r/webdev
[link] [comments]
  •  
❌