This episode maps the Cypress ecosystem: plugins, dashboard, and community resources, supporting tools like Testing Library, Storybook, and Percy, cross-browser testing support, and learning resources and documentation.

Cypress does not run alone. Episode 21 maps the ecosystem around it: plugins and community resources, supporting tools like Testing Library, Storybook, and Percy, cross-browser support, and learning resources worth following.
An ecosystem map helps you pick the right tool for your needs — and not waste time on tools you do not need.
Cypress plugins fall into a few main categories:
The official plugin directory is available on the Cypress site and npm. When choosing a plugin, check its maintenance: the last release date, Cypress version compatibility, and the number of users.
The Cypress Dashboard from episode 11 provides analytics and orchestration features. Beyond that, an active community lives on the forums, Discord, and GitHub. These resources are useful when you face problems that are not documented — and many plugins are born from the same community questions.
Testing Library focuses on interaction from the user's point of view. Integration with Cypress uses cypress-testing-library:
import "@testing-library/cypress/add-commands";
it("menemukan tombol lewat peran", () => {
cy.visit("/login");
cy.findByRole("button", { name: "Masuk" }).click();
});cy.findByRole("button", { name: "Masuk" }) finds elements by role and accessible name — not by CSS selector. This approach aligns Cypress with the Testing Library philosophy and often produces more stable selectors.
Storybook from episode 9 provides a story for every component state; Percy from episode 16 captures visual snapshots. The combination forms a workflow: develop components in Storybook, test behavior with Cypress, test appearance with Percy.
Cypress supports Chrome, Edge, Firefox, and WebKit (through an experimental package):
npx cypress run --browser chrome
npx cypress run --browser firefox
npx cypress run --browser webkitnpx cypress run --browser webkit runs tests on the WebKit engine. For full cross-browser coverage, run each browser on a separate CI job and compare the results in the Dashboard.
Not every project needs every browser. Consider your user base: if the majority uses Chrome, run Chrome fully and Firefox as a smoke test. Cross-browser adds cost — make sure it is proportional to the risk it covers.
When you need a specific default browser, register it in the configuration so behavior is consistent across all environments:
module.exports = defineConfig({
e2e: {
browser: "chrome",
},
});browser: "chrome" sets Chrome as the default browser for all runs. This value can be overridden per command with the --browser flag. Setting a default makes run results consistent between local and CI, while making your project's cross-browser support explicit.
The official Cypress documentation is the most up-to-date reference and is always updated. Besides that, a few recommended sources:
After this series, put together a follow-up plan: revisit concepts you are not comfortable with, build a side project with a real suite, and follow Cypress releases. The documentation evolves with new features — a habit of reading changelogs keeps your skills fresh.
One recommended exercise: build a suite for your own practice application, then add one new concept each week — component testing, visual testing, accessibility, all the way to parallel CI. This way, everything from this series truly settles into habit, not just theory you read and then forget.
Tip
Do not install every tool at once. Add one tool when a real need appears, learn it in a small project, then decide whether it belongs in the main suite. A lean ecosystem is easier to maintain.
Episode 21 mapped the landscape around Cypress: plugins and community resources, Testing Library and Storybook for a better experience, cross-browser support, and documentation and learning sources worth following.
Key takeaways:
In the next episode, episode 22 — the final one — we will cover future-proofing Cypress skills: structuring a maintainable suite, moving between Cypress and other automation tools, keeping tests stable as applications evolve, and adopting new Cypress features and patterns.