Skip to content

Add docs and a Makefile, and bring local Postgres to 17 - #68

Merged
naman0r merged 4 commits into
mainfrom
docs-and-dev-setup
Sep 24, 2026
Merged

naman0r merged 4 commits into
mainfrom
docs-and-dev-setup

Conversation

@naman0r

@naman0r naman0r commented Sep 24, 2026

Copy link
Copy Markdown
Owner

What and why

The public docs were removed in #56 because they had gone stale. This adds them back, built to stay current:

  • docs/README.md indexes the pages and states the rules: pages name the constant or file that holds a value instead of copying it, link files rather than lines, change in the same PR as the behaviour, and decision records are append-only.
  • docs/development.md, architecture.md, judge-and-sandbox.md, self-hosting.md, and docs/decisions/ with four records (one backend host, a container per run, the editor relay, problems as migrations).
  • A Docs workflow runs lychee offline over every Markdown file, so a moved or deleted file fails CI.
  • README slimmed to a front page and corrected (Postgres version, env file name, current features).

Contributor setup:

  • Makefile: setup, up, down, logs, web, test, lint, check, smoke. AGENTS.md and CONTRIBUTING.md now point at it.
  • Issue forms for bugs and problem proposals, a private security contact link, SECURITY.md with scope.
  • Dependabot, monthly and grouped per ecosystem, holding monaco-editor at its pin.
  • .editorconfig, apps/web/.nvmrc (22, as in CI), and apps/web/.env.template renamed to a commented .env.example that includes VITE_BACKEND_URL.
  • The PR template asks which doc page changed.

Local Postgres moves from 13 to 17 to match CI and production. The volume is now tandemcode-db-data-17, so an existing 13 volume is left untouched rather than failing to start; local data starts empty once.

How this was verified

  • make test: 128 passed, 5 skipped, on Postgres 17.11 in the compose database.
  • make lint: web lint and build pass.
  • make up then make smoke against production: all checks ok.
  • lychee offline over the repo: 0 errors; a deliberately broken link was reported.
  • Not checked: the issue forms render and Dependabot's first run, which only happen on GitHub after merge.

Docs

This is the docs change.

docs/ holds development, architecture, judge and sandbox, and
self-hosting pages, plus decision records. Pages name the file or constant
that holds a value instead of copying it, decision records are append-only,
and a CI job fails on any relative Markdown link that no longer resolves.

Also for contributors: a Makefile for the everyday commands, issue forms,
SECURITY.md, Dependabot (monthly, grouped, monaco-editor held), an
editorconfig, a Node version file, a documented web .env.example, and a
docs prompt in the pull request template.

Local Postgres was 13 while CI and production run 17. It is now 17 on a
volume named for the version, so an existing 13 volume is left alone
instead of failing to start.
@vercel

vercel Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
tandemcode Ready Ready Preview Sep 24, 2026 6:17pm UTC

@coderabbitai

coderabbitai Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 44 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: f36ed00b-4d9d-4f9d-9685-ed8417d9dfcf

📥 Commits

Reviewing files that changed from the base of the PR and between d7bfac2 and 55abcfc.

⛔ Files ignored due to path filters (1)
  • docs/assets/logo.png is excluded by !**/*.png
📒 Files selected for processing (26)
  • .editorconfig
  • .github/ISSUE_TEMPLATE/bug.yml
  • .github/ISSUE_TEMPLATE/config.yml
  • .github/ISSUE_TEMPLATE/problem.yml
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/dependabot.yml
  • .github/workflows/docs.yml
  • AGENTS.md
  • CONTRIBUTING.md
  • Makefile
  • README.md
  • SECURITY.md
  • apps/backend/docker-compose.yml
  • apps/web/.env.example
  • apps/web/.env.template
  • apps/web/.nvmrc
  • docs/README.md
  • docs/architecture.md
  • docs/decisions/0001-one-host-for-the-backend.md
  • docs/decisions/0002-a-container-per-run.md
  • docs/decisions/0003-the-server-relays-the-editor.md
  • docs/decisions/0004-problems-are-migrations.md
  • docs/decisions/README.md
  • docs/development.md
  • docs/judge-and-sandbox.md
  • docs/self-hosting.md

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

The site, API, Vercel deployment, both CI workflows and the license. The
API badge reads /health's JSON, because the plain website badge sends HEAD
and /health answers GET only.
@naman0r
naman0r merged commit 3bec14e into main Sep 24, 2026
6 checks passed

This branch was successfully deployed

1 active deployment
Preview — 55abcfc7 Deployed Sep 24, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant