https://github.com/davecaos/busqued
Busqued ( A simpler drafts for Bluesky.social ๐ฆ)
https://github.com/davecaos/busqued
Last synced: 24 days ago
JSON representation
Busqued ( A simpler drafts for Bluesky.social ๐ฆ)
- Host: GitHub
- URL: https://github.com/davecaos/busqued
- Owner: davecaos
- Created: 2024-12-18T14:38:04.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-06-05T13:13:48.000Z (about 2 months ago)
- Last Synced: 2026-06-05T15:09:49.718Z (about 2 months ago)
- Language: TypeScript
- Homepage: https://davecaos.github.io/busqued/
- Size: 2.35 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Busqued
**Drafts for Bluesky.social ๐ฆ**
Busqued is a tiny, fast web app for writing and saving **Bluesky post drafts** before you publish them. It looks and feels like the Bluesky app โ centered feed, post cards, a compose box with a live character ring โ and lets you post a draft straight to your account over the AT Protocol when you're ready.
๐ **Live:** https://davecaos.github.io/busqued/
## Features
- ๐ **Draft management** โ create, edit, and delete drafts; everything is saved locally in `localStorage` (no backend, no account needed to start).
- ๐ฆ **Bluesky-style UI** โ circular avatar, display name ยท `@handle` ยท timestamp, and edge-to-edge post cards in a centered feed.
- โ๏ธ **Composer with a live character ring** โ a Bluesky-style circle that counts down the remaining characters (300 โ 0) as you type.
- ๐ **Post to Bluesky** โ sign in with your handle + an [app password](https://bsky.app/settings/app-passwords) and publish a draft over the AT Protocol (`@atproto/api`). Your session is persisted and restored on reload.
- ๐ค **Real profile** โ once logged in, your actual avatar and display name appear on the cards and in the composer.
- ๐ **Light / dark mode** โ a sun/moon toggle with a Bluesky-accurate dark theme.
- ๐ฑ **Responsive** โ full-width edge-to-edge on phones and tablets, centered column on desktop.
## Tech stack
- [React 18](https://react.dev/) + [TypeScript](https://www.typescriptlang.org/)
- [Vite 6](https://vite.dev/) (build & dev server)
- [Chakra UI v3](https://www.chakra-ui.com/) + [next-themes](https://github.com/pacocoursey/next-themes) for theming
- [@atproto/api](https://github.com/bluesky-social/atproto) for Bluesky auth & posting (lazy-loaded)
- [react-icons](https://react-icons.github.io/react-icons/) (Lucide set)
## Getting started
```bash
npm i
npm run dev # start the dev server
npm run dev -- --host # also expose it on your local network
```
Then open the printed URL (e.g. http://localhost:5173/busqued/).
## Scripts
| Command | What it does |
| --- | --- |
| `npm run dev` | Start the Vite dev server with HMR |
| `npm run build` | Type-check (`tsc -b`) and build to `dist/` |
| `npm run preview` | Serve the production build locally |
| `npm run lint` | Run ESLint |
| `npm run format` | Format `src/` with Prettier |
| `npm run deploy` | Build and publish `dist/` to GitHub Pages |
## How it works
- All drafts live in `localStorage` under `busqued.v0.1`; the Bluesky session is stored under `busqued.bsky.session.v1`.
- Login uses Bluesky **app passwords** via `BskyAgent` โ your main account password is never used.
- The app is a single-page client deployed to GitHub Pages under the `/busqued/` base path; there is no server.
## License
Personal project โ use at your own risk.