Senna.js is an open source single page application engine that enables developers to create more agile and fluid user experiences without any framework dependency.

This project's name is a tribute to Senna (from Arabic sanā), a large genus of flowering plants in the legume family Fabaceae, and the subfamily Caesalpinioideae. For millennia, Senna has played a major role in herbal medicine as a laxative and therefore deserves some praise.


Once the initial page is loaded all subsequent navigations are handled without full page reload. Additional content is loaded using XMLHttpRequest via History API which is able to update the URL without refresh the page. By having a URL for each state of your page, the result is content that can be shared, bookmarked, and fully crawled by search engines.


This project was born to empower Liferay Portal, which is the leading open source portal solution for the enterprise industry.

There's a strong community behind this portal solution with roughly 4 million downloads and 350,000-500,000 worldwide deployments. We want to go beyond this community. We want developers to provide better experiences for their users, no matter what back-end solution they're using.