- Platform
- Web
- Category
- Developer Tools
- Status
- Live
- Price
- Free
XSLT Playground is a browser-based scratchpad for XSLT: paste XML plus a stylesheet, run it, and see the output instantly. No install, no toolchain and no account, for anyone who wrangles XML.
What it does
Unlike browser-only tools, transformations run on a real Saxon HE 12.5 processor on the server, so the result matches what enterprise deployments produce.
- XSLT 1.0, 2.0 and 3.0, including maps, arrays, xsl:merge, higher-order functions, streaming and JSON output.
- Multiple XML inputs passed as named parameters, the way integration pipelines actually work.
- Execution trace to follow the stylesheet step by step, and validation with exact line numbers from Saxon.
- Three independent workspaces, exportable and importable as JSON.
- Custom extension functions such as tib:uuid(), tib:timestamp() and tib:addToDate().
The stack is a React/Vite front end and a Go back end orchestrating Java/Saxon; PostgreSQL and Firebase are optional and only needed for Pro features. It can be run locally, as Docker containers, with Docker Compose or on Kubernetes through Helm charts.
The hosted instance runs at xsltplayground.com and is also embedded in this site at /xsltplayground/; the tool started as an internal scratchpad for TIBCO BusinessWorks transformations, which is where the tib: extension functions come from.
Who it is for
Integration engineers working with SAP, MuleSoft, TIBCO or IBM middleware, XML data engineers and XSLT developers who want to test a template in seconds instead of opening a heavy desktop IDE.
Pricing and licence
Free to use in the browser, no account needed. The source is published on GitHub (repository xslt-lab); the repository does not currently include a licence file, so it is source-available rather than formally open source.
Frequently asked questions
Which XSLT versions does XSLT Playground support?
XSLT 1.0, 2.0 and 3.0. Transformations run on Saxon HE 12.5 on the server rather than on a browser-side engine, so XSLT 3.0 features such as maps, arrays, xsl:merge, higher-order functions, streaming and JSON output work exactly as they do in production, and error messages come with the exact line numbers Saxon reports.
Is XSLT Playground free?
Yes. You can paste XML and XSLT and run the transformation in the browser without installing anything and without creating an account. The source code is published on GitHub in the xslt-lab repository, so you can also run it yourself locally, with Docker Compose or on Kubernetes with the included Helm charts. Pro features exist but are optional.
Can I pass several XML documents to one stylesheet?
Yes. XSLT Playground accepts multiple XML inputs as named parameters, mirroring how integration pipelines feed a transformation, so you can test templates that merge or look up across documents without stitching them together first. Each input is available to the stylesheet under its parameter name, so a template that reads a lookup document alongside the main payload runs exactly as it would inside an integration flow, on the same Saxon HE processor.
How do I debug a stylesheet in XSLT Playground?
Use the execution trace, which shows the stylesheet running step by step, and the validation output, which reports errors with the exact line numbers from Saxon. Work is organised in three independent workspaces that you can export and import as JSON, so you can keep a failing case aside while you try alternatives. Because the processor is Saxon HE 12.5 running on the server, the trace and the error lines match what you would see in a production Saxon deployment rather than a browser-side approximation.