mpa-enhancer
htmf
mpa-enhancer | htmf | |
---|---|---|
1 | 4 | |
0 | 21 | |
- | - | |
7.2 | 7.6 | |
7 months ago | 6 months ago | |
TypeScript | JavaScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
mpa-enhancer
-
Things you forgot because of React
Yeah, for my personal apps I just write offline-first apps. I need to make it so I can build apps as efficient as I can as I don't have a lot of free time. So, I wrote a little library under 1kB that just finds where I left off and re-centers/focuses there. It makes for dead simple applications.[^1]
I also created an HTMX-like library that is focused on forms so it stays to the HTML speck pretty closely. I need to make a couple of corrections to it. But it is amazing how far it can get you and much smaller footprint than HTMX. Granted, it can only do a fraction of what HTMX can do.[^2]
[^1]: https://github.com/jon49/mpa-enhancer
htmf
-
HTML First – Six principles for building simple, maintainable, web software
I've successfully used this pattern (HTMX hypermedia style) to create an offline-first web app SPA[^1]. One of the pages is pretty dynamic and I wasn't sure if I would need a traditional front end library to work with it. But, nope, hypermedia to the win, it worked fine without a front end framework.
To build it I used my own library called HTMF[^2]. I started out using mpa-enhancer[^3] but found that that pattern is a little to janky sometimes. I think reloading a page every time on every interaction uses too many resources for a browser especially when you use a phone that doesn't have as much power as a laptop.
But overall I find the pattern very easy to use and keeps the complexity down.
I think some of the issues with traditional SPAs is that they have a lot of state and state is nonlinear in complexity. But using templating systems makes the complexity more linear in nature.
Also, I find libraries like React to be overly complex for what it does, see above. The way React works is just odd and counter intuitive. All for problems that are easy to solve. I do think there are places for a React-like library is needed but those are for websites that are inherently highly state-based. But most websites aren't state-based even ones that appear to be state-based at first.
The websites I work on are usually just forms and forms are pretty powerful and can get you a long ways before you need to go outside of that paradigm.
[^1]: https://github.com/jon49/Soccer
[^2]: https://github.com/jon49/htmf
[^3]: https://github.com/jon49/mpa-enhancer
- Things you forgot because of React
- Htmx, WebAssembly, Rust, ServiceWorker Proof of Concept
-
Ask HN: Getting tired of complexity in web development
I wrote a js lib similar to HTMX, which I call HTMF[1]. Unlike HTMX I try to stay as close to the metal of the current semantics as possible. So, all interactions are based off of forms. I also tried to keep the wording similar to HTML/JS semantics. It's pretty small lib but pretty amazing how far I can get with it. These days I mainly build offline-first apps with it. But I built it in such a way that it can easily be a progressive enhancement to an MPA app.
[1]: https://github.com/jon49/htmf
What are some alternatives?
Pentive - Collaborative Spaced Repetition
Soccer - Tracker for players play time
terser - 🗜 JavaScript parser, mangler and compressor toolkit for ES6+
yew-beyond-hello-world - yew rust tutorial
solid-docs - Cumulative documentation for SolidJS and related packages.
submillisecond - A lunatic web framework
pib - PHP in Browser (powered by WebAssembly)
WeightTracker - Back end for saving data for weight tracker.
webcomponents - Web Components specifications
MealPlanner - A Meal Planner to figure out what we are going to eat each week. Written with Razor Pages and HTMF. https://meals.jnyman.com/
Svelte - Cybernetically enhanced web apps
- - Hyphen - An elegant custom element base class