Ask HN: What's is your go to toolset for simple front end development?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • htmx

    </> htmx - high power tools for HTML

  • Ignore any recommendation of React, TypeScript, Vite, or Tailwind. Here are some recommendations that don't require NPM/Node.

    Pick a "classless" CSS library from a site like CSSBed[1]. These are kind of like Bootstrap, except you don't need to write any CSS or apply any CSS classes in your HTML for them to work. No tooling necessary; just include a tag in your HTML document. If you'd like to try something similar to this "Tailwind" hotness everyone keeps talking about, try Basscss[2]. Again, no tooling, just need a tag.

    Once you start needing to add interactivity to your site, htmx[3] is nice and decently simple. If you really want something React-like, Mithril.js[4] is very similar but much simpler.

    [1] https://www.cssbed.com/

    [2] https://basscss.com/

    [3] https://htmx.org/

    [4] https://mithril.js.org/

  • vite

    Next generation frontend tooling. It's fast!

  • https://svelte.dev/tutorial/basics - easy to get started with but really powerful for complex stuff too

    For layout, don't use any CSS framework, but instead refer to https://css-tricks.com/snippets/css/a-guide-to-flexbox/ often - every time I use some big CSS framework I end up fighting it at some point.

    https://vitejs.dev/ for packaging - I got really grumpy when frontend stuff started needing build and packaging tools, but it's the nature of things so you just have to deal with it, and vite is fast, not overly complicated, and supports fast hot reloading.

  • 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.

    SurveyJS logo
  • Tailwind CSS

    A utility-first CSS framework for rapid UI development.

  • Honestly? React [0], Tailwind [1] and Vite [2]. Using Vite so setup the environment and tailwind components for css I have never been able to create front end faster than now. It feels like a super power.

    [0] https://reactjs.org/

    [1] https://tailwindcss.com/

    [2] https://vitejs.dev/

  • daisyui

    🌼 🌼 🌼 🌼 🌼  The most popular, free and open-source Tailwind CSS component library

  • For those recommending Tailwind, it's huge if you're using it from the CDN (318K uncompressed).

    Other tools (except for Tachyons, these are maybe out of scope for a home lab):

    - Tachyons [0] is a small (16K-ish) utility class framework.

    - DaisyUI [1] is a free and open source component lib for Tailwind.

    - WindiCSS [2] is built on Tailwind with some additional features.

    - UnoCSS [3], an interesting on-demand atomic CSS engine that supports Tailwind CSS, WindiCSS, Bootstrap, and Tachyons.

    [0]: https://tachyons.io/

    [1]: https://daisyui.com/

    [2]: https://windicss.org/guide/

    [3]: https://github.com/unocss/unocss

  • pico

    Minimal CSS Framework for semantic HTML

  • appsmith

    Platform to build admin panels, internal tools, and dashboards. Integrates with 25+ databases and any API.

  • Man, given all the comments suggesting frameworks that will require you to do html/css/js it seems like no one has really read your comment.

    For your use case I would look at [AppSmith](https://github.com/appsmithorg/appsmith) or [ToolJet](https://github.com/ToolJet/ToolJet).

    These are full-stack low-code frameworks, but it's easy to use them to do just the frontend and connect to a backend API you implement yourself separately.

  • React

    The library for web and native user interfaces.

  • Honestly? React [0], Tailwind [1] and Vite [2]. Using Vite so setup the environment and tailwind components for css I have never been able to create front end faster than now. It feels like a super power.

    [0] https://reactjs.org/

    [1] https://tailwindcss.com/

    [2] https://vitejs.dev/

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Bootstrap

    The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web.

  • Water.css

    A drop-in collection of CSS styles to make simple websites just a little nicer

  • I often use plain HTML and a classless CSS (e.g. Water.css[0]) for personal projects.

    This way it's easy to write and maintain. Looks okay. Fast feedback cycle during development. No need for build steps. Works in browsers without JavaScript. Works well on desktop and mobile devices.

    Highly recommended if suits your needs.

    [0]: https://watercss.kognise.dev/

  • phoenix_live_view

    Rich, real-time user experiences with server-rendered HTML

  • If you need any kind of interactivity on the frontend, but are more comfortable with the backend, I would suggest looking at Phoenix LiveView [0] or a similar server-rendered HTML technology for your language of your choice [1].

    In short, these solutions take JavaScript out of the mix entirely and basically let you deal with a single logical "app", rather than a separate frontend & backend.

    [0] https://github.com/phoenixframework/phoenix_live_view

  • liveviews

    Phoenix LiveView workalikes for different languages and frameworks

  • htm

    Hyperscript Tagged Markup: JSX alternative using standard tagged templates, with compiler support.

  • Preact

    βš›οΈ Fast 3kB React alternative with the same modern API. Components & Virtual DOM.

  • Preact [0] + htm [1]

    Why? Preact is small, fast, and reasonably easy to use. But the main selling point for me was that, together with htm, which can be used instead of jsx, I don't need any build system a la webpack. No node_modules folder. I just have to load one script (preact + htm bundled), define my components in plain javascript files and import them. Bliss for me.

    [0] https://preactjs.com/

  • open-wc

    Open Web Components: guides, tools and libraries for developing web components.

  • lit

    Lit is a simple library for building fast, lightweight web components.

  • Typically use open-wc[2] to have a starting template under a minute.

    Then I use any of the front-end libraries that add bells and whistles. Vaadin coming on top [3]

    I'm a backender, I don't have time to, nor want to learn the specificities of a framework. And I don't want my users to have to pay the cost of many dependencies that I'm not using the full power of.

    Add firebase or supabase with netlify for deployment, and I'm done.

    It's not purely drag and drop, but not complex either

    [1]http://lit.dev/

  • JsonApiDotNetCore

    A framework for building JSON:API compliant REST APIs using ASP.NET and Entity Framework Core.

  • TypeORM

    ORM for TypeScript and JavaScript. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms.

  • SvelteKit

    web development, streamlined (by sveltejs)

  • sveltekit [1], orbit.js [2], JsonApiDotNet [3] and postgrest [4], additionally docker-compose, sometimes typeorm[5]. Good for prototyping and small home projects :-) Production readiness is questionable for the first 2 mentions...

    :-)

    [1]: https://kit.svelte.dev/

  • xlwings-server-plots

  • I am the developer of xlwings, so this is heavily biased. Anyhow, ever since I’ve added support for Google Sheets, I am building all internal tools with it. No JS/CSS required whatsoever and everybody knows how to interact with a spreadsheet UI. There are a few sample projects on GitHub, e.g., https://github.com/xlwings/xlwings-googlesheets-pandas-plots (they use FastAPI, but it’s trivial to adapt for Flask). On top, Google Sheets let you easily authorize the user on the backend, so you can give certain users read-only access to a database, as an example.

  • unocss

    The instant on-demand atomic CSS engine.

  • For those recommending Tailwind, it's huge if you're using it from the CDN (318K uncompressed).

    Other tools (except for Tachyons, these are maybe out of scope for a home lab):

    - Tachyons [0] is a small (16K-ish) utility class framework.

    - DaisyUI [1] is a free and open source component lib for Tailwind.

    - WindiCSS [2] is built on Tailwind with some additional features.

    - UnoCSS [3], an interesting on-demand atomic CSS engine that supports Tailwind CSS, WindiCSS, Bootstrap, and Tachyons.

    [0]: https://tachyons.io/

    [1]: https://daisyui.com/

    [2]: https://windicss.org/guide/

    [3]: https://github.com/unocss/unocss

  • tachyons

    Functional css for humans

  • For those recommending Tailwind, it's huge if you're using it from the CDN (318K uncompressed).

    Other tools (except for Tachyons, these are maybe out of scope for a home lab):

    - Tachyons [0] is a small (16K-ish) utility class framework.

    - DaisyUI [1] is a free and open source component lib for Tailwind.

    - WindiCSS [2] is built on Tailwind with some additional features.

    - UnoCSS [3], an interesting on-demand atomic CSS engine that supports Tailwind CSS, WindiCSS, Bootstrap, and Tachyons.

    [0]: https://tachyons.io/

    [1]: https://daisyui.com/

    [2]: https://windicss.org/guide/

    [3]: https://github.com/unocss/unocss

  • Mithril.js

    A JavaScript Framework for Building Brilliant Applications

  • Ignore any recommendation of React, TypeScript, Vite, or Tailwind. Here are some recommendations that don't require NPM/Node.

    Pick a "classless" CSS library from a site like CSSBed[1]. These are kind of like Bootstrap, except you don't need to write any CSS or apply any CSS classes in your HTML for them to work. No tooling necessary; just include a tag in your HTML document. If you'd like to try something similar to this "Tailwind" hotness everyone keeps talking about, try Basscss[2]. Again, no tooling, just need a tag.

    Once you start needing to add interactivity to your site, htmx[3] is nice and decently simple. If you really want something React-like, Mithril.js[4] is very similar but much simpler.

    [1] https://www.cssbed.com/

    [2] https://basscss.com/

    [3] https://htmx.org/

    [4] https://mithril.js.org/

  • basscss

    Low-level CSS Toolkit – the original Functional/Utility/Atomic CSS library

  • Ignore any recommendation of React, TypeScript, Vite, or Tailwind. Here are some recommendations that don't require NPM/Node.

    Pick a "classless" CSS library from a site like CSSBed[1]. These are kind of like Bootstrap, except you don't need to write any CSS or apply any CSS classes in your HTML for them to work. No tooling necessary; just include a tag in your HTML document. If you'd like to try something similar to this "Tailwind" hotness everyone keeps talking about, try Basscss[2]. Again, no tooling, just need a tag.

    Once you start needing to add interactivity to your site, htmx[3] is nice and decently simple. If you really want something React-like, Mithril.js[4] is very similar but much simpler.

    [1] https://www.cssbed.com/

    [2] https://basscss.com/

    [3] https://htmx.org/

    [4] https://mithril.js.org/

  • elderjs

    Elder.js is an opinionated static site generator and web framework for Svelte built with SEO in mind.

  • If you are in a larger scale SEO project this does blazing fast static generation with Svelte: https://github.com/Elderjs/elderjs

  • Svelte

    Cybernetically enhanced web apps

  • axios

    Promise based HTTP client for the browser and node.js

  • Yeah... I'm about as far to the other side of this as you can get.

    It really looks like the x-html attribute you're complaining about is just using plain old javascript. It takes a statement that resolves to a string, and renders that.

    The statement they provided happens to be pretty terrible for docs (I would have just used the built in fetch api, instead of the axios networking library - https://github.com/axios/axios), but it's plain old js regardless.

    Your example is some custom fucking DSL that I have NO idea what it's doing. When does it run? how does it handle errors? What is the base url? What happens to the original text? How does it auth? What if I needed to post, or put, or delete? It's an entire fucking language I have to learn on top of the actual css/html/js knowledge required to understand this. In almost all cases, you're better off just learning "plain old javascript" since that skillset travels with you everywhere.

    basically: DO NOT MAKE ME LEARN YOUR FUCKING DSL. It's wasted time and effort for me, and learning it provides absolutely zero benefits outside of your library. Further - it will fucking leak, and then you're right back at writing plain old js again, but now you have to understand the intimate details of the library implementing the dsl to tweak the right spots.

    Even alpine turns me off a bit here (it's still a dsl, even if most of it reverts to plain old js) - but at least they're incredibly up front about the total time investment to learn the dsl (15 attrs, 6 props, 2 methods). HTMX is like 5 times the size (https://htmx.org/reference/), so I assume roughly 20 times the effort to learn the DSL.

  • classless-css

    A list of classless CSS themes/frameworks with screenshots

  • There's a ton of very simple "minimalist" or "classless" or "markdown" [0] CSS files that you can apply to plain HTML to get modest good looks versus browser default styles these days. No changes to your markup, just use that raw HTML you are already comfortable with and LINK tag in a single CSS file.

    This seems like a very good list with lots of handy easy to compare preview screenshots: https://github.com/dbohdan/classless-css

    [0] From that idea that sometimes you just want to take a Markdown document's boring raw HTML output straight out of the processor without any other templating in between.

  • ToolJet

    Low-code platform for building business applications. Connect to databases, cloud storages, GraphQL, API endpoints, Airtable, Google sheets, OpenAI, etc and build apps using drag and drop application builder. Built using JavaScript/TypeScript. πŸš€

  • Man, given all the comments suggesting frameworks that will require you to do html/css/js it seems like no one has really read your comment.

    For your use case I would look at [AppSmith](https://github.com/appsmithorg/appsmith) or [ToolJet](https://github.com/ToolJet/ToolJet).

    These are full-stack low-code frameworks, but it's easy to use them to do just the frontend and connect to a backend API you implement yourself separately.

  • imba

    🐀 The friendly full-stack language

  • Check out Imba [https://imba.io/] It makes really simple to do what you're asking for.

  • Forest Admin

    πŸ’Ž Ruby on Rails agent for Forest Admin to integrate directly to your existing Ruby on Rails backend application.

  • For home-lab/internal UIs, you can go a long way with the auto-generated model-admin pages from Django. If you just need CRUD and actions triggered on a list of models, you can typically avoid any UI work and just define a few Admin classes, and if you need to make custom forms it's quite easy using Django's templating machinery to override individual pages.

    https://docs.djangoproject.com/en/4.0/ref/contrib/admin/

    A similar modular admin system that's more generic is https://www.forestadmin.com/, I think this one has a layout editor too. But that one requires a REST API and so it may require more plumbing, depending on what you've already built. Or it could fit nicely on top of what you already have, if you already have APIs for everything.

  • fresh

    The next-gen web framework.

  • There's Deno Fresh now (https://fresh.deno.dev/) which looks like a pretty interesting new web framework so far.

  • streamlit

    Streamlit β€” A faster way to build and share data apps.

  • femtoJS

    femtoJS - Really small JavaScript (ES6) library for DOM manipulation.

  • Basic.css

    Basic.css - Classless CSS Starter File

  • astro

    The web framework for content-driven websites. ⭐️ Star to support our work!

  • Well, I never used the word "simple", mostly intentionally. Except to describe next's backend API stuff, which is pretty simple (just a node server at the end of the day).

    Is react/next complex? Sure. Everything is far more complex than it initially seems, HTML is complex, React is even more complex if for no other reason than it builds on top of HTML.

    But websites are also complex. I've found that I can very quickly reach a website complexity where I feel more productive in React than bare HTML; very quickly indeed. And next is really, mostly, just nothing on top of that; its dev tooling, yeah you sometimes have to think about where the state is (server/client) and where the rendering is happen (if you use next export: its just always on the client, done). Experientially, these are small problems; and would potentially be intractable for a website that has attained the complexity to need to solve them, built on bare HTML.

    There are a few new techs that I want to try, to see if they can capture the simplicity of HTML, with the good parts of react. Vue is definitely one, but I've been following Astro for a bit and it also seems interesting; granting the ability to just go basic HTML, or bridge into React, Svelte, anything.

    [1] https://astro.build/

  • draggable

    The JavaScript Drag & Drop library your grandparents warned you about.

  • react-control-chaos

    Demonstration of multiple controls displaying and manipulating the same application state.

  • Glad to see this. I used Preact and htm to build a small, events-flying-everywhere app that helped me get my current job, which I love. https://github.com/spaceaardvark/react-control-chaos

    Highly recommend.

  • 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.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts