Skip to content

Akhil07-ctrl/GravityFeed

Repository files navigation

🌌 GravityFeed

GravityFeed is a modern, high-performance MERN Stack news aggregation platform designed to keep you informed with clarity and style. Built with Next.js 16 and React 19, it features a premium user interface with smooth animations, bringing the world's pulse directly to your screen.


✨ Features

  • 🌍 Global Coverage: Access breaking news and top stories from thousands of reputable publishers worldwide via the News API.
  • 🎯 Personalized Feed: A tailored news experience that focuses on your interests to show you stories that matter most.
  • Instant Updates: Real-time news alerts ensuring you're always ahead of the curve.
  • 🔖 Bookmarking: Save articles for later reading with a dedicated bookmarks gallery. (Persisted to MongoDB)
  • 🔐 Secure Authentication: Seamless sign-up and sign-in experience powered by Clerk.
  • 🌓 Dynamic Themes: Seamless transitions between light and dark modes for a comfortable reading experience.
  • 🎭 Premium UI: Fluid animations powered by GSAP, Framer Motion, and Lenis smooth scrolling.

🚀 Tech Stack

Frontend & Core

Backend & Database

UI & Animations


🛠️ Getting Started

Prerequisites

  • Node.js 18+ installed on your machine.
  • MongoDB instance (Local or MongoDB Atlas connection string).
  • News API Key (Get one for free at newsapi.org).
  • Clerk Account (Create an application at clerk.com).

Local Setup

  1. Clone the repository:

    git clone https://github.com/Akhil07-ctrl/GravityFeed.git
    cd gravity-feed
  2. Install dependencies:

    npm install
  3. Configure Environment Variables: Create a .env.local file in the root directory and add your credentials:

    # Database
    MONGODB_URI=your_mongodb_connection_string
    
    # Authentication (Clerk)
    NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
    CLERK_SECRET_KEY=your_clerk_secret_key
    NEXT_PUBLIC_CLERK_SIGN_IN_URL=/login
    NEXT_PUBLIC_CLERK_SIGN_UP_URL=/register
    NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/
    NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/
    
    # External Data
    NEWS_API_KEY=your_news_api_key
  4. Run the development server:

    npm run dev
  5. Open the app: Navigate to http://localhost:3000 (or the port shown in your terminal) to view the application.


📁 Project Structure

src/
├── actions/      # Server Actions for data mutations (Bookmarks, etc.)
├── app/          # Next.js 16 App Router
│   ├── (public)/ # Public routes (Welcome, Login, Register, Creator)
│   ├── (protected)/ # Protected routes (Feed, Search, Bookmarks)
│   └── api/      # API Routes
├── components/   # Reusable UI components
├── hooks/        # Custom React hooks
├── lib/          # Utilities, API clients (NewsAPI), and shared logic
├── models/       # Mongoose schemas/models (Bookmark)
├── types/        # TypeScript interfaces/types
└── utils/        # Helper functions

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


Developed with ❤️ by Akhil

About

A modern news aggregation platform featuring personalized feeds, smooth animations, and a premium reading experience. Built with Next.js 15, Tailwind CSS, and Framer Motion.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors