/opencast

A fully open source, self-hostable Twitter flavoured Farcaster client

Primary LanguageTypeScriptMIT LicenseMIT

Opencast

A fully open source Twitter flavoured Farcaster client. Originally a fork of ccrsxx/twitter-clone.

The goal of this project is to be a fully standalone Farcaster client that you can run on your own machine. It only depends on stephancill/lazy-indexer and a connection to a Farcaster Hub.

Running it yourself

Prerequisites

  1. Clone the repo
git clone git@github.com:stephancill/opencast.git
  1. Copy .env.sample, rename it to .env and fill in the values
cp .env.sample .env
  1. Run the Docker Compose file
docker-compose up -d
  1. Go to Opencast at http://localhost:3000 and log in. It will take a few moments to index your profile and might require you to refresh the page.

Development

Farcaster Indexer

This project depends on the Lazy Farcaster Indexer. Follow the instructions at https://github.com/stephancill/lazy-indexer to set up an instance.

Local

Install dependencies

yarn install

Fill in the environment variables

cp .env.dev.sample .env

Run the development server

yarn dev

Todo

  • Feed
    • Reverse chronological feed
    • Pagination
    • Number of likes, comments, and reposts
    • Recasts
  • Cast detail
    • Number of likes, comments, and reposts
    • Paginated replies
  • User profiles
    • Casts
    • Casts with replies
    • Media
    • Likes
    • Edit profile
  • Auth
  • Engagement actions
  • Post creation
    • Text only
    • Media
    • Mentions
    • Embeds
    • Topic
  • Post deletion
  • Search
    • User
    • Topic
    • Posts
  • Channels (now called Topics)
    • Channel detail
    • Channel discovery
    • Index channels
  • Fix mobile layout
  • Rebrand
    • Renaming (casts -> tweets, etc)
    • Images
    • Code
  • Notifications
    • Badge counter
    • Notifications page
  • Optimize
    • DB queries
    • Bandwidth

...