There are many different ways to use Percy. You can integrate Percy into your existing test suites with our test-framework SDKs, capture your static-site or Storybook with one command, or write a custom puppeteer script to navigate your app and capture snapshots at will.
For the best workflow, we strongly recommend running Percy via your CI system (often as part of your regular CI test run), and use our [GitHub](🔗) or [GitLab](🔗) integrations to see Percy notifications in your pull requests. While you’re first getting started and quickly iterating, you may find it useful to run Percy [locally](🔗).
**Step 1:** Set the `PERCY_TOKEN
` environment variable in your CI environment.
**Step 2:** Integrate Percy via one of our SDKs to take snapshots.
**Step 3:** Run your tests in CI and integrate with GitHub or GitLab!
## Setup
Percy is designed to integrate with your tests and CI environment. Read the documentation for your CI service to get started.
[Travis CI](🔗)
[CircleCI](🔗)
[Semaphore](🔗)
[CodeShip](🔗)
[Buildkite](🔗)
[Drone](🔗)
[Jenkins](🔗)
[GitLab CI](🔗)
[Local development](🔗)
## Platforms
Integrate a Percy client library to take snapshots in tests.
JavaScript
[Ember](🔗)
[Storybook for React](🔗)
[Storybook for Angular](🔗)
[Storybook for Vue.js](🔗)
[Storybook for Ember](🔗)
[Cypress](🔗)
[WebdriverIO](🔗)<sup>beta</sup>
[Puppeteer](🔗)
[Nightmare.js](🔗)
[Protractor](🔗)
Ruby
[Rails](🔗)
[Other](🔗)
[Capybara, no tests](🔗)
[Best practices](🔗)
Python
[Selenium](🔗)
Static sites
[Command-line client](🔗)
Everything else
[Puppeteer](🔗) and [Cypress](🔗) are both great choices that work with almost anything.
## Source code integrations
See our source code integration docs for more info about Percy's review workflow.
[GitHub](🔗)
[GitHub Enterprise](🔗)
[GitLab](🔗)
[GitLab self-managed](🔗)
[Bitbucket](🔗)
## Tutorials
[Example apps](🔗)
[Ember tutorial](🔗)
[Rails tutorial](🔗)
[Storybook tutorial](🔗)