AD
Boost Your Brand on BlueSky—Exclusive banner space to amplify your reach within the BlueSky community.
BSkyInfo LogoBskyInfo
All ToolsCategoriesCollectionsFeed DirectoryLabeler DirectoryArticlesGuidesGlossaryBluesky SDKsSponsor
Submit
All ToolsCategoriesCollectionsFeed DirectoryLabeler DirectoryGuidesGlossaryArticlesBluesky SDKsSponsorSubmit
  1. SDKs
  2. /JavaScript
  3. /simple-atproto-handles
furSUDO

simple-atproto-handles

A JavaScript SDK for Bluesky and AT Protocol by furSUDO

Easily configure your own domain as a custom community handle for Bluesky using Cloudflare’s generous free tier.

GitHub Stats

20stars
1forks
2contributors
0open issues

Dates

Created:October 25, 2024
Last updated:February 21, 2025

README

The following content is from simple-atproto-handles's GitHub repository. All rights reserved by the original author.
Simple ATProto Handles  

Simple ATProto Handles

GitHub stars

🎯 About

Simple ATProto Handles allows you to use your domain as a handle on Bluesky, such as @name.example.com, leveraging Cloudflare’s free tier. This is especially useful for communities and individuals who want a personalized, branded Bluesky handle.

✨ Features

  • Easy Setup: Quick to configure
  • User-Friendly: Simple to use and deploy on your own domain

🚀 Technologies

This project uses:

  • Qwik
  • Vite
  • Cloudflare Pages
  • Cloudflare D1

🪜 Setup Guide

Before starting 🏁, ensure you have Git and Node.js installed, as well as a domain for which you can manage DNS settings.

1. Cloudflare Setup

First, sign up for a Cloudflare account if you don’t have one. Create a D1 database and take note of the database name and Database ID shown.

Setup D1 database

Add your domain to Cloudflare:

  1. Go to Websites in your Cloudflare dashboard.
  2. Enter your domain, then follow the prompts to change your domain's nameservers to Cloudflare’s.

2. Project Setup

With Cloudflare configured, we can start setting up the project.

# Clone this repository
$ git clone https://github.com/fursudo/simple-atptoto-handles

# Enter project directory
$ cd simple-atptoto-handles

# Install dependencies
$ npm install

Next, rename .dev.vars.example to .dev.vars and fill in the values, including Bluesky account credentials (email and password).

Update the wrangler.toml file with your Cloudflare database details:

name = "simple-atptoto-handles" # Edit as desired

[[d1_databases]]
binding = "DB"
database_name = "your-database-name" # Replace with your database name
database_id = "your-database-id" # Replace with your database ID

3. Database Preparation

Cloudflare D1 databases exist in two states: local and remote. Start by applying migrations locally:

$ npx wrangler d1 migrations apply your-database-name --local
# Follow prompts to deploy 0001_db_init.sql

If everything is successful, start the project:

$ npm run dev

# Now let's make our changes to the remote database
$ npx wrangler d1 migrations apply your-database-name --remote

4. Push to GitHub

To version your project, you can push it to a GitHub repository. Run:

$ git add .
$ git commit -m "Initial commit"
$ git push

Avoid committing .dev.vars to keep sensitive information secure.

5. Deploy to Cloudflare Pages

  1. Connect your GitHub repository to Cloudflare Pages from the Cloudflare dashboard.

    Setup Cloudflare Pages with Git

  2. Authenticate, then select your repository to build and deploy. Be Sure to Select the Qwik Framework Preset.

    Deploy to Cloudflare

6. Configure Cloudflare Pages

In the Settings of your Cloudflare Page, add the Environment Variables and Secrets from your .dev.vars file. Bind the D1 database to DB, referencing your previously created database.

For custom domain support, navigate to Custom Domains in Cloudflare and add your domain (e.g., example.com).

7. DNS and Page Rules Configuration

For DNS settings:

  1. Add a wildcard CNAME record with the name * pointing to [your-page].pages.dev.

    DNS configuration

For URL forwarding:

  1. In Page Rules, set up a rule for *.example.com/* with a Forwarding URL (301 redirect) pointing to https://example.com/$1/$2.

    Page Rules configuration

8. 🎉 All Set!

Your handle setup is now complete!

📝 License

This project is licensed under GNU General Public License v3.0. For more details, see the LICENSE file.

Built with ❤️ & sleep deprivation by furSUDO


Back to top

Topics

at-protocolatprotoatprotocolblueskycloudflare-d1cloudflare-pages

Related SDKs

mary-extatcute

a collection of lightweight TypeScript packages for AT Protocol, the protocol powering Bluesky.

318•JavaScript
aliceisjustplayinglabeler-starter-kit-bsky

Use this repository to get started with your own Bluesky Labeler.

167•JavaScript
bluesky-socialfeed-generator

ATProto Feed Generator Starter Kit

1856•JavaScript
bluesky-socialatproto

AT Protocol Reference Implementation (TypeScript)

8526•JavaScript
skyware-jsfirehose

A dead simple client for subscribing to an ATProto Relay ("firehose").

37•JavaScript
skyware-jsjetstream

A fully typed client for the Bluesky Jetstream (https://github.com/bluesky-social/jetstream) service.

47•JavaScript

Resources

GitHub Repository

License

GPL-3.0

Author

furSUDO
furSUDO

Activity

Last commit: February 21, 2025
Commit frequency: Unknown

Our Sponsors

Your Brand Here!

50K+ engaged viewers every month

Limited spots available!

📧 Contact us via email🦋 Contact us on Bluesky
BSkyInfo LogoBskyInfo

The Most Comprehensive Bluesky Tools Directory

Stay updated with the latest Bluesky tools and ecosystem news 🦋

Bluesky butterfly logo
Quick LinksSubmit a ToolSponsorAboutLegal Information
ToolsFeed DirectoryLabeler DirectorySchedulingAnalyticsAll ToolsCategoriesCollectionsTags
ResourcesArticlesBluesky GuidesBluesky GlossaryBluesky SDKsBluesky ResourcesSkyRaffleMeida Coverage
Our ProductsRaffleBlueAiTeach ToolsLaiewAI affiliate listFirsto

This website may contain affiliate links

© 2025 BskyInfo. All rights reserved.