👷 Currently in research, design & prototyping phase.
MUSES.FM is a community-owned music promotion platform centered around playlists and built on DFINITY. Its purpose is to counter the extractive nature of the music promotion industry by establishing a circular economy between artists, playlist curators and playlist taggers.
Check the strategy document to know more about the vision. Check the economics document to know more about the circular economy. Join the Telegram group to follow development and community updates and getting engaged.
To get started, you might want to explore the project directory structure and install required tools:
Make sure to install the right version of the DFINITY SDK with:
DFX_VERSION=0.7.2 sh -ci "$(curl -fsSL https://sdk.dfinity.org/install.sh)"Clone this repo:
git clone [email protected]:muses-fm/muses.git
cd musesOnce cloned, make sure to have the right version of node installed with nvm:
nvm useStart a local DFNITY network (leave it running):
dfx startAnd deploy the project canisters:
yarn install
dfx deployThis command, if successful, will display the IDs of your deployed canisters:
Installing code for canister artist, with canister_id rrkah-fqaaa-aaaaa-aaaaq-cai
Installing code for canister curator, with canister_id ryjl3-tyaaa-aaaaa-aaaba-cai
Installing code for canister frontend, with canister_id r7inp-6aaaa-aaaaa-aaabq-cai
If at any point you want to start from scratch, run:
make cleanNOTE: Working with this project in your development environment will not affect any production deployment or identity tokens.
Start a local DFNITY network if it's not already running:
dfx startStart a local redirect server, necessary to obtain OAuth tokens from Spotify (leave it running):
yarn start:redirectSpot the frontend canister in the output from dfx deploy and use its ID to access the app:
http://localhost:8000/?canisterId=r7inp-6aaaa-aaaaa-aaabq-cai
If you want to have some dummy data for testing, apply the fixtures:
make fixturesWhile developing, you can re-deploy the changes in your canister with:
dfx deploy <canister_alias>To re-deploy all canisters, run instead:
dfx deployYou can interact with the canisters' actors directly from the terminal with:
dfx canister call <canister_name> <function> [<argument>]While developing, you can re-deploy your changes while preserving canister state with:
dfx build frontend
dfx canister install frontend --mode=upgrade
or simply run
yarn redeploy:frontendwhich does the same thing.
For faster development cycles, you may want to work with a local dev server, disconnected from the canisters, instead. Start it with:
yarn startAnd navigate to http://localhost:8080 to see your changes applied via hot reload.
To learn more before you start working with muses, see the following documentation available online:
If the docs are not helping, these are other resources you can draw inspiration from:
If nothing helps and you are stuck, these are places you can go ask for guidance:
Replica error (code 3): IC0301: Canister ic:r7inp-6aaaa-aaaaa-aaabq-cai not found.
Start the DFX network with:
dfx start --cleanThe --clean option removes checkpoints and stale state information from your project’s cache so that you can restart the Internet Computer replica and web server processes in a clean state.
To upgrade from a previous SDK version, run:
dfx upgradeFor a clean installation instead of an upgrade, run:
~/.cache/dfinity/uninstall.sh && sh -ci "$(curl -sSL https://sdk.dfinity.org/install.sh)"