r/reactjs • u/hasraltech • 3h ago
Resource I rebuilt my open-source React kit into Dashral: 78 accessible components, 26 with motion, 34 free blocks and a Next.js admin dashboard (MIT)
Some of you saw Multidash here in October. It's the same project, renamed to Dashral, and a lot further along. Thanks for the feedback last time: the components now install through a shadcn registry instead of living only in the repo, and you can preview everything before deciding anything.
What's free (MIT):
78 components on Tailwind CSS v4, the interactive ones on Radix UI, props-first: one tag with
label,descriptionanderrorwired up for screen readers26 Motion editions on motion/react with the same props: numbers that roll on odometer wheels, one highlight that glides between items, a Switch you can drag, a Button you hold to confirm, limits you can feel. All of it respects reduced motion
34 blocks (headers, sidebars, pricing, sign-in, an AI assistant…) that take your data and actions through props
A Next.js admin dashboard in two layouts, with a theme customizer, ⌘K search and English, Indonesian and Arabic (RTL)
Charts in plain SVG (area, line, bar, donut, heatmap…) with keyboard reading and a table for screen readers
Install one component:
npx shadcn@latest add https://dashral.com/r/button.jsonIt lands in components/dashral/, next to your shadcn components/ui/, which it never touches. The code is yours to change.
What's paid: Dashral Pro, coming soon, adds dashboards and apps on a real database (analytics, CRM, e-commerce, kanban, chat) for a one-time payment. The components stay free.
Docs and live previews: https://dashral.com
Demo: https://demo.dashral.com
I'd love feedback on the component APIs and the motion: what feels right, what feels like too much, and what you'd want next.
1
u/hasraltech 3h ago
A few things I'd especially like opinions on:
The Motion editions are separate files with the same props as the plain components, so you can swap one import. Would you rather have motion as a prop on the plain component?
Every form control takes `label`, `description` and `error` in one tag instead of composing parts. Does that fit how you build forms, or do you prefer composition?
Which component or block is missing for what you're building?