Threads

Introduction

Welcome to Threads, an interactive web application inspired by the Threads app by Facebook. Our platform is designed to provide a seamless communication experience, built using a modern tech stack including Next.js, React, MongoDB, TypeScript, and Node.js. With Clerk as our authentication service, we ensure a secure and user-friendly login process.

Home Screen

Home Screen

Creating a Thread

Creating a Thread

Profile Page

Profile Page

Search Page

Search Page

Features

  • Real-time messaging
  • User authentication with Clerk
  • Persistent data storage with MongoDB
  • Sleek, responsive UI with React and Next.js

Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (LTS version)
  • npm or Yarn (latest version)
  • MongoDB (local or remote)

Installation

To get [Your App Name] up and running:

  1. Clone the repository to your local machine:

    git clone https://github.com/yourusername/your-app-name.git
    cd your-app-name
  2. Install the dependencies:

    npm install
    # or
    yarn install
  3. Create a .env.local file at the root of your project and add the following environment variables:

NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=<your-clerk-publishable-key>
CLERK_SECRET_KEY=<your-clerk-secret-key>
MONGODB_URL=<your-mongodb-url>
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/onboarding
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/

Make sure to replace <your-clerk-publishable-key>, <your-clerk-secret-key>, and <your-mongodb-url> with your actual Clerk and MongoDB credentials.

  1. Start the development server:
    npm run dev
    # or
    yarn dev

Visit http://localhost:3000 in your browser to see the application in action.

Usage

After installation, you can use the app to:

  • Sign in/up using the Clerk authentication system.
  • Engage in real-time conversations.
  • Manage your profile and connections.

Contributing

Contributions are what make the open-source community such a fantastic place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Acknowledgments