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.
- 🌍 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.
- Framework: Next.js 16 (App Router)
- Library: React 19
- Language: TypeScript
- Styling: Tailwind CSS
- Animations: GSAP, Framer Motion
- Smooth Scroll: Lenis
- Icons: Lucide React, React Icons
- Fonts: Geist
- 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).
-
Clone the repository:
git clone https://github.com/Akhil07-ctrl/GravityFeed.git cd gravity-feed -
Install dependencies:
npm install
-
Configure Environment Variables: Create a
.env.localfile 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
-
Run the development server:
npm run dev
-
Open the app: Navigate to http://localhost:3000 (or the port shown in your terminal) to view the application.
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
This project is licensed under the MIT License - see the LICENSE file for details.
Developed with ❤️ by Akhil