This is a submission for the GitHub Copilot CLI Challenge
What I Built
TableCraft - A Drizzle-powered data table engine that transforms the nightmare of building 80+ complex tables into a 5-minute task.
The Problem That Haunted Me
Our company's logistics application has 80+ data tables. Each table isn't just "show data" - it has:
- Sorting functionality
- Date range filtering
- Search across multiple columns
- Pagination (offset and cursor-based)
- Export to CSV/JSON
- Column resizing and reordering
- Complex joins across relationships
- Role-based column visibility
We were upgrading from a 3-year-old stack (Material UI + Express.js + Prisma ORM). The code had become heavy, developer experience degraded, and building each new table was taking hours. Even with AI assistance, inconsistencies crept in:
- Response structures varied between endpoints
- Sorting would break on certain columns
- Date filters had edge case bugs
- Type safety was inconsistent between frontend and backend
I had already built tnks-data-table for frontend reusability, but the backend still required writing export logic, filter handlers, and sorting implementations manually. The bottleneck remained.
The Solution
TableCraft is a monorepo with packages for both backend and frontend:
| Package | Purpose |
|---|---|
@tablecraft/engine |
Core query builder with filtering, sorting, pagination |
@tablecraft/table |
React DataTable component (TanStack Table + Shadcn) |
@tablecraft/client |
Frontend SDK for any framework |
@tablecraft/codegen |
TypeScript type generator from API metadata |
@tablecraft/adapter-* |
Adapters for Hono, Express, Next.js, Elysia |
Define once, get everything:
import { defineTable } from '@tablecraft/engine';
import { products } from './db/schema';
export const productConfig = defineTable(products)
.label('name', 'Product Name')
.search('name', 'description')
.sort('-createdAt')
.filter('category', 'isArchived')
.pageSize(20)
.toConfig();
That's it. You now have:
- Backend API with complex query support
- Auto-generated metadata endpoint
- Type-safe frontend integration
- Date filtering with presets
- Export functionality
For more details, explore the documentation.
Demo
Repository: github.com/jacksonkasi1/TableCraft
Web: https://tablecraft-demo.vercel.app
Quick Start:
# Backend
pnpm add @tablecraft/engine @tablecraft/adapter-hono
# Frontend
pnpm add @tablecraft/table
# Type generation
pnpm add -D @tablecraft/codegen
npx @tablecraft/codegen --url http://localhost:5000/engine --out ./src/generated
Frontend DataTable:
import { DataTable } from '@tablecraft/table';
import { createProductsAdapter } from '../generated';
export function ProductsPage() {
const adapter = createProductsAdapter({ baseUrl: '/api/engine' });
return (
<DataTable
adapter={adapter}
config={{
enableSearch: true,
enableExport: true,
enableColumnResizing: true,
}}
/>
);
}
My Experience with GitHub Copilot CLI
Why I Needed Two Copilot Accounts
This is a substantial project. TableCraft isn't a weekend hack - it's production infrastructure for enterprise logistics applications. The scope demanded intensive AI assistance across multiple domains:
- Core engine architecture - Query building, SQL generation, relationship handling
- Frontend components - React hooks, TanStack Table integration, Shadcn styling
- Type generation - AST parsing, TypeScript emitter
- Multiple framework adapters - Hono, Express, Next.js, Elysia
- Documentation - 15+ documentation files
- Testing - Unit tests, integration tests, edge cases
One account's credits would have been exhausted before completing the core functionality.
Strategic Model Selection
I discovered that different models excel at different tasks:
| Task | Model | Why |
|---|---|---|
| Core engine architecture | Claude Opus 4.6 / Claude Opus | Best at complex reasoning, SQL logic, type systems |
| Frontend components | Gemini 3 Pro / Gemini 3 Flash | Fast iterations, good at React patterns |
| Unit tests | Grok Code Fast 1, Raptor Mini | Good coverage, found edge cases I missed |
| Documentation | GPT-5 | Clear explanations, good structure |
Raptor Mini became my go-to for testing - it felt more familiar with test patterns and caught subtle edge cases.
How Copilot CLI Accelerated Development
-
Brainstorming Sessions
- Used Copilot Chat for architectural decisions
- "How should I handle relationship joins with filtering?"
- "What's the best pattern for pluggable adapters?"
-
Code Generation
- Scaffolding adapters for 4 different frameworks
- Generating TypeScript types from Drizzle schemas
- Creating consistent API response structures
-
Debugging
- "Why is this SQL query not using the index?"
- "The date filter is failing for timezone edge cases"
- Copilot caught issues before they became production bugs
-
Documentation
- Generated initial docs structure
- Ensured consistency across 15+ markdown files
The Time Savings
Before TableCraft:
- Complex table with 15 columns, joins, filters, export: ~4-6 hours
- With inconsistencies and bugs requiring fixes: +2-3 hours
After TableCraft:
- Same table: ~5 minutes
- Type-safe, consistent, production-ready: 0 extra time
For 80+ tables: ~400 hours saved in initial development alone.
Beyond the Hackathon
This project wasn't built specifically for this challenge - the GitHub Copilot CLI Challenge provided the push to complete and document it properly. My real motivation:
- Upgrade our company's logistics platform from outdated tech
- Reduce development time for complex admin interfaces
- Maintain speed without sacrificing quality
- Cut costs by reducing repetitive development work
TableCraft achieves all four goals.
Current Status
TableCraft is nearly production-ready. I'm currently:
- Testing edge cases in real production scenarios
- Gathering feedback from early adopters
- Improving documentation
- Adding more examples and use cases
Call for Community
If you find this project useful:
- Star the repo: github.com/jacksonkasi1/TableCraft
- Support development: github.com/sponsors/jacksonkasi1
- Contribute: Code, documentation, bug reports, feature requests
You don't have to write code to contribute. Documentation improvements, bug reports, and meaningful feedback are equally valuable.
Why This Matters
Every developer building admin panels, dashboards, or management systems faces the same pain: data tables are deceptively complex. What looks simple - show data, sort, filter, export - becomes a nightmare at scale.
TableCraft solves this. Not with magic, but with thoughtful architecture, type safety, and the acceleration that GitHub Copilot CLI provided.
If you've ever spent hours on a table that should have taken minutes, TableCraft was built for you.
Resources:
Your comments and feedback motivate me to build more tools like this. Give TableCraft a try and let me know what you think!
Top comments (0)