Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Add Go as a playable language

Open
#3 1 comment 0 reactions 1 assignee View on GitHub

@PatrickLoughran is already working on this.

Since Oct 8, 2026.

Assessment

This issue has not been assessed yet.

Description

good first issue help wanted

Probably the easiest of the three: encoding/json handles input and output.

CodeArena runs player code in Python, JavaScript and TypeScript. Adding a language is self-contained and a great way to get into the codebase.

Where the code lives

  • backend/arena/runner/harness.js: one small driver per language. The driver reads {"tests":[{"args":[...]}]} as JSON on stdin, calls the player's function once per test, and prints the per-run marker line followed by a JSON array of { ok, value } / { ok, error }. Copy the shape of pythonProgram / javascriptProgram. The marker nonce must stay per-run.
  • LANGUAGES in the same file: add { label, judge0Id }.
  • starterCode(problem, language): typed starter code built from problem.function (name, params[].type, returns).
  • backend/arena/runner/executors.js: localExecutor only knows node and python3; add your compiler for local development if you like (it is never used in production).

Types the 45 problems use

integer, integer[], integer[][], number[], string, string[], boolean, and tuples: [integer, integer], [integer, integer][], [integer, integer, integer][], [string, integer][], [string, string, string][], [integer, integer, string].

Statically typed languages need a mapping for each of these. If a mixed tuple such as [string, integer] has no clean equivalent in your language, it is fine to leave that problem out for your language rather than force an awkward type: the loader supports per-problem languages via runnableLanguages.

Definition of done

  • Driver plus typed starter code for every problem your language supports.
  • Judge0 language id wired up (Judge0 CE: Java 62, C++ 54, Go 60; confirm on your Judge0 instance).
  • Proof: correct solutions pass and wrong ones fail on a spread of problems (easy, medium, hard, and every type above) against a real Judge0 (docker-compose.judge0.yml in the repo root runs one locally).
  • Tests in backend/tests/ covering the driver output and starter code; npm test stays green.
  • node scripts/check-boundary.js passes.
Dominant language
JavaScript
Stars
0
Forks
2
PR merge metrics
No merged PRs in 30d

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from sennaicodes/codearena

All issues in sennaicodes/codearena

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.