{"id":13510254,"url":"https://github.com/typesense/showcase-recipe-search","last_synced_at":"2025-05-15T23:05:10.443Z","repository":{"id":94817097,"uuid":"320035116","full_name":"typesense/showcase-recipe-search","owner":"typesense","description":"Instantly search 2M cooking recipes using Typesense Search (an open source alternative to Algolia / ElasticSearch)  ⚡ 🥘 🔍","archived":false,"fork":false,"pushed_at":"2025-02-05T00:54:39.000Z","size":726,"stargazers_count":488,"open_issues_count":3,"forks_count":37,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-04-19T02:37:27.280Z","etag":null,"topics":["instantsearch","typesense","typesense-instantsearch-adapter","typesense-showcase"],"latest_commit_sha":null,"homepage":"https://recipe-search.typesense.org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/typesense.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-09T17:48:04.000Z","updated_at":"2025-04-15T09:58:57.000Z","dependencies_parsed_at":"2025-02-12T11:00:39.568Z","dependency_job_id":"3977b2df-d2ff-4c70-875d-f05c2015a6f3","html_url":"https://github.com/typesense/showcase-recipe-search","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typesense%2Fshowcase-recipe-search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typesense%2Fshowcase-recipe-search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typesense%2Fshowcase-recipe-search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typesense%2Fshowcase-recipe-search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/typesense","download_url":"https://codeload.github.com/typesense/showcase-recipe-search/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254436944,"owners_count":22070946,"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":["instantsearch","typesense","typesense-instantsearch-adapter","typesense-showcase"],"created_at":"2024-08-01T02:01:30.701Z","updated_at":"2025-05-15T23:05:10.406Z","avatar_url":"https://github.com/typesense.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","others"],"sub_categories":[],"readme":"#  🥘 Instant Recipe Search, powered by Typesense\n\nThis is a demo that showcases some of [Typesense's](https://github.com/typesense/typesense) features using a 2 Million database of recipes.\n\nView it live here: [recipe-search.typesense.org](https://recipe-search.typesense.org/)\n\n## Tech Stack\n\nThis search experience is powered by \u003ca href=\"https://typesense.org\" target=\"_blank\"\u003eTypesense\u003c/a\u003e which is\na blazing-fast, \u003ca href=\"https://github.com/typesense/typesense\" target=\"_blank\"\u003eopen source\u003c/a\u003e typo-tolerant\nsearch-engine. It is an open source alternative to Algolia and an easier-to-use alternative to ElasticSearch.\n\nThe recipe dataset is from \u003ca href=\"https://github.com/Glorf/recipenlg\" target=\"_blank\"\u003eGlorf/recipenlg\u003c/a\u003e 🙏!\n\nThe dataset is 2.2 GB on disk, with ~2.2 million rows. It took 8 minutes to index this dataset on a 3-node Typesense cluster with 4vCPUs per node and the index was 2.7GB in RAM.\n\nThe app was built using the \u003ca href=\"https://github.com/typesense/typesense-instantsearch-adapter\" target=\"_blank\"\u003e\nTypesense Adapter for InstantSearch.js\u003c/a\u003e and is hosted on S3, with CloudFront for a CDN.\n\nThe search backend is powered by a geo-distributed 3-node Typesense cluster running on \u003ca href=\"https://cloud.typesense.org\" target=\"_blank\"\u003eTypesense Cloud\u003c/a\u003e,\nwith nodes in Oregon, Frankfurt and Mumbai.\n\n## Repo structure\n\n- `src/` and `index.html` - contain the frontend UI components, built with \u003ca href=\"https://github.com/typesense/typesense-instantsearch-adapter\" target=\"_blank\"\u003eTypesense Adapter for InstantSearch.js\u003c/a\u003e\n- `scripts/indexer` - contains the script to index the recipe data into Typesense.\n- `scripts/data` - contains a 1K sample subset of the recipes database. But you can download the full dataset from the link above.\n\n## Development\n\nTo run this project locally, install the dependencies and run the local server:\n\n```shell\nyarn\nbundle # JSON parsing takes a while to run using JS when indexing, so we're using Ruby just for indexing\n\nyarn run typesenseServer\n\nln -s .env.development .env\n\nBATCH_SIZE=1000 yarn run indexer:transformDataset # This will output a JSONL file\nyarn run indexer:importToTypesense # This will import the JSONL file into Typesense\n\nyarn start\n```\n\nOpen http://localhost:3000 to see the app.\n\n## Deployment\n\nThe app is hosted on S3, with Cloudfront for a CDN.\n\n```shell\nyarn build\nyarn deploy\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftypesense%2Fshowcase-recipe-search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftypesense%2Fshowcase-recipe-search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftypesense%2Fshowcase-recipe-search/lists"}