picosky#
A Bluesky (AT Protocol) client that runs as a PICO-8 cart in your browser - browse, post, and like, all in 128×128.
Roadmap#
- Auth, Feed and Thread view
- Demo Cart
- Demoscene credits
- Sfx, Music, and Change Track
- Like / Unlike and Refresh
- Post and Reply
- Avatars, Images, alt text
- Multiple Feeds
- Quote and Repost
- Animations
- Alpha Testing
- Touch/Tap/Swipe mobile support
Project Structure#
├── src/ PICO-8 Lua source modules
├── picosky.js web export - online mode (requires auth)
├── picosky-demo.js web export - demo mode (no auth needed)
├── picosky.p8 standalone demo cart
├── picosky-comms.js GPIO bridge: JS ↔ PICO-8
├── picosky-firehose.js AT Protocol firehose client
├── picosky-shim.js cart ↔ AT Protocol adapter
├── crt.js CRT shader overlay
├── index.html web player + OAuth gate
├── sw.js service worker (PWA offline)
├── manifest.webmanifest
├── client-metadata.json AT Protocol OAuth metadata
├── m3x6.lua m3x6 bitmap font (embedded in cart)
├── vendor/ third-party code (CRT shader)
├── favicons/ app icons
└── fonts/ PICO-8 bitmap font
src/#
| File | Purpose |
|---|---|
cart.p8 |
master cart - sprites, map, sound, music |
actions.lua |
Bluesky actions (post, like, repost) |
comms.lua |
GPIO protocol implementation |
demo.lua |
demo mode with mock feed |
input.lua |
keyboard and button input |
render.lua |
screen rendering |
state.lua |
app state management |
Credits#
picosky made by vinnymac
Special thanks to:
- PICO-8 by zep
- m3x6 font by daniel linssen
- webgl-crt-shader by gingerbeardman
- Bluesky team