Open-Source, Free, and AI-Powered News in Short.
Features • Tech Stack • Getting Started • Deployment • Contributing
Built by humans, optimized by AI, with ❤️ from SF.
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.
- 🎯 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
- Next.js - React framework for production
- Exa - AI-powered news summaries
- Google Cloud Run - Serverless deployment
- AI SDK & OpenAI - AI analysis with
gpt-4o-mini
- Mediastack - News data API
- Upstash - Redis for caching and rate limiting
- Node.js 20+
- npm or yarn
- Git
-
Clone the repository:
git clone https://github.com/panda-sandeep/epigram
-
Navigate to the project directory:
cd epigram
-
Install dependencies:
npm install
-
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
-
Start development server:
npm run dev
-
Populate news data:
curl --header "X-Epigram-Secret: <your-secret>" http://localhost:3000/api/news/populate
-
View the app: Open http://localhost:3000 in your browser
-
Install dependencies:
npm install
-
Build for production:
npm run build
-
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:
We welcome contributions! Here's how you can help:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
You can also:
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) - see the LICENSE.md file for details.