π The "Data View" Fatigue
Weβve all been there. You start building a new SaaS or an internal admin tool. It starts simple, but then the requirements roll in:
"Can we see this data as a Kanban board?"
"We need a Calendar view for the deadlines."
"Can you add a form to edit these records?"
"Make it look modern and handle Dark Mode."
Suddenly, youβre spending weeks glueing together five different libraries for tables, drag-and-drop, and calendars.
There has to be a better way.
β¨ Introducing shadcn-data-views
I built shadcn-data-views to solve exactly this problem.
It is a powerful, schema-driven component for React that instantly generates polished, complex data interfaces. By defining a single JSON schema, you get five different synchronized views out of the box.
π Why use this over other libraries?
Most data grid libraries give you a table and stop there.
shadcn-data-views gives you an entire ecosystem for your data.
πΉ 1. One Schema, Five Views
Define your data structure once (fields, types, selects), and the component automatically renders:
- π Grid View β A powerful spreadsheet-like table
- ποΈ Kanban View β Drag-and-drop status management
- πΌοΈ Gallery View β A clean card-based layout
- π Calendar View β Visualize dates and schedules
- π Form View β Auto-generated forms for creating/editing records
πΉ 2. Backend Agnostic
You provide the dbClient.
Supabase, Firebase, REST APIs, or LocalStorage are supported.
You control the data fetching; we handle the UI.
πΉ 3. It actually looks good (shadcn/ui style)
Modern aesthetics with native Dark Mode support via next-themes.
Clean typography and subtle gradients.
πΉ 4. Global Ready π
Built-in support for 10 languages with automatic RTL handling.
5. Screenshots
π» How it works
1οΈβ£ Install
npm install shadcn-data-views
2οΈβ£ Define your Schema
import { TableSchema } from 'shadcn-data-views';
const mySchema = {
id: 'tasks',
name: 'Tasks',
icon: 'π',
fields: [
{ id: 'title', name: 'Title', type: 'text', isPrimary: true },
{
id: 'status',
name: 'Status',
type: 'select',
options: [
{ id: 'todo', name: 'To Do', color: 'gray' },
{ id: 'done', name: 'Done', color: 'green' }
]
},
{ id: 'dueDate', name: 'Due Date', type: 'date' }
]
};
3οΈβ£ Render the Component
import { DataViews } from 'shadcn-data-views';
export default function App() {
return (
<div className="h-screen w-full">
<DataViews
schema={mySchema}
dbClient={myDbClient}
config={{ defaultView: 'kanban' }}
/>
</div>
);
}
Thatβs it.
A fully functional Kanban, Grid, and Calendar view instantly available.
π¨ Color & Customization
Includes 50+ preset colors (Emerald, Amber, Rose, Violet).
import { PRESET_COLORS } from 'shadcn-data-views';
π Try it out
- π¦ NPM: npmjs.com/package/shadcn-data-views
- π GitHub: github.com/lotfibennour/shadcn-data-views
β Star the repo if useful.
Happy coding!





Top comments (0)