Skip to content

solanto/gridded.blue

Repository files navigation

gridded.blue

gridded.blue is a basic, online client for Bluesky that shows users' images and videos in a grid—similarly to social media platforms like Pixelfed and Instagram. Since gridded.blue is a web app, it should work on any platform with a web browser and internet access! gridded.blue is built with Astro.

In addition to viewing public profiles, you can view profiles that require login by authenticating with a Bluesky account.

A screenshot of gridded.blue's UI, viewing @bsky.app's profile. The page header has controls for which and whose images are shown. After @bsky.app's profile and bio, three of their posted images form their first row of media.

A public instance of gridded.blue is available online.

installing

This project uses pnpm and is built for hosting on Netlify.

pnpm install

Some setup is necessary before hosting a gridded.blue server. Namely, the following environment variables must be set (manually or using a .env file):

DEV="true"                       # true or false depending on whether you're hosting for development
SITE="https://example.site.com"  # the server's public base URL, via which Bluesky will communicate for OAuth
JWKS='[{ "jwk": { ... } }, ...]' # JWK keys for atproto OAuth

For development, you can get a public endpoint through free services like zrok.

zrok share public 8888

Autogenerating JWKs for atproto's OAuth is still subject to experimentation for gridded.blue; temporarily uncomment the large, commented blocks in src/utilities/client.ts to generate a .jwks.json that can be copied into the JWKS environment variable.

Finally, run a development server.

pnpm dev

contributing

Feel free to ask questions here or at person@dandelion.computer. I'll do my best to collaborate with those who'd like to!

license

GNU General Public License v3.0 or later. See license in LICENSE.md.