All software

Software project

Wrepo

A self-hosted archive for student research, built around submission, review, and discovery.

Next.js · TypeScript · PostgreSQL · Prisma

Visit wrepo.net
Wrepo's public paper detail view, showing the title, author, abstract, publication metadata, and license.

Public paper view: “Branding Cool, Bordering Labour” by Yang Tianbao. CC BY 4.0. Captured September 2026.

View larger screenshot

Purpose

Wrepo gives undergraduate theses, student papers, and working papers a structured place to be published and found. I wanted a credible academic repository with a clean reading experience and a small enough operational footprint for one person to maintain.

The application brings together paper submission, editorial review, searchable records, PDF access, and citations.

Publication and access

One central engineering concern was making publication explicit and enforcing it consistently. The editorial workflow controls which state changes are allowed. Public pages, search, and read-only metadata endpoints select published records and leave internal editorial information out of their responses.

File access is checked separately. A published paper’s metadata can remain visible during an embargo while its PDF is withheld from public access. That distinction keeps discovery and file authorization separate.

Infrastructure choices

The application uses Next.js and TypeScript with PostgreSQL and Prisma. PostgreSQL also handles full-text search, keeping the number of services to maintain small. The Docker Compose setup groups the application and database for self-hosting and includes Cloudflare Tunnel for public access.

Uploads use a storage interface with a local filesystem driver; file delivery has its own authorization checks. Structured paper metadata, citation formats, and read-only discovery endpoints make the archive useful beyond the browser interface.

Live result

Wrepo is live at wrepo.net. Readers can browse published research, open paper records, access available PDFs, and copy citations. Authors can submit their work for editorial review.

Visit project