[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-71426":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":41,"readmeContent":42,"aiSummary":43,"trendingCount":16,"starSnapshotCount":16,"syncStatus":44,"lastSyncTime":45,"discoverSource":46},71426,"precedent","steven-tey\u002Fprecedent","steven-tey","An opinionated collection of components, hooks, and utilities for your Next.js project.","https:\u002F\u002Fprecedent.dev",null,"TypeScript",5101,491,27,21,0,4,5,39.08,"MIT License",false,"main",true,[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"authjs","eslint","framer-motion","nextauth","nextauthjs","nextjs","nextjs-boilerplate","nextjs-starter","nextjs-template","prettier","prisma","radix-ui","railway","tailwindcss","typescript","vercel","2026-06-12 02:02:52","\u003Ca href=\"https:\u002F\u002Fprecedent.dev\">\n  \u003Cimg alt=\"Precedent – Building blocks for your Next project\" src=\"https:\u002F\u002Fprecedent.dev\u002Fopengraph-image\" \u002F>\n  \u003Ch1 align=\"center\">Precedent\u003C\u002Fh1>\n\u003C\u002Fa>\n\n\u003Cp align=\"center\">\n  Building blocks for your Next project\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fsteventey\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Ffollow\u002Fsteventey?style=flat&label=steventey&logo=twitter&color=0bf&logoColor=fff\" alt=\"Steven Tey Twitter follower count\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fprecedent\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fsteven-tey\u002Fprecedent?label=steven-tey%2Fprecedent\" alt=\"Precedent repo star count\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#introduction\">\u003Cstrong>Introduction\u003C\u002Fstrong>\u003C\u002Fa> ·\n  \u003Ca href=\"#one-click-deploy\">\u003Cstrong>One-click Deploy\u003C\u002Fstrong>\u003C\u002Fa> ·\n  \u003Ca href=\"#tech-stack--features\">\u003Cstrong>Tech Stack + Features\u003C\u002Fstrong>\u003C\u002Fa> ·\n  \u003Ca href=\"#author\">\u003Cstrong>Author\u003C\u002Fstrong>\u003C\u002Fa>\n\u003C\u002Fp>\n\u003Cbr\u002F>\n\n## Introduction\n\nPrecedent is an opinionated collection of components, hooks, and utilities for your Next.js project.\n\n## One-click Deploy\n\nYou can deploy this template to Vercel with the button below:\n\n[![Deploy with Vercel](https:\u002F\u002Fvercel.com\u002Fbutton)](https:\u002F\u002Fvercel.com\u002Fnew\u002Fclone?repository-url=https%3A%2F%2Fgithub.com%2Fsteven-tey%2Fprecedent&project-name=precedent&repository-name=precedent&demo-title=Precedent&demo-description=An%20opinionated%20collection%20of%20components%2C%20hooks%2C%20and%20utilities%20for%20your%20Next%20project.&demo-url=https%3A%2F%2Fprecedent.dev&demo-image=https%3A%2F%2Fprecedent.dev%2Fopengraph-image&env=NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY,CLERK_SECRET_KEY&envDescription=Create%20a%20Clerk%20application%20to%20get%20these%20variables%3A&envLink=https%3A%2F%2Fdashboard.clerk.com%2Fapps%2Fnew)\n\nYou can also clone & create this repo locally with the following command:\n\n```bash\nnpx create-next-app precedent --example \"https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fprecedent\"\n```\n\nThen, install the dependencies with your package manager of choice:\n\n```bash\nnpm i\nyarn\npnpm i\n```\n\n## Tech Stack + Features\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Faef3c099-e371-43bf-b426-f5ba73185a7c\n\n### Frameworks\n\n- [Next.js](https:\u002F\u002Fnextjs.org\u002F) – React framework for building performant apps with the best developer experience\n- [Clerk](https:\u002F\u002Fgo.clerk.com\u002Fprecedent) - A comprehensive user management platform with beautifully designed, drop-in React components\n\n### Platforms\n\n- [Vercel](https:\u002F\u002Fvercel.com\u002F) – Easily preview & deploy changes with git\n\n### UI\n\n- [Tailwind CSS](https:\u002F\u002Ftailwindcss.com\u002F) – Utility-first CSS framework for rapid UI development\n- [Radix](https:\u002F\u002Fwww.radix-ui.com\u002F) – Primitives like modal, popover, etc. to build a stellar user experience\n- [Framer Motion](https:\u002F\u002Fframer.com\u002Fmotion) – Motion library for React to animate components with ease\n- [Lucide](https:\u002F\u002Flucide.dev\u002F) – Beautifully simple, pixel-perfect icons\n- [`next\u002Ffont`](https:\u002F\u002Fnextjs.org\u002Fdocs\u002Fbasic-features\u002Ffont-optimization) – Optimize custom fonts and remove external network requests for improved performance\n- [`ImageResponse`](https:\u002F\u002Fnextjs.org\u002Fdocs\u002Fapp\u002Fapi-reference\u002Ffunctions\u002Fimage-response) – Generate dynamic Open Graph images at the edge\n\n### Hooks and Utilities\n\n- `useIntersectionObserver` –  React hook to observe when an element enters or leaves the viewport\n- `useLocalStorage` – Persist data in the browser's local storage\n- `useScroll` – React hook to observe scroll position ([example](https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fprecedent\u002Fblob\u002Fmain\u002Fcomponents\u002Flayout\u002Fnavbar.tsx#L12))\n- `nFormatter` – Format numbers with suffixes like `1.2k` or `1.2M`\n- `capitalize` – Capitalize the first letter of a string\n- `truncate` – Truncate a string to a specified length\n- [`use-debounce`](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fuse-debounce) – Debounce a function call \u002F state update\n\n### Code Quality\n\n- [TypeScript](https:\u002F\u002Fwww.typescriptlang.org\u002F) – Static type checker for end-to-end typesafety\n- [Prettier](https:\u002F\u002Fprettier.io\u002F) – Opinionated code formatter for consistent code style\n- [ESLint](https:\u002F\u002Feslint.org\u002F) – Pluggable linter for Next.js and TypeScript\n\n### Miscellaneous\n\n- [Vercel Analytics](https:\u002F\u002Fvercel.com\u002Fanalytics) – Track unique visitors, pageviews, and more in a privacy-friendly way\n\n## Author\n\n- Steven Tey ([@steventey](https:\u002F\u002Ftwitter.com\u002Fsteventey))\n","Precedent 是一个为 Next.js 项目精心设计的组件、钩子和工具集合。它集成了包括 Next.js、Clerk、Tailwind CSS 和 Framer Motion 在内的多种技术栈，提供了一套全面且易于使用的构建块，帮助开发者快速搭建功能丰富且具有良好用户体验的应用程序。该项目支持一键部署至 Vercel 平台，并通过采用 Radix UI 组件库增强了应用界面的一致性和美观度。适用于需要快速开发并上线具有现代感 Web 应用的场景，特别是那些注重用户管理和交互体验的项目。",2,"2026-06-11 03:37:40","high_star"]