Devpost is a web application that allows users to create topics (similar to subreddits), add posts under these topics, and engage with comments. It is built using Next.js, Tailwind CSS, and Next UI, leveraging modern features provided by the framework. Watch full demo.
-
Authentication: Implements OAuth using GitHub for seamless user authentication.
-
Topics and Posts: Users can create topics and make posts under these topics.
-
Prisma Integration: Utilizes Prisma client and SQL agent to integrate with the database, ensuring efficient data management.
-
Comments: Recursively renders nested comments in a Reddit-like fashion, allowing for rich discussion.
-
Search: Implements keyword-based search functionality for users to easily find topics, posts, and comments based on their interests.
-
Content Streaming: Optimizes page response times by implementing content streaming with the help of suspense and skeletons, enhancing user experience.
-
Request Deduplication: Minimizes the number of API requests made to the database by implementing request deduplication, improving performance and reducing server load.
-
Optimized Performance: Implements best practices such as server actions, route caching, and optimal use of server and client components to ensure fast and responsive user interactions.
-
Efficient Caching: Employs a comprehensive route caching system to improve performance and ensure up-to-date data display, enhancing overall usability.
- Next.js
- Tailwind CSS
- Next UI
- Prisma
- OAuth (GitHub)
-
Clone the Repository:
git clone https://github.com/sheel-ui/codeshare.git
-
Install Dependencies:
cd devpost npm install
-
Setup Environment Variables: Create a
.env
file in the root directory and add your environment variables. -
Run the Development Server:
npm run dev
-
Open Your Browser: Go to
http://localhost:3000
To share the code online, deploy the application using the steps mentioned here.