{"id":26462944,"url":"https://github.com/marceloxhenrique/nexus","last_synced_at":"2025-10-12T15:15:29.809Z","repository":{"id":282966197,"uuid":"950223895","full_name":"marceloxhenrique/Nexus","owner":"marceloxhenrique","description":"A blogging platform where users can write, share, and explore ideas, experiences, and knowledge.","archived":false,"fork":false,"pushed_at":"2025-07-01T20:57:37.000Z","size":306,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-01T21:34:39.623Z","etag":null,"topics":["aws-s3","better-auth","docker-compose","nextjs15","nodemailer","postgresql-database","prisma-orm","react-hook-form","react-icons","react19","shadcn-ui","sooner","supabase","tailwind-css","tanstack-query","typescript","zod"],"latest_commit_sha":null,"homepage":"https://nexus-two-indol.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/marceloxhenrique.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}},"created_at":"2025-03-17T20:32:04.000Z","updated_at":"2025-07-01T20:57:41.000Z","dependencies_parsed_at":"2025-06-23T21:32:21.027Z","dependency_job_id":"f1fda259-98e6-4b27-bc7d-e54bcdc95e15","html_url":"https://github.com/marceloxhenrique/Nexus","commit_stats":null,"previous_names":["marceloxhenrique/nexus"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/marceloxhenrique/Nexus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marceloxhenrique%2FNexus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marceloxhenrique%2FNexus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marceloxhenrique%2FNexus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marceloxhenrique%2FNexus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marceloxhenrique","download_url":"https://codeload.github.com/marceloxhenrique/Nexus/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marceloxhenrique%2FNexus/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264766422,"owners_count":23660761,"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":["aws-s3","better-auth","docker-compose","nextjs15","nodemailer","postgresql-database","prisma-orm","react-hook-form","react-icons","react19","shadcn-ui","sooner","supabase","tailwind-css","tanstack-query","typescript","zod"],"created_at":"2025-03-19T06:38:49.224Z","updated_at":"2025-10-12T15:15:29.700Z","avatar_url":"https://github.com/marceloxhenrique.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\t\u003cimg width=\"720\" alt=\"Nexus\" src=\"https://github.com/user-attachments/assets/5d6a499d-7a1b-4783-ad02-cea13374f369\" /\u003e\n\u003c/div\u003e\n\n# [Nexus](https://)\n\n**Nexus** is a modern blogging platform where writers, thinkers, and creators can share their insights and stories with the world. Whether you’re passionate about technology, literature, or personal experiences, Nexus provides a seamless and engaging space for self-expression.\n\n## Technologies\n\n![TYPESCRIPT_BADGE](https://img.shields.io/badge/TypeScript-3178C6?\u0026logo=typescript\u0026logoColor=fff)\n![ReactJS](https://img.shields.io/badge/React-20232A?\u0026logo=react\u0026logoColor=61DAFB)\n![Next.js](https://img.shields.io/badge/Next.js-black?logo=next.js\u0026logoColor=white)\n![Tailwind](https://img.shields.io/badge/Tailwind_CSS-38B2AC?\u0026logo=tailwind-css\u0026logoColor=white)\n![Shadcn/ui](https://img.shields.io/badge/shadcn/ui-fff?\u0026logo=shadcnui\u0026logoColor=000)\n![Zod](https://img.shields.io/badge/zod-000?\u0026logo=zod\u0026logoColor=3068B7)\n![React Query](https://img.shields.io/badge/Tanstack%20Query-FF4154?logo=reactquery\u0026logoColor=fff)\n![Prisma](https://img.shields.io/badge/Prisma-2D3748?logo=prisma\u0026logoColor=white)\n![AWS](https://custom-icon-badges.demolab.com/badge/AWS-%23FF9900.svg?logo=aws\u0026logoColor=white)\n![Vercel](https://img.shields.io/badge/Vercel-%23000000.svg?logo=vercel\u0026logoColor=white)\n\n## Prerequisites\n\n- [Node.js](https://nodejs.org/)\n- [Git](https://git-scm.com/)\n\n## Install and Run Nexus Locally\n\n### 1. Clone the repository\n\n```bash\ngit clone git@github.com:marceloxhenrique/nexus.git\ncd Nexus\n```\n\n### 2. Install dependencies\n\n```bash\nnpm install\n# or\nyarn install\n```\n\n### 3. Set up environment variables\n\nCreate a `.env` file in the root directory and add your credentials:\n\n```bash\n# Required: Used by both Prisma and the app to connect to your database\nDATABASE_URL=\"postgresql://johndoe:randompassword@localhost:5432/mydb?schema=public\"\n\n#Only needed if you're running Postgres using Docker\nPOSTGRES_USER=johndoe\nPOSTGRES_PASSWORD=randompassword\nPOSTGRES_DB=mydb\n\n# Backend API URL\nNEXT_PUBLIC_BACKEND_URL=http://localhost:3000/api\n\n# BetterAuth configuration\nBETTER_AUTH_SECRET=YOUR_SECRET\nBETTER_AUTH_URL=http://localhost:3000\n\n# AWS (used for image uploads)\nAWS_ACCESS_KEY_ID=\nAWS_SECRET_ACCESS_KEY=\nAWS_BUCKET_NAME=\nAWS_BUCKET_REGION=\nNEXT_PUBLIC_AWS_URL=\n\n# OAuth credentials\nGOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\nGITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\n\n# Email (for notifications/auth)\nUSER_GMAIL=\nPASSWORD_GMAIL=\n\n# Cron job security\nCRON_SECRET=\n\n```\n\n### Note:\n\nIf you're using Docker to run your database (recommended for local development), the **POSTGRES_USER**, **POSTGRES_PASSWORD**, and **POSTGRES_DB** variables will be used to initialize the container.\n\nYou still must set **DATABASE_URL** — it's required by both Prisma and the application to connect to the database.\n\nStart the database container with:\n\n```bash\ndocker compose up -d\n```\n\n### 4. Run prisma migrations\n\n```bash\nnpx prisma migrate dev\n```\n\n### 5. Run the development server\n\n```bash\nnpm run dev\n# or\nyarn dev\n```\n\nThen open [http://localhost:3000](http://localhost:3000) in your browser.\n\n## Features\n\n- **Write \u0026 Publish** – Create and share blog posts easily.\n- **User Authentication** – Secure login and registration powered by BetterAuth.\n- **Rich Content** – Format your articles with images, links, and code blocks.\n- **Comments** – Readers can comment on articles and engage in discussions.\n- **User Profiles** – Personalized profile pages showcasing user info and articles.\n- **Image Uploads** – Drag-and-drop images upload with AWS S3 integration.\n- **Likes \u0026 Following** – Users can like articles and follow their favorite authors.\n- **Blog Experience** – A clean, Medium-inspired blogging platform focused on reading and writing.\n\n## Contribute\n\nIf you want to contribute, fork this repo, create your work branch and get your hands dirty!\n\n1. ```shell\n   git clone git@github.com:marceloxhenrique/nexus.git\n   ```\n\n2. ```shell\n   git checkout -b feature/NAME\n   ```\n\n3. Follow commit patterns\n4. Open a Pull Request explaining the problem solved or feature made, if exists, append screenshot of visual modifications and wait for the review!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarceloxhenrique%2Fnexus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarceloxhenrique%2Fnexus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarceloxhenrique%2Fnexus/lists"}