{"id":51475372,"url":"https://github.com/asmuelle/perennial","last_synced_at":"2026-07-06T20:30:34.025Z","repository":{"id":366029321,"uuid":"1266480658","full_name":"asmuelle/perennial","owner":"asmuelle","description":"A literature review that never goes stale: subscribe to a research question and get a versioned, citation-verified survey that ingests each week's papers and flags which claims are now supported, contradicted, or superseded — every reference verified to exist.","archived":false,"fork":false,"pushed_at":"2026-06-19T23:17:07.000Z","size":578,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-20T01:10:22.388Z","etag":null,"topics":["academic","citations","literature-review","llm","research","saas","science"],"latest_commit_sha":null,"homepage":"https://asmuelle.github.io/perennial/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/asmuelle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-06-11T16:51:50.000Z","updated_at":"2026-06-19T23:35:32.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/asmuelle/perennial","commit_stats":null,"previous_names":["asmuelle/perennial"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/asmuelle/perennial","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asmuelle%2Fperennial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asmuelle%2Fperennial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asmuelle%2Fperennial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asmuelle%2Fperennial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asmuelle","download_url":"https://codeload.github.com/asmuelle/perennial/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asmuelle%2Fperennial/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35205739,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-06T02:00:07.184Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["academic","citations","literature-review","llm","research","saas","science"],"created_at":"2026-07-06T20:30:33.171Z","updated_at":"2026-07-06T20:30:34.016Z","avatar_url":"https://github.com/asmuelle.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Perennial\n\n[![CI](https://github.com/asmuelle/perennial/actions/workflows/ci.yml/badge.svg)](https://github.com/asmuelle/perennial/actions/workflows/ci.yml)\n\n\u003e A literature review that never goes stale: subscribe to a research question and get a versioned, citation-verified survey that ingests each week's papers and flags which of its own claims are now supported, contradicted, or superseded — with every reference verified to actually exist.\n\n**Category:** LLM wiki / auto-research (living documents + delta alerts, à la Karpathy) \n\n## Concept\n\nA literature review that never goes stale: subscribe to a research question and get a versioned, citation-verified survey that ingests each week's papers and flags which of its own claims are now supported, contradicted, or superseded — with every reference verified to actually exist.\n\n## Target User\n\nPhD students, postdocs, lab PIs, and industry research scientists in fast-moving fields (ML, computational biology, neuro) drowning in arXiv's ~28K submissions/month. Individuals pay from personal or grant funds; PIs buy lab plans; adoption is viral within research groups because the shared review becomes the lab's canonical artifact.\n\n## Auto-Research Mechanic (the living document + delta engine)\n\nSeeded with a research question (optionally the user's own related-work draft), the agent generates a STORM-style structured survey with claim-level citations pinned to paper + section + quoted span. Then weekly maintenance: arXiv/OpenReview/bioRxiv/PubMed/Semantic Scholar deltas via RSS with semantic dedup; cheap-model triage filters AI-slop and citation-mill papers, including an integrity screen verifying every reference in a candidate paper resolves to a real DOI/arXiv ID — directly attacking the 1-in-277 fabricated-citation epidemic; a frontier pass integrates genuinely new results into affected sections only, marking existing claims newly supported / contradicted / superseded (Scite-style entailment applied to a living artifact, not retrospective lookup). Weekly delta email: '3 papers change Section 4; one contradicts the headline result you cite.' Full version history, per-claim provenance, verified BibTeX export.\n\n## Product Surface\n\nWeb app — the living survey needs reading/diff UI — plus weekly email delta digest and BibTeX/Overleaf/Markdown export embedding it directly in the manuscript workflow.\n\n## Why Now (2026 timing)\n\narXiv growth went super-exponential and arXiv banned unreviewed CS survey papers in Oct 2025 — survey demand is spiking exactly as human-authored supply is throttled. Fabricated citations rose 6x+ since 2023 with 100 fakes passing NeurIPS review, making 'every reference verified to exist and say what we claim' a marketable guarantee.\n\n\n## Comparables\n\n- Elicit — est. $18-22M ARR (2025), 50K+ paying users, tiers Free/$10-12 Plus/$42-49 Pro/Enterprise; $22M Series A; category leader and ARPU ceiling benchmark\n- Scite — $3.6M ARR and ~21K B2C subscribers at acquisition by Research Solutions (NASDAQ: RSSS, Nov 2023); $12-20/mo individual; closest exit comp and B2C-to-site-license playbook\n- Consensus — $1.5M ARR (Aug 2024), revenue up 8x within ~a year, $30M round led by GreatPoint Ventures, 8M users; $15ish/mo premium; proves fast growth is possible in this niche\n- SciSpace — $12-20/mo Premium, $8-18/seat Teams, $70/mo Advanced Deep Review tier; proves premium-tier headroom above $20/mo for synthesis-grade output\n- Undermind — $16/mo Pro, free tier 5 searches/mo; deep-literature-search adjacent comp\n- Semantic Scholar / Google Scholar alerts — free; raw paper feeds with zero synthesis; the free-alternative pressure floor\n- ChatGPT Deep Research / Gemini — ~$20/mo bundled; improving citation grounding is the main long-term moat threat, though currently perceived by researchers as the fabricated-citation source\n\n## Adversarial Review — \n\nThe pitch survives the wrong enemy and dies to the right one. (1) MISIDENTIFIED COMPETITION: Frontier labs won't build versioned scholarly claim graphs — but Scite, Elicit, Consensus, and Ai2 will, and they already own the hard assets. Scite has 1.2B+ citation statements and a production entailment classifier; adding 'living document' on top is a quarter of work for them, while Perennial rebuilding Scite's corpus takes years. Ai2's Semantic Scholar/Asta is free and grant-funded, and academics are the most price-sensitive, free-tool-defaulting audience in SaaS. Meanwhile ChatGPT/Gemini/Perplexity already ship scheduled tasks + deep research + proactive briefings (ChatGPT Pulse), so for the marginal grad student a $20/mo subscription they ALREADY pay delivers 70% of the perceived value, capping conversion. (2) THE MOAT IS CONDITIONAL: the 'claim graph compounds over months' argument only holds if incremental maintenance measurably beats a weekly from-scratch regeneration by a 1M-token-context frontier model — unproven, and regeneration cost falls every quarter. Version history and lab embedding are real but small-N lock-in. The 'anti-slop brand structurally unavailable to Big AI' claim is already falsified: Perplexity markets 94.3% citation accuracy; DOI existence-checking is a free Crossref call anyone can ship. (3) TRUST BAR: existence verification is the trivial 10%; supported/contradicted/superseded entailment in the wild is the unsolved 90% (SciFact-class models run ~70-85% F1 on curated data, worse on real papers). The users are domain experts — the one audience guaranteed to catch every error. One false 'this contradicts your headline result' email to a PI's lab, or one missed major result the user's colleague mentions first, breaks the only promise ('never goes stale, every claim verified') the product makes. Tolerable error rate is \u003c5% false alarms and near-zero missed major signals in the user's own niche — current entailment tech does not clear that bar without expensive human-in-the-loop. (4) COGS UNDERSTATED 2-4x: weekly frontier integration passes over a 50-100K-token survey plus 5-20 deep-read papers runs $0.50-2.00/topic/week even with batch+caching; a 3-topic $19 user with active topics costs $6-24/mo, not $2-4. Margins are 40-70%, not 85%+, and the $19 tier is underwater for power users. (5) DATA ACCESS CLIFF: ML/CS preprints are open, but comp bio and neuro live behind Elsevier/Springer/Wiley paywalls a startup cannot legally full-text mine; entailment on abstracts is unreliable, so the product silently degrades outside preprint-native fields — shrinking TAM to exactly the field (ML) where free alternatives are densest. (6) CHURN: academic lit-review need is bursty (pre-submission, pre-grant); mature topics produce 'nothing changed' weeks that teach the user to cancel; students graduate; realistic individual subscription lifetime is 4-9 months. Scite and Elicit both pivoted toward institutional/publisher revenue precisely because individual academic churn is structurally bad — Perennial's expansion path (site licenses) means 12-18 month university procurement cycles a seed-stage team may not survive.\n\n## Tech Stack \u0026 Unit Economics\n\nDATA: arXiv OAI-PMH/RSS + OpenReview API + bioRxiv API + PubMed E-utilities (all free); OpenAlex as the canonical paper/citation backbone (free); Semantic Scholar Academic Graph API (free key, partnership tier needed for rate limits); Crossref REST for DOI existence verification (free); Unpaywall for OA PDFs; GROBID for PDF-to-structured-text. MODELS: Stanford STORM (open-source) as the survey-generation skeleton; frontier model (Claude Sonnet 4.6-class) via Batch API + prompt caching for initial synthesis and weekly integration passes; Haiku 4.5/Gemini Flash-class for abstract triage and slop screening; embeddings (Voyage/OpenAI) + pgvector for semantic dedup and topic-relevance filtering; cheap fine-tuned cross-encoder (DeBERTa/SciFact-style) as first-pass entailment with frontier-model adjudication only on flagged claim-paper pairs — this two-stage design is the only way the entailment COGS and precision both work. ORCHESTRATION: Temporal or Inngest for weekly per-topic cron pipelines with retry/replay; Postgres for the claim graph (claims, papers, entailment edges, char-span provenance); ProseMirror + structured diffing for the versioned survey UI; Next.js web app; Resend for delta digests; BibTeX/Markdown/Overleaf export. UNIT ECONOMICS (realistic, not pitched): initial survey $3-8 one-time per topic; weekly maintenance per ACTIVE topic = triage ~$0.05 (300 abstracts x cheap model, batched) + integration pass $0.40-1.80 (cached survey context + 5-20 deep-read papers, frontier batch) = roughly $2-8/topic/month; assuming 1.5 active topics average per individual user, COGS $4-12/user/month against $19 = 40-75% gross margin, requiring hard caps on topic count, integration only on affected sections, and aggressive caching to stay viable. Crawling/legal COGS near zero if strictly preprint+OA; any paywalled full-text ambition adds licensing costs that break the model.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasmuelle%2Fperennial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasmuelle%2Fperennial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasmuelle%2Fperennial/lists"}