{"id":50978811,"url":"https://github.com/rajdeepds/bolt-reviews","last_synced_at":"2026-06-19T12:03:05.671Z","repository":{"id":338641396,"uuid":"1153700663","full_name":"RajdeepDs/Bolt-Reviews","owner":"RajdeepDs","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-13T14:21:51.000Z","size":751,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-13T16:20:40.101Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/RajdeepDs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-09T15:45:00.000Z","updated_at":"2026-04-13T14:21:55.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/RajdeepDs/Bolt-Reviews","commit_stats":null,"previous_names":["rajdeepds/bolt-reviews"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/RajdeepDs/Bolt-Reviews","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RajdeepDs%2FBolt-Reviews","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RajdeepDs%2FBolt-Reviews/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RajdeepDs%2FBolt-Reviews/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RajdeepDs%2FBolt-Reviews/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RajdeepDs","download_url":"https://codeload.github.com/RajdeepDs/Bolt-Reviews/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RajdeepDs%2FBolt-Reviews/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34530302,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2026-06-19T12:03:00.783Z","updated_at":"2026-06-19T12:03:05.626Z","avatar_url":"https://github.com/RajdeepDs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Shopify App Template - React Router\n\nThis is a template for building a [Shopify app](https://shopify.dev/docs/apps/getting-started) using [React Router](https://reactrouter.com/). It was forked from the [Shopify Remix app template](https://github.com/Shopify/shopify-app-template-remix) and converted to React Router.\n\nRather than cloning this repo, follow the [Quick Start steps](https://github.com/Shopify/shopify-app-template-react-router#quick-start).\n\nVisit the [`shopify.dev` documentation](https://shopify.dev/docs/api/shopify-app-react-router) for more details on the React Router app package.\n\n## Upgrading from Remix\n\nIf you have an existing Remix app that you want to upgrade to React Router, please follow the [upgrade guide](https://github.com/Shopify/shopify-app-template-react-router/wiki/Upgrading-from-Remix). Otherwise, please follow the quick start guide below.\n\n## Quick start\n\n### Prerequisites\n\nBefore you begin, you'll need to [download and install the Shopify CLI](https://shopify.dev/docs/apps/tools/cli/getting-started) if you haven't already.\n\n### Setup\n\n```shell\nshopify app init --template=https://github.com/Shopify/shopify-app-template-react-router\n```\n\n### Local Development\n\n```shell\nshopify app dev\n```\n\nPress P to open the URL to your app. Once you click install, you can start development.\n\nLocal development is powered by [the Shopify CLI](https://shopify.dev/docs/apps/tools/cli). It logs into your account, connects to an app, provides environment variables, updates remote config, creates a tunnel and provides commands to generate extensions.\n\n### Authenticating and querying data\n\nTo authenticate and query data you can use the `shopify` const that is exported from `/app/shopify.server.js`:\n\n```js\nexport async function loader({ request }) {\n  const { admin } = await shopify.authenticate.admin(request);\n\n  const response = await admin.graphql(`\n    {\n      products(first: 25) {\n        nodes {\n          title\n          description\n        }\n      }\n    }`);\n\n  const {\n    data: {\n      products: { nodes },\n    },\n  } = await response.json();\n\n  return nodes;\n}\n```\n\nThis template comes pre-configured with examples of:\n\n1. Setting up your Shopify app in [/app/shopify.server.ts](https://github.com/Shopify/shopify-app-template-react-router/blob/main/app/shopify.server.ts)\n2. Querying data using Graphql. Please see: [/app/routes/app.\\_index.tsx](https://github.com/Shopify/shopify-app-template-react-router/blob/main/app/routes/app._index.tsx).\n3. Responding to webhooks. Please see [/app/routes/webhooks.tsx](https://github.com/Shopify/shopify-app-template-react-router/blob/main/app/routes/webhooks.app.uninstalled.tsx).\n\nPlease read the [documentation for @shopify/shopify-app-react-router](https://shopify.dev/docs/api/shopify-app-react-router) to see what other API's are available.\n\n## Shopify Dev MCP\n\nThis template is configured with the Shopify Dev MCP. This instructs [Cursor](https://cursor.com/), [GitHub Copilot](https://github.com/features/copilot) and [Claude Code](https://claude.com/product/claude-code) and [Google Gemini CLI](https://github.com/google-gemini/gemini-cli) to use the Shopify Dev MCP.\n\nFor more information on the Shopify Dev MCP please read [the documentation](https://shopify.dev/docs/apps/build/devmcp).\n\n## Deployment\n\n### Application Storage\n\nThis template uses [Prisma](https://www.prisma.io/) to store session data, by default using an [SQLite](https://www.sqlite.org/index.html) database.\nThe database is defined as a Prisma schema in `prisma/schema.prisma`.\n\nThis use of SQLite works in production if your app runs as a single instance.\nThe database that works best for you depends on the data your app needs and how it is queried.\nHere’s a short list of databases providers that provide a free tier to get started:\n\n| Database   | Type             | Hosters                                                                                                                                                                                                                                    |\n| ---------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| MySQL      | SQL              | [Digital Ocean](https://www.digitalocean.com/products/managed-databases-mysql), [Planet Scale](https://planetscale.com/), [Amazon Aurora](https://aws.amazon.com/rds/aurora/), [Google Cloud SQL](https://cloud.google.com/sql/docs/mysql) |\n| PostgreSQL | SQL              | [Digital Ocean](https://www.digitalocean.com/products/managed-databases-postgresql), [Amazon Aurora](https://aws.amazon.com/rds/aurora/), [Google Cloud SQL](https://cloud.google.com/sql/docs/postgres)                                   |\n| Redis      | Key-value        | [Digital Ocean](https://www.digitalocean.com/products/managed-databases-redis), [Amazon MemoryDB](https://aws.amazon.com/memorydb/)                                                                                                        |\n| MongoDB    | NoSQL / Document | [Digital Ocean](https://www.digitalocean.com/products/managed-databases-mongodb), [MongoDB Atlas](https://www.mongodb.com/atlas/database)                                                                                                  |\n\nTo use one of these, you can use a different [datasource provider](https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#datasource) in your `schema.prisma` file, or a different [SessionStorage adapter package](https://github.com/Shopify/shopify-api-js/blob/main/packages/shopify-api/docs/guides/session-storage.md).\n\n### Build\n\nBuild the app by running the command below with the package manager of your choice:\n\nUsing yarn:\n\n```shell\nyarn build\n```\n\nUsing npm:\n\n```shell\nnpm run build\n```\n\nUsing pnpm:\n\n```shell\npnpm run build\n```\n\n## Hosting\n\nWhen you're ready to set up your app in production, you can follow [our deployment documentation](https://shopify.dev/docs/apps/launch/deployment) to host it externally. From there, you have a few options:\n\n- [Google Cloud Run](https://shopify.dev/docs/apps/launch/deployment/deploy-to-google-cloud-run): This tutorial is written specifically for this example repo, and is compatible with the extended steps included in the subsequent [**Build your app**](tutorial) in the **Getting started** docs. It is the most detailed tutorial for taking a React Router-based Shopify app and deploying it to production. It includes configuring permissions and secrets, setting up a production database, and even hosting your apps behind a load balancer across multiple regions.\n- [Fly.io](https://fly.io/docs/js/shopify/): Leverages the Fly.io CLI to quickly launch Shopify apps to a single machine.\n- [Render](https://render.com/docs/deploy-shopify-app): This tutorial guides you through using Docker to deploy and install apps on a Dev store.\n- [Manual deployment guide](https://shopify.dev/docs/apps/launch/deployment/deploy-to-hosting-service): This resource provides general guidance on the requirements of deployment including environment variables, secrets, and persistent data.\n\nWhen you reach the step for [setting up environment variables](https://shopify.dev/docs/apps/deployment/web#set-env-vars), you also need to set the variable `NODE_ENV=production`.\n\n## Gotchas / Troubleshooting\n\n### Database tables don't exist\n\nIf you get an error like:\n\n```\nThe table `main.Session` does not exist in the current database.\n```\n\nCreate the database for Prisma. Run the `setup` script in `package.json` using `npm`, `yarn` or `pnpm`.\n\n### Navigating/redirecting breaks an embedded app\n\nEmbedded apps must maintain the user session, which can be tricky inside an iFrame. To avoid issues:\n\n1. Use `Link` from `react-router` or `@shopify/polaris`. Do not use `\u003ca\u003e`.\n2. Use `redirect` returned from `authenticate.admin`. Do not use `redirect` from `react-router`\n3. Use `useSubmit` from `react-router`.\n\nThis only applies if your app is embedded, which it will be by default.\n\n### Webhooks: shop-specific webhook subscriptions aren't updated\n\nIf you are registering webhooks in the `afterAuth` hook, using `shopify.registerWebhooks`, you may find that your subscriptions aren't being updated.\n\nInstead of using the `afterAuth` hook declare app-specific webhooks in the `shopify.app.toml` file. This approach is easier since Shopify will automatically sync changes every time you run `deploy` (e.g: `npm run deploy`). Please read these guides to understand more:\n\n1. [app-specific vs shop-specific webhooks](https://shopify.dev/docs/apps/build/webhooks/subscribe#app-specific-subscriptions)\n2. [Create a subscription tutorial](https://shopify.dev/docs/apps/build/webhooks/subscribe/get-started?deliveryMethod=https)\n\nIf you do need shop-specific webhooks, keep in mind that the package calls `afterAuth` in 2 scenarios:\n\n- After installing the app\n- When an access token expires\n\nDuring normal development, the app won't need to re-authenticate most of the time, so shop-specific subscriptions aren't updated. To force your app to update the subscriptions, uninstall and reinstall the app. Revisiting the app will call the `afterAuth` hook.\n\n### Webhooks: Admin created webhook failing HMAC validation\n\nWebhooks subscriptions created in the [Shopify admin](https://help.shopify.com/en/manual/orders/notifications/webhooks) will fail HMAC validation. This is because the webhook payload is not signed with your app's secret key.\n\nThe recommended solution is to use [app-specific webhooks](https://shopify.dev/docs/apps/build/webhooks/subscribe#app-specific-subscriptions) defined in your toml file instead. Test your webhooks by triggering events manually in the Shopify admin(e.g. Updating the product title to trigger a `PRODUCTS_UPDATE`).\n\n### Webhooks: Admin object undefined on webhook events triggered by the CLI\n\nWhen you trigger a webhook event using the Shopify CLI, the `admin` object will be `undefined`. This is because the CLI triggers an event with a valid, but non-existent, shop. The `admin` object is only available when the webhook is triggered by a shop that has installed the app. This is expected.\n\nWebhooks triggered by the CLI are intended for initial experimentation testing of your webhook configuration. For more information on how to test your webhooks, see the [Shopify CLI documentation](https://shopify.dev/docs/apps/tools/cli/commands#webhook-trigger).\n\n### Incorrect GraphQL Hints\n\nBy default the [graphql.vscode-graphql](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) extension for will assume that GraphQL queries or mutations are for the [Shopify Admin API](https://shopify.dev/docs/api/admin). This is a sensible default, but it may not be true if:\n\n1. You use another Shopify API such as the storefront API.\n2. You use a third party GraphQL API.\n\nIf so, please update [.graphqlrc.ts](https://github.com/Shopify/shopify-app-template-react-router/blob/main/.graphqlrc.ts).\n\n### Using Defer \u0026 await for streaming responses\n\nBy default the CLI uses a cloudflare tunnel. Unfortunately cloudflare tunnels wait for the Response stream to finish, then sends one chunk. This will not affect production.\n\nTo test [streaming using await](https://reactrouter.com/api/components/Await#await) during local development we recommend [localhost based development](https://shopify.dev/docs/apps/build/cli-for-apps/networking-options#localhost-based-development).\n\n### \"nbf\" claim timestamp check failed\n\nThis is because a JWT token is expired. If you are consistently getting this error, it could be that the clock on your machine is not in sync with the server. To fix this ensure you have enabled \"Set time and date automatically\" in the \"Date and Time\" settings on your computer.\n\n### Using MongoDB and Prisma\n\nIf you choose to use MongoDB with Prisma, there are some gotchas in Prisma's MongoDB support to be aware of. Please see the [Prisma SessionStorage README](https://www.npmjs.com/package/@shopify/shopify-app-session-storage-prisma#mongodb).\n\n### Unable to require(`C:\\...\\query_engine-windows.dll.node`).\n\nUnable to require(`C:\\...\\query_engine-windows.dll.node`).\nThe Prisma engines do not seem to be compatible with your system.\n\nquery_engine-windows.dll.node is not a valid Win32 application.\n\n**Fix:** Set the environment variable:\n\n```shell\nPRISMA_CLIENT_ENGINE_TYPE=binary\n```\n\nThis forces Prisma to use the binary engine mode, which runs the query engine as a separate process and can work via emulation on Windows ARM64.\n\n## Resources\n\nReact Router:\n\n- [React Router docs](https://reactrouter.com/home)\n\nShopify:\n\n- [Intro to Shopify apps](https://shopify.dev/docs/apps/getting-started)\n- [Shopify App React Router docs](https://shopify.dev/docs/api/shopify-app-react-router)\n- [Shopify CLI](https://shopify.dev/docs/apps/tools/cli)\n- [Shopify App Bridge](https://shopify.dev/docs/api/app-bridge-library).\n- [Polaris Web Components](https://shopify.dev/docs/api/app-home/polaris-web-components).\n- [App extensions](https://shopify.dev/docs/apps/app-extensions/list)\n- [Shopify Functions](https://shopify.dev/docs/api/functions)\n\nInternationalization:\n\n- [Internationalizing your app](https://shopify.dev/docs/apps/best-practices/internationalization/getting-started)\n\n\n## Local development (Internal)\n\nTo run the app locally, follow these steps:\n1. Clone the repository and navigate to the project directory.\n2. Install the dependencies using your preferred package manager (e.g., bun install) [Note: You must've `bun` installed].\n\u003e If you don't have `bun` installed, you can install it using the following command:\n```\n    curl -fsSL https://bun.sh/install | bash\n```\n3. `bun run dev` to start the development server.\n4. Open the provided URL in your browser to access the app.\n5. Make changes to the code and see them reflected in real-time in the browser.\n\u003e Tip: This is the starting point --\u003e app/routes/app._index.tsx\n6. To stop the development server, press `Ctrl + C` in the terminal.\n7. Commit your changes and push them to the repository when you're done. Do it page by page to make it easier for reviewers.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajdeepds%2Fbolt-reviews","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frajdeepds%2Fbolt-reviews","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajdeepds%2Fbolt-reviews/lists"}