What is ChatterBox?
This is not a real application. It's just an experiment to learn more about Next 13 new features.
What's included?
Next.js features
Loading UI
https://beta.nextjs.org/docs/routing/loading-uiNext.js 13 introduced a new file convention, loading.js, to help you create meaningful Loading UI with React Suspense. With this convention, you can show an instant loading state from the server while the content of a route segment loads, the new content is automatically swapped in once rendering is complete.
Server components
https://beta.nextjs.org/docs/rendering/server-and-client-componentsReact Server Components (RSC) allow developers to better leverage server infrastructure. For example, large dependencies that previously would impact the JavaScript bundle size on the client can instead remain entirely on the server, leading to improved performance.
Cache
https://beta.nextjs.org/docs/data-fetching/cachingPer-request caching allows you to cache and deduplicate requests on a per-request basis.
Middleware
https://beta.nextjs.org/docs/upgrade-guide/version-12#upgrading-to-122Next.js now uses the Rust-based compiler SWC to compile JavaScript/TypeScript. This new compiler is up to 17x faster than Babel when compiling individual files and up to 5x faster Fast Refresh.
Authentication
NextAuth.js
https://next-auth.js.orgNextAuth.js is a complete open-source authentication solution for Next.js applications.
Style & Components
TailwindCSS
https://tailwindcss.com/Tailwind CSS works by scanning all of your HTML files, JavaScript components, and any other templates for class names, generating the corresponding styles and then writing them to a static CSS file. It's fast, flexible, and reliable — with zero-runtime.
Class Variance Authority
https://cva.style/CSS-in-TS libraries such as Stitches and Vanilla Extract are fantastic options for building type-safe UI components; taking away all the worries of class names and StyleSheet composition.
Tailwind Merge
https://github.com/dcastil/tailwind-mergeUtility function to efficiently merge Tailwind CSS classes in JS without style conflicts.
Radix UI
https://www.radix-ui.com/An open-source UI component library for building high-quality, accessible design systems and web apps.
Form & Validation
React Hook Form
https://react-hook-form.comPerformant, flexible and extensible forms with easy-to-use validation.
Zod
https://zod.dev/Zod is a TypeScript-first schema declaration and validation library. I'm using the term "schema" to broadly refer to any data type, from a simple string to a complex nested object.
Database & ORM
MySQL
Prisma
https://www.prisma.io/Prisma unlocks a new level of developer experience when working with databases thanks to its intuitive data model, automated migrations, type-safety & auto-completion.
Deploy & Production
Planetscale
https://planetscale.com/PlanetScale is a MySQL-compatible serverless database that brings you scale, performance, and reliability — without sacrificing developer experience.
Vercel
https://vercel.com/Vercel is the platform for frontend developers, providing the speed and reliability innovators need to create at the moment of inspiration.