Introducing JATAYU !
Tags: react, docker, typescript, redux
Published: 2021-09-24 06:13:56

---
title: Introducing JATAYU !
published: true
description: Jatayu is a command line interface (CLI) tool which helps to generate production ready hand-made React templates for the App (web-app) or Library (components) development
tags: react , docker, typescript, redux
cover_image: https://images.unsplash.com/photo-1517362087576-65980c8a9e71?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxzZWFyY2h8Mjd8fGVhZ2xlfGVufDB8fDB8fA%3D%3D&auto=format&fit=crop&w=800&q=60
---

## JATAYU  🦅 

Jatayu is a command line interface (CLI) tool which helps to generate production ready hand-made React templates for the App (web-app) or Library (components) development. 🚀	

See npm package details here [here](https://www.npmjs.com/package/jatayu)

See Repo here [here] (https://github.com/manjureddy7/jatayu)

## What is the purpose of JATAYU ? 💁

Did you ever tried setting up your own `react` environment without `create-react-app` ? Then you know the pain behind it. Adding `testing support | webpack | typescript | docker` will just increases that pain. 😪	

`JATAYU` is that pain killer 💊. If you want to have custom template setup for your react web app or component library without the need of CRA or it's alternatives, `JATAYU` to the rescue. 🥳	

We provide you the skeleton template structure and sky is the limit for it's tuning.

At its very core `JATAYU` offers below described templates with both Typescript & Javascript support as template supporting languages and Docker setup (for web apps).

```
  1.React Component Library
  2.React Web App
  3.React Web App with Redux
  4.React Web App with Redux Toolkit
  5.React Web App with Context
```

When you choose any one of the above projects, we provide you the ready-made template structure.


## Features

|       Template Type/Support      | Webpack | Testing (@testing-library) | Storybook | Typescript | State Management | Lint | Build | Docker |
|:--------------------------------:|:-------:|:--------------------------:|:---------:|:----------:|:----------------:|:----:|:-----:|--------|
| React Component Library          | ✅       | ✅                          | ✅         | ✅          | No               | ✅    | ✅     | No     |
| React Web App                    | ✅       | ✅                          | No        | ✅          | ✅                | ✅    | ✅     | ✅      |
| React Web App with Redux         | ✅       | ✅                          | No        | ✅          | ✅                | ✅    | ✅     | ✅      |
| React Web App with Redux Toolkit | ✅       | ✅                          | No        | ✅          | ✅                | ✅    | ✅     | ✅      |
| React Web App with Context API   | ✅       | ✅                          | No        | ✅          | ✅                | ✅    | ✅     | ✅      |

## Installation 🔨	

Use the package manager [npm](https://www.npmjs.com/) to install jatayu globally.

```bash
npm install -g jatayu
```

## Usage ⚠️	✅

After installation, create an empty directory anywhere you want and type `jatayu` in the terminal of the newly created folder. Voila! you will be prompted to answer two basic questions go ahead and answer them !

```
  1. Please enter directory name where your react template will reside

  2. Please select template type  (Use arrow keys)

    React Component Library  
    React Web App  
    React Web App with Redux 
    React Web App with Redux Toolkit
    React Web App with Context  

  3. Please select template support 

     Javascript(JS)
     Typescript(TS) 
     
  4. Do you want to add docker to the Template ? (if you select app template)

      Yes
      No
```

Enter the directory name where you want to `setup` react app and select the `type of project` you want.

### Steps after installing the project 	📌


#### If you select Web App or Library template without Docker support:


Now `cd` to the newly created folder by `jatayu` and do npm install. It's good to update your newly created `node_modules` by `npm outdated` you will get list of outdated `node_modules`, update them by `npm update`.

Start the template by `npm run start` (if you have chosen webapp template) or `npm run storybook` (if it is library template)

```bash
cd `your-newly-created-folder`

npm install

run -> npm run start (if you have chosen webapp template)

       or

       npm run storybook (if it is library template)
```

#### If you chose to add Docker to the App template


```bash
cd `your-newly-created-folder`

dev-run -> docker compose up --build (starts dev server, please navigate to http:localhost:5200 to see your App up and rolling!)

build -> docker compose -f docker-compose.prod.yml up --build (to build and run on dist folder, please navigate to http:localhost:1337 to see your App up and rolling!)
```

## What's next in the store?

We have plans to make `JATAYU` library/framework independent. So that `JATAYU` can offer custom templates to Angular, Vue, Svelte etc.

### Upcoming templates:

```
  React with GraphQL
  
  Full stack MERN combo (MongoDB+Express+React+Node)
```

## Screenshots	💣

Screenshots of the flow

![image](https://user-images.githubusercontent.com/22653056/133246794-51cca84e-4798-48ca-990b-93d474892ad1.png)

Enter directory name

![image](https://user-images.githubusercontent.com/22653056/133246843-aca54d67-a711-4efe-9750-1cff05aa60ea.png)


Select template type

![image](https://user-images.githubusercontent.com/22653056/133246938-0ddbc77f-0abd-4876-9d37-22a333498c96.png)

Select template supporting language type

![image](https://user-images.githubusercontent.com/22653056/133998744-c6b5dbef-d5b9-44b5-88fb-19c82b4d7a16.png)


Need docker support?

![image](https://user-images.githubusercontent.com/22653056/133998644-d3ed8942-1759-4a74-aae7-12550e0007da.png)


Successful template creation without docker

![image](https://user-images.githubusercontent.com/22653056/133447935-46b3e6ac-41b1-4f18-85f3-3f61031e9de4.png)


Successful template creation with docker

![image](https://user-images.githubusercontent.com/22653056/133998921-b9b6f506-2826-42bd-9632-06a4867071b6.png)


## Enough with the theory, let's see Jatayu in action	💣


I want to setup React Web App with Redux, let's find out how Jatayu helps us!

I will chose my directory as `hello` select React Web App with Redux template with Typescript support.

Project Templates:

![image](https://user-images.githubusercontent.com/22653056/134620513-fc845436-c5e9-4a76-83d0-ea14db66fd5c.png)

Expannded view:

![image](https://user-images.githubusercontent.com/22653056/134620580-6ed75378-38c0-418c-8b7f-f1535bf3b1fe.png)

Install all the dependencies by `npm install` command in the terminal and then

### without docker support

Run the template by `npm run start`

(broswer open with localhost:5203)

![image](https://user-images.githubusercontent.com/22653056/134621487-9ea97c8d-496e-4d31-9187-49ee3282d66c.png)

![image](https://user-images.githubusercontent.com/22653056/134621559-86b6ea6c-7cd1-45ef-a4fd-53ea06bb1097.png)

### with docker support

Run the template by `docker compose up -d --build`

(Open broswer with localhost:5200)

Always make sure the ports defined in the docker-compose.yml file and npm start script file are always same.

![image](https://user-images.githubusercontent.com/22653056/134621487-9ea97c8d-496e-4d31-9187-49ee3282d66c.png)

![image](https://user-images.githubusercontent.com/22653056/134621559-86b6ea6c-7cd1-45ef-a4fd-53ea06bb1097.png)


## License 🦔

[MIT](https://choosealicense.com/licenses/mit/)

  
## Feedback  📣

If you have any feedback, please reach out to us at manoj.gangavarapuu@gmail.com