Inspiration
Accessibility compliance is required under the Accessibility for Ontarians with Disabilities Act (AODA), but getting started can be expensive and intimidating for early-stage founders and small teams.
Professional audits can cost thousands of dollars and typically require payment upfront. For startups trying to launch quickly, that can be a major barrier.
We asked a simple question: what if you only paid when the scan actually delivered results? This led to the creation of Apex.
What it does
Apex is an accessibility scanner that uses XRPL escrow for outcome-based payments.
Users connect their GitHub repository and lock 1 XRP in escrow. Apex clones the repository, runs an automated accessibility audit with Playwright and axe-core, and generates a detailed report.
If the scan completes successfully, the escrow is released. If the scan fails, for example because the repository does not have a runnable frontend, the user can cancel the escrow and get their XRP back.
Each scan provides an accessibility score, violations categorized by impact, the WCAG criteria affected, screenshots of issues, and AI-suggested fixes with the option to open a pull request. Users only pay when results are delivered.
How we built it
Apex is a full-stack web application.
- Frontend: React
- Backend: Node.js
- Scanning: Playwright and axe-core running in Docker
- Blockchain layer: XRP Ledger testnet using escrow transactions
- Authentication: GitHub OAuth
When a scan is started, the system creates an escrow transaction on the XRP Ledger. The backend clones the repository, runs the audit in a containerized environment, and structures the results into a report. Successful scans fulfill the escrow, and failed scans allow users to retrieve their funds after a timeout.
Escrow is a core part of the product, not just a payment option.
Challenges we ran into
Integrating XRPL escrow was more complex than expected. Handling fulfillment, cancellation, and timing required careful testing to make sure funds were never stuck.
Running arbitrary repositories in Docker introduced edge cases. Some repositories did not build, lacked a frontend, or required environment variables. We designed failure handling carefully so the payment model remained fair.
We also balanced scan speed with report accuracy to provide meaningful results without long wait times.
Accomplishments that we're proud of
We built a fully functional MVP.
- Escrow is integrated directly into the scan flow
- The system handles success and failure states automatically
- The scanner produces structured accessibility reports
- Users can generate AI-suggested fixes and open pull requests
The payment model aligns incentives between the user and the platform.
What we learned
Blockchain works best when it solves a clear coordination or trust problem. Using XRPL escrow required careful consideration of edge cases and failure states, which also improved the backend design.
On the accessibility side, we saw how many sites fail basic WCAG checks and how valuable early automated testing can be for small teams.
What's next for Apex: Accessibility Scanner with XRPL Escrow
Our next steps include:
- Expanding WCAG coverage and improving accuracy
- Adding CI/CD integration for automatic scans on pull requests
- Supporting private repositories securely
- Building analytics dashboards for teams to track compliance over time
- Moving from testnet to production-ready XRPL integration
Our goal is to make accessibility compliance accessible and affordable for startups, allowing them to identify issues early before they become costly problems.
Built With
- anthropic-api
- axe-core/playwright
- claude
- docker
- dockerode
- github-api
- github-rest-api-(octokit).-platforms-&-tools:-docker
- javascript-(node.js).-frameworks:-next.js-16-(app-router)
- next.js
- nextauth
- node.js
- octokit
- react
- react-19
- sqlite
- tailwind-css
- tailwind-css-4.-database:-sqlite-with-prisma-7-and-better-sqlite3.-auth:-nextauth-5-(github-oauth).-blockchain:-xrp-ledger-(xrpl.js-for-escrow).-apis:-anthropic-api-(claude)
- typescript
- xrp-ledger
- xrpl.js
Log in or sign up for Devpost to join the conversation.