{"id":13679937,"url":"https://github.com/NixOS/nixos-search","last_synced_at":"2025-04-29T19:32:16.575Z","repository":{"id":38016097,"uuid":"250712577","full_name":"NixOS/nixos-search","owner":"NixOS","description":"Search NixOS packages and options","archived":false,"fork":false,"pushed_at":"2025-04-20T00:11:20.000Z","size":1294,"stargazers_count":444,"open_issues_count":126,"forks_count":124,"subscribers_count":16,"default_branch":"main","last_synced_at":"2025-04-22T06:16:50.161Z","etag":null,"topics":["elasticsearch","elm","search"],"latest_commit_sha":null,"homepage":"https://search.nixos.org","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/NixOS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"open_collective":"nixos"}},"created_at":"2020-03-28T04:16:53.000Z","updated_at":"2025-04-19T22:41:14.000Z","dependencies_parsed_at":"2023-10-15T20:47:29.959Z","dependency_job_id":"cd74529f-c173-4d30-ad11-7857c7652d30","html_url":"https://github.com/NixOS/nixos-search","commit_stats":{"total_commits":428,"total_committers":72,"mean_commits":5.944444444444445,"dds":0.7149532710280374,"last_synced_commit":"510d42d847600c0f197a233a564b428d7551f510"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NixOS%2Fnixos-search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NixOS%2Fnixos-search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NixOS%2Fnixos-search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NixOS%2Fnixos-search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NixOS","download_url":"https://codeload.github.com/NixOS/nixos-search/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251569552,"owners_count":21610575,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["elasticsearch","elm","search"],"created_at":"2024-08-02T13:01:11.226Z","updated_at":"2025-04-29T19:32:16.525Z","avatar_url":"https://github.com/NixOS.png","language":"Elm","funding_links":["https://opencollective.com/nixos"],"categories":["Elm","Discovery"],"sub_categories":[],"readme":"# search.nixos.org\n\nThis repository contains the scripts and the web application for\n`search.nixos.org`. \n\n\n## How this project came to be\n\nInitial idea was to replace NixOS packages and options search which was\nfetching one JSON file which contained all packages (or options). This approach\nis good for its simple setup, but started to show its problems when packages\nnumber was getting bigger and bigger. I'm sure we could optimize it further,\nbut ideas what all could we do if there would be some database in the back were\nto tempting not to try.\n\nFor backend we are using Elasticsearch instance which is kindly sponsored by\n[bonsai.io](https://bonsai.io). On the frontend we are using\n[Elm](https://elm-lang.org).\n\n\n## How search works?\n\nThe use case we want to solve is that a visitor want to see if a package\nexists or to look up certain package's details.\n\nA user wants to converge to a single result if possible. The more characters\nare added to a search query the more narrow is search is and we should show\nless results.\n\nVery important is also ranking of search results. This will bring more relevant\nsearch results to the top, since a lot of times it is hard to produce search\nquery that will output only one result item.\n\nA less important, but providing better user experience. are suggestions for\nwriting better search query. Suggesting feature should guide user to write\nbetter queries which in turn will produce better results.\n\n\n## Development\n\nTo start developing open a terminal and run:\n\n```\nenv --chdir=frontend nix develop -c yarn dev\n```\n\nYou can point your browser to `http://localhost:3000` and start developing.\nAny changes to source files (`./frontend/src`) will trigger a hot reload of an\napplication.\n\n\n## Deploying\n\n- On each commit to `main` branch a GitHub Action is triggered.\n- GitHub Action then builds production version of the web application using\n  `yarn prod` command.\n- The built web application (in `./dist`) is then deployed to Netlify.\n- GitHub Action can also be triggered via Pull Request, which if Pull Request\n  was created from a non-forked repo's branch, will provide a preview url in a\n  comment.\n\n## Adding flakes\n\nTo add your own flakes to the search index edit [./flakes/manual.toml](./flakes/manual.toml).\n\nPossible types are `github`, `gitlab`, `sourcehut`, and `git` (which is the fallback for any kind of git repository but requires to set a revision key manually as of now).\n\nTo test whether your flake is compatible with nix flake-info you can try running `flake-info` against it\n\n```\n$ nix run github:nixos/nixos-search#flake-info -- flake \u003cyour flake handle\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNixOS%2Fnixos-search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNixOS%2Fnixos-search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNixOS%2Fnixos-search/lists"}