{"id":32114162,"url":"https://github.com/niho/json-schema-form","last_synced_at":"2026-02-19T16:33:39.379Z","repository":{"id":62418838,"uuid":"163772687","full_name":"niho/json-schema-form","owner":"niho","description":"Generate validating forms from JSON schemas.","archived":false,"fork":false,"pushed_at":"2024-03-14T13:19:23.000Z","size":64,"stargazers_count":8,"open_issues_count":7,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-20T15:20:45.606Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Elm","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/niho.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-01T23:02:31.000Z","updated_at":"2024-05-20T10:55:50.000Z","dependencies_parsed_at":"2022-11-01T16:47:36.883Z","dependency_job_id":null,"html_url":"https://github.com/niho/json-schema-form","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/niho/json-schema-form","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niho%2Fjson-schema-form","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niho%2Fjson-schema-form/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niho%2Fjson-schema-form/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niho%2Fjson-schema-form/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/niho","download_url":"https://codeload.github.com/niho/json-schema-form/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niho%2Fjson-schema-form/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29622016,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T13:04:20.082Z","status":"ssl_error","status_checked_at":"2026-02-19T13:03:33.775Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-20T15:11:47.559Z","updated_at":"2026-02-19T16:33:39.337Z","avatar_url":"https://github.com/niho.png","language":"Elm","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JSON Schema Form Generator\n\nGenerate validating forms from JSON schemas.\n\n    elm package install niho/json-schema-form\n\n## Features\n\n* Can handle almost all JSON Schema features (draft-04 and draft-06).\n* Generates all common types of input fields (`text`, `select`, etc.) with optional labels and descriptions.\n* Error messages can easily be customized as needed.\n* Supports custom string formats using validation functions (similar to Json decoders).\n\n\n## Warnings\n\n1. The way form fields are generated and presented is very opinionated and thus not always suitable for general case usage. This library is intended to be used for cases where you have control over how the schema is structured.\n2. The HTML that the library outputs is intended to be used together with [Bootstrap](https://getbootstrap.com/) to style the form. It can of course be used without Bootstrap but some field types might need some custom styling to look ok.\n3. There is currently no support for linked schemas using `$ref`.\n\n\n## Example usage\n\nSee the [example project](https://github.com/niho/json-schema-form/tree/master/example) for examples of all the supported field types.\n\n```elm\nmodule Main exposing (main)\n\nimport Browser\nimport Dict\nimport Html exposing (..)\nimport Html.Events exposing (onSubmit)\nimport Json.Schema\nimport Json.Schema.Form exposing (Msg, State)\n\n\nmain : Program () State Msg\nmain =\n    Browser.sandbox { init = init, update = update, view = view }\n\n\nschema =\n  \"\"\"\n  {\n    \"type\": \"object\",\n    \"required\": [\"name\"],\n    \"properties\": {\n      \"name\": {\n        \"type\": \"string\",\n        \"title\": \"Name\"\n      }\n    }\n  }\n  \"\"\"\n\n\ninit : State\ninit =\n    case Json.Schema.fromString schema of\n        Ok schema_ -\u003e\n            Json.Schema.Form.init\n                { errors = \\path error -\u003e \"Invalid field: \" ++ path\n                , formats = Dict.empty\n                }\n                schema_\n\n        Err error -\u003e\n            Debug.todo error\n\n\nupdate : Msg -\u003e State -\u003e State\nupdate msg state =\n    Json.Schema.Form.update msg state\n\n\nview : State -\u003e Html Msg\nview state =\n    form [ onSubmit Json.Schema.Form.submit ]\n        [ Json.Schema.Form.view state\n        , button [] [ text \"Submit\" ]\n        ]\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniho%2Fjson-schema-form","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fniho%2Fjson-schema-form","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniho%2Fjson-schema-form/lists"}