{"id":14989829,"url":"https://github.com/upstash/roadmap","last_synced_at":"2025-07-24T03:05:09.775Z","repository":{"id":55276963,"uuid":"354971029","full_name":"upstash/roadmap","owner":"upstash","description":"Build and deploy a roadmap voting app for your project/product.","archived":false,"fork":false,"pushed_at":"2024-02-21T23:15:14.000Z","size":3387,"stargazers_count":182,"open_issues_count":4,"forks_count":30,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-07-17T17:19:28.993Z","etag":null,"topics":["auth0","nextjs","redis","serverless"],"latest_commit_sha":null,"homepage":"https://roadmap.upstash.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/upstash.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}},"created_at":"2021-04-05T20:58:51.000Z","updated_at":"2025-06-25T18:43:21.000Z","dependencies_parsed_at":"2024-02-22T00:25:38.839Z","dependency_job_id":"fbdd7566-364d-41a2-b07d-dc695c328206","html_url":"https://github.com/upstash/roadmap","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/upstash/roadmap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upstash%2Froadmap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upstash%2Froadmap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upstash%2Froadmap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upstash%2Froadmap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/upstash","download_url":"https://codeload.github.com/upstash/roadmap/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upstash%2Froadmap/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266786798,"owners_count":23983871,"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","status":"online","status_checked_at":"2025-07-24T02:00:09.469Z","response_time":99,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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":["auth0","nextjs","redis","serverless"],"created_at":"2024-09-24T14:18:59.373Z","updated_at":"2025-07-24T03:05:09.747Z","avatar_url":"https://github.com/upstash.png","language":"TypeScript","readme":"# Roadmap Voting App\n\n\u003cimg src=\"https://github.com/upstash/roadmap/blob/main/public/doc/app.png\" width=\"100%\"\u003e\n\n\u003e [!NOTE]  \n\u003e **This project is a Community Project.**\n\u003e\n\u003e The project is maintained and supported by the community. Upstash may contribute but does not officially support or assume responsibility for it.\n\nYou can deploy Roadmap application yourself and ask your users to vote for your\nroadmap features. See the [live example](https://roadmap.upstash.com).\n\nIn this version, the user should sign up to add a new feature and vote them up.\nAlso you can configure yourself as admin, to set a feature request as `release`\nalso delete any feature request.\n\nIf you prefer the one without authentication, see\nthe [old version](https://github.com/vercel/next.js/tree/canary/examples/with-redis)\n.\n\n## Docs\n\n1. [Set up project](#1-set-up-project)\n2. [Configuring Environment Variables](#2-configuring-environment-variables)\n3. [Set up Database](#3-set-up-upstash-redis)\n4. [Set up user authentication with next-auth](#4-set-up-user-authentication-with-next-auth)\n5. [Run Your Project](#5-run-your-project)\n6. [Let's make ourselves admin](#6-lets-make-ourselves-admin)\n7. [Deploy to Vercel](#7-deploy-to-vercel)\n\n## `1` Set up project\n\nFirst, open up your terminal and navigate and run the following:\n\n```\nnpx create-next-app --example https://github.com/upstash/roadmap roadmap\n```\n\nThis will create a new folder in your current directory called **roadmap**.\nThen, you can navigate into the folder, install the dependencies, and launch the\napp:\n\n```\ncd roadmap \u0026\u0026 npm i\n```\n\n## `2` Configuring Environment Variables\n\nCopy the `.env.local.example` file to `.env.local` (which\nwill be ignored by Git):\n\n```bash\ncp .env.local.example .env.local\n```\n\n## `3` Set up Upstash Redis\n\nGo to the [Upstash Console](https://console.upstash.com/) and create a new\ndatabase\n\n#### Upstash environment\n\n`UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN` find the variables in\nthe database details page in Upstash Console.\n\n\u003cimg src=\"https://github.com/upstash/roadmap/blob/main/public/doc/upstash.png\" width=\"600\"\u003e\n\n## `4` Set up user authentication with next-auth\n\nWe will use the **[next-auth](https://next-auth.js.org/)** library for\nauthentication. This example is preconfigured to use GitHub OAuth.\n\nTo set up GitHub for authentication:\n\n1) Go to [GitHub Developer Settings](https://github.com/settings/apps) on\n   GitHub.\n\n2) Click on **\"New GitHub App\"**.\n\n\u003cimg src=\"https://github.com/upstash/roadmap/blob/main/public/doc/github-2.png\" width=\"600\"\u003e\n\n3) Name your **\"GitHub App name\"**\n\n4) Add your **\"Homepage URL\"** (or a placeholder, if you don't have a website\n   yet).\n\n5) For the **\"Callback URL\"** field, put http://localhost:3000.\n\n\u003e Since GitHub only\n\u003e allows one callback URL per app, we have to create separate apps for\n\u003e localhost and production (hence the \"dev\" name in step 3).\n\n\u003cimg src=\"https://github.com/upstash/roadmap/blob/main/public/doc/github-5.png\" width=\"600\"\u003e\n\n6) If the active field under \"Webhook\" is checked, uncheck it. Now, click on **\"\n   Create Github App\"**\n\n7) Once your app is created, you should see the following screen. Click on **\"\n   Generate a new client secret\"**\n\n\u003cimg src=\"https://github.com/upstash/roadmap/blob/main/public/doc/github-7.png\" width=\"600\"\u003e\n\n8) Copy the client secret you generated and paste it under the `GITHUB_SECRET`\n   value in your .env file\n\n\u003cimg src=\"https://github.com/upstash/roadmap/blob/main/public/doc/github-8.png\" width=\"500\"\u003e\n\n9) Copy the **Client ID** and paste it under the `GITHUB_ID` value in your .env\n   file\n\n\u003cimg src=\"https://github.com/upstash/roadmap/blob/main/public/doc/github-9.png\" width=\"500\"\u003e\n\n## `5` Run Your Project\n\nIn the project folder, run\n\n```\nnpm run dev\n```\n\n## `6` Let's make ourselves admin\n\nOnly admin users can delete and release content.\n\n`NEXT_PUBLIC_ADMIN_EMAILS`: Enter your Github emails here, separated by commas.\n\n## `7` Deploy to Vercel\n\nFirst, create a new Github repository and push your local changes.\n\n[Deploy it to Vercel](https://vercel.com/docs/concepts/git#deploying-a-git-repository)\n. Ensure you add\nall [Environment Variables](https://vercel.com/docs/concepts/projects/environment-variables)\nin your .env file to Vercel during the import process.\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupstash%2Froadmap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fupstash%2Froadmap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupstash%2Froadmap/lists"}