A content aggregator for the Astoria Tech community, built with Astro.
- Aggregates content from multiple sources (RSS, Atom, and YouTube feeds)
- Automatically handles different feed formats
- Prevents future-dated posts
- Clean, modern UI with dark mode
- Mobile-friendly design
The feed system is designed to aggregate content from various sources into a unified stream. It supports:
- RSS feeds
- Atom feeds
- YouTube channel feeds
-
Feed Configuration: Feeds are configured in
src/data/feeds.ts
:export const feeds = [ { url: "https://example.com/feed.xml", authorName: "Author Name", }, ];
-
Feed Processing:
- Feeds are fetched and processed using
src/utils/feedCollector.js
- Each feed entry is stored as a JSON file in
src/content/feeds/
- The system handles various date formats and ensures dates are valid
- Future-dated posts are automatically adjusted to the current time
- Content is cleaned of HTML tags and CDATA sections
- Feeds are fetched and processed using
-
Content Management:
- Each feed entry becomes a content file in Astro's content collection
- Entries are automatically sorted by date
- Duplicate entries are prevented using unique filenames
To refresh the feeds:
npm run refresh
This will:
- Clean the existing feed cache
- Fetch fresh content from all feeds
- Process and store the new entries
To add a new feed:
- Edit
src/data/feeds.ts
- Add a new entry with:
url
: The feed URLauthorName
: The author's name
- Run
npm run refresh
to fetch the new content
Each feed entry contains:
{
title: string; // The entry title
link: string; // URL to the original content
pubDate: string; // ISO 8601 date string
snippet: string; // Description or excerpt
author: string; // Author's name
feedSource: string; // Original feed URL
lastFetched: string; // When the entry was last updated
}
- Node.js 18+
- npm
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
npm run dev
- Start development servernpm run build
- Build for productionnpm run preview
- Preview production buildnpm run refresh
- Refresh all feedsnpm run clean
- Clear feed cache
- Web interface for managing feeds
- Feed health monitoring (detect dead feeds)
- Feed categories and tags
- Feed autodiscovery from URLs
- Search functionality
- Filter by author/source
- Read/unread tracking
- Favorite/bookmark system
- Share buttons
- Mastodon feed support
- GitHub activity feeds
- Twitter/X integration
- LinkedIn posts
- Incremental feed updates
- Feed content caching
- Rate limiting for feed fetches
- Feed validation tools
- Better error reporting
- Testing utilities
- Periodic content fetching
- Automated backups