A collection of tiny, reusable, UI components — wrapped in a helpful app layout with header, side bar, dark mode, and more.
See the website for more details. Get started here.
TinyWidgets uses React for DOM manipulation, Vanilla-Extract at build-time for styling, Lucide for icons, and TinyBase for state management. Its philosophy is all about simplicity, decent defaults, a streamlined DOM, and concise styling.
But, just to be clear - that doesn't mean you need to use Vanilla-Extract, Lucide, or Tinybase in the apps you build with these widgets. You can set arbitrary class names (from Tailwind, for example!) on all components if you like.
This project was created because I want to be able to build lots of local-first apps quickly and without the overhead of all the app boilerplate each time.
Making it open source seemed like the right thing to do, so please try and it out and get involved. I'll always be interested in issues, more style variants, new components altogether, or even some professional-grade design assistance. I'm not a designer...
See you on GitHub!
The easiest way to get started with TinyWidgets is to use its Vite template. This comes with the (simple) build configuration you need to work with TinyWidgets.
To create a new TinyWidgets application using this template, do the following:
- Make a copy of this template into a new directory:
npx tiged tinyplex/vite-tinywidgets my-tinywidgets-app
- Go into the directory:
cd my-tinywidgets-app
- Install the dependencies:
npm install
- Run the application:
npm run dev
- The Vite server should start up. Go the URL shown and enjoy!
Note that you can also create a production build with npm run build
.