# Example Applications
Dodgeball provides pre-configured example applications to help you get started quickly. These are designed to work with your API keys and can be used to test your checkpoints, while serving as a reference for how the SDKs work together in practice. ## Configure Repository Example applications are available on GitHub: [https://github.com/dodgeballhq/dodgeball-examples](https://github.com/dodgeballhq/dodgeball-examples) Clone the repository: ```bash git clone https://github.com/dodgeballhq/dodgeball-examples.git ``` Navigate to the `dodgeball-examples` directory and follow the README instructions. ### Setup the Node.js Backend 1. Navigate to `server/node-ts` 2. Configure your `.env` file per the README 3. Run the startup commands per the README ### Setup the Vite + TypeScript Frontend 1. Navigate to `client/web-vite-typescript` 2. Configure your `.env` file per the README 3. Run the startup commands per the README *** ## Experiment with Example Functionality Once running, interact with the application to see Dodgeball in action: * **Track users, sessions, and devices** — See how Dodgeball tracks users, sessions, and devices (session replay, device fingerprinting, etc.). * **Call a Checkpoint** — Enter a checkpoint name from the Dodgeball Dashboard and observe how the application responds. * **Send a Server Event** — Send a server event and observe the response. ### View Developer Logs After sending checkpoints, view logs in the Dodgeball Dashboard under **Developer Center > Checkpoint Logs**. ### Modify Checkpoints and Test Real Workflows Once you've tested an empty workflow, start adding logic to checkpoints. A good starting point is adding an MFA step — see [Adding MFA to your Application](https://developer.spreedly.com/docs/adding-mfa) for more. This demonstrates how multi-step workflows can be built and managed without changing code.