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
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/web/ - React Router v7 web application (port 3000)apps/api/ - Hono API server (port 3001)apps/worker/ - Background job processor for social media data@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 serviceYou'll also need a Mailgun account for transactional emails.
Run the database in Docker and everything else locally with hot-reload:
cp .env.example .env
pnpm generate-secrets
docker-compose up -d
pnpm install
pnpm dev:local
http://localhost:3000 (web) and http://localhost:3001 (API).Run everything in containers (matches production environment):
pnpm dev:docker
| 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 |
Sill uses Drizzle ORM with Postgres:
packages/schema/src/schema.tspackages/schema/src/migrations/drizzle.config.ts