Our great sponsors
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
shoelace-css
A collection of professionally designed, every day UI components built on Web standards. SHOELACE IS BECOMING WEB AWESOME. WE ARE LIVE ON KICKSTARTER! 👇👇👇
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
Tutor
Not just a template, but rather a ready-to-use site complete with CMS and 100+ pre-designed blocks to choose from. Free and open-source. (by CouchCMS)
That said, I do think that if you're after self-encapsulated pieces of HTML, CSS, and JS then a typical framework is exactly what you're looking for. Since you seem to be working alone/for yourself, I would highly recommend Svelte (https://svelte.dev). It is most similar to the experience of writing vanilla HTML, CSS, and JS but just more ergonomic and enabling re-use via components. Also, Svelte has the advantage of being a complier moreso than a library, meaning it incurs less costs in both performance and size then the competitors.
next, use some framework such as lit.dev or Svelte. you may argue “you don’t need it now,” but I guarantee you that if you actually want to reuse this, you will at some point need a framework, and there is no sane way to consume raw HTML/CSS/JS in a framework. picking something is better than nothing. so all your work would be wasted.
htmx and tailwind
Check out https://shoelace.style/ Its based on web components, so you can use it with any framework or even vanilla js.
So everything is static HTML? Or do you use something like https://gohugo.io/ to generate your site, so you only need to define your site structure once, and can keep your content as either HTML or even markdown? with the possibility to override whichever and whatever you want
I like using a functional CSS library (tachyons.io, tailwindcss, or SLDS) and setup components separately. The CSS has my colors and units declared (and the aim is to not have 40 different gray colors, it's to limit yourself with a definition list). Then the actual components are setup via a component library. Plenty to choose from: React, VueJS, LWC, AngularJS, or just native web components.
There is this https://github.com/CouchCMS/Tutor with a quick demo at https://www.youtube.com/watch?v=swR52Winn-E