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. /blue-bots-done-quick
olafmoriarty

blue-bots-done-quick

A JavaScript SDK for Bluesky and AT Protocol by olafmoriarty

A version of Cheap Bots, Done Quick written for Bluesky

GitHub Stats

24stars
2forks
2contributors
13open issues

Dates

Created:July 17, 2024
Last updated:May 29, 2025

README

The following content is from blue-bots-done-quick's GitHub repository. All rights reserved by the original author.

Blue Bots, Done Quick!

A CBDQ clone for Bluesky by Olaf Moriarty Solstrand.

The project is based on Cheap Bots, Done Quick by v buckenham.

Live version: https://bluebotsdonequick.com - go there to build your own bot if you want to. It's free and easy (if you know Tracery)!

Think you can do better? You probably can! Feel free to borrow or steal as much of this code as you want to.

Installation

The frontend is written in React using TypeScript and Vite. The backend is written in PHP with a MySQL database.

Database setup

Create a MySQL database and install the following table:

CREATE TABLE `bbdq` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `active` smallint(1) NOT NULL DEFAULT 0,
  `provider` varchar(255) NOT NULL,
  `did` varchar(255) NOT NULL,
  `identifier` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `accessJwt` TEXT NULL,
  `accessJwt_time` DATETIME NULL,
  `refreshJwt` TEXT NULL,
  `refreshJwt_time` DATETIME NULL,
  `iv` varchar(32) NOT NULL,
  `script` mediumtext DEFAULT NULL,
  `language` varchar(2) NOT NULL DEFAULT 'en',
  `lastPost` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
  `lastPostText` text DEFAULT NULL,
  `n_value` int(10) NOT NULL DEFAULT 0,
  `lastNotification` varchar(32) NOT NULL DEFAULT '',
  `minutesBetweenPosts` int(10) DEFAULT NULL,
  `msg` varchar(255) DEFAULT NULL,
  `reply` varchar(255) DEFAULT NULL,
  `replyMode` tinyint(1) NOT NULL DEFAULT '0',
  `replyScript` mediumtext DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `thumb` varchar(255) DEFAULT NULL,
  `followers` int(10) DEFAULT NULL,
  `activeSince` datetime DEFAULT NULL,
  `actionIfLong` smallint(1) NOT NULL DEFAULT 0,
  `showSource` smallint(1) NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`),
  UNIQUE KEY `did` (`did`),
  KEY `identifier` (`identifier`,`provider`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_danish_ci

(You can use a differend utf8mb4 collation if you want to, of course.)

Backend

In the backend folder, create a file named secrets.php. For security reasons this file is not included in the repo, but you can use the secrets-template.php file as a template on how to fill it in.

Set up a cron job that runs bot.php every five minutes, another cron job that runs reply-bot.php every five minutes, a third cron job that runs profiler-bot.php as often as you wish to fetch avatars, display names and follower counts (mine runs once an hour).

Install ImageMagick, imagick and an RSVG library. These are required to convert user-generated SVG images to Bluesky-friendly PNGs.

It may be a good idea to increase the max_execution_time in your PHP.ini.

Frontend

Install dependencies using npm install and then build it like you normally would.

Set the variable backendURI in the src/App.tsx file to the correct path to your backend script.

Related SDKs

mary-extatcute

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

331•JavaScript
aliceisjustplayinglabeler-starter-kit-bsky

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

170•JavaScript
bluesky-socialfeed-generator

ATProto Feed Generator Starter Kit

1874•JavaScript
bluesky-socialatproto

AT Protocol Reference Implementation (TypeScript)

8595•JavaScript
skyware-jsfirehose

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

38•JavaScript
skyware-jsjetstream

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

47•JavaScript

Resources

GitHub Repository

License

Apache-2.0

Author

olafmoriarty
olafmoriarty

Activity

Last commit: May 29, 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.