{"id":20926579,"url":"https://github.com/sonngdev/personal-website-23","last_synced_at":"2026-04-16T09:03:33.184Z","repository":{"id":118460406,"uuid":"592404525","full_name":"sonngdev/personal-website-23","owner":"sonngdev","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-15T23:33:11.000Z","size":6616,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-16T00:21:50.176Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://personal-website-23.vercel.app","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/sonngdev.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-01-23T16:58:17.000Z","updated_at":"2025-02-15T23:33:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"c0c62ab3-d433-4e63-9086-50e2670a93ac","html_url":"https://github.com/sonngdev/personal-website-23","commit_stats":null,"previous_names":["sonngdev/personal-website-23"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonngdev%2Fpersonal-website-23","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonngdev%2Fpersonal-website-23/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonngdev%2Fpersonal-website-23/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonngdev%2Fpersonal-website-23/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sonngdev","download_url":"https://codeload.github.com/sonngdev/personal-website-23/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243319649,"owners_count":20272328,"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-11-18T20:39:43.448Z","updated_at":"2025-12-25T09:46:42.777Z","avatar_url":"https://github.com/sonngdev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Blog with Comment\n\nThis project adds commenting functionality to [Next.js blog application](https://github.com/vercel/next.js/tree/canary/examples/blog) using Upstash and Auth0.\n\nThe comment box requires Auth0 authentication for users to add new comments. A user can delete their own comment. Also admin user can delete any comment.\n\nComments are stored in Serverless Redis ([Upstash](http://upstash.com/)).\n\n### Demo\n\n[https://blog-with-comment.vercel.app/](https://blog-with-comment.vercel.app/)\n\n## `1` Project set up\n\nExecute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app)\nwith [npm](https://docs.npmjs.com/cli/init) or [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/) to bootstrap the\nexample:\n\n```bash\nnpx create-next-app --example blog-with-comment blog-with-comment-app\n```\n\n## `2` Set up environment variables\n\nCopy the `.env.local.example` file in this directory to `.env.local` (which will be ignored by Git):\n\n```bash\ncp .env.local.example .env.local\n```\n\n## `3` Configuring Upstash\n\nGo to the [Upstash Console](https://console.upstash.com/) and create a new database\n\n#### Upstash environment\n\n- `REDIS_URL`: Find the URL in the database details page in Upstash Console clicking on **Redis Connect** button.\n\n## `4` Configuring Auth0\n\n1. Go to the [Auth0 dashboard](https://manage.auth0.com/) and create a new application of type **Single Page Web\n   Applications**.\n2. Go to the settings page of the application\n3. Configure the following settings:\n   - **Allowed Callback URLs**: Should be set to `http://localhost:3000/` when testing locally or typically\n     to `https://myapp.com/` when deploying your application.\n   - **Allowed Logout URLs**: Should be set to `http://localhost:3000/` when testing locally or typically\n     to `https://myapp.com/` when deploying your application.\n   - **Allowed Web Origins**: Should be set to `http://localhost:3000` when testing locally or typically\n     to `https://myapp.com/` when deploying your application.\n4. Save the settings.\n\n#### Auth0 environment\n\n- `NEXT_PUBLIC_AUTH0_DOMAIN`: Can be found in the Auth0 dashboard under `settings`.\n- `NEXT_PUBLIC_AUTH0_CLIENT_ID`: Can be found in the Auth0 dashboard under `settings`.\n- `NEXT_PUBLIC_AUTH0_ADMIN_EMAIL`: This is the email of the admin user which you use while signing in Auth0. Admin is able to delete any comment.\n\n## Deploy Your Local Project\n\nTo deploy your local project to Vercel, push it to GitHub/GitLab/Bitbucket\nand [import to Vercel](https://vercel.com/new?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=upstash-roadmap).\n\n**Important**: When you import your project on Vercel, make sure to click on **Environment Variables** and set them to\nmatch your `.env.local` file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonngdev%2Fpersonal-website-23","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsonngdev%2Fpersonal-website-23","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonngdev%2Fpersonal-website-23/lists"}