Serein
Rust로 만든 가볍고 성능 좋은 Discord 전용 네이티브 클라이언트
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Inkwell — A federated social journaling platform. LiveJournal meets MySpace, reimagined for 2026 with ActivityPub federation. No algorithms, no ads, user-owned spaces. Self-hostable.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A federated social journaling platform — LiveJournal meets MySpace, reimagined for 2026 with ActivityPub federation. No algorithms, no ads, user-owned spaces.
Live instance: inkwell.social
@[email protected]Article objects (FEP-b2b8)/roadmapink_-prefixed API keysgen_smtp or Resend API (transactional + newsletters)inkwell/
apps/
api/ # Elixir/Phoenix backend (mix project)
web/ # Next.js frontend (npm workspace member)
services/
federation/ # Unused — federation is native in Phoenix
packages/
types/ # Shared TypeScript types (npm workspace member)
npm workspaces monorepo. Lock file lives at root, not in individual apps.
brew install elixir on macOS)# 1. Start Docker services (Postgres + Meilisearch)
docker compose up -d
# 2. Install JS dependencies
npm install
# 3. Install Elixir deps, create DB, run migrations
cd apps/api && mix setup
# 4. Start Phoenix API (Terminal 1)
mix phx.server
# Wait for: Running InkwellWeb.Endpoint at 0.0.0.0:4000
# 5. Start Next.js frontend (Terminal 2, from project root)
npm run dev:web
# Wait for: Ready in ...ms
| Service | URL |
|---|---|
| Frontend | http://localhost:3000 |
| Phoenix API | http://localhost:4000 |
| API Health Check | http://localhost:4000/health |
| Meilisearch | http://localhost:7700 |
No email service is needed for local development. The API runs in "dev mode" — after entering any email on the login/signup page, a clickable magic link appears on screen instead of being emailed.
mix compile FailsOn first compile with Elixir 1.19, you may hit a one-time ordering issue:
mix deps.compile oban --force
mix compile
Inkwell runs on any x86-64 server with Docker Compose, on one domain of your own, with every feature on for everyone and no billing. Three settings to start (DOMAIN, ADMIN_EMAIL, SECRET_KEY_BASE); Caddy handles HTTPS; members are followable as @name@yourdomain.
See SELF_HOSTING.md for the guide: install, email, your own Terms and Privacy Policy, backups, upgrades and troubleshooting.
Images are published to GitHub Container Registry on every push to main, tagged with the commit. :latest moves only after that commit's images have booted the self-hosted setup and passed scripts/selfhost-smoke.sh:
ghcr.io/stantondev/inkwell-api:latestghcr.io/stantondev/inkwell-web:latestThe hosted instance runs on Fly.io. Deploy commands:
# API (runs migrations automatically)
fly deploy --config fly.api.toml --wait-timeout 600
# Frontend
fly deploy --config fly.web.toml --wait-timeout 600
# Meilisearch
fly deploy --config fly.search.toml --wait-timeout 600
CI/CD via GitHub Actions (.github/workflows/docker-publish.yml) builds Docker images on every push to main, runs the self-hosting smoke test against them, then tags them latest.