Skip to content

Find the most popular links from your Mastodon/Bluesky networks

License

Notifications You must be signed in to change notification settings

TylerFisher/sill

Repository files navigation

Sill

Top news from the people you trust

Sill collects links posted by the people you follow on Bluesky and Mastodon, and aggregates them into a list of the most popular links in your network.

You can find the official production version of Sill at sill.social

Architecture

Sill is a monorepo built with pnpm workspaces and Turborepo. It uses React Router for the web app, Hono for the API, and Postgres for the database.

Apps

  • apps/web/ - React Router v7 web application (port 3000)
  • apps/api/ - Hono API server (port 3001)
  • apps/worker/ - Background job processor for social media data

Packages

  • @sill/schema - Shared database schema and types (Drizzle ORM)
  • @sill/auth - Authentication utilities and OAuth
  • @sill/links - Link processing and social media integration
  • @sill/emails - Email templates (React Email) and Mailgun service

Prerequisites

  • Node.js >= 22
  • pnpm >= 10.17.1
  • Docker

You'll also need a Mailgun account for transactional emails.

Development Setup

Local Development (Recommended)

Run the database in Docker and everything else locally with hot-reload:

  1. Create your environment file and generate secrets:
cp .env.example .env
pnpm generate-secrets
  1. Start the database:
docker-compose up -d
  1. Install dependencies and start all packages:
pnpm install
pnpm dev:local
  1. Visit http://localhost:3000 (web) and http://localhost:3001 (API).

Docker Development

Run everything in containers (matches production environment):

pnpm dev:docker

Commands

Command Description
pnpm dev:local Start all packages in development mode
pnpm dev:docker Start everything in Docker containers
pnpm build Build all packages for production
pnpm lint Run Biome linter/formatter
pnpm typecheck Run TypeScript checks
pnpm test Run Vitest tests

Database

Sill uses Drizzle ORM with Postgres:

  • Schema: packages/schema/src/schema.ts
  • Migrations: packages/schema/src/migrations/
  • Config: drizzle.config.ts

About

Find the most popular links from your Mastodon/Bluesky networks

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages