{"id":20168205,"url":"https://github.com/aryanyadav-dev/devoverflow","last_synced_at":"2026-04-07T08:32:21.543Z","repository":{"id":262595428,"uuid":"887733150","full_name":"aryanyadav-dev/devoverflow","owner":"aryanyadav-dev","description":"DevOverflow is a complex Next.js 14 app that exhibits Q\u0026A platform for developers to ask questions, share knowledge, and learn from each other.","archived":false,"fork":false,"pushed_at":"2024-11-14T14:29:00.000Z","size":394,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-06T19:35:11.254Z","etag":null,"topics":["mongodb","nextjs","openapi","typescript"],"latest_commit_sha":null,"homepage":"","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/aryanyadav-dev.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-11-13T07:30:29.000Z","updated_at":"2024-11-14T14:29:05.000Z","dependencies_parsed_at":"2024-11-13T09:37:46.712Z","dependency_job_id":null,"html_url":"https://github.com/aryanyadav-dev/devoverflow","commit_stats":null,"previous_names":["aryanyadav-dev/devoverflow"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aryanyadav-dev/devoverflow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aryanyadav-dev%2Fdevoverflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aryanyadav-dev%2Fdevoverflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aryanyadav-dev%2Fdevoverflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aryanyadav-dev%2Fdevoverflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aryanyadav-dev","download_url":"https://codeload.github.com/aryanyadav-dev/devoverflow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aryanyadav-dev%2Fdevoverflow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31506562,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["mongodb","nextjs","openapi","typescript"],"created_at":"2024-11-14T01:06:43.721Z","updated_at":"2026-04-07T08:32:21.517Z","avatar_url":"https://github.com/aryanyadav-dev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv id=\"top\"\u003e\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch1 align=\"center\"\u003eDevOverflow\u003c/h1\u003e\n\n  \u003cimg width=\"600\" alt=\"Screenshot 2024-11-14 at 7 58 12 PM\" src=\"https://github.com/user-attachments/assets/58de1bf2-206e-4d9b-9a91-ce7445a75e67\"\u003e\n\n \u003ch4 align=\"center\"\u003eWelcome to DevOverflow, a full-stack application built with Next.js 14 and Server Actions, featuring an array of powerful functionalities to enhance your developer community experience. DevOverflow is designed to be a comprehensive platform for developers to ask questions, share knowledge, and engage in a thriving community.\u003c/h4\u003e\n\n \u003cp align=\"center\"\u003e\n   \u003cimg src=\"https://img.shields.io/badge/NextJS-black?style=for-the-badge\u0026logo=next.js\u0026logoColor=white\" /\u003e\n   \u003cimg src=\"https://img.shields.io/badge/TailwindCSS-38B2AC?style=for-the-badge\u0026logo=tailwind-css\u0026logoColor=white\" /\u003e\n   \u003cimg src=\"https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge\u0026logo=typescript\u0026logoColor=white\" /\u003e\n   \u003cimg src=\"https://img.shields.io/badge/MongoDB-47A248?style=for-the-badge\u0026logo=mongodb\u0026logoColor=white\" /\u003e\n   \u003cimg src=\"https://img.shields.io/badge/ESLint-4B32C3?style=for-the-badge\u0026logo=eslint\u0026logoColor=white\" /\u003e\n   \u003cimg src=\"https://img.shields.io/badge/Prettier-F7B93E?style=for-the-badge\u0026logo=prettier\u0026logoColor=white\" /\u003e\n\n\u003e \u003c/p\u003e\n\n\u003c/div\u003e\n\n\n## 🚀 Features\n\n- **Next.js Server Actions**: Leverage the power of Next.js server actions for enhanced backend functionality.\n- **Webhooks for Authentication Service**: Utilize webhooks for streamlined authentication services.\n- **Ask and Answer Questions:** Engage in meaningful discussions by posing questions and providing answers\n- **Bookmarking:** Save and organize your favorite posts for future reference.\n- **Recommendation System for Posts**: Unparalleled recommendation system to enhance content discovery.\n- **Global Database Data-Fetching**: Efficient data fetching from all models of the database for the search bar.\n- **AI-Generated Answers**: Harness the power of AI to generate insightful answers to questions.\n- **Community Badges \u0026 Reputation System**: Earn badges and build your reputation within the community.\n- **Views and Voting Mechanism**: Track views and enable a robust voting mechanism for content.\n- **Filter and Pagination**: Enjoy filter and pagination features across various pages for easy navigation.\n- **Responsive UI**:Experience a responsive user interface that adapts to different screen sizes.\n- **User Authentication**: Create a personalized account to fully engage with the community.\n- **Themes**: Switch between light and dark themes for a comfortable viewing experience.\n- **Multiple Layouts \u0026 Grouped Routes**: Explore a well-organized interface with multiple layout options and grouped routes.\n- **Form Handling**: Efficiently handle forms for seamless user interactions.\n- **Tag Browsing:** Explore content categorically through an intuitive tag-based browsing system.\n\n## 🛠️ Tech Stack\n\n- **Next.js 14**: A React framework for building server-rendered applications.\n- **Tailwind CSS**: A utility-first CSS framework for responsive designs.\n- **TypeScript:** A typed superset of JavaScript that compiles to plain JavaScript.\n- **ESLint**: Pluggable linting utility for JavaScript and TypeScript.\n- **MongoDB**: Store and manage data efficiently.\n- **Mongoose**: MongoDB object modeling for Node.js.\n- **clerk**: Simplify authentication workflows.\n- **hookform/resolver**: Webhooks for authentication services.\n- **Shadcn UI:**: Components from the Shadcn UI library.\n- **tailwindcss/typography**: Typography plugin for Tailwind CSS.\n- **prismjs**: Syntax highlighting for code blocks.\n- **react-hook-form**: Forms management for React.\n- **zod**: A TypeScript-first schema declaration.\n\n## 🛠️ Run the project\n\n- Clone the repository.\n- Install dependency using:\n\n```bash\nnpm install\n# or\nyarn install\n```\n\n- Run the development server:\n\n```bash\nnpm run dev\n# or\nyarn dev\n# or\npnpm dev\n# or\nbun dev\n```\n\n- Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n\n- Create a `.env.local` file in the root directory of the project and add the following environment variables:\n\n```\n# Clerk secrets for api key and webhook\nNEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=\nCLERK_SECRET_KEY=\nNEXT_CLERK_WEBHOOK_SECRET=\n\n# Clerk routes\nNEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in\nNEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up\nNEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/\nNEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/\n\n#  Tiny editor\nNEXT_PUBLIC_TINY_EDITOR_API_KEY=\n\n# Database\nMONGO_DB_URI=\n\n# OpenAI and public secrets\nNEXT_PUBLIC_SERVER_URL=http://localhost:3000\nOPENAI_API_KEY=\n```\n\nNotes\n\n- **Clerk Authentication:** Create a Clerk account [here](https://clerk.com/) and set the `NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY` and `CLERK_SECRET_KEY` environment variables in the `.env.local` file. Configure different URLs for Clerk sign-in, sign-up, after sign-in, and after sign-up pages.\n- **MongoDB Database:** Create a MongoDB database and connect it to the application. Change the `MONGO_DB_URI` environment variable in the `.env.local` file.\n- **TinyMCE**: Create a TinyMCE account [here](https://www.tiny.cloud/) and set the `NEXT_PUBLIC_TINY_EDITOR_API_KEY` environment variable in the `.env.local` file.\n- **OpenAI API:** Create an OpenAI account here and set the `OPENAI_API_KEY` environment variable in the `.env.local` file.\n- After deploy, create a new webhook on Clerk, add the endpoint of `http://\u003cYour-deployed-link\u003e/api/webhook`, set `user` events, and set the `NEXT_CLERK_WEBHOOK_SECRET` environment variable in the `.env.local` file.\n\n## 📝 References\n\n[JSMastery. (2023). Ultimate Next.js 14 Course | Become a top 1% Next.js 14 developer.](https://www.jsmastery.pro/ultimate-next-course) E-Learning.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faryanyadav-dev%2Fdevoverflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faryanyadav-dev%2Fdevoverflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faryanyadav-dev%2Fdevoverflow/lists"}