Skip to content

panda-sandeep/epigram

Repository files navigation

Epigram - AI-powered news summaries

Epigram

Announcement License PRs Welcome

Open-Source, Free, and AI-Powered News in Short.

Try Epigram.news »

FeaturesTech StackGetting StartedDeploymentContributing

Built by humans, optimized by AI, with ❤️ from SF.

🎯 Overview

Epigram simplifies the way you stay informed. With AI, it delivers quick, clear summaries from reliable sources, so you get the news without the overwhelm. For more details, dive into deeper analysis or explore topics you care about — all in a feed tailored to your interests.

Our goal is to use AI to make quality news easy to access, understand, and personalize. We're focused on connecting you with trusted sources while cutting through the noise, so you get the information that matters most.

✨ Features

  • 🎯 Personalized News Feed - Get a curated news feed based on your preferences and interests
  • 🤖 AI-powered Summaries - Get concise news summaries and in-depth analysis
  • Trusted Sources - Access news from reputable sources worldwide
  • 🎨 User-friendly Interface - Enjoy a sleek, intuitive interface designed for a seamless reading experience
  • 📱 Responsive Design - Access Epigram on any device, anywhere, anytime (Add to home screen on Safari!)
  • 🔍 AI Deep dive - Get in-depth analysis of news articles using AI

🛠️ Tech Stack

🚀 Getting Started

Prerequisites

  • Node.js 20+
  • npm or yarn
  • Git

Installation

  1. Clone the repository:

    git clone https://github.com/panda-sandeep/epigram
  2. Navigate to the project directory:

    cd epigram
  3. Install dependencies:

    npm install
  4. Set up environment variables: Copy .env.example to .env.local and configure:

    MEDIASTACK_API_KEY=your_mediastack_api_key
    EXA_API_KEY=your_exa_api_key
    OPENAI_API_KEY=your_openai_api_key
    BASE_URL=http://localhost:3000
    UPSTASH_REDIS_REST_URL=your_upstash_redis_rest_url
    UPSTASH_REDIS_REST_TOKEN=your_upstash_redis_rest_token
    PER_TOPIC_NEWS_LIMIT=5
    NEXT_PUBLIC_GA_ID=your_google_analytics_id
    EPIGRAM_SECRET_HEADER_NAME=X-Epigram-Secret
    EPIGRAM_CRON_SECRET=your_cron_secret
  5. Start development server:

    npm run dev
  6. Populate news data:

    curl --header "X-Epigram-Secret: <your-secret>" http://localhost:3000/api/news/populate
  7. View the app: Open http://localhost:3000 in your browser

📦 Deployment

  1. Install dependencies:

    npm install
  2. Build for production:

    npm run build
  3. Start production server:

    npm start

Note: Set up a cron job to periodically hit /api/news/populate for fresh news content.

Deploy to any platform supporting Next.js:

🤝 Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

You can also:

📝 License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) - see the LICENSE.md file for details.


Contributors  •  Sandeep Panda  •  Fazle