Posts.cv clone built in Next.js + Prisma + TypeScript + Tailwind CSS
- Authentication with NextAuth and Firebase
- Users can add posts, like, repost, and reply to posts
- Users can delete posts
- Users can add images, videos, and URL embeds to the post
- Users can follow and unfollow other users
- Users can see their followers and following list
- User can edit their profile
- Users can chat with each other
- Users can receive realtime notifications
- Users can search for other users through the command menu
- Realtime update on likes, reposts, and user profile
- Responsive design for mobile, tablet, and desktop
- All images uploads are stored on Cloudinary
Here are the steps to run the project locally.
-
Clone the repository
git clone https://github.com/thisissteven/posts
-
Install dependencies
pnpm install
-
Create a new
.env
file from the specified.env.example
filecd web cp .env.example .env
Fill in the needed environment variables
DATABASE_URL= NEXT_PUBLIC_BASE_URL="http://localhost:3000" NEXTAUTH_SECRET= NEXTAUTH_URL="http://localhost:3000" GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= EMAIL_SERVER_USER= EMAIL_SERVER_PASSWORD= EMAIL_SERVER_HOST= EMAIL_SERVER_PORT= EMAIL_FROM= NEXT_PUBLIC_CLOUDINARY_BASE_URL= NEXT_PUBLIC_CLOUDINARY_VIDEO_BASE_URL= NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET= NEXT_PUBLIC_CLOUDINARY_API_KEY= NEXT_PUBLIC_CLOUDINARY_API_SECRET= NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME= NEXT_PUBLIC_CLOUDINARY_FOLDER= NEXT_PUBLIC_SUPABASE_URL= NEXT_PUBLIC_SUPABASE_KEY= NEXT_PUBLIC_ALGOLIA_APP_ID= NEXT_PUBLIC_ALGOLIA_SEARCH_API_KEY= ALGOLIA_WRITE_API_KEY=
-
Run the project
pnpm dev
-
Need to seed the database? The following command will create random amount of users and posts.
pnpm prisma db seed