Show HN: Basecoat – shadcn/UI components, no React required
36 comments
·May 13, 2025exiguus
> Why I built it: after moving from a Next.js stack back to Flask + Tailwind + HTMX, I missed shadcn/ui and didn’t want walls of Tailwind classes (like Flowbite or Preline).
I understand that Next.js can feel bloated, especially when used as a static site generator or within a classic JAMStack setup.
Basecoatui reminds me a bit of Bootstrap during the golden era of Ruby on Rails.
I took a look at the Git repository and tried to find an automated solution to convert shadcn to plain HTML but didn't find anything suitable. Is there a script available for this, or was this done manually?
juddlyon
There’s a huge need for this, thank you! I build server-rendered marketing sites and there’s a huge gulf between the jQuery and React era.
diordiderot
Absolutely love this. Wanted to do this myself but never enough to get started. You're a legend.
WilcoKruijer
Very cool! Are you manually porting all components or are you using some sort of automated process?
czhu12
Really great! A major downside of moving from SPA's back to vanilla JS is how much you lose in terms of UI components.
I've normally done DaisyUI + Tailwind + Rails but it never feels quite right. Basecoat is a really nice step forward.
I have to imagine the author is planning to charge for a premium package at some point, but given that a huge % of development is spent on UI design, I'd be more than happy to pay for a year of updates.
replwoacause
Looks nice! Can you add a CDN option? Would be nice for a quick start to play around.
Also, reminds me of https://franken-ui.dev
hunvreus
Yep, I've been considering adding a CDN option.
I think it may be on the heavier side though (~100k).
gsanderson
Looks great!
One suggestion would be adding a focus trap, such as when a Dialog opens. It's nice to use the tab key to move around the Dialog (inputs and buttons). Currently focus leaves to the page behind. It might be as simple as adding https://alpinejs.dev/plugins/focus#x-trap
klaussilveira
This is great! The HTMX community needs more friendly UI kits like this.
BenderV
Awesome. Using Vue/Tailwind, I'm definitely interested in this. Maybe you could try to add examples of integrations with others frameworks? I'll play with it and give you my 2 cents.
codybontecou
Not sure if you're aware, but there's a well-supported Vue ShadCN library: https://www.shadcn-vue.com/
hunvreus
Hello there Ben. Sure thing, I'll try and expand the docs.
rglullis
Would you be interested in getting rid of Tailwind and have the styling strictly with SASS mixins?
anon1094
Glad you shared this. Looks nice!
urbanisierung
This is great! Thanks for implementing this!
Basecoat ports the upcoming shadcn/ui v4 [1] to plain HTML + Tailwind (no React):
- Live demo & documentation: https://basecoatui.com
- MIT‑licensed and free: https://github.com/hunvreus/basecoat/
- Works with any backend (Flask, Django, Rails, PHP, etc.) or static site.
- Fully theme‑compatible with shadcn/ui [2].
- Uses a sliver of Alpine.js only for a few interactive bits (e.g. combobox). Swap in your own JS if you prefer.
- Dead simple to use, just drop in a class here and there:
Why I built it: after moving from a Next.js stack back to Flask + Tailwind + HTMX, I missed shadcn/ui and didn’t want walls of Tailwind classes (like Flowbite or Preline).Feedback is most welcome: bugs, requests for components, criticism.
[1]: https://v4.shadcn.com/
[2]: https://basecoatui.com/installation/#install-theming
[3]: https://pagescms.org