The Slippi Launcher acts as a one stop shop for everything Slippi related. It handles updating Slippi Dolphin, playing Slippi Online, launching and analyzing replays, and more.
This repository is part of the Project Slippi ecosystem. For more information about all of the Project Slippi projects, visit https://github.com/project-slippi/project-slippi.
These are the applications you will need to install in order to build this project:
- Clone the repo via:
git clone https://github.com/project-slippi/slippi-launcher.git - Navigate into the directory and run:
npm installto install all dependencies - Use
npm run devto run the app in develop mode using mocked services - Use
npm run packageto build a release
npm run dev: (Recommended) Runs the app with mocked services (seesrc/renderer/services). No production keys are required, but not every service feature is supported in this mode. To test logged in features, you can login using the test account using usernametestand passwordtest.npm run start: Runs the app against production services. This may require production API keys, which are provided at discretion for specific feature work. Ask in the#launcherDiscord channel if you need production API keys.
For development, we recommend using VSCode with the following plugins:
These extensions will provide automatic formatting and warnings about code quality issues before you commit/push.
common- Code shared between both
mainandrendererprocesses. Code written here should be agnostic to which process it is imported from.
- Code shared between both
main- Code for the main process (e.g. Electron config, menu bars, window management).
renderer- Code for the renderer process (the React application).
<module>- Main process modules that handle specific tasks (e.g.
broadcast,dolphin,database) are kept in their own top-level folders.
- Main process modules that handle specific tasks (e.g.
app- Core application logic, setup, and global layout.
components- Reusable display components. These should generally not access global state directly.
lib- Shared utilities and helper functions.
listeners- IPC listeners for handling communication from the main process.
pages- The root page components for different views in the app.
services- Service layer for handling business logic and API interactions.
styles- Global styles and theming configuration.
Contributions are welcome! The issues section contains some good first ideas. When making a PR, ensure you are not PRing your main branch and always describe the feature and what testing you've done so far.
For more information on how to contribute, as well as information on adding app translations see the CONTRIBUTING.md file.
This application uses Electron React Boilerplate as a base and includes most changes up to commit 10c22e5.
Slippi Launcher is released as open source software under the GPL v3 license. See the LICENSE file in the project root for the full license text.