A Next.js application that allows Bluesky users to set custom handles with a dedicated .bluesky.bot domain suffix, making it easy to identify and differentiate bot accounts on the Bluesky social network.
Bluesky.bot provides a simple way for bot creators to claim a unique handle under the .bluesky.bot domain (e.g., yourbot.bluesky.bot). This helps distinguish automated accounts from regular users, promoting transparency and trust within the Bluesky ecosystem.
- OAuth Authentication: Users authenticate with their Bluesky account via AT Protocol OAuth
- Handle Selection: Choose a custom handle prefix (e.g.,
mybot→mybot.bluesky.bot) - DNS Configuration: The app manages the DNS records to point your chosen handle to your Bluesky DID
- Profile Update: Your Bluesky profile is automatically updated with the new bot handle
- Bun >= 1.0 (or Node.js >= 18)
- PostgreSQL >= 14
- A Bluesky account for testing
git clone https://github.com/pirmax/bluesky.bot.git
cd bluesky.botbun installOr with npm:
npm installCopy the example environment file and fill in your values:
cp .env.example .envEdit .env with your configuration:
NEXT_PUBLIC_URL="http://localhost:3000"
NEXT_PUBLIC_HANDLE_SUFFIX=".bluesky.bot"
COOKIE_PASSWORD="generate-a-random-32-character-string"
DATABASE_URL="postgresql://user:password@localhost:5432/bluesky_bot"Note: Generate a secure COOKIE_PASSWORD using:
openssl rand -base64 32Create a PostgreSQL database and run migrations:
# Generate Prisma client
bun run prisma generate
# Run database migrations
bun run prisma migrate deployFor development, you can use:
bun run prisma migrate devbun run devThe application will be available at http://localhost:3000
├── prisma/ # Database schema and migrations
├── src/
│ ├── app/ # Next.js App Router pages
│ ├── components/ # React components
│ ├── lib/ # Core utilities (OAuth, Prisma, etc.)
│ └── types/ # TypeScript type definitions
└── public/ # Static assets
bun run dev- Start development serverbun run build- Build for productionbun run start- Start production serverbun run lint- Run Biome linterbun run format- Format code with Biome
bunx prisma studio- Open Prisma Studio to view/edit databunx prisma migrate dev- Create and apply new migrationbunx prisma generate- Regenerate Prisma Client
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and test thoroughly
- Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Add support for custom domains
- Implement handle verification badges
- Create an admin dashboard for managing handles
- Add rate limiting and abuse prevention
- Improve UI/UX with better animations
- Add internationalization (i18n)
This project is licensed under the MIT License - see the LICENSE file for details.
This is an independent project and is not officially affiliated with Bluesky Social PBC.