Skip to content

GenRxiv

An open archive for AI-generated research.

GenRxiv is a preprint server for research that was substantially generated or co-generated by AI. Submissions are accepted in Markdown only, authors are identified by ORCID iD, and everything is openly licensed and readable by both people and machines.

Status: accepting submissions. The archive is live and building in the open. Sign in with ORCID to submit.


Why

Preprint servers exist for most fields — arXiv for physics and maths, bioRxiv for biology, ChemRxiv for chemistry. None were designed with AI-generated work in mind, and most are still working out what to do about it.

GenRxiv starts from the other end. It assumes AI involvement is the default, not an exception to be argued for.

GenRxiv is not peer-reviewed and does not evaluate the scientific quality of submissions. Popularity is tracked via human and agent download counts — the signal layer is usage, not editorial gatekeeping.

How it works

Submissions Markdown only — rendered to HTML (primary) with PDF on demand
Author identity ORCID iD, so attribution is verifiable
Classification Exactly 3 OECD Fields of Science subject classifications per paper
Machine access OAI-PMH metadata endpoint, sitemap, Atom feed, schema.org JSON-LD, public stats API, agent discovery manifest
Licensing CC0 (Public Domain Dedication) — all submissions
Discovery Browse, search, subject pages, author pages
Versioning Authors can submit revised versions; ARK persists across versions
Citations BibTeX in Markdown, rendered as numbered references [1] in citation order
Notifications Authors notified by email when submissions are approved or rejected

Authors prepare papers by pasting docs/AUTHOR_PROMPT.md into any LLM along with their research content. The prompt produces a Markdown document with LaTeX math ($...$), SVG figures, and a license statement — ready to submit as-is.

Space-efficient by design

GenRxiv stores the Markdown source, not a rendered PDF. Papers are submitted as Markdown (with LaTeX math notation), and the server renders them to HTML with KaTeX for math and native SVG for figures. Readers print from the browser. A downloadable PDF is also generated, but the HTML is the version of record.

This keeps storage ~50-200 KB per paper instead of the 2-10 MB typical of PDF-first preprint servers — a 20-50x reduction. It also makes every paper immediately machine-readable: the HTML is structured, semantic, and parseable by search engines and AI tools without PDF extraction.

Figure limits: raster images are capped at 500 KB each and 2 MB total per paper. Use SVG where possible — it's smaller, sharper, and scales to any display.

Architecture

GenRxiv is built on a purpose-built FastAPI application with PostgreSQL. There is no OJS, no Apache, no PHP. The submission workflow is deliberately simple: submit, moderate, publish.

                    Cloudflare Tunnel
                           |
                        nginx
                           |
        +------------------+------------------+
        |                  |                  |
    FastAPI API    Conversion Service    PostgreSQL
    (submission,   (Markdown → HTML/PDF   (articles, authors,
     moderation,    via Pandoc + Tectonic)  downloads, sessions,
     articles,      No published ports      settings,
     OAI-PMH,                               schema_migrations)
     auth, stats,
     agent discovery,
     maintenance mode)
        |
     Article files
     (HTML, PDF renders)

The conversion service runs untrusted author-submitted Markdown, so it is sandboxed: per-job scratch directories, hard wall-clock timeouts, capped upload and image sizes, and no published ports. Tectonic (used for PDF rendering) is invoked with --untrusted, which disables shell-escape and restricts file system access.

Security

  • All queries use parameterized SQL (psycopg3) — no string interpolation
  • Input validation: ORCID format, title/abstract/subject length limits, CC0-only license, file extension whitelist, file size limits
  • Path traversal protection on all file-serving endpoints
  • Rate limiting: API-level (SlowAPI) and nginx-level (limit_req)
  • Security headers: X-Content-Type-Options, X-Frame-Options, HSTS, Referrer-Policy, Permissions-Policy
  • Session cookies: HttpOnly, SameSite=Lax, Secure (over HTTPS)
  • ORCID OAuth state validation (CSRF protection)
  • No password storage — ORCID is the only login mechanism
  • API docs and OpenAPI schema moved to /api/docs and /api/openapi.json (not exposed at the default /docs)
  • Container resource limits on all services
  • PostgreSQL healthcheck with startup ordering

See SECURITY.md for the full policy.

Repository layout

api/              FastAPI application (submission, moderation, articles, OAI-PMH)
  migrations/     Numbered SQL migration files
convert-service/  Markdown to HTML/PDF conversion sidecar (Pandoc + Tectonic)
deploy/           docker-compose stack, nginx config, .env.example
tests/browser/    Playwright browser tests
scripts/          backup, restore, maintenance, deployment scripts
brand/            logos and brand assets
docs/             setup guide, author prompt
test-paper.md     sample submission for testing

API endpoints

Public

Method Path Description
GET /health Service health check
GET /api/articles List published articles (paginated, searchable)
GET /api/articles/{id} Article metadata (JSON or JSON-LD)
GET /api/subjects All subject classifications with article counts
GET /api/subjects/{subject}/articles Articles by subject classification
GET /api/authors/{orcid} Author profile and articles
GET /api/stats Public stats (no auth, agent-readable)
GET /article/{ark} View article as HTML
GET /article/{ark}/pdf Download article as PDF
GET /article/{ark}/markdown Download original Markdown
GET /article/{ark}/jsonld Schema.org JSON-LD
GET /article/{ark}/bibtex BibTeX references (plain text)
GET /api/articles/{ark}/references Parsed references (JSON)
GET /oai OAI-PMH 2.0 endpoint
GET /sitemap.xml XML sitemap
GET /feed.xml Atom 1.0 feed (20 most recent articles)
GET /robots.txt Robots file
GET /.well-known/ai-plugin.json AI plugin manifest for agent discovery
GET /api/agent-guide Plain-text agent guide with submission instructions
GET /api/fos OECD Fields of Science taxonomy (JSON)

Web UI

Method Path Description
GET /browse Browse articles (search, pagination)
GET /subjects Subject classification cloud
GET /author/{orcid} Author profile page
GET /submit Submission form (requires ORCID)
GET /dashboard Author's submissions

Authentication

Method Path Description
GET /auth/orcid Redirect to ORCID OAuth
GET /auth/orcid/callback ORCID callback
POST /auth/logout Destroy session
GET /auth/me Current user info

Author (requires ORCID)

Method Path Description
POST /api/submit Submit Markdown paper (rate-limited: 5/min)
GET /api/submissions List own submissions
GET /api/articles/{id}/stats Per-article download stats
GET /api/articles/{id}/versions Version history for an article

Admin (requires admin ORCID)

Method Path Description
GET /admin Moderation queue and stats dashboard
GET /admin/queue Pending submissions (JSON)
GET /admin/submission/{id} Submission detail with markdown preview
POST /admin/articles/{id} Approve/reject (form-based)
PATCH /admin/articles/{id} Approve/reject (JSON API)
GET /admin/stats Aggregate stats
GET /admin/maintenance Maintenance mode status
POST /admin/maintenance Toggle maintenance mode

API documentation

  • GET /api/docs — Swagger UI
  • GET /api/openapi.json — OpenAPI schema

Agent access

GenRxiv is designed to be machine-readable. Agents can discover, read, and prepare submissions without a browser.

Discovery

Endpoint Purpose
GET /api/agent-guide Plain-text guide with full submission instructions
GET /.well-known/ai-plugin.json AI plugin manifest
GET /api/fos OECD Fields of Science taxonomy (JSON)
GET /api/openapi.json OpenAPI schema
GET /oai?verb=Identify OAI-PMH 2.0 metadata harvesting
GET /sitemap.xml XML sitemap
GET /feed.xml Atom 1.0 feed
GET /robots.txt Robots file (advertises agent endpoints)

Reading articles

Endpoint Purpose
GET /api/articles List published articles (paginated, searchable)
GET /api/articles/{id} Article metadata (JSON)
GET /article/{ark}/jsonld Schema.org JSON-LD
GET /article/{ark}/bibtex BibTeX references (plain text)
GET /api/articles/{ark}/references Parsed references (JSON)
GET /article/{ark}/markdown Original Markdown source
GET /article/{ark}/pdf PDF rendering

Preparing submissions

Agents can't authenticate via ORCID (it requires browser-based OAuth), but they can prepare a complete submission file. The Markdown file includes YAML front matter with all metadata — when a human uploads it on /submit, the form auto-fills. See docs/AUTHOR_PROMPT.md for the full template.

The submitter (logged-in ORCID user) is recorded separately for accountability but does not need to be an author. The front matter authors list is the complete author list in publication order. Agents must get explicit user confirmation before submission. See GET /api/agent-guide for the full conduct rules.

Running it locally

Requires Docker and Docker Compose.

git clone https://github.com/GenRxiv/genrxiv.git
cd genrxiv
cp deploy/.env.example .env    # fill in your own values
docker compose -f deploy/docker-compose.yml --env-file .env up -d

The site will be available at http://localhost:8080.

See docs/SETUP.md for the full walkthrough, including Cloudflare Tunnel, ORCID registration, and backups.

Tests

# API tests (91 tests, requires PostgreSQL)
cd api
pip install -r requirements-dev.txt
export DATABASE_URL_TEST=postgresql://user:pass@localhost/genrxiv_test
export RATE_LIMIT_ENABLED=false
pytest test_api.py -v

# Browser tests (13 Playwright tests, requires running API)
cd tests/browser
pip install -r requirements.txt
playwright install chromium
pytest test_submit_form.py -v

# Conversion service tests (requires pandoc + tectonic)
cd convert-service
pip install -r requirements-dev.txt
pytest test_app.py -v

CI runs all test suites on every push and pull request (see .github/workflows/tests.yml).

Contributing

GenRxiv needs more than code. Moderators, people to help write the submission and disclosure policy, and researchers willing to be early authors are all genuinely useful. See CONTRIBUTING.md.

Licensing

  • Code in this repository: AGPL-3.0
  • Archived papers: CC0 1.0 (Public Domain Dedication) — all submissions are CC0

Persistent identifiers

GenRxiv issues ARK (Archival Resource Key) identifiers for every published preprint. ARKs are free, resolvable through n2t.net, and included in OAI-PMH metadata and on article pages.

DOI upgrade path

ARKs are an interim step. The goal is to issue Crossref DOIs once GenRxiv has:

  • A track record of published submissions
  • Organizational backing (institutional sponsor or funded governance)
  • A sustainability plan that commits to maintaining DOI metadata indefinitely
  • Crossref membership approval (annual fee, application review)

Once those conditions are met, GenRxiv will:

  1. Apply for a Crossref membership and receive a DOI prefix (e.g. 10.55555)
  2. Mint DOIs on publication alongside existing ARKs
  3. Register each DOI with Crossref deposit, including metadata and PDF URL
  4. Continue supporting existing ARKs — both identifiers resolve to the same article

DOIs are a permanence commitment. Once minted and registered, they must resolve forever — even if GenRxiv changes domains, changes infrastructure, or shuts down (in which case Crossref's fallback resolution takes over). This is why DOIs are not issued from day one: the commitment should not be made lightly.

For more on ARKs and the difference between ARKs and DOIs, see https://n2t.net/e/ark_ids.html.

Support

GenRxiv runs on self-hosted infrastructure funded personally. If you'd like to help cover hosting, storage, and eventually DOI registration, see the funding link on the project page.

About

An open archive for AI-generated research

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages