
gittech. site
for different kinds of informations and explorations.
I made an OSS AI news app that delivers news in 50 words or less

Epigram
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.
π― 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
- 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
π Getting Started
Prerequisites
- Node.js 20+
- npm or yarn
- Git
Installation
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
π¦ Deployment
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:
π€ Contributing
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:
π License
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) - see the LICENSE.md file for details.