> For the complete documentation index, see [llms.txt](https://scandipwa.gitbook.io/shopify/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://scandipwa.gitbook.io/shopify/architecture/framework.md).

# Framework

The [**CRA (Create React App)**](https://create-react-app.dev/docs/getting-started) has been chosen as a framework to build on-top-of for this project. The toolchain [**CSA (Create ScandiPWA App)**](https://docs.create-scandipwa-app.com/) (*a subject to change*) was used to achieve the extensibility and modularity required. The breakdown of this decision is as follows:

* An application **does not have support SSR** (Server Side Rendering) implementation - thus the pre-renderers like [prender.io](https://prerender.io) must be used. This affects SEO and Google synthetic audit metrics - which can lead to lower rankings.<br>
* An application **uses `react-router-dom` for routing**. The package `@scandipwa/router` contains Router and Switch components declarations, which other modules can inject into.<br>
* To inject different types of providers and application wrappers (i.e. Router, Global Context). The package `@scandipwa/framework` contains App Component declaration and `react-dom` rendering logic.

{% hint style="warning" %}

## Heads up!

The framework is subject to change. To circumvent the lack of SSR this project is in the progress of migration to [NextJS](http://nextjs.com/) framework.
{% endhint %}
