A component-oriented framework for creating highly scalable web applications in Java.

Java Power

Tapestry pages and components are simple Java POJOs, with easy access to all Java language features and the vast Java ecosystem. Thanks to Java's advanced concurrency API, Tapestry handles requests fast without sacrificing security or stability.

Scripting Ease

Tapestry features live class reloading: change your Java code, refresh the browser and see the changes... instantly! Have your cake and eat it too: the speed and depth of Java, the agile development style of Ruby or Python.

Super Productivity

 Simple POJO classes, streamlined templates, live class reloading, state-of-the-art exception reporting, first-class Ajax support, and a big library of built-in components: Tapestry is designed from the ground up to give you great productivity.

We think you will love Tapestry! Give us 20 minutes and follow our quickstart guide.

What is Tapestry?

Pure Java and Polyglot

Written in pure Java: code your pages and components in Java, Groovy or Scala.

Highly Productive

Live class reloading means that the time between seeing an error and providing the fix is seconds, not minutes.

Advanced Exception Reporting

Gives you all the tools you need to fix your problem: not just a stack trace, but details about what Tapestry was doing and why, what went wrong, and how to fix it.


Pure Java; no reflection, not even for property expressions. Built to cleanly support large numbers of concurrent threads without contention. Integrated GZip content compression, JavaScript aggregation and compression, and client-side caching.

Convention over Configuration

Dependency injection and meta-programming through annotations and naming conventions.


Scales up big on a single server, and works great in a cluster. Keeps session state minimal by design.


Committed to testability throughout design; built-in utilities to enhance TDD. Support for Selenium for integration testing.

Adaptable and Modular

Architecture is open and extensible. There's a clean way to add your own extensions, or override built-in logic. Provides integration with Hibernate, JPA and Spring. Third-party integrations with other tools, such as Quartz and Lucene.


More on Tapestry philosophy - Who uses Tapestry ?


Latest news

Hello, Tapestry community! We've just released Tapestry 5.8.1. It's mostly about getting Tapestry-IoC to support all Java language features introduced between Java 9 and 17 https://docs.oracle.com/en/java/javase/17/language/.  It also includes some other bug fixes and small improvements. Tapestry 5.8.1 is a drop-in replacement and recommended upgrade for Tapestry 5.7.0+ projects. All the details are in the release notes. Happy coding!
Hello, Tapestry community!Tapestry 5.8.0 has just been released. It's focused on a couple of new features: Support for writing REST endpoints. Read more about this on its documentation page: https://tapestry.apache.org/rest-support-580.html https://tapestry.apache.org/rest-support-580.html. Support for Servlet API 3.0+ asynchronous requests. Full release notes at https://tapestry.apache.org/release-notes-580.html https://tapestry.apache.org/release-notes-580.html. Tapestry 5.8.…
Tapestry 5.7.3 is a new release focused on some improvements and new features. Main ones are: Upgrading Hibernate's version from 5.1.1.Final to 5.4.32.Final. This required some changes in tapestry-hibernate due to some non-backward-compatible changes between these 2 Hibernate versions. If your project doesn't work with this new Hibernate version, you should be able to use version 5.7.2 of tapestry-hibernate and tapestry-hibernate with 5.7.3 of everything else without issues.…