Skip to content

An open source application built using the new router, server components and everything new in Next.js 13.

License

Notifications You must be signed in to change notification settings

SteffeyDev/donorsync

 
 

Repository files navigation

Donorsync

An open source application built using the new router, server components and everything new in Next.js 13. Forked from shadcn to use Sanity.io / PortableText rather than MDX and Contentlayer (Contentlayer doesn't yet support Sanity)

Things Broken: Styling on the Docs page text and the Docs Toc (It actually works with the custome headings components, but for some reason they aren't passing linting/typechecks)

Demo

screenshot-2

About this project

This project as an experiment to see how a modern app (with features like authentication, subscriptions, API routes, static pages for docs ...etc) would work in Next.js 13 and server components.

This is not a starter template.

A few people have asked me to turn this into a starter. I think we could do that once the new features are out of beta.

Note on Performance

Features

  • New /app dir,
  • Routing, Layouts, Nested Layouts and Layout Groups
  • Data Fetching, Caching and Mutation
  • Loading UI
  • Route handlers
  • Metadata files
  • Server and Client Components
  • API Routes and Middlewares
  • Authentication using NextAuth.js
  • ORM using Prisma
  • Database on PlanetScale
  • UI Components built using Radix UI
  • Documentation and blog using MDX and Contentlayer
  • Subscriptions using Stripe
  • Styled using Tailwind CSS
  • Validations using Zod
  • Written in TypeScript

Roadmap

  • Add MDX support for basic pages
  • Build marketing pages
  • Subscriptions using Stripe
  • Responsive styles
  • Add OG image for blog using @vercel/og
  • Dark mode

Known Issues

A list of things not working right now:

  1. GitHub authentication (use email)
  2. Prisma: Error: ENOENT: no such file or directory, open '/var/task/.next/server/chunks/schema.prisma'
  3. Next.js 13: Client side navigation does not update head
  4. Cannot use opengraph-image.tsx inside catch-all routes

Why not tRPC, Turborepo or X?

I might add this later. For now, I want to see how far we can get using Next.js only.

If you have some suggestions, feel free to create an issue.

Running Locally

  1. Install dependencies using pnpm:
pnpm install
  1. Copy .env.example to .env.local and update the variables.
cp .env.example .env.local
  1. Start the development server:
pnpm dev

License

Thanks to https://kittygiraudel.com/2022/05/19/table-of-contents-with-sanity-portable-text/ for the TOC generation from portabletext

About

An open source application built using the new router, server components and everything new in Next.js 13.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 97.1%
  • JavaScript 1.4%
  • Other 1.5%