{"id":29810367,"url":"https://github.com/justinformentin/rawrs","last_synced_at":"2026-04-11T14:05:41.819Z","repository":{"id":57154504,"uuid":"147426520","full_name":"justinformentin/rawrs","owner":"justinformentin","description":"React App With Routing and Styled-components","archived":false,"fork":false,"pushed_at":"2019-02-23T05:57:57.000Z","size":57,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-23T09:50:55.273Z","etag":null,"topics":["cli","command-line-interface","command-line-tool","commander","parceljs","react","react-router","reactjs","redux","styled-components"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/justinformentin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-09-04T22:17:02.000Z","updated_at":"2023-02-14T01:05:25.000Z","dependencies_parsed_at":"2022-09-06T19:21:30.952Z","dependency_job_id":null,"html_url":"https://github.com/justinformentin/rawrs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/justinformentin/rawrs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justinformentin%2Frawrs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justinformentin%2Frawrs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justinformentin%2Frawrs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justinformentin%2Frawrs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/justinformentin","download_url":"https://codeload.github.com/justinformentin/rawrs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justinformentin%2Frawrs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267327558,"owners_count":24069454,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","command-line-interface","command-line-tool","commander","parceljs","react","react-router","reactjs","redux","styled-components"],"created_at":"2025-07-28T17:00:57.944Z","updated_at":"2025-12-30T21:57:19.884Z","avatar_url":"https://github.com/justinformentin.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/justinformentin/rawrs/blob/master/img/logo.png?raw=true\" alt=\"Rawr's Logo\"/\u003e\n\u003c/p\u003e\n\n[![npm](https://img.shields.io/npm/v/rawrs.svg)](https://www.npmjs.com/package/rawrs) [![David](https://img.shields.io/david/justinformentin/rawrs.svg)](https://david-dm.org/justinformentin/rawrs)\n\n[View Site](https://rawrs-cli.github.io/)\n\n\n# Rawrs\n\nReact App With Routing and Styled-components.\n\n## Overview\n\nRawrs is a command line utility for React. It was made in an attempt to add to and improve the React ecosystem. It has much more functionality than Create React App, but much less than other, application specific boilerplates. This makes Rawrs the perfect choice for developers that are new to React.\n\nRawrs has 5 main features.\n\n1. [React-Routing](https://github.com/ReactTraining/react-router)- Such a necessary feature in many applications, Rawrs has routing implemented with example routes in the example scaffolding.\n2. [Styled-Components](https://www.styled-components.com/docs)- While other options such as SCSS are great, Styled Components enforces best practices- Small components, single use class names, splitting components and containers.\n3. Code Generation- Rawrs allows you to create components in the command line. This is something that other frameworks/libraries have, but is rare in the React ecosystem for some reason.\n4. [ParcelJS](https://parceljs.org/)- Rawrs is set up using ParcelJS, a zero configuration web application bundler that is much more user-friendly than webpack.\n5. [Redux](https://redux.js.org/)- Getting started with Redux is often difficult for beginners, so Rawrs has an option to build your app with Redux, helping by setting up the basic structure.\n\n## Install\n```\nnpm install -g rawrs\n```\n\n## Dependencies\n\nYou need to have ParcelJS installed to be able to serve and build your app.\n```\nnpm install -g parcel-bundler\n```\n\n## Basic usage\n```\nrawrs create firstapp\ncd firstapp/src\nparcel index.html\n```\nAnd that's all it takes to go from zero to working app.\n\n## Usage\n\n### Create\n\nCreate a new app using Rawrs.\n\nRawrs was made with rapid development in mind. Your app will be set up with example routes, Styled Components implementation, and support for advanced JavaScript features like async/await, and optionally Redux.\n\n| Option           | Description | \n| ---------------- |-------------| \n| `-r, --redux` | Adds redux setup, installing dependencies and setting up the store |\n| `--no-git ` |  Skip git support, don't initialise repo |\n\nHere's an example of creating an app that handles all the bindings that comes with React + Redux, and generating a redux component.\n\n```\ncd ~/project\nrawrs create new-app --redux\ncd new-app/src\nrawrs generate components/About --redux\nparcel index.html\n```\n\nThis will create an app with redux support, build and serve the application at http://localhost:1234 with hot module reloading, and add a new redux-aware component for a about page.\n\n### Generate\n\nCreate a file - either component, redux component, or ES6 class using current best-practices.\n\n| Option           | Description | \n| ---------------- |-------------| \n| `-f, --functional` | Creates a functional rather than class based component |\n| `-r, --redux` | Adds redux setup to the component (ignored by functional component) |\n| `--content \u003cstring\u003e` | Content to put into the render block. Line breaks will be respected and can just be entered like so: `\u003c/h2\u003e\\n\u003cp\u003e`|\n| `--imports \u003cstring\u003e` | Pre-written import statements to include in the head. Again, line breaks are respected. |\n\n```\nrawrs generate component components/Menu\n```\n\nThe `generate` command is aliased to `g`, and the file type is optional and defaults to component, the following is identical.\n\n```\nrawrs g components/Menu\n```\n\nA .jsx is appended to the filename automatically and is not required, but is harmless and will not duplicate if accidentally added. As long as a directory already exists, you can create a component in any directory structure.\n\n```\nrawrs g components/ui/Header/NavBar\n```\n\nFull example of creating an AboutUs class component and adding an import and content:\n\n```\nrawrs g components/AboutUs -f --imports \"import { Link } from 'react-router-dom';\" --content \"\u003ch2\u003eAbout Us\u003c/h2\u003e\\n\\n\u003cp\u003eSome text about company\u003cLink to='/history'\u003eLearn More\u003c/Link\u003e\u003c/p\u003e\"\n```\n\nNote: You can put anything in the import/content. Rawrs doesn't validate it.\n\n\n### Destroy\n\nThe opposite of generate, using the destroy command **will delete** files. This is a destructive command and full responsibility should be taken when using it. It is nevertheless a useful command when quickly making structures:\n\n```\nrawrs g Aboutus //whoops, not right\nrawrs destroy Aboutus\nrawrs g components/AboutUs -f\n```\n\nBe warned, though. Rawrs **will** delete any file it's told to delete.\n\n```\nrawrs destroy App.js\nrawrs destroy index\n```\n\n### Serve / Build\n\nTo run your application in development mode, navigate to the main directory, in the example app's case it's /you-app/src, and run \n```\nparcel index.html\n```\n\nTo build your app for production, run\n```\nparcel build index.html\n```\n\nParcel will list the files it just built. Take the files and serve them however you would any other app with an index.html entry point.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustinformentin%2Frawrs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjustinformentin%2Frawrs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustinformentin%2Frawrs/lists"}