{"id":15821514,"url":"https://github.com/octoper/fishkos.com","last_synced_at":"2025-10-05T07:39:19.497Z","repository":{"id":160788965,"uuid":"635442818","full_name":"octoper/fishkos.com","owner":"octoper","description":"Resumable Fish Sticks","archived":false,"fork":false,"pushed_at":"2023-05-05T00:52:49.000Z","size":97,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-06T07:22:42.343Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://fishkos.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/octoper.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-05-02T17:51:10.000Z","updated_at":"2023-05-03T02:49:54.000Z","dependencies_parsed_at":"2023-06-09T17:45:09.559Z","dependency_job_id":null,"html_url":"https://github.com/octoper/fishkos.com","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/octoper%2Ffishkos.com","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octoper%2Ffishkos.com/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octoper%2Ffishkos.com/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octoper%2Ffishkos.com/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/octoper","download_url":"https://codeload.github.com/octoper/fishkos.com/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246598180,"owners_count":20802975,"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":[],"created_at":"2024-10-05T07:22:48.827Z","updated_at":"2025-10-05T07:39:14.473Z","avatar_url":"https://github.com/octoper.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Resumable Fish Sticks 🐠 ⚡️\n\n- [Qwik Docs](https://qwik.builder.io/)\n- [Discord](https://qwik.builder.io/chat)\n- [Qwik GitHub](https://github.com/BuilderIO/qwik)\n- [@QwikDev](https://twitter.com/QwikDev)\n- [Vite](https://vitejs.dev/)\n\n---\n\n## Project Structure\n\nThis project is using Qwik with [QwikCity](https://qwik.builder.io/qwikcity/overview/). QwikCity is just an extra set of tools on top of Qwik to make it easier to build a full site, including directory-based routing, layouts, and more.\n\nInside your project, you'll see the following directory structure:\n\n```\n├── public/\n│   └── ...\n└── src/\n    ├── components/\n    │   └── ...\n    └── routes/\n        └── ...\n```\n\n- `src/routes`: Provides the directory based routing, which can include a hierarchy of `layout.tsx` layout files, and an `index.tsx` file as the page. Additionally, `index.ts` files are endpoints. Please see the [routing docs](https://qwik.builder.io/qwikcity/routing/overview/) for more info.\n\n- `src/components`: Recommended directory for components.\n\n- `public`: Any static assets, like images, can be placed in the public directory. Please see the [Vite public directory](https://vitejs.dev/guide/assets.html#the-public-directory) for more info.\n\n## Add Integrations and deployment\n\nUse the `pnpm qwik add` command to add additional integrations. Some examples of integrations include: Cloudflare, Netlify or Express server, and the [Static Site Generator (SSG)](https://qwik.builder.io/qwikcity/guides/static-site-generation/).\n\n```shell\npnpm qwik add # or `yarn qwik add`\n```\n\n## Development\n\nDevelopment mode uses [Vite's development server](https://vitejs.dev/). During development, the `dev` command will server-side render (SSR) the output.\n\n```shell\nnpm start # or `yarn start`\n```\n\n\u003e Note: during dev mode, Vite may request a significant number of `.js` files. This does not represent a Qwik production build.\n\n## Preview\n\nThe preview command will create a production build of the client modules, a production build of `src/entry.preview.tsx`, and run a local server. The preview server is only for convenience to locally preview a production build, and it should not be used as a production server.\n\n```shell\npnpm preview # or `yarn preview`\n```\n\n## Production\n\nThe production build will generate client and server modules by running both client and server build commands. Additionally, the build command will use Typescript to run a type check on the source code.\n\n```shell\npnpm build # or `yarn build`\n```\n\n## Cloudflare Pages\n\nCloudflare's [wrangler](https://github.com/cloudflare/wrangler) CLI can be used to preview a production build locally. To start a local server, run:\n\n```\npnpm serve\n```\n\nThen visit [http://localhost:8787/](http://localhost:8787/)\n\n### Deployments\n\n[Cloudflare Pages](https://pages.cloudflare.com/) are deployable through their [Git provider integrations](https://developers.cloudflare.com/pages/platform/git-integration/).\n\nIf you don't already have an account, then [create a Cloudflare account here](https://dash.cloudflare.com/sign-up/pages). Next go to your dashboard and follow the [Cloudflare Pages deployment guide](https://developers.cloudflare.com/pages/framework-guides/deploy-anything/).\n\nWithin the projects \"Settings\" for \"Build and deployments\", the \"Build command\" should be `pnpm build`, and the \"Build output directory\" should be set to `dist`.\n\n### Function Invocation Routes\n\nCloudflare Page's [function-invocation-routes config](https://developers.cloudflare.com/pages/platform/functions/routing/#functions-invocation-routes) can be used to include, or exclude, certain paths to be used by the worker functions. Having a `_routes.json` file gives developers more granular control over when your Function is invoked.\nThis is useful to determine if a page response should be Server-Side Rendered (SSR) or if the response should use a static-site generated (SSG) `index.html` file.\n\nBy default, the Cloudflare pages adaptor _does not_ include a `public/_routes.json` config, but rather it is auto-generated from the build by the Cloudflare adaptor. An example of an auto-generate `dist/_routes.json` would be:\n\n```\n{\n  \"include\": [\n    \"/*\"\n  ],\n  \"exclude\": [\n    \"/_headers\",\n    \"/_redirects\",\n    \"/build/*\",\n    \"/favicon.ico\",\n    \"/manifest.json\",\n    \"/service-worker.js\",\n    \"/about\"\n  ],\n  \"version\": 1\n}\n```\n\nIn the above example, it's saying _all_ pages should be SSR'd. However, the root static files such as `/favicon.ico` and any static assets in `/build/*` should be excluded from the Functions, and instead treated as a static file.\n\nIn most cases the generated `dist/_routes.json` file is ideal. However, if you need more granular control over each path, you can instead provide you're own `public/_routes.json` file. When the project provides its own `public/_routes.json` file, then the Cloudflare adaptor will not auto-generate the routes config and instead use the committed one within the `public` directory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctoper%2Ffishkos.com","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foctoper%2Ffishkos.com","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctoper%2Ffishkos.com/lists"}