Author name and forum name (please provide a reliable point of contact for the project):
Jakub (Profile - drptbl - Optimism Collective)
Jakub | Synthetix#1337
L2 recipient address:
Which Voting Cycle are you applying for?:
I confirm that I have read the landing pages for the Builders and Growth Experiments Sub-Committees and that I have determined my proposal is best suited to be reviewed by the Builders Sub-Committee: [Yes/No]:
What are you going to build?:
Synpress is an end-to-end testing framework for web applications based on Cypress.io and Playwright, with support for MetaMask. It is a pioneering tool in web3 end-to-end testing with the potential to evolve into a decentralized network of test runners and continuous integration providers in the future. Synpress is easy to use, fully tested, and includes features such as MetaMask support, headless mode, integrated video recording, and many more. It is also blazingly-fast and extensible, with the ability to add custom commands and plugins. Synpress is already used by several open-source repositories.
Why is what you are going to build going to succeed?:
Addressing a need: There is a growing need for a reliable and efficient testing framework in the web3 dapp space. With more and more applications being developed using blockchain technology, there is a need for a tool that can handle the unique requirements and complexities of these applications. All existing solutions are either using mocks (which is not true e2e) or are deprecated/not actively maintained.
Improved testing efficiency: Traditional testing methods can be time-consuming and labor-intensive, especially when testing complex web3 dapps. Synpress can help automate the testing process, which can save time and resources, and also reduce the likelihood of human error.
Increased adoption: As more developers and organizations begin to adopt blockchain technology and develop web3 dapps, the need for reliable testing tools will only increase. If Synpress can offer an easy-to-use, efficient, and reliable testing solution, it could attract a significant user base.
Competitive advantage: Being an early mover in the web3 e2e testing space could provide a significant competitive advantage. By offering a tool that addresses the unique challenges of testing web3 dapps, Synpress could establish itself as a leader in the market and be part of the core stack for developers.
Is your project likely to bring new builders to Optimism ecosystem? If so, please describe how:
End-to-end testing capabilities of this tool could make it easier for developers to test and debug their dapps, which could result in fewer errors and faster development cycles. This could make it more attractive for builders to develop on Optimism network, as they can be confident that their dapps will work as intended. In the end, having a tool like Synpress could lead to an increase in the number of builders and dapps on the network.
Is your project likely to improve the quality of developers in Optimism ecosystem? If so, please describe how:
By providing a reliable and efficient way to test dapps, Synpress can help to improve the quality of devs in Optimism ecosystem by enabling them to build more reliable and high-quality applications.
Is your project likely to improve the commitment of developers in Optimism ecosystem? If so, please describe how:
Synpress helps to reduce the workload for developers by providing a fast and reliable testing framework that can easily integrate with MetaMask, which makes it easier to develop and test in Optimism ecosystem. By automating much of the testing process, developers can save time and focus on writing code that adds value to their dApps.
Provide us with links to any of the following for the project:
Demo: E2E Tests for Web3 Applications by Rafaela Azevedo - GitNation (starts from 14:40)
Website: GitHub - Synthetixio/synpress: Synpress is e2e testing framework based on Cypress.io and playwright with support for metamask.
Github: GitHub - Synthetixio/synpress: Synpress is e2e testing framework based on Cypress.io and playwright with support for metamask.
Other: @synthetixio/synpress - npm
Do you have any metrics on the project currently? (TVL, transactions, volume, unique addresses, etc. Optimism metrics preferred; please link to public sources such as Dune Analytics, etc.):
5k+ weekly downloads on NPM
2+ years in development (500 PRs, 330+ GitHub starts, 20+ Contributors)
Who are your competitors?:
There is only one competitor that is worth mentioning (and I’m aware of):
Other solutions have not been maintained for a long time and are simply not working.
What differentiates you from your competitors?:
Synpress is built on top of modern and powerful e2e testing frameworks like Cypress and Playwright, while its competitor Dappeteer uses Puppeteer. Synpress offers the advantage of letting users choose their preferred framework (Cypress or Playwright), has better support for features present on Metamask, and is more mature and advanced tool with a wider selection of features present out-of-the-box. Additionally, Synpress has a different vision for the future, aiming to be a wallet-agnostic, decentralized e2e testing provider that allows tests to be run in a decentralized way by utilizing a decentralized cloud of e2e runners.
Will your project be composable with other projects on Optimism? If so, please explain:
Yes, as synpress is an e2e testing tool, it can be composed with any dapp built on Optimism network.
Who are your founders?:
My name is Jakub (solo founder), I’m a passionate QA Engineer/SDET and Core Contributor of Synthetix. I have around ~9 years of QA experience (~4 years in web3 ecosystem) which includes ~7 years of experience in different types of automated testing (mostly e2e for web and mobile, API & performance testing) and DevOps (CI/CD/TestOps and “automate everything” style) and around ~2 years of experience in infrastructure. I’m also very into web security and an active member of ISSA Poland since 2019. I have done many different things and personal projects throughout my life. I was able to create a few bots for different games with whole infrastructure on Firebase and cross-platform mobile apps for remote bots management using Apache Cordova. Also created two different closed-source e2e testing frameworks based on Selenium (old times, while I have been working at web2 companies ¯_(ツ)_/¯) which had to suit needs of my clients. Contributed to open-source e2e testing frameworks like webdriver.io, Protractor, nightwatch.js, SwiftMonkey and Detox. Other than that I have used many different QA and automation tools over my entire career for web/mobile/desktop automation and testing, but I don’t really want to bore you there. Feel free to check out my GitHub and LinkedIn profile for more details.
What makes your founders well-positioned to accomplish your goals with this project (1-2 sentences on each)?:
As a solo founder, my experience in QA, automation, security and infrastructure, as well as contributions to open-source testing frameworks, makes me well-positioned to lead the development of Synpress. My involvement as a Core Contributor of Synthetix (and ex-Nash SDET Engineer) also shows familiarity with the web3 ecosystem and its challenges, further enhancing my ability to accomplish Synpress’s goals.
Tell us about the rest of your team (if there are more teammates):
Is this your first Web3 project?:
As a founder, yes.
If not, what else have you built? (Share links, Github repository, or any other useful information.):
I understand that Builders grants are subject to a 1 year lock-up, as explained further in this post : [Yes/No]:
Is your project funded? If so, provide an estimate of how many months of funding runway your project has:
Not funded, I work on it mostly in my after-work hours, for community.
What is the size of the grant request? (50k OP max):
How do you justify the size of the grant?
The size of the grant for Synpress can be justified based on several factors, including the potential impact of the project on the web3 ecosystem, the scope of the development roadmap, and the expertise and experience of the team behind Synpress. The project aims to address significant challenges in the web3 development process, such as the need for a reliable and flexible tool for end-to-end testing and the ability to work with a range of wallets and testing frameworks. The development of Synpress has the potential to greatly improve the efficiency and effectiveness of web3 developers, which could have a ripple effect throughout the entire web3 ecosystem.
In addition, the development roadmap for Synpress covers a wide range of features and capabilities, with a focus on improving support for a variety of wallets and testing frameworks, as well as building out decentralized infrastructure for testing and CI. Achieving these goals will require a significant investment of time and resources, and the grant will help ensure that the development team has the necessary support to make progress on these milestones.
Finally, the expertise and experience of the Synpress team can also justify the size of the grant. The team includes experienced developers with a track record of success in building web3 tools and infrastructure. This combination of skills and experience positions the Synpress team well to execute on their development roadmap and deliver value to the web3 ecosystem.
Overall, the size of the grant can be seen as an investment in the future growth and success of the web3 ecosystem, and the potential benefits that Synpress can bring to it.
Describe in discrete steps your plan for accomplishing your project:
- Initial Planning and Preparation:
Define the scope of the project and the goals to be achieved
Form a team of developers and contributors
Research the current landscape of web3 development tools and testing frameworks
Secure a grant to fund the development of synpress
- Roadmap Creation and Task Management:
Create an official roadmap for synpress that is visible to the public on GitHub
Break down the roadmap into discrete tasks that can be completed by contributors
Attach a reward to each task to incentivize contributors
Use GitHub Issues to manage and track the progress of each task
- Marketing and Community Engagement:
Develop a marketing strategy to promote synpress to the web3 development community
Attend relevant conferences, meetups, and events to promote the project and connect with potential contributors
Engage with the community on social media and other online channels to increase awareness and engagement
- Development and Testing:
Develop synpress according to the defined roadmap and tasks
Use a test-driven development approach to ensure the quality and reliability of the tool
Continuously test and validate synpress with different web3 wallets and e2e testing frameworks
Use continuous integration and deployment (CI/CD) pipelines to automate the build and deployment process
- Reward Distribution:
Distribute rewards to contributors based on completed tasks in OP tokens
Ensure that rewards are distributed in a fair and transparent manner according to the defined criteria and rules
Encourage long-term contributors by providing additional incentives and recognition for their contributions
- Future Development and Maintenance:
Continue to develop and maintain synpress to keep up with the evolving web3 ecosystem
Incorporate user feedback and suggestions to improve the tool and its usability
Stay up to date with new technologies and best practices in web3 ecosystem development to ensure the continued relevance and usefulness of synpress.
Please provide any additional information that will facilitate accountability:(smart contracts addresses relevant to the proposal, relevant organizational wallet addresses, etc.)
0x7b57c388e6149b5c197B925037602d5B6bafFbCc => synpress wallet
Does your plan depend on the receipt of OP tokens?:
What is your plan for the use of the OP token after the 1 year lock-up?:
The plan is to incentivise open-source contributors contributing to synpress. I’m planning to put out the roadmap as separate tasks on GitHub and attach a reward (in OP tokens) to each of them. After lock-up, contributors will receive their reward. I think that this is a great approach as it will also encourage long-term contributors.
Please provide benchmark milestones for this project. These milestones should guide Optimism community on the progress of your project during the 1-year lock-up period.
|Milestone Type||Milestone||Source of Truth||Deadline|
|Benchmark||Create ~15+ incentivised epics (tasks) as GitHub issues (based on roadmap below)||GitHub Issues||Q2 - 2023 (~21.04.2023)|
|Benchmark||Create kanban board with proper prioritization of epics and subtasks||GitHub Projects||Q2 - 2023 (~28.04.2023)|
|Benchmark||Improve synpress readme to mention that project is funded from OP grants, add incentivisation details and list most popular projects using synpress||GitHub||Q2 - 2023 (~05.05.2023)|
|Benchmark||Write a blog post at blog.synthetix.io about synpress, OP grants and start of incentivisation for completed tasks||blog.synthetix.io||Q2 - 2023 (~19.05.2023)|
|Benchmark||Start promoting Twitter thread about synpress, OP grants and start of incentivisation for completed tasks||Personal Twitter, Synthetix Twitter, Synpress Twitter||Q2 - 2023 (~26.05.2023)|
|Benchmark||Keep social media channels updated with finished goals of synpress development in Q2 (reminding about OP grants and incentivisation)||Personal Twitter, Synthetix Twitter, Synpress Twitter||Q2 - 2023 (~23.06.2023)|
|Benchmark||Post detailed report of what has been achieved in Q2(2023)||Governance Forum||Q2 - 2023 (~30.06.2023)|
|Benchmark||Add synpress integration with various starter kits (prioritising optimism; optimism-starter + useDApp)||GitHub (optimism-starter), GitHub (useDApp)||Q3 - 2023 (~10.07.2023)|
|Benchmark||Keep social media channels updated with finished goals of synpress development in Q3 (reminding about optimism grants and incentivisation)||Personal Twitter, Synthetix Twitter, Synpress Twitter||Q3 - 2023 (~22.09.2023)|
|Benchmark||Post detailed report of what has been achieved in Q3(2023)||Governance Forum||Q3 - 2023 (~29.09.2023)|
|Benchmark||Keep social media channels updated with finished goals of synpress development in Q4 (reminding about OP grants and incentivisation)||Personal Twitter, Synthetix Twitter, Synpress Twitter||Q4 - 2023 (~15.12.2023)|
|Benchmark||Post detailed report of what has been achieved in Q4(2023)||Governance Forum||Q4 - 2023 (~22.12.2023)|
|Benchmark||Keep social media channels updated with finished goals of synpress development in Q1 (reminding about OP grants and incentivisation)||Personal Twitter, Synthetix Twitter, Synpress Twitter||Q1 - 2024 (~22.03.2024)|
|Benchmark||Post detailed report of what has been achieved in Q1(2024)||Governance Forum||Q1 - 2024 (~29.03.2024)|
|Benchmark||Write a blog post at blog.synthetix.io about OP grants program summary and its outcome on synpress development||blog.synthetix.io||Q2 - 2024 (~12.04.2024)|
|Benchmark||Promote summary of OP grants program and its outcome on synpress development and developer engagement on social media channels||Personal Twitter, Synthetix Twitter, Synpress Twitter||Q2 - 2024 (~19.04.2024)|
Please define critical milestones for this project. Critical milestones are meant to show good-faith efforts to accomplish the project. Non-completion of these milestones could lead to revocation of remaining grants rewards.
|Milestone Type||Milestone||Source of Truth||Deadline|
|Critical||Optimism-default (promote Optimism within synpress)||GitHub||Q2 - 2023 (~28.04.2023)|
|Critical||PoC for CI platforms, e2e testing frameworks and different use cases of synpress||GitHub||Q2 - 2023 (~26.05.2023)|
|Critical||Framework-agnostic (support multiple e2e testing frameworks)||GitHub||Q2 - 2023 (~30.06.2023)|
|Critical||Wallet-agnostic (support multiple wallets)||GitHub||Q3 - 2023 (~29.09.2023)|
|Critical||More user-friendly (landing page, documentation, UX)||GitHub||Q4 - 2023 (~22.12.2023)|
|Critical||Wallet mocking (integration with web3-mock)||GitHub||Q1 - 2024 (~01.02.2024)|
|Critical||Full coverage (automation) of metamask features||GitHub||Q1 - 2024 (~01.03.2024)|
|Critical||Contract mocking (integration with Foundry (Anvil) and Viem)||GitHub||Q2 - 2024 (~12.04.2024)|
Optimism-default [Q2 - 2023 (~26.05.2023)]: We plan to enhance the visibility and accessibility of the Optimism network by making it the default setting for Synpress. This will be a pivotal step towards garnering increased attention and usage of the network. Additionally, we aim to optimize the user experience by updating and refining the existing Synpress examples to ensure seamless integration with Optimism and streamline the onboarding process for our users.
PoC for CI platforms, e2e testing frameworks and different use cases [Q2 - 2023 (~26.05.2023)]: This is a critical milestone because it is the primary use case for Synpress. Demonstrating the ability of how to use Synpress and how to work with different CI platforms and e2e testing frameworks will be crucial to showing that the project is capable of delivering its intended functionality.
Framework-agnostic [Q2 - 2023 (~30.06.2023)]: Rebuilding Synpress to support most popular e2e testing frameworks is also a critical milestone because it will make the project more versatile and adaptable to different testing needs. This will be particularly important for users who already have a preferred e2e testing framework that they want to use in combination with Synpress.
Wallet-agnostic [Q3 - 2023 (~29.09.2023)]: Rebuilding Synpress to support wallets as plugins is a critical milestone because it will enable the project to work with a wider range of wallets. This is important because different users prefer different wallets, and having support for multiple wallets will increase the user base and adoption of Synpress.
More user-friendly (landing page, documentation, UX) [Q4 - 2023 (~22.12.2023)]: Making Synpress easier to use and set up is a critical milestone because it will reduce the learning curve and increase adoption. A user-friendly website and clear documentation will be important for attracting new users and ensuring that existing users continue to use the project.
Wallet mocking (Integration with web3-mock) [Q1 - 2023 (~01.02.2024)]: The ability to mock wallets allows developers to simulate different wallet scenarios and test their DApps with various edge cases, without having to use actual wallets or real funds. This can save time and reduce the risk of costly mistakes during testing.
Full coverage (automation) of metamask features [Q1 - 2023 (~01.03.2024)]: This is a critical milestone because Metamask is the most popular wallet in the web3 ecosystem. Therefore, it is important to ensure that Synpress covers all of Metamask’s features so that users can seamlessly test on it and be sure that their dapp users will have no issues.
Contract mocking (Integration with Foundry (Anvil) and Viem) [Q2 - 2024 (~12.04.2024)]: Adding the ability to easily mock contracts while running e2e tests will be crucial for users who want to test their dApps in a simulated environment. This is a critical milestone because it will make Synpress a more comprehensive testing solution. With added Viem support to easily drive locally running Anvil node straight from your tests.
Here’s a more detailed roadmap for Synpress development which is expected to have approx. 1 year of runway.
Create a website with how-tos, demos, tutorials, and documentation.
Create examples of Synpress usage with different CI platforms such as GitHub, GitLab, and CircleCI.
Create examples of Synpress usage with different end-to-end (e2e) testing frameworks such as Cypress, Playwright, and Puppeteer.
Rebuild Synpress to support wallets as plugins, making it wallet-agnostic.
Rebuild Synpress to support the most popular e2e testing frameworks, making it framework-agnostic.
Add support for mocked wallets using web3-mock.
Cover missing features of Metamask that are not yet available in Synpress.
Extend existing commands of Metamask in Synpress to return data from the extension.
Add TypeScript support for Synpress.
Add support for “synpress open” command.
Make Synpress easier to extend with Cypress plugins.
Make Synpress easier to set up, including auto-setup functionality.
Make Synpress easier to use with custom Synpress configuration.
Add the ability to easily mock contracts while running e2e tests, integrating with Foundry and Viem.
Keep Synpress up to date with the latest version of Metamask.
Additionally, to give you a good sense of where’s project heading to, here’s extended roadmap for Synpress (which is planned for next iteration - it’s outside of the year scope for this proposal, but is still important for the community to take note of):
Add support for the most important wallets in the web3 ecosystem, including Trezor and Ledger using emulators.
Add support for mobile wallets on Android and iOS using Detox.
Add support for cross-browser testing, including Firefox, Microsoft Edge, and Brave.
Add support for most important desktop wallets on Windows, macOS, and Linux using nut.js.
Build cloud infrastructure for Synpress to allow running e2e tests in the cloud utilizing AWS EC2 in the background with frontend.
Evolve Synpress infrastructure to accept external nodes (Synpress nodes), making it a decentralized network of test runners.
Add ability to utilize Synpress nodes as decentralized CI runners for GitHub Actions self-hosted runners, CircleCI runners, and GitLab Runners.
Build a decentralized CI provider on top of Synpress nodes based on sandboxes, Docker containers, and virtualization.
To see even more details about roadmap and future of synpress, feel free to check out project on GitHub: Synpress · GitHub
Does your project solve a problem for Optimism ecosystem?:.
Synpress solves a significant problem for the ecosystem - testing dapps can be challenging due to the lack of reliable and user-friendly testing tools.
How does your proposal offer a value proposition solving the above problem?:
I think that synpress offers a valuable proposition for Optimism ecosystem by providing a much-needed testing solution for dapps, which can ultimately lead to a more robust and thriving ecosystem.
Why will this solution be a source of growth for Optimism ecosystem?:
With the rapid growth of the DeFi industry and the increasing number of dApps being built on Optimism, there is a growing need for reliable and efficient testing tools. By making it easier for developers to test their dApps on Optimism, Synpress can help drive growth and adoption of Optimism ecosystem. This, in turn, can lead to increased usage and value for the network, as more developers and users are attracted to the benefits of using Optimism for their DeFi needs.
How committed are you (and your team) to building on Optimism?:
Is your project Optimism Native?:
I understand that I will be required to provide additional KYC information to Optimism Foundation to receive this grant: [Yes/No]:
I understand that I will be expected to following the public grant reporting requirements outlined here: [Yes/No]: