Everything below is a screen you can open today, on the hosted service or on your own copy — they are the same build. What is not built yet has its own list at the bottom, because that is the half people find out about too late.
Getting papers in, from a search or from the manager you already use.
OpenAlex, Crossref, arXiv, Europe PMC and Semantic Scholar, searched together. Records for the same paper are merged by DOI and identifier before you see them, so you judge each paper once. If a source is down the others still return and the page names the one that failed.
Every result reports which of your research questions it matched and why, so the search strategy is something you can defend rather than assert.
Paste straight from Zotero, Mendeley or a journal page. Preview first, then add. Re-importing the same file adds nothing, so pasting it twice is safe.
Search results are not in your library until you add them. The library is the set of papers you decided to consider, which is what makes the PRISMA count at the top of the diagram mean anything.
Three hundred include-or-exclude decisions is the most repetitive thing this asks of anyone, so it is built for the keyboard.
i to include, e to exclude, s to skip, 1–9 to pick an exclusion reason, ? for the list. Decisions apply immediately rather than waiting for the server.
A systematic review cannot exclude a paper without one, and the rule is a database trigger rather than a form check — so imports and bulk actions obey it too. That controlled list is what the PRISMA diagram is built from later.
Each decision carries the status the screen was showing when it was made. If a colleague decided the same paper first, yours is refused and the paper comes back naming them, instead of silently replacing their call.
Assign a paper to a member with a date, and it appears in their queue. A date means the end of that day, so a paper due today is not overdue the moment it is assigned.
The part that turns a pile of papers into a table somebody else could check.
Select a passage to highlight it and attach a note, private or shared. Quotes are anchored to the text, and a quote whose passage no longer exists says so rather than pointing somewhere plausible.
Define the questions you ask every paper — sample size, study design, primary outcome. Four templates are built in, including PICO. Once a question has answers its key cannot be renamed and it cannot be deleted; make a new version instead, so two exports never disagree about what a column means.
A quote-typed question cannot be typed into. It can only be filled by selecting the passage in the paper, and the database refuses answers that are not linked to one.
The extraction form saves when you say so. A half-typed number should never become a recorded answer. The header counts what you have answered and says plainly when there are unsaved changes; submitting freezes the form until you reopen it.
The outputs, drawn from decisions you already made.
Papers as rows, protocol questions as columns. Sort — numbers as numbers — filter, group, and choose which columns are shown. The choice lives in the URL, so a narrowed table is a link you can send to a supervisor.
Exactly what your filters and columns show. Column headers are the question keys rather than the labels, so a script that reads the file keeps working when someone rewords a label.
The flow diagram journals ask for, built from your recorded decisions. The counts copy out as text straight into a methods section.
Two people extract the same paper independently; reconciliation shows only where they disagreed, and a third person — who must not be either of them — resolves it. Where κ genuinely cannot be computed it says so and shows raw agreement instead of printing a confident number the data does not support.
Five roles, an audit trail, and a clear line between what the server can read and what it cannot.
Owner, admin, contributor, reviewer and observer. A reviewer — the supervisor role — can read and annotate but cannot record screening decisions. A contributor cannot edit the protocol. Enforced in the database, not in the interface.
Project messages and LaTeX sources are sealed in your browser with XChaCha20-Poly1305 under a key the server never holds. Your papers, highlights and extracted answers are not — they have to be searchable and countable, and the security page says so plainly.
There is no password to derive a key from, so the app generates a 30-character passphrase and shows it exactly once. Register a browser and it unlocks without retyping; revoke that browser later if you lose it.
Connect a Google account and the project gets a Drive folder for collaboration documents. The scope requested is drive.file, which reaches only files this app created or you explicitly picked — never the rest of your Drive.
These are real gaps, not things you are failing to find. Two of them — automatic screening and automatic extraction — are not on the roadmap at all; that is a decision, not a backlog item.
No paid tier, no trial and no card. Use the hosted service — this site is it, so signing in is the whole setup — or run your own copy from the repository against a database you control. Same code, same features. The pricing page covers why you might want the second one.