---
description: >-
  Please follow the below documentation to learn how you can build an app from
  the scratch.
---

# Build an App from Scratch

Please follow the below documentation to learn how you can build an app from the scratch.

You can easily build your app from scratch, just follow the steps given below:

1. Copy the project files from the downloaded **ThemeForest** project.
2. Open terminal and go to the root directory and then run `npm install`.
3. After installing npm then run `npm start`.
4. Open your browser and access [`http://localhost:3000`](http://localhost:3000).

## **Integrate New Widget** <a href="#integrate-new-widget" id="integrate-new-widget"></a>

Please follow the [Adding New Widgets](https://iron-network.gitbook.io/reactify/reactify-redux-thunk-saga/widgets) section to learn how to add new widgets in the template.

## **Integrate New Component/Page** <a href="#integrate-new-component-page" id="integrate-new-component-page"></a>

### For **seed project**: <a href="#for-seed-project" id="for-seed-project"></a>

By default seed project contains dashboard page means you can easily build your dashboard.

If you want to add some **pre-made components or pages** then follow below steps:

**Step 1:** Copy the page template from `reactify-redux-thunk->src->routes` of downloaded **ThemeForest** files and paste it into under the `your-app-directory->src->routes` directory.

**Step 2:** Now you need to define the route in the `your-app-directory->src->services->_routerService.js` file. Let us take an example of adding simply a `Pages` component that adds a blank page in your template. Also you need to import the component in the desired area like in the code given below:

{% code title="_routerService.js" %}
```javascript
import Dashboard from 'Routes/dashboard';

// Import the component here
import Pages from 'Routes/pages';

export default [
	{
		path: 'dashboard',
		component: Dashboard
	},
	
	// Newly Added Component
	{
		path: 'pages',
		component: Pages
	}
]
```
{% endcode %}

**Step 3:** Open the file `components->AsyncComponent->AsyncComponent.js` and define the component in the async components and export it in the area defined in the given code snippet.

{% code title="AsyncComponent.js" %}
```javascript
/**
 * AsyncComponent
 * Code Splitting Component / Server Side Rendering
 */
import React from 'react';
...

// Define the Pages Component
const AsyncBlankComponent = Loadable({
   loader: () => import("Routes/pages/blank"),
   loading: () => <RctPageLoader />,
});

export {
	...
	
    // Export it here
	AsyncBlankComponent
};
```
{% endcode %}

**Step 4:** That’s it if you navigate [`http://localhost:3000/app/pages/blank`](http://localhost:3000/app/pages/blank) . The page has been build successfully.

If you want to **add some new components** by your own, then follow the steps mentioned below:

Please check this [Adding Menu/Component In Different Layouts](https://iron-network.gitbook.io/reactify/reactify-redux-thunk-saga/layouts/adding-menu-in-different-layouts) section to get detailed information on this.

### For complete template: <a href="#for-complete-template" id="for-complete-template"></a>

If you are using the complete template then you are able to add only new components or pages & for that you have to follow the below mentioned steps:

Please check this [Adding Menu/Component In Different Layouts](https://iron-network.gitbook.io/reactify/reactify-redux-thunk-saga/layouts/adding-menu-in-different-layouts) section to get detailed information on this.

## Integrating Menu <a href="#integrating-menu" id="integrating-menu"></a>

If you want to add menu items then please check this section [Adding Menu/Component In Different Layouts](https://iron-network.gitbook.io/reactify/reactify-redux-thunk-saga/layouts/adding-menu-in-different-layouts) for the detailed information.
