Skip to content

For contributors

Archetype is developed in the open on GitHub under the archetype-pal organisation. This section is for anyone who wants to run the software or change it: developers fixing a bug or adding a feature, research software engineers setting up an instance for a project, and writers improving these docs.

  • Code. Fix a bug or build a feature in the backend or frontend. Issues labelled good first issue are a good place to start.
  • Hosting and operations. Improve the Docker Compose stack, the deployment scripts, or the guides for running an instance.
  • Documentation. This site is its own repository; corrections are welcome.
  • Scholarship and data. Corrections, transcriptions, script descriptions, and feedback from real editorial work. This needs no code, and is often the most valuable input. Open an issue describing what you found.
  • Feedback from an instance. If you run Archetype over your own corpus, telling the project what worked and what did not is itself a contribution.
RepositoryWhat it holdsStack
backendThe API: domain model, search, IIIF and W3C output, background jobsPython 3.15, Django 6, Django REST Framework, Celery, PostgreSQL, Meilisearch, Redis
frontendThe public site and the staff backofficeTypeScript, Next.js 16, React 19, TanStack Query, Tailwind CSS
infrastructureThe production Docker Compose stack, nginx, TLS and backupsDocker Compose, nginx, SIPI
archetype-pal.github.ioThis siteAstro, Starlight

Each repository has its own issues, CI and release images. A change to the API and the interface that uses it is two pull requests, one per repository; land the backend one first.

  1. Run it locally — the backend and frontend on your machine, with a working login, in about fifteen minutes.
  2. How it is built — the services and how a request flows through them.
  3. Working in the codebase — the layering rules, the search registry, and the test and lint commands.
  4. Contribution workflow — branching, commit style, the checks CI runs, and review.

Hosting an instance for a project rather than developing? Go to Production deployment, then Load your own corpus. Building on the data? See The API.

Open an issue in the repository closest to the problem. For a deployment that will not come up, check Troubleshooting first: most failures are a missing migration, an unbuilt search index, or a container that cannot reach another one.