A React/Next.js application that allows users to login with their Bluesky account and set a status update with a custom lexicon schema called im.flushing.right.now.
- Bluesky OAuth authentication
- Custom lexicon schema for status updates
- Emoji selection
- Responsive design
- Feed of all users' flushing status updates
- Next.js
- React
- TypeScript
- Bluesky AT Protocol
- Supabase (for feed storage)
- WebSockets (for firehose connection)
- Clone the repository
- Install dependencies:
npm install-
Create a
.env.localfile based on.env.exampleand add your Supabase credentials -
Start the development server:
npm run dev-
Open http://localhost:3000 in your browser
-
For the firehose connection (optional, for feed functionality):
- Set up a Supabase project with the SQL in the
sql/setup.sqlfile - Run the firehose worker script on a server:
- Set up a Supabase project with the SQL in the
node scripts/firehose-worker.jsThis application is designed to be deployed on Vercel with the domain flushing.im.
For production deployment:
- Update the OAuth redirect URLs in both code and the Bluesky developer settings
- Make sure the client metadata file is accessible at
https://flushing.im/client-metadata.json - Deploy the application to Vercel
This application uses a custom lexicon schema called im.flushing.right.now with the following structure:
{
"$type": "im.flushing.right.now",
"text": "String - The status text",
"emoji": "String - A single emoji character",
"createdAt": "String - ISO timestamp"
}MIT