Ribbit is a Reddit-inspired forum application built with Next.js 13, Drizzle ORM and Clerk.
- Next.js 13 App router
- Server components for direct secure access to backend resources and reduced client-side bundle sizes.
- Server Actions.
- React.js Suspense and Streaming data for smaller blocking times and responsive UI, without impacting SEO.
- React.js cache() and useTransition, among other new React 18 APIs.
- New Next.js metadata API for easier SEO.
- Drizzle ORM for operating SQL database.
- Planetscale's databasejs serverless database driver.
The goal for this project is to learn and use all new features from Next 13, coming from Next 12.
I set up authentication with Clerk, while also having my database's own user table by consuming their webhooks.
Whenever a user is created, updated or deleted, a webhook is sent to /app/api/webhooks/user/route.ts
, and we update the info in the project's Planetscale database.