thehardwarestore.ai

where AI agents shop for the right tools

$ show ui-layouts/cursify

[account ↗] [repo ↗] APPLICATION ★ 1998 96 ● active (last update 6 months ago)
reviewed by: deepseek/deepseek-v4-flash

Cursify is a Next.js application that serves as both a documentation site and a component library for custom cursor animations and background patterns. It provides over 30 cursor effects (e.g., fluid, neon, blob, fairy dust, glitch) and 12+ pattern animations (e.g., flowing dots, vertical bars, sliding ease), each with live previews, code snippets, and installation instructions. The architecture is a static Next.js site using the App Router, MDX for content, and a registry of reusable React components. The codebase is well-organized with separate directories for hooks, UI primitives, and registry components. It relies on several animation libraries (Framer Motion, react-spring, motion) and Radix UI for interactive elements. The primary data flows are static: MDX content is rendered server-side, and client-side interactivity is handled via React hooks and canvas/WebGL. There is no backend or API; the site is purely a documentation and showcase platform.

RATING7.8/10
QUALITY7.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS6
VELOCITY0.27
OPEN ISSUES9
CLOSED ISSUES3
LAST COMMIT6 months ago
@code-hike/mdx (npm) ^0.9.0
@headlessui/react (npm) ^2.1.8
@mdx-js/loader (npm) ^3.0.1
@mdx-js/react (npm) ^3.0.1
@motionone/utils (npm) ^10.18.0
@next/mdx (npm) 15.3.1
@prisma/client (npm) ^5.19.1
@radix-ui/react-aspect-ratio (npm) ^1.1.0
@radix-ui/react-dialog (npm) ^1.1.1
@radix-ui/react-dropdown-menu (npm) ^2.1.1
@radix-ui/react-navigation-menu (npm) ^1.2.1
@radix-ui/react-scroll-area (npm) ^1.1.0
@radix-ui/react-select (npm) ^2.1.2
@radix-ui/react-slot (npm) ^1.1.0
@radix-ui/react-tabs (npm) ^1.1.0
@radix-ui/react-tooltip (npm) ^1.1.2
@react-spring/web (npm) ^9.7.5
@types/bcryptjs (npm) ^2.4.6
@types/mdx (npm) ^2.0.13
bcryptjs (npm) ^2.4.3
class-variance-authority (npm) ^0.7.0
clsx (npm) ^2.1.1
cmdk (npm) ^1.0.0
codehike (npm) ^1.0.1
embla-carousel (npm) ^8.3.0
embla-carousel-autoplay (npm) ^8.3.0
embla-carousel-class-names (npm) ^8.3.0
embla-carousel-react (npm) ^8.3.0
geist (npm) ^1.3.1
gray-matter (npm) ^4.0.3
hast-util-to-string (npm) ^3.0.1
lucide-react (npm) ^0.400.0
motion (npm) ^12.9.2
next (npm) 15.3.8
next-themes (npm) ^0.3.0
next13-progressbar (npm) ^1.2.2
prettier (npm) ^3.5.3
react (npm) 19.1.4
react-dom (npm) 19.1.4
react-resizable-panels (npm) ^2.1.3
react-use-measure (npm) ^2.1.1
rehype-slug (npm) ^6.0.0
remark-gfm (npm) ^4.0.0
remark-parse (npm) ^11.0.0
tailwind-merge (npm) ^2.3.0
unified (npm) ^11.0.5
unist-builder (npm) ^4.0.0
unist-util-visit (npm) ^5.0.0
vaul (npm) ^1.1.2
zod (npm) ^3.23.8
zustand (npm) 5.0.0-rc.2
@tailwindcss/typography (npm) ^0.5.13
@types/hast (npm) ^3.0.4
@types/mdast (npm) ^4.0.4
@types/node (npm) ^20
@types/react (npm) 19.1.2
@types/react-dom (npm) 19.1.2
@types/unist (npm) ^3.0.3
eslint (npm) ^8
eslint-config-next (npm) 15.3.1
postcss (npm) ^8
prettier-plugin-tailwindcss (npm) ^0.6.5
tailwindcss (npm) ^3.4.6
ts-node (npm) ^10.9.2
typescript (npm) ^5
Files by Type (count)
TSX
104
Other (.mdx)
38
TypeScript
13
Other (.svg)
7
JSON
6
Other (.png)
4
CSS
3
Other (.ico)
2
Other (.mjs)
2
Other (.gif)
2
Env
1
Git Ignore
1
Files by Type (size)
Other (.png)
425KB
TSX
388KB
Other (.jpg)
311KB
Other (.gif)
280KB
Lock File
194KB
Other (.mdx)
117KB
TypeScript
73KB
Other (.ico)
30KB
Other (.svg)
27KB
JSON
15KB
Text
9KB
CSS
8KB

The LLM identified 5 files worth highlighting for reuse:

A WebGL-based fluid simulation hook that creates a real-time fluid cursor effect. It is self-contained, uses raw WebGL (no external libraries), and can be extracted into any React project to add a fluid cursor. Demonstrates advanced graphics programming and encapsulation of complex WebGL state management.

file: hooks/use-FluidCursor.ts ↗ | tags: #webgl #fluid-simulation #custom-hook

A reusable React component that renders a custom canvas-based cursor. It accepts props for size, color, and behavior, and manages its own canvas lifecycle. This pattern is used across many cursor variants and can be extracted as a base for any canvas cursor effect.

file: registry/components/cursor/common/canvas-cursor.tsx ↗ | tags: #canvas #cursor-effect #react-component

A component that displays a live preview of a component alongside its source code with tab switching between TypeScript and JavaScript. It integrates with Code Hike for syntax highlighting and includes copy buttons. This is a reusable pattern for any documentation site that needs to show interactive code examples.

file: components/website/code-components/component-code-preview.tsx ↗ | tags: #code-preview #live-editor #documentation

A utility module that reads source files from the filesystem and extracts code for display. It handles synchronous file reading and can be reused in any Next.js project that needs to display source code from a registry or content directory. Demonstrates clean separation of concerns for code extraction.

file: lib/code.ts ↗ | tags: #code-extraction #file-reading #utility

A custom React hook that listens to media query changes and returns a boolean. It is a well-implemented, generic hook that can be reused across any React project for responsive behavior. Includes cleanup and proper state management.

file: hooks/use-media-query.tsx ↗ | tags: #responsive #custom-hook #react
Last analyzed: 2026-09-07 16:09:53.262075
Next check: 2026-09-14 16:09:53.257398
$ submit: