Architecture

Learn about the Response architecture and how various pieces function.

Response, despite its appearance, is a server-rendered application written entirely using the Laravel Framework. This architecture allows Response to be deployed anywhere without any extra steps, such as compiling JavaScript. It's true that when adding certain extensions it may be necessary to compile the JavaScript, but for the most part, that is handled automatically by the application itself.

Laravel

Response is written entirely using Laravel, as mentioned before. Because of this, the use of PHP is highly prevalent. The majority of the Response frontend uses a large amount of standard Laravel Blade features for templating and structure manipulation.

Laravel is an extremely popular framework and has the robust IoC Service Container allowing various pieces of the application to be highly customized both by us and extensions themselves. Before diving in, you should probably have a very basic understanding of PHP and some experience with Laravel itself. However, neither are truly necessary and we'll do our best to answer any questions you have while developing either on the Response core or in your own extensions for Response.

Web App

The Response web application is written entirely with Blade templates, however, thanks to some powerful JavaScript, the page is fully rendered once, and then all subsequent link clicks allow you to navigate without a page refresh. This gives the feel of a single-page application without the added extensive JavaScript and knowledge necessary to build pages and other pieces of the application while maintaining a decent performance.

For the most part, you will not even realize that there are hints of JavaScript in the Blade templates as most JavaScript functionality is handled by the components detailed in another section of this article or using the Alpine.js directives. The end goal of the Response project is to allow you to easily add extensions to customize pages, routes, menus, and other things, by using an entirely server-rendered application with Blade we make that much easier and require you to have less knowledge about specific JavaScript frameworks to do it.


What’s Next

Read about the web app concepts, the available components, and more in the Frontend section.