{"id":19000446,"url":"https://github.com/typesense/showcase-xkcd-search","last_synced_at":"2025-04-22T17:04:50.447Z","repository":{"id":64131091,"uuid":"411557187","full_name":"typesense/showcase-xkcd-search","owner":"typesense","description":"Search \u0026 Browse xkcd by topic \u0026 keywords | Using Typesense, an open source Algolia alternative and an easier-to-use alternative to Elasticsearch","archived":false,"fork":false,"pushed_at":"2025-01-31T01:29:36.000Z","size":24703,"stargazers_count":22,"open_issues_count":0,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-17T07:17:32.911Z","etag":null,"topics":["typesense","typesense-showcase","xkcd","xkcd-comics"],"latest_commit_sha":null,"homepage":"https://findxkcd.com","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,"zenodo":null}},"created_at":"2021-09-29T06:33:08.000Z","updated_at":"2025-04-04T20:27:13.000Z","dependencies_parsed_at":"2024-06-07T01:23:05.589Z","dependency_job_id":"4101d667-b455-444b-9458-2d9729086b23","html_url":"https://github.com/typesense/showcase-xkcd-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-xkcd-search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typesense%2Fshowcase-xkcd-search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typesense%2Fshowcase-xkcd-search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typesense%2Fshowcase-xkcd-search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/typesense","download_url":"https://codeload.github.com/typesense/showcase-xkcd-search/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250285650,"owners_count":21405296,"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":["typesense","typesense-showcase","xkcd","xkcd-comics"],"created_at":"2024-11-08T18:07:15.022Z","updated_at":"2025-04-22T17:04:50.418Z","avatar_url":"https://github.com/typesense.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# xkcd search\n\nThis is a demo that showcases some of Typesense's features using [xkcd](https://xkcd.com/) comics and metadata from [explain xkcd](https://www.explainxkcd.com/).\n\nView it live here: https://findxkcd.com/\n\n# Tech Stack\n\nThis search experience is powered by Typesense which is a fast, open source typo-tolerant search-engine. It is an open source alternative to Algolia and an easier-to-use alternative to ElasticSearch.\n\nThe app was built using the [Typesense Adapter for InstantSearch.js](https://github.com/typesense/typesense-instantsearch-adapter) and is hosted on Cloudflare Pages.\n\nThe search/browsing backend is powered by a geo-distributed 3-node Typesense cluster running on [Typesense Cloud](https://cloud.typesense.org), with nodes in Oregon, Frankfurt and Mumbai.\n\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/` - contains the scripts to extract, transform and index the data into Typesense.\n\n## Development\n\n1. Create a `.env` file using `.env.example` as reference.\n\n2. Fetch Data\n\n  ```shell\n  mkdir -p data/raw\n  yarn fetchData\n  ```\n\n3. Transform and index the data\n  ```shell\n  yarn transformData\n  yarn indexData\n  ```\n\n4. Install dependencies and run the local server:\n\n```shell\nyarn\nyarn start\n```\n\nOpen http://localhost:3000 to see the app.\n\n## Update data\n\n```shell\n# Delete cached files that might not have had explanations during previous run\nfind data/raw -name \"*.html\" -type f -exec grep -l \"explanation may be incomplete\" {} + | xargs -r rm\nyarn fetchData\n\n# Handle 503s\nfind data/raw -name \"*.html\" -type f -exec grep -l \"server is temporarily unable\" {} + | xargs -r rm\nfind data/raw -name \"*.json\" -type f -exec grep -l \"\u003chtml\u003e\" {} + | xargs -r rm\n\n# Refresh and index\nyarn refreshData\n```\n\n## Deployment\n\nThe app is hosted on Cloudflare Pages and is set to auto-deploy on git push\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftypesense%2Fshowcase-xkcd-search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftypesense%2Fshowcase-xkcd-search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftypesense%2Fshowcase-xkcd-search/lists"}