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

Static types for JSON APIs

Is ahrefs/atd beginner-friendly?

We have not seen enough recent pull requests from outside contributors to ahrefs/atd to say how often they are merged. 2 beginner-friendly issues are open now.

Stars
354
Forks
62
Open beginner issues
2
Indexed issues
87
Dominant language
OCaml
License
No license data
Last GitHub push
Aug 5, 2026
Latest indexed
Sep 20, 2026
Contributing guide
Contributing guide
Code of conduct
No code of conduct
Beginner labels
help wanted
PR merge metrics
No merged PRs in 30d

How to contribute to ahrefs/atd

  1. Read the contributing guide first: it says how the maintainers want changes proposed, tested and reviewed.
  2. Pick one of the 2 open beginner-friendly issues below and comment that you want to work on it before you start.

Issues somebody may already be working on are listed last. List everything by date

  • Possible documentation error - field declaration containing `=` ?
    Open

    Difficulty 1/5 Under an hour Newbie friendliness 82/100

    ahrefs/atd#512 ·

  • atdml: provide option to write output files in the same folder as the source
    Open
    enhancement target:ocaml

    Difficulty 3/5 1-2 days Newbie friendliness 58/100

    ahrefs/atd#511 ·

  • Proposal: Introduce `atd` dispatcher CLI and prepare unified Cmdliner interface (ATD 4.x → 5.0)
    Open
    design and planning

    Difficulty 5/5 Over a week Newbie friendliness 35/100

    ahrefs/atd#483 ·

  • Run the standard test suite for all languages
    Open
    code quality internal quality assurance target:cpp target:d target:java target:ocaml target:python target:scala target:typescript

    Difficulty 4/5 3-5 days Newbie friendliness 38/100

    ahrefs/atd#482 ·

  • Publish statically-linked binaries for popular platforms
    Open
    enhancement packaging

    Difficulty 4/5 3-5 days Newbie friendliness 35/100

    ahrefs/atd#478 ·

  • atdcpp: Add support for imports
    Open
    feature request target:cpp

    Difficulty 5/5 Over a week Newbie friendliness 15/100

    ahrefs/atd#477 ·

  • atdd: Add support for imports
    Open
    feature request target:d

    Difficulty 5/5 Over a week Newbie friendliness 20/100

    ahrefs/atd#476 ·

  • atds: Add support for imports
    Open
    feature request target:scala

    Difficulty 5/5 Over a week Newbie friendliness 20/100

    ahrefs/atd#475 ·

  • atdj: Add support for imports
    Open
    feature request target:java

    Difficulty 5/5 Over a week Newbie friendliness 20/100

    ahrefs/atd#474 ·

  • atdgen -v generates calls to unknown function
    Open
    question

    Difficulty 3/5 1-2 days Newbie friendliness 45/100

    ahrefs/atd#473 · 1 comment ·

  • Migrate all tests to Testo
    Open
    maintenance

    Difficulty 4/5 3-5 days Newbie friendliness 35/100

    ahrefs/atd#469 ·

  • atdcpp: faulty type names in generated code when using parametric types in atd file
    Open
    bug target:cpp

    Difficulty 4/5 3-5 days Newbie friendliness 45/100

    ahrefs/atd#427 ·

  • atdgen-ocaml: utf-8 Vs byte-array strings
    Open
    documentation question

    Difficulty 5/5 Over a week Newbie friendliness 25/100

    ahrefs/atd#415 · 2 comments ·

  • atdcpp: recursive types render cpp code that fails to compile
    Open
    bug target:cpp

    Difficulty 4/5 3-5 days Newbie friendliness 35/100

    ahrefs/atd#414 · 6 comments ·

  • Proposal: looser interpretation of JSON-encoded variants
    Open
    feature request

    Difficulty 5/5 Over a week Newbie friendliness 28/100

    ahrefs/atd#413 ·

  • Add a ReScript output option
    Open
    feature request help wanted new target target:ocaml

    Difficulty 5/5 Over a week Newbie friendliness 30/100

    ahrefs/atd#410 · 1 comment · 3 reactions ·

  • atdcat: what is the <root type name> of the -jsonschema option for?
    Open
    enhancement target:json-schema

    Difficulty 3/5 1-2 days Newbie friendliness 42/100

    ahrefs/atd#407 · 2 comments ·

  • atdgen: allow empty records
    Open
    bug enhancement target:ocaml

    Difficulty 3/5 1-2 days Newbie friendliness 45/100

    ahrefs/atd#400 · 1 comment ·

  • atdpy: `to_json` and `from_json` incorrect for aliases of `unit`
    Open
    bug good first time issue help wanted

    Difficulty 3/5 1-2 days Newbie friendliness 45/100

    ahrefs/atd#399 ·

  • atdd: generate .di files
    Open
    enhancement target:d

    Difficulty 4/5 3-5 days Newbie friendliness 35/100

    ahrefs/atd#390 ·

  • atddiff (and other tools): show snippets of code when reporting errors
    Open
    feature request

    Difficulty 5/5 Over a week Newbie friendliness 35/100

    ahrefs/atd#380 ·

  • atddiff: Print the git file path instead of temporary paths when using `git difftool`
    May be free again @mjambon claimed this 1083 days ago, and no pull request is open. Open
    feature request

    ahrefs/atd#378 · 1 assignee ·

  • List of breaking features for major version 3.0.0
    Open
    design and planning maintenance

    Difficulty 5/5 Over a week Newbie friendliness 25/100

    ahrefs/atd#369 · 2 comments ·

  • Unify output of `atdgen -bs` and `atdgen -j`
    Open
    target:ocaml

    Difficulty 4/5 3-5 days Newbie friendliness 35/100

    ahrefs/atd#357 · 3 comments ·

  • Generalize the option to always output optional fields that are set to the default value (`~field : ...` syntax)
    Open
    enhancement feature request target:python target:typescript

    Difficulty 5/5 Over a week Newbie friendliness 25/100

    ahrefs/atd#354 · 1 reaction ·

  • Fix TypeScript linter error causing CI failure
    Open
    bug good first time issue maintenance

    Difficulty 2/5 1-3 hours Newbie friendliness 42/100

    ahrefs/atd#350 · 1 comment ·

  • Provide a way to define simple defaults regardless of target language
    Open
    design and planning enhancement feature request

    Difficulty 5/5 Over a week Newbie friendliness 35/100

    ahrefs/atd#345 ·

  • atdpy: Add support for partial parsing
    Open
    feature request target:python

    Difficulty 5/5 Over a week Newbie friendliness 30/100

    ahrefs/atd#344 ·

  • Use the ocaml-tsort library to sort dependencies
    Open
    bug

    Difficulty 4/5 3-5 days Newbie friendliness 45/100

    ahrefs/atd#340 ·

  • jsonschema CLI is deprecated, use check-jsonschema instead
    Open
    maintenance

    Difficulty 2/5 1-3 hours Newbie friendliness 65/100

    ahrefs/atd#338 ·

  • JSON to OCaml
    Open
    feature request

    Difficulty 5/5 Over a week Newbie friendliness 20/100

    ahrefs/atd#337 · 3 comments ·

  • Write a guide for contributing new backends
    Open
    documentation

    Difficulty 5/5 Over a week Newbie friendliness 35/100

    ahrefs/atd#336 · 1 comment ·

  • Add ATD support for Rust
    Open
    new target target:rust

    Difficulty 5/5 Over a week Newbie friendliness 30/100

    ahrefs/atd#335 · 2 reactions ·

  • Error recovery: ignore malformed elements
    Open
    enhancement target:biniou target:bucklescript target:go target:java target:json target:ocaml target:python target:scala target:typescript

    Difficulty 5/5 Over a week Newbie friendliness 25/100

    ahrefs/atd#334 ·

  • abstract not working for Bucklescript generation
    Open
    bug help wanted target:ocaml

    Difficulty 3/5 1-2 days Newbie friendliness 38/100

    ahrefs/atd#329 · 1 reaction ·

  • Uncaught syntax error when missing a "
    Open
    enhancement

    Difficulty 3/5 1-2 days Newbie friendliness 45/100

    ahrefs/atd#326 ·

  • Make it easier to use hyphen-minus to separate words in JSON keys
    Open
    feature request help wanted

    Difficulty 5/5 Over a week Newbie friendliness 30/100

    ahrefs/atd#323 · 1 comment ·

  • Add support for Go (Golang)
    Open
    feature request help wanted new target target:go target:json target:json-schema

    Difficulty 5/5 Over a week Newbie friendliness 25/100

    ahrefs/atd#318 · 3 comments · 3 reactions ·

  • Vim Syntax File
    Open
    documentation feature request help wanted

    Difficulty 3/5 1-2 days Newbie friendliness 35/100

    ahrefs/atd#307 · 2 comments · 2 reactions ·

  • Errors with jsonschema 3.2.0 - not with 4.6.0
    Open

    Difficulty 2/5 1-3 hours Newbie friendliness 35/100

    ahrefs/atd#306 ·

  • ppx for inline atd
    Open
    feature request target:ocaml

    Difficulty 5/5 Over a week Newbie friendliness 30/100

    ahrefs/atd#304 · 2 comments · 2 reactions ·

  • [atdpy/atdts] support for polymorphic types
    Open
    enhancement feature request target:python

    Difficulty 5/5 Over a week Newbie friendliness 25/100

    ahrefs/atd#303 · 1 comment · 2 reactions ·

  • atdgen: support for deriving annotations
    Open
    documentation

    Difficulty 5/5 Over a week Newbie friendliness 35/100

    ahrefs/atd#300 · 1 comment ·

  • atdpy: make <python decorator="dataclass(frozen=True)"> the default
    Open
    feature request target:python

    Difficulty 3/5 1-2 days Newbie friendliness 35/100

    ahrefs/atd#289 · 2 comments ·

  • atdts: turn <doc ...> into TypeScript comments
    Open
    feature request target:typescript

    Difficulty 4/5 3-5 days Newbie friendliness 35/100

    ahrefs/atd#288 ·

  • atdpy: turn <doc ...> into Python comments
    Open
    feature request target:python

    Difficulty 5/5 Over a week Newbie friendliness 20/100

    ahrefs/atd#287 · 2 comments ·

  • Encode int64
    Open
    bug target:json target:ocaml

    Difficulty 5/5 Over a week Newbie friendliness 25/100

    ahrefs/atd#273 · 7 comments · 2 reactions ·

  • Add support for inserting arbitrary code into generated OCaml files
    Open
    design and planning feature request

    Difficulty 4/5 3-5 days Newbie friendliness 35/100

    ahrefs/atd#266 ·

  • Don't validate `Yojson.Safe.t` abstract type
    Open
    good first time issue packaging

    Difficulty 3/5 1-2 days Newbie friendliness 42/100

    ahrefs/atd#263 · 4 comments ·

  • Print plain strings for enum types
    Open
    new target

    Difficulty 3/5 1-2 days Newbie friendliness 45/100

    ahrefs/atd#222 · 3 comments ·

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.