podcst-web
podcst-web copied to clipboard
Podcast app written in TypeScript using React
podcst-web
Podcst Web is a modern PWA to listen to podcasts.
The aim of this project is to provide an excellent podcast listening experience, on all types of devices (desktop, tablets, mobile).
Another major focus is on accessibility, the app is and should be accessible to the visually impaired, and allow 100% keyboard navigation.
Note: This project only aims to support ever-green browsers.
Architecture
This project uses the gitflow branching model. See the development section below for additional details.
Prerequisites
Getting the Source Code
Once the prerequisites are installed on your system, you can clone this repository with git and install the code dependencies using yarn.
git clone https://github.com/shantanuraj/podcst-web
yarn
Development
The following steps are for building and installing from the source code. First compile the code to the build folder in the project directory.
# dev: compiles to unoptimised dev friendly build
yarn dev
# build: compiles to optimised / minified production ready build
yarn build
or to compile in watch mode (automatically compile on file change)
yarn dev
Once the url reported by Next.js
Building
When you first clone this repository, you'll need to initialize gitflow by running: git flow init -d in the project root folder.
Now that your local environment is all setup, you can use the following procedure to contribute to this project.
- Run
git flow feature start <feature-name> - Implement your feature and commit the changes.
- Run
git flow feature finish <feature-name>
Use the following process to cut a new release.
- run
git flow release start <semver> - bump the
package.jsonversion. - commit the changes.
- run
git flow release finish <semver> - run
git push --follow-tags
You'll find a great tutorial on gitflow here if you want to learn more about the details of how it works.
Running Unit Tests
None yet but when they (hopefully exist)
yarn test
Deployment
Deployment is automated and managed using the vercel cli.
# To deploy production builds
now --target production
# To deploy without aliasing
now
On every merge to main the production deployment is automatically updated.
Built With
- TypeScript - Much Nicer JavaScript
- Howler - Manage play audio
- SWR - API data and caching
- Next.js - React with sane defaults
Contributing
Please read CONTRIBUTING.md for process details on collaborating on this project.
Versioning
We use SemVer for versioning. For available versions of this softare, see the (releases on this repository).
Authors
See the list of contributors who participated in this project.
License
This project is licensed under the MIT License - see the LICENSE file for details