grain.social is a photo sharing platform built on atproto.
TypeScript 75.8%
CSS 15.6%
JavaScript 8.2%
Dockerfile 0.5%
59 2 0

Clone this repository

https://tangled.org/grain.social/grain
git@tangled.org:grain.social/grain

For self-hosted knots, clone URLs may differ based on your setup.

README.md

Grain Social#

A social photo-sharing platform built on the AT Protocol, allowing users to create and share photo galleries.

Overview#

Grain Social is a photo-sharing platform designed specifically for the AT Protocol ecosystem. It enables users to:

  • Upload and organize photos into galleries
  • Share galleries with other users
  • Favorite galleries from other users
  • View photos in a customizable interface with both masonry and justified layouts

Features#

  • Photo Management: Upload, organize, and add alt text to photos
  • Gallery Creation: Create themed collections of your photos
  • Custom Layouts: View galleries in either masonry or justified grid layouts
  • Social Features: Follow users and favorite galleries
  • Profile Management: Create and customize your profile

Technology Stack#

  • Built with BFF (An AT Protocol Backend for Frontend Framework)
  • Uses AT Protocol for identity and data persistence
  • Deno runtime
  • Written in TypeScript with JSX templating
  • HTMX for dynamic interactions
  • Hyperscript for enhanced client-side functionality
  • Tailwind CSS for styling

Development#

Prerequisites#

  • Deno Version 2.2.6 or above
  • An AT Protocol account (Bluesky)

Environment Variables#

# .env
BFF_DATABASE_URL=grain.db             # SQLite db file

Running Locally#

# Backfill all network data
deno run sync

# Start the development server
deno run dev

License#

MIT License

Credits#

Developed by Chad Miller