{"id":13632583,"url":"https://github.com/vercel/vrs","last_synced_at":"2025-04-04T16:16:29.000Z","repository":{"id":38962893,"uuid":"177616734","full_name":"vercel/vrs","owner":"vercel","description":"A serverless virtual reality e-commerce experience powered by Vercel","archived":false,"fork":false,"pushed_at":"2023-07-13T20:39:06.000Z","size":123672,"stargazers_count":525,"open_issues_count":3,"forks_count":87,"subscribers_count":70,"default_branch":"master","last_synced_at":"2025-03-28T15:09:25.511Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://vrs.vercel.app","language":"TypeScript","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/vercel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-03-25T15:44:31.000Z","updated_at":"2025-02-25T08:09:48.000Z","dependencies_parsed_at":"2022-09-19T15:00:28.390Z","dependency_job_id":"6be3daa0-5b35-426c-84aa-975db4249032","html_url":"https://github.com/vercel/vrs","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/vercel%2Fvrs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vercel%2Fvrs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vercel%2Fvrs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vercel%2Fvrs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vercel","download_url":"https://codeload.github.com/vercel/vrs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247208183,"owners_count":20901570,"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-08-01T22:03:07.689Z","updated_at":"2025-04-04T16:16:28.978Z","avatar_url":"https://github.com/vercel.png","language":"TypeScript","readme":"[![](https://assets.zeit.co/image/upload/v1556749417/front/blog/serverless-ecommerce/serverless-vrs.now.sh.png)](https://serverless-vrs.now.sh)\n\n---\n\n# VRS\n\nVRS is a fully-functional e-commerce store using Next.js 12, three.js, NextAuth.js, Stripe Elements, and Airtable.  \n\n## Demo \n\nhttps://serverless-vrs.vercel.app/\n\n## Configuration \n\n### Step 1\n\nClone the repository \n\n```bash\n$ git clone https://github.com/vercel/vrs.git\n```\n\n### Step 2 \n\nIn order to run this example locally, you have to set up your environment in the `.env.local` file.\n\nCopy the `.env.local.example` file in this directory to `.env.local` (which will be ignored by Git):\n\n```\ncp .env.local.example .env.local\n```\n\nThen, open `.env.local` and add the missing environment variables:\n\n- `NEXTAUTH_SECRET`: A secret value that's used by NextAuth.js to encrypt JWTs. Read more about NextAuth.js's secret value [here](https://next-auth.js.org/configuration/options#nextauth_secret). \n- `STRIPE_PK`:  Stripe's publishable key. Read more about Stripe's API keys [here](https://stripe.com/docs/keys#obtain-api-keys). \n- `STRIPE_SK`:  Stripe's secret key. Read more about Stripe's API keys [here](https://stripe.com/docs/keys#obtain-api-keys). \n- `GITHUB_CLIENT_ID`:  Client ID of your registered OAuth application within Github. Read more about creating a Github app [here](https://docs.github.com/en/developers/apps/building-oauth-apps/creating-an-oauth-app).\n- `GITHUB_CLIENT_SECRET`:  Client Secret of your registered OAuth application within Github. Read more about creating a Github app [here](https://docs.github.com/en/developers/apps/building-oauth-apps/creating-an-oauth-app).\n\nIn this example, we're using [Airtable](https://airtable.com/) as our data source. If you haven't configured Airtable, this example uses the local mock data that can be found in `mockdata.ts`. You can optionally provide the necessary environment variables in the `.env.local` file. \n\n\n- `AIRTABLE_API_KEY` (_optional_): Airtable's API key. Read more about Airtable's API keys [here](https://support.airtable.com/hc/en-us/articles/219046777-How-do-I-get-my-API-key-) \n- `AIRTABLE_BASE_NAME`  (_optional_): Your Airtable's base name. Read more about Airtable's API keys [here](https://support.airtable.com/hc/en-us/articles/219046777-How-do-I-get-my-API-key-) \n- `AIRTABLE_TABLE_NAME`  (_optional_): Your Airtable's Table name. Read more about using data from Airtable [here](https://help.appsheet.com/en/articles/1785063-using-data-from-airtable#:~:text=The%20base%20ID%20can%20be,must%20be%20separated%20by%20commas).\n- `AIRTABLE_VIEW_NAME`  (_optional_): Your Airtable's View name. Read more about using data from Airtable [here](https://help.appsheet.com/en/articles/1785063-using-data-from-airtable#:~:text=The%20base%20ID%20can%20be,must%20be%20separated%20by%20commas).\n\n","funding_links":[],"categories":["TypeScript","Experiences"],"sub_categories":["Motion Controllers inside Unity!"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvercel%2Fvrs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvercel%2Fvrs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvercel%2Fvrs/lists"}