Kakapo is an open source ambient sound mixer for relaxation or productivity.
This repo builds a website and desktop version (for Mac OSX & Windows).
Download the latest desktop version here, or install via homebrew-cask with brew cask install kakapo
.
See also: Kakapo for iOS & Android - Kakapo for Chrome.
It's built using:
- Electron - Wraps app for desktop.
- React - UI & view components.
- Redux - State management.
- Redux Sagas - Handles side effects.
- Ramda - For functional Javascript.
- HowlerJs - Handles audio objects.
- ReactIntl - Internationalisation.
- PostCSS - Transform JS styles.
- Webpack - Bundling JS and hot module replacement.
Tests using Jest and a bit of Enzyme.
Code coverage reporting provided by Coveralls.
Install and run
# Clone
$ git clone https://github.com/bluedaniel/Kakapo-app.git
# Install
$ cd Kakapo-app && npm install
# Convert .mp3 files to .ogg with ffmpeg
$ brew install ffmpeg --with-libvpx --with-libvorbis
$ cd node_modules/kakapo-assets
$ sh mp3-to-ogg.sh
# Run desktop
$ npm start -- --platform=desktop
# Run website
$ npm start -- --platform=web
Both the website and desktop app should automatically open and have hot module enabled for live changes.
Build for production
# Build website
$ npm run build -- --platform=web --production
# Build desktop
$ npm run build -- --platform=desktop --production
# Sign apps and zip after desktop build
$ npm run installer-mac && npm run installer-win
Testing
# Test with watch
$ npm test -- --watch
# Test
$ npm test
Bugs and Feature Requests
Have a bug or a feature request? Please open a new issue here.