https://github.com/marceloxhenrique/nexus
A blogging platform where users can write, share, and explore ideas, experiences, and knowledge.
https://github.com/marceloxhenrique/nexus
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
Last synced: 8 months ago
JSON representation
A blogging platform where users can write, share, and explore ideas, experiences, and knowledge.
- Host: GitHub
- URL: https://github.com/marceloxhenrique/nexus
- Owner: marceloxhenrique
- Created: 2025-03-17T20:32:04.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-01T20:57:37.000Z (11 months ago)
- Last Synced: 2025-07-01T21:34:39.623Z (11 months ago)
- 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
- Language: TypeScript
- Homepage: https://nexus-two-indol.vercel.app
- Size: 299 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# [Nexus](https://)
**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.
## Technologies










## Prerequisites
- [Node.js](https://nodejs.org/)
- [Git](https://git-scm.com/)
## Install and Run Nexus Locally
### 1. Clone the repository
```bash
git clone git@github.com:marceloxhenrique/nexus.git
cd Nexus
```
### 2. Install dependencies
```bash
npm install
# or
yarn install
```
### 3. Set up environment variables
Create a `.env` file in the root directory and add your credentials:
```bash
# Required: Used by both Prisma and the app to connect to your database
DATABASE_URL="postgresql://johndoe:randompassword@localhost:5432/mydb?schema=public"
#Only needed if you're running Postgres using Docker
POSTGRES_USER=johndoe
POSTGRES_PASSWORD=randompassword
POSTGRES_DB=mydb
# Backend API URL
NEXT_PUBLIC_BACKEND_URL=http://localhost:3000/api
# BetterAuth configuration
BETTER_AUTH_SECRET=YOUR_SECRET
BETTER_AUTH_URL=http://localhost:3000
# AWS (used for image uploads)
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_BUCKET_NAME=
AWS_BUCKET_REGION=
NEXT_PUBLIC_AWS_URL=
# OAuth credentials
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
# Email (for notifications/auth)
USER_GMAIL=
PASSWORD_GMAIL=
# Cron job security
CRON_SECRET=
```
### Note:
If 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.
You still must set **DATABASE_URL** — it's required by both Prisma and the application to connect to the database.
Start the database container with:
```bash
docker compose up -d
```
### 4. Run prisma migrations
```bash
npx prisma migrate dev
```
### 5. Run the development server
```bash
npm run dev
# or
yarn dev
```
Then open [http://localhost:3000](http://localhost:3000) in your browser.
## Features
- **Write & Publish** – Create and share blog posts easily.
- **User Authentication** – Secure login and registration powered by BetterAuth.
- **Rich Content** – Format your articles with images, links, and code blocks.
- **Comments** – Readers can comment on articles and engage in discussions.
- **User Profiles** – Personalized profile pages showcasing user info and articles.
- **Image Uploads** – Drag-and-drop images upload with AWS S3 integration.
- **Likes & Following** – Users can like articles and follow their favorite authors.
- **Blog Experience** – A clean, Medium-inspired blogging platform focused on reading and writing.
## Contribute
If you want to contribute, fork this repo, create your work branch and get your hands dirty!
1. ```shell
git clone git@github.com:marceloxhenrique/nexus.git
```
2. ```shell
git checkout -b feature/NAME
```
3. Follow commit patterns
4. Open a Pull Request explaining the problem solved or feature made, if exists, append screenshot of visual modifications and wait for the review!