npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@marvinackerman/tablecraft

v3.0.0

Published

Batteries-included TanStack Table wrapper for React — TypeScript-first, headless, zero UI lock-in

Downloads

401

Readme

tablecraft

CI npm

Batteries-included TanStack Table wrapper for React. TypeScript-first, headless, zero UI lock-in.

tablecraft collapses the 80–150 lines of useState/useMemo boilerplate that every TanStack Table project rewrites into a single hook call — without taking away control. You get sensible defaults for sorting, pagination, and filtering, and the full TanStack Table instance is always available as an escape hatch. There's no bundled CSS and no component library, so tablecraft never fights your design system.

Documentation · Live demo

Install

npm i @marvinackerman/tablecraft

@tanstack/react-table (^8) and react (>=18) are the only required peers, and npm installs them for you. Everything else is optional and lives behind its own entry point, so you install it only when you reach for the feature it backs:

| Optional peer | Entry it backs | |---|---| | @tanstack/react-query | tablecraft/queryuseQueryTable, useInfiniteTable | | @tanstack/react-virtual (>=3) | tablecraft/virtualuseVirtualRows | | zod (>=3.23.0) | tablecraft/zodcolumnsFromZod, zodValidator | | match-sorter | Fuzzy search (fuzzy: true) |

See the installation guide for version ranges and details.

Quick start

import { useTable, createColumns } from '@marvinackerman/tablecraft'
import { flexRender } from '@tanstack/react-table'

const columns = createColumns<User>([
  { accessorKey: 'name', header: 'Name' },
  { accessorKey: 'email', header: 'Email' },
  { accessorKey: 'role', header: 'Role' },
  { accessorKey: 'age', header: 'Age' },
])

function UsersTable({ users }: { users: User[] }) {
  const { table } = useTable<User>({ data: users, columns })
  // render table.getHeaderGroups() / table.getRowModel() with flexRender
}

Sorting, pagination, global search, and full TypeScript generics are all wired up in one call — see the Getting Started guide for the complete rendered example.

What's inside

  • Getting Started — installation, mental model, first table
  • Installation — required and optional peer dependencies
  • API ReferenceuseTable, useServerTable, useQueryTable, useInfiniteTable, useVirtualRows, useEditableRows, useMultiRowEditing, useTableA11y, column pinning, devtools, testing utilities, and more
  • Guides — server-side tables, inline editing
  • Zod-driven columns — derive columns and edit validation from a single schema
  • Live examples — interactive tables rendered directly in the docs

Using shadcn/ui? Its data table is built on TanStack Table. Swap the boilerplate for useTable and keep every one of your components — tablecraft ships zero markup and zero styles.

License

MIT