Developed a clone of a official medium website, replicating all major functionalities.
Live Link - https://medium-clone-jz8b.vercel.app.
- Read Stories: Enjoy a wide range of stories across various topics.
- User Authentication: Create an account to personalize your experience.
- Write Stories: Become an author and share your own stories with the community.
- Engagement:
- Like & Save: Show appreciation for stories you love and save them for later.
- Comment & Reply: Engage in discussions with comments and sub-comments.
- Edit & Delete Comments: Modify or remove your comments as needed.
- Follow System:
- Follow Authors: Keep up with your favorite authors and never miss their new stories.
- Gain Followers: Build your own audience as an author.
- Follow Topics: Stay updated on the topics that interest you.
- Mute Authors: Customize your feed by muting authors you're not interested in.
- Search Functionality: Easily find stories, topics, and authors that pique your interest.
- Author Profiles: Learn more about authors with detailed bio and about sections.
- Reading History: Track your reading journey and revisit your favorite stories.
Sign In Page | Sign Up Page |
---|---|
Home Page | Read Story Page |
---|---|
Profile Page | Your Library Page |
---|---|
Your Stories Page | Refile Recommendations Page |
---|---|
Write Story Page | Publish Story Page |
---|---|
- Frontend:
- React
- TypeScript
- Tailwind CSS
- Zustand (state management)
- Backend:
- Express
- PostgreSQL
- Prisma
- Typescript
- Cloud (Cloudinary)
- Additional Tools:
- Cloudflare for DDoS protection
- Google ReCAPTCHA V2
- Zod for common type implementations
To set up the project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/Aayuslad/Medium-Clone.git
-
Install dependencies for both frontend and backend
cd frontend npm install cd Express_backennd npm install
-
Set up environment variables:
DATABASE_URL=your_database_url CLOUD_NAME=your_cloud_name API_KEY=your_api_key API_SECRET=your_api_secret PORT=your_port
-
Run forntend anc backend
cd Express_Backend npm run dev cd frontend npm run dev
- Fork the repository.
- Create a new branch (git checkout -b feature-branch).
- Make your changes.
- Commit your changes (git commit -m 'Add some feature').
- Push to the branch (git push origin feature-branch).
- Open a pull request.
Feel free to replace any placeholder text with your specific details and make any necessary adjustments.