ish.ninja is a free online platform to allocate a unique ish.ninja sub handle name for a BlueSky account.

Overview

ish.ninja

ish.ninja is a free online platform to allocate a unique ish.ninja sub handle name for a BlueSky account.

It is built using Next.js, Xata, The AT Protocol & Vercel API.

It serves as a solid example of how to serve sub-domain as handle names for BlueSky accounts. This is beneficial for verification purpose for users in an organization, community, or a project that have a single parent domain and want to have sub-domains for each user.

This project uses the ish.ninja domain to allocate sub handle names for BlueSky accounts.

How it works?

  1. User visits ish.ninja and authenticates with their BlueSky account.
  2. If user is already using a ish.ninja subhandle, then they can see their sub handle name and update it if they want.
  3. If user is not using ish.ninja then they can allocate a sub handle name for their BlueSky account, given that the sub handle name is not already taken.

You can clone it and deploy it on your own domain to allocate sub handle names for your own domain.

Things to keep in mind when deploying this project on your own domain:

  • Create a new xata database using the xata-cli or from the xata dashboard. Create a new table named usernames, with three columns id (default), username(string), and did(string).
  • For saving all the information related to the domain, I've used Vercel, as the Vercel API endpoints to play with the DNS records are easy to implement. Check the docs here
  • The documentation for AT Protocol can be found here.

How your data is treated?

We require your BlueSky credentials to authenticate you directly with the BlueSky server. We do not store your BlueSky credential on our database.

All the tokens, profile data, your preferences are stored in your browser's storage and will never leave your browser without your consent.

Once you allocate a sub handle name, we store it in the database along with your DID, just to uniquely identify you and your sub handle name.

If you do not wish to share your DID with us, please do not use this service as saving your sub handle and DNS propogation requires your DID to be shared with us.

We do not store any other data related to your BlueSky account.

Once you update your sub handle name, we update the database with your new sub handle name.

If you change your BlueSky handle directly from the BlueSky app, your sub handle will be deleted from our database within 24 hours. Once deleted, the sub handle name will be available for allocation again.

Warning/Disclaimer/Note/Whatever

The AT Protocol is still in development and a lot of things can break. If you find any bug or have any suggestion, please open an issue.

If you have any security concern, please email me at [email protected] or DM me on Twitter.

License

MIT License. See the LICENSE file for more information.

You might also like...

Feel free to create new file, don't hesitate to pull your code, the most important thing is that the file name here must match your nickname so that file does not conflict with other people.

Hacktoberfest Indonesia Apa Itu Hacktoberfest ? Hacktoberfest adalah acara tahunan yang bertujuan untuk mendorong berkontribusi kedalam ekosistem open

Dec 15, 2022

A chat logs online saver for discord bots to save messages history & cleared messages online

A chat logs online saver for discord bots to save messages history & cleared messages online

Chat Logs NPM package that saves messages online to view it later Useful for bots where users can save messages history & cleared messages online Supp

Dec 28, 2022

Cloud Native, DevOps, GitOps, Open Source, industry news, culture, and the 'ish between.

Cloud Native, DevOps, GitOps, Open Source, industry news, culture, and the 'ish between.

DevOps'ish DevOps'ish is authored by Chris Short and Made in Michigan. What is DevOps? I'm glad you asked. Newsletter Writing Process Everyone needs a

Jan 12, 2022

A Typescript assembly(ish) interpreter with a nice web UI

Assembly-Online Example Fibonacci Program MOV R0, #1 MOV R1, #1 fib: MOV R2, R0 ADD R0, R0, R1 MOV R1, R2 B print CMP R0, #40 BGT exit B fib exit: \ I

May 23, 2022

A maybe slightly safer-ish wrapper around eval Function constructors

evalish A maybe slightly safer-ish wrapper around eval Function constructors Please maybe try something else first.. Please. evalish is a small helper

Sep 6, 2022

A maybe slightly safer-ish wrapper around eval Function constructors

evalish A maybe slightly safer-ish wrapper around eval Function constructors Please maybe try something else first.. Please. evalish is a small helper

Aug 21, 2022

Some process handle JavaScript function parameter.

Function parameter handle or paremeter error control Example 1: Just checking if all arguments were passed / defined. const required = (name) = {

Mar 14, 2022

A Discord.JS Command Handler to handle commands eaiser

TABLE OF CONTENTS Installation Setup Changing Default Prefix Creating a Command Usage of minArgs and maxArgs Syntax Errors Global Syntax Errors Per Co

Jun 8, 2022

Handle errors like it's 2022 🔮

Handle errors like it's 2022 🔮 Error handling framework that is minimalist yet featureful. Features Minimalist API Custom error types Wrap any error'

Jan 7, 2023
Comments
Owner
Ishaan Bedi
Developer. WWDC22 Scholar. Swift & Web.
Ishaan Bedi
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
Piccloud is a full-stack (Angular & Spring Boot) online image clipboard that lets you share images over the internet by generating a unique URL. Others can access the image via this URL.

Piccloud Piccloud is a full-stack application built with Angular & Spring Boot. It is an online image clipboard that lets you share images over the in

Olayinka Atobiloye 3 Dec 15, 2022
This project is created to store the name of the book and the name of its author, build with JavaScript.

awesome-books A plain javascript project that can keep track of a list of books utilizing localStorage. See live demo Built With HTML CSS Javascript T

Shaqayq Darwazi 3 Jul 19, 2022
An example Worker for copying Cloudflare Pub/Sub messages to R2 storage

pubsub-to-r2 An example Cloudflare Worker that acts as an on-publish hook for Pub/Sub and copies a subset of messages to R2 object storage. To deploy

Matt Silverlock 4 Jul 1, 2022
may-be.gay is a service in which you can register your own sub-domain for your personal website

may-be.gay is a service in which you can register your own sub-domain for your personal website. How to register New method (Recommended) Create a new

may-be.gay 7 Dec 27, 2022
An interceptor to validate and decode Pub/Sub push messages for endpoints

NestJS GCP Pub/Sub Interceptor Provides an Interceptor for NestJS to automagically validate and unwrap HTTP push messages from Google Cloud Platform's

Hiphops 3 Dec 15, 2022
A free and open-source Automatic Account Creator (AAC) written in Javascript Stack;

A free and open-source Automatic Account Creator (AAC) written in Javascript Stack. ????‍?? Techs Front-end Vue.js Vuex-module-decorators Vuetify.js N

null 24 Dec 17, 2022