Find a critique partner, trade chapters, leave notes in the margins. Pages expire after two weeks.
  • Elixir 95.8%
  • CSS 1.5%
  • HTML 1.5%
  • JavaScript 0.7%
  • Dockerfile 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jake Gaylor bf346c2e9c
Document what's actually deployed
Replaces the pre-deploy checklist with the live state, plus the four
things that were only discoverable by deploying: the Resend key is shared
with ai-jakegaylor-com, mail has to send from the verified
updates.inevitable.fyi, the probes need X-Forwarded-Proto or force_ssl
turns them into meaningless 301s, and first boot restarts twice while
CNPG bootstraps.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-09 16:59:04 -04:00
.github/workflows Wire up home-cloud deploy: CI image build and real Infisical IDs 2026-08-09 16:49:55 -04:00
assets Marginalia: critique-partner matching for fiction writers 2026-08-09 16:43:42 -04:00
config Marginalia: critique-partner matching for fiction writers 2026-08-09 16:43:42 -04:00
k8s Make the health probes actually exercise the app 2026-08-09 16:56:55 -04:00
lib Marginalia: critique-partner matching for fiction writers 2026-08-09 16:43:42 -04:00
priv Marginalia: critique-partner matching for fiction writers 2026-08-09 16:43:42 -04:00
test Marginalia: critique-partner matching for fiction writers 2026-08-09 16:43:42 -04:00
.formatter.exs Marginalia: critique-partner matching for fiction writers 2026-08-09 16:43:42 -04:00
.gitignore Marginalia: critique-partner matching for fiction writers 2026-08-09 16:43:42 -04:00
AGENTS.md Marginalia: critique-partner matching for fiction writers 2026-08-09 16:43:42 -04:00
CLAUDE.md Document what's actually deployed 2026-08-09 16:59:04 -04:00
Dockerfile Marginalia: critique-partner matching for fiction writers 2026-08-09 16:43:42 -04:00
mix.exs Marginalia: critique-partner matching for fiction writers 2026-08-09 16:43:42 -04:00
mix.lock Marginalia: critique-partner matching for fiction writers 2026-08-09 16:43:42 -04:00
README.md Document what's actually deployed 2026-08-09 16:59:04 -04:00

Marginalia

Notes in the margins, for writers who trade them.

marginalia.inevitable.fyi

Marginalia pairs novelists with critique partners. You describe the book you wrote and the kind of book you'd be willing to read; it ranks the writers for whom that trade works in both directions, and shows you why. You talk, you agree a chunk size, and then you swap chapters a few thousand words at a time.

Two rules make it a swap rather than a message board:

Your pages burn after fourteen days. Every chapter carries a countdown. When it runs out the text is deleted — not hidden, not archived. The notes you receive are yours forever; feedback shouldn't expire with the draft it was about.

Nobody gets ahead. You can't send your next chapter while you owe your partner notes, and you can't send it while they owe you theirs. So you can never end up eleven chapters deep with someone who quietly stopped reading after chapter one.

Authors rate the feedback they receive on depth, usefulness and care, and writers who give generous notes get matched with each other.

Running it

mix setup
mix run priv/repo/seeds.exs
mix phx.server

Then visit localhost:4000, sign up, and collect the magic link from /dev/mailbox.

To give your account something to look at on every screen:

mix marginalia.demo you@example.com

Tests

mix precommit

The rules worth reading as specification: test/marginalia/swaps/ledger_test.exs is the reciprocity gate as a truth table, and test/marginalia_web/live/swap_flow_test.exs drives the whole thing the way two writers would.

Architecture and deployment

See CLAUDE.md.