https://github.com/peterkibuchi/shreddit
Modern fullstack Reddit clone, built with Next.js & Tailwind and deployed on Vercel.
https://github.com/peterkibuchi/shreddit
learn next-auth nextjs prisma reddit-clone shadcn-ui t3-stack tailwindcss uploadthing upstash zod
Last synced: 9 months ago
JSON representation
Modern fullstack Reddit clone, built with Next.js & Tailwind and deployed on Vercel.
- Host: GitHub
- URL: https://github.com/peterkibuchi/shreddit
- Owner: peterkibuchi
- License: mit
- Created: 2023-06-23T02:18:42.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-02T22:39:35.000Z (9 months ago)
- Last Synced: 2025-04-09T22:18:05.826Z (9 months ago)
- Topics: learn, next-auth, nextjs, prisma, reddit-clone, shadcn-ui, t3-stack, tailwindcss, uploadthing, upstash, zod
- Language: TypeScript
- Homepage: https://shreddit.vercel.app
- Size: 2 MB
- Stars: 55
- Watchers: 1
- Forks: 17
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-shadcnui - Github
README
# Shreddit
> Modern fullstack Reddit clone, built with Next.js & Tailwind and deployed on Vercel.
## Table of Contents
- [Technologies Used](#technologies-used)
- [Features](#features)
- [Meta-Features](#meta-features)
- [Quickstart](#quickstart)
- [Project Status](#project-status)
- [Acknowledgements](#acknowledgements)
- [License](#license)
## Technologies Used
- React 18
- Next.js 13
- NextAuth.js
- Prisma
- Shadcn UI
- Tailwind CSS
- TypeScript
- UploadThing
## Features
- Infinite scrolling for loading posts dynamically
- A beautiful and highly functional post editor
- Beautiful UI powered by Shadcn UI
- Light and Dark modes
- Authentication using NextAuth & GitHub
- Custom feed for authenticated users
- Image uploads (with UploadThing) & link previews
- Full comment functionality with nested replies
- ... and much more
## Meta-Features
- Next.js `/app` dir
- React Client and Server Components
- Metadata configuration for improved SEO and web shareability
- Data fetching and mutation with React Query
- Graceful loading states and optimistic updates for a great UX
- Advanced caching with Upstash Redis
- Schema declarations and validations with Zod
- Typesafe code and best practices made possible by TypeScript, ESLint and Prettier
- Automated `format`, `lint` and `typecheck` CI steps with GitHub Actions
- ... and much more
## Quickstart
To run it locally, follow the steps below:
1. Clone repository and install the dependencies:
```bash
# Clone repository
git clone git@github.com:peterkibuchi/shreddit.git
# Install dependencies
pnpm i
```
2. Copy `.env.example` to `.env` and update the variables.
```bash
cp .env.example .env
```
3. Sync the Prisma schema with your database
```bash
pnpm prisma db push
```
4. Start the development server:
```bash
pnpm dev
```
## Project Status
Project is: _complete_.
## Acknowledgements
- This is a [T3 Stack](https://create.t3.gg) project bootstrapped with `create-t3-app`.
- Many thanks to [Josh](https://www.youtube.com/@joshtriedcoding) for inspiring this project.
## License
This project is open source and available under the [MIT License](./LICENSE).