{"repo":"ivandotv/live-radio","free":true,"listed":false,"github":"https://github.com/ivandotv/live-radio","clone":"git clone https://github.com/ivandotv/live-radio.git","description":"Next.js progressive web application for listening to online radio","language":"TypeScript","stars":23,"topics":["material-design","material-ui","nextjs","pwa","real-world-app"],"license":"MIT","category":"auth-billing-email","readme_excerpt":"Online Radio Player Progressive web application for listening to online radio. - Motivation - The setup - Application architecture - Frontend - App Configuration - PWA functionality - State management - Dependency injection - frontend - User interface - Error handling and tracking - Backend - App Configuration - Dependency injection - API routes - Error tracking - Authentication - Testing - Data generation - Patching unmaintained packages - Translation - Development experience - Future - License Motivation The application started as a side project during the covid pandemic. I wanted to have a simple application to listen to online radio, that is not overrun with ads and works both on desktop and on mobile. Then later, it became a test bed for experimenting with different ways to structure a Next.js application (more on that later). The setup The application is built with the Next.js framework. It is installable as a PWA, and it can be used anonymously (data is stored in IndexedDB) or as a registered user (data is stored in MongoDB Atlas). You can seamlessly switch from anonymous to a registered user, and import the data from the anonymous account. Application also supports multiple languages via Next.js internationalized routing and LinguiJS internationalization library. Radio station data is consumed via free and open source Radio Browser API. Application architecture Here I'm going to document the main architecture of the application. This section is divided into the front-","default_branch":null,"files":null,"tree":[],"storefront":"/r/ivandotv","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ivandotv/live-radio/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}