{"id":26090423,"url":"https://github.com/devashish2024/nextjs-reusable-guestbook","last_synced_at":"2025-08-14T05:12:54.631Z","repository":{"id":279053351,"uuid":"937590681","full_name":"devashish2024/nextjs-reusable-guestbook","owner":"devashish2024","description":"Re-usable Next.js Guestbook integrating shadcn/ui, Clerk, Prisma and Perspective API","archived":false,"fork":false,"pushed_at":"2025-03-21T20:02:01.000Z","size":159,"stargazers_count":6,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-12T05:15:47.532Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://nextjs-reusable-guestbook.vercel.app","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/devashish2024.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,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-23T12:48:11.000Z","updated_at":"2025-02-24T19:41:51.000Z","dependencies_parsed_at":"2025-04-12T05:15:51.361Z","dependency_job_id":"4144e858-5d41-41b5-a3bc-8c2f086c55ac","html_url":"https://github.com/devashish2024/nextjs-reusable-guestbook","commit_stats":null,"previous_names":["devashish2024/nextjs-guestbook","devashish2024/nextjs-reusable-guestbook"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/devashish2024/nextjs-reusable-guestbook","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devashish2024%2Fnextjs-reusable-guestbook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devashish2024%2Fnextjs-reusable-guestbook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devashish2024%2Fnextjs-reusable-guestbook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devashish2024%2Fnextjs-reusable-guestbook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devashish2024","download_url":"https://codeload.github.com/devashish2024/nextjs-reusable-guestbook/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devashish2024%2Fnextjs-reusable-guestbook/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270364971,"owners_count":24571423,"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-08-14T02:00:10.309Z","response_time":75,"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":"2025-03-09T09:08:54.329Z","updated_at":"2025-08-14T05:12:54.603Z","avatar_url":"https://github.com/devashish2024.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Re-Usable Guestbook App with Next.js\n\nA simple, plug-and-play guestbook application built with Next.js, integrating shadcn/ui, Clerk, Prisma, and Perspective API. 🔥\n\nThis is a simple guestbook application built with Next.js, integrating shadcn/ui, Clerk, Prisma, and Perspective API.\nCheck it out live at [nextjs-reusable-guestbook.vercel.app](https://nextjs-reusable-guestbook.vercel.app/)!\n\nFeel free to implement the guestbook feature based on this project to your portfolio.\n\n## Features\n- **Authentication**: Users can sign in using Google or GitHub. The app uses Clerk for authentication, so it can be customized to support more providers.\n- **Guestbook Entries**: Users can submit guestbook entries with their name and message. They can also update their entries later, anytime.\n- **Limit**: The app limits one user to only send one entry to ensure that the guestbook is not spammed.\n- **Theme**: Uses `Next Themes` to provide a light and dark theme. Everything, including Clerk popups, changes based on the theme. No flashes!\n- **Social**: Those who login with their GitHub account will also share their github username automatically, allowing people to see their GitHub profile.\n- **Perspective API**: The app uses the Perspective API to analyze the sentiment of guestbook messages and filter out toxic content.\n\n## Getting Started\n\n### Environment Variables\n\nFirst, set up your environment variables. Create a `.env.local` file based on `.env.example` and replace placeholders with actual keys:\n\n```bash\nNEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_publishable_key # Public key from Clerk\nCLERK_SECRET_KEY=your_secret_key # Secret key from Clerk\n\nDATABASE_URL=your_database_url # Database URL for Prisma\nPERSPECTIVE_API_KEY=your_api_key # API key for Perspective API\n```\n\n\u003e **Note**: you may have to apply for Perspective API [here](https://support.perspectiveapi.com/s/docs-get-started?language=en_US) before you can get an API key.\n\n### Install Dependencies\nInstall dependencies using npm or your preferred package manager:\n\n```bash\nnpm install\n```\n\n### Prisma Database Setup\nApply migrations and seed your database using Prisma:\n\n```bash\nnpx prisma db push\nnpx prisma generate\n```\n\n### Start the Development Server\nRun the Next.js development server:\n\n```bash\nnpm run dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) in your browser to view the guestbook app.\n\n## Deployment\nFor deployment, consider using Vercel, the recommended platform for Next.js applications. Follow the [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for detailed instructions.\n\n## License\nThis project is open source and available under the [MIT License](LICENSE). Feel free to copy this to your project, but if possible, thank you for giving credit to the original author by linking back to [this repository](https://github.com/devashish2024/nextjs-reusable-guestbook).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevashish2024%2Fnextjs-reusable-guestbook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevashish2024%2Fnextjs-reusable-guestbook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevashish2024%2Fnextjs-reusable-guestbook/lists"}