This is a project aiming to replicate the functionalities of a popular social media platform. The project is built using mostly React, Next, TS, and Tailwind, but for the database I chose mongodb AWS.
Next.js: Next.js is a React framework for building server-side rendered and statically generated web applications. It offers a streamlined development experience with features like automatic code splitting, hot module replacement, and server-side rendering.
React: React is a JavaScript library for building user interfaces. It allows developers to create reusable UI components that efficiently update when data changes.
React Icons: React Icons provides a collection of popular icons as React components, allowing easy integration of icons into the application.
React Dropzone: React Dropzone is an easy-to-use drag-and-drop file uploader component for React applications.
React Hot Toast: React Hot Toast is a toast notification library for React applications, providing customizable and easy-to-use notifications.
React Spinners: React Spinners provides a collection of loading spinner components for React applications.
SWR: SWR is a React Hooks library for data fetching, providing a simple and efficient way to fetch data, revalidate it, and update the UI.
Tailwind CSS: Tailwind CSS is a utility-first CSS framework that enables rapid UI development by providing pre-defined utility classes for common styling tasks.
TypeScript: TypeScript is a superset of JavaScript that adds static type checking and other features to improve developer productivity and code quality.
Prisma: Prisma is an ORM (Object-Relational Mapping) tool for Node.js and TypeScript. It simplifies database access by generating type-safe database client code based on a data model defined using Prisma Schema Language.
NextAuth.js: NextAuth.js is an authentication library for Next.js applications. It provides support for various authentication methods like email/password, social media logins, and OAuth providers.
bcrypt: bcrypt is a password hashing function used for securely hashing user passwords before storing them in the database.
Axios: Axios is a promise-based HTTP client for making HTTP requests from the browser and Node.js.
Date-fns: Date-fns is a modern JavaScript date utility library for parsing, formatting, and manipulating dates.
Zustand: Zustand is a lightweight and fast state management library for React applications, offering a simple and intuitive API for managing application state.
ESLint: ESLint is a static code analysis tool for identifying and reporting patterns in JavaScript code, helping to maintain code quality and consistency.
Autoprefixer: Autoprefixer is a PostCSS plugin that automatically adds vendor prefixes to CSS rules, ensuring cross-browser compatibility.
PostCSS: PostCSS is a tool for transforming CSS with JavaScript plugins. It is used in conjunction with Autoprefixer for processing CSS in this project.
To get started with the project, follow these steps:
Clone the repository: git clone https://github.com/your-username/plitter-clone.git
Install dependencies: npm install
Run the development server: npm run dev
Open http://localhost:3000 in your browser to view the application.