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.
- ReactJS - UI & view components (mostly stateless).
- Babel 6 - To transform ES6 code.
- Redux - State management.
- ImmutableJs - All stores are immutable maps/lists.
- HowlerJs - Handles audio objects.
- ReactIntl - Internationalisation.
- RxJS - Search autocomplete and state changes use observables.
- PostCSS - Transform JS styles.
- Webpack - Bundling JS and hot module replacement.
Tests are run using Karma, Mocha, Chai and Enzyme. Code coverage & reporting provided by Isparta and Coveralls.
# 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 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
# Test with watch
$ npm test -- --watch
# Test
$ npm test
You are most welcome to do with this repo what you will 😄.
If you'd like to help translate the app into a new language, you can do so at - https://github.com/bluedaniel/kakapo-assets.
Have a bug or a feature request? Please open a new issue here.