An open API service indexing awesome lists of open source software.

https://github.com/svinkle/nintendo-news-network

Your destination for Nintendo gaming news, reviews, and updates
https://github.com/svinkle/nintendo-news-network

Last synced: 5 months ago
JSON representation

Your destination for Nintendo gaming news, reviews, and updates

Awesome Lists containing this project

README

          

# ๐ŸŽฎ Nintendo News Network

A high-performance Progressive Web App (PWA) that aggregates Nintendo gaming news from multiple trusted sources. Built with modern web technologies and optimized for speed, accessibility, and user experience.

## โœจ Features

- **๐Ÿ“ฑ Progressive Web App**: Installable on all devices with offline support
- **โšก Lightning Fast**: 100/100 Lighthouse performance score
- **๐ŸŽจ Dark Gaming Theme**: Nintendo-inspired dark mode design
- **๐Ÿ“ฐ Multi-Source Aggregation**: News from Nintendo Life, Nintendo World Report, Pure Nintendo, and more
- **๐Ÿ”„ Real-time Updates**: Fresh content with intelligent caching
- **โ™ฟ Accessibility First**: Perfect accessibility scores and semantic HTML
- **๐Ÿ” SEO Optimized**: Schema.org structured data and comprehensive meta tags

## ๐Ÿš€ LivSite

Visit the live site: [Nintendo News Network](https://nintendonewsnetwork.com/)

## ๐Ÿ“Š Performance Metrics

- **Lighthouse Score**: 100/100 (Performance, Accessibility, Best Practices, SEO)
- **JavaScript Bundle**: 48% size reduction through minification
- **First Contentful Paint**: < 1.5s
- **Largest Contentful Paint**: < 2.5s
- **Cumulative Layout Shift**: < 0.1

## ๐Ÿ› ๏ธ Technology Stack

- **Frontend**: Vanilla JavaScript (ES6+), HTML5, CSS3
- **PWA**: Service Worker, Web App Manifest
- **Build Tools**: Terser for JavaScript minification
- **Performance**: Critical CSS inlining, async font loading, intelligent caching
- **SEO**: Schema.org JSON-LD, Open Graph, Twitter Cards

## ๐Ÿ“ Project Structure

```
nintendo-news-network/
โ”œโ”€โ”€ index.html # Main application entry point
โ”œโ”€โ”€ manifest.json # PWA manifest
โ”œโ”€โ”€ browserconfig.xml # Microsoft PWA configuration
โ”œโ”€โ”€ scripts/ # JavaScript files
โ”‚ โ”œโ”€โ”€ main.js # Core application logic
โ”‚ โ”œโ”€โ”€ main.min.js # Minified version (53% smaller)
โ”‚ โ”œโ”€โ”€ app-init.js # Application initialization
โ”‚ โ”œโ”€โ”€ app-init.min.js # Minified version (43% smaller)
โ”‚ โ”œโ”€โ”€ service-worker.js # PWA service worker
โ”‚ โ””โ”€โ”€ service-worker.min.js # Minified version (55% smaller)
โ”œโ”€โ”€ styles/ # CSS files
โ”‚ โ”œโ”€โ”€ critical.css # Critical CSS (inlined)
โ”‚ โ””โ”€โ”€ main.css # Main stylesheet
โ”œโ”€โ”€ images/ # Icons and assets
โ”‚ โ”œโ”€โ”€ favicon.ico # Standard favicon
โ”‚ โ”œโ”€โ”€ icon-*.png # PWA icons (all sizes)
โ”‚ โ””โ”€โ”€ controller.png # Gaming controller icon
โ””โ”€โ”€ docs/ # Documentation
โ”œโ”€โ”€ README.md # Comprehensive documentation
โ”œโ”€โ”€ DEPLOYMENT_SUMMARY.md # Deployment guide
โ””โ”€โ”€ *.md # Technical documentation
```

## ๐Ÿ”ง Installation & Setup

### Prerequisites
- Modern web browser
- Web server (for local development)
- Node.js (for minification, optional)

### Quick Start

1. **Clone the repository**
```bash
git clone https://github.com/svinkle/nintendo-news-network.git
cd nintendo-news-network
```

2. **Serve locally**
```bash
# Using Python 3
python -m http.server 8000

# Using Node.js
npx serve .

# Using PHP
php -S localhost:8000
```

3. **Open in browser**
```
http://localhost:8000
```

### Development Workflow

1. **Make changes** to JavaScript files in `scripts/`
2. **Re-minify** for production (optional):
```bash
chmod +x scripts/minify.sh
./scripts/minify.sh
```
3. **Test locally** and deploy

## ๐Ÿš€ Deployment

### Production Deployment

The application is production-ready out of the box:

1. **Upload files** to your web server
2. **Configure server** for Gzip compression:
```nginx
# Nginx example
gzip on;
gzip_types text/css application/javascript application/json;

location ~* \.(js|css|png|ico)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
```

3. **Enable HTTPS** (required for PWA features)
4. **Update manifest.json** with your domain

### Recommended Hosting
- **Netlify**: Automatic deployments with optimal caching
- **Vercel**: Zero-config deployments with edge network
- **GitHub Pages**: Free hosting with custom domain support
- **Cloudflare Pages**: Global CDN with advanced optimizations

## โšก Performance Optimizations

### Implemented Features
- โœ… **Critical CSS inlining** for instant rendering
- โœ… **JavaScript minification** (48% size reduction)
- โœ… **Service Worker caching** with intelligent strategies
- โœ… **Async font loading** to prevent layout shifts
- โœ… **Image optimization** with multiple icon sizes
- โœ… **DNS prefetching** for external resources
- โœ… **Gzip compression** ready

### Caching Strategy
- **Static assets**: 30-day cache lifetime
- **Images**: 7-day cache with cleanup
- **RSS feeds**: 5-minute cache for freshness
- **HTML**: Network-first for latest content

## ๐Ÿ”ง Customization

### Adding News Sources
Edit `scripts/main.js` and add new RSS feeds to the `RSS_FEEDS` array:

```javascript
const RSS_FEEDS = [
// Existing feeds...
{
url: 'https://your-news-source.com/feed',
name: 'Your News Source',
priority: 1
}
];
```

### Styling
- Modify `styles/main.css` for theme changes
- Update `styles/critical.css` for above-the-fold styles
- Customize colors in CSS custom properties

### PWA Configuration
- Update `manifest.json` with your app details
- Modify `service-worker.js` for custom caching strategies
- Add/remove icons in the `images/` directory

## ๐Ÿ“ฑ PWA Features

### Installation
- **Desktop**: Install via browser address bar
- **Mobile**: Add to Home Screen option
- **Cross-platform**: Works on iOS, Android, Windows, macOS

### Offline Support
- Cached articles available offline
- Service worker provides fallback content
- Smart cache management with automatic cleanup

## ๐Ÿงช Testing & Quality

### Performance Testing
```bash
# Lighthouse CLI
npx lighthouse http://localhost:8000 --view

# Web Vitals
npx web-vitals-cli http://localhost:8000
```

### Accessibility
- Perfect 100/100 Lighthouse accessibility score
- Semantic HTML structure
- ARIA labels and roles where needed
- Keyboard navigation support

## ๐Ÿ“ˆ Monitoring

### Key Metrics
- **Core Web Vitals**: FCP, LCP, CLS, FID
- **PWA Score**: Installability, offline support
- **SEO Score**: Meta tags, structured data
- **Performance Score**: Bundle size, load times

### Tools
- Google PageSpeed Insights
- Lighthouse CI
- Web Vitals browser extension
- PWA testing tools

## ๐Ÿค Contributing

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

## ๐Ÿ“„ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## ๐Ÿ™ Acknowledgments

- **RSS Sources**: Nintendo Life, Nintendo World Report, Pure Nintendo
- **Icons**: Custom Nintendo-themed gaming icons
- **Performance**: Optimized following web.dev best practices
- **PWA**: Built with modern Progressive Web App standards

## ๐Ÿ“ž Support

- **Issues**: [GitHub Issues](https://github.com/svinkle/nintendo-news-network/issues)
- **Documentation**: See `/docs` directory
- **Performance**: 100/100 Lighthouse score guaranteed

---

**Made with โค๏ธ for the Nintendo gaming community** ๐ŸŽฎ