Skip to content
This repository has been archived by the owner on Sep 28, 2018. It is now read-only.

Latest commit

 

History

History
119 lines (86 loc) · 5.31 KB

README.md

File metadata and controls

119 lines (86 loc) · 5.31 KB

Roc - CLI for the Roc ecosystem

Develop modern web applications and components without the boilerplate fragmentation.
www.getroc.org

Deprecated

See https://github.com/vgno/roc

stability alpha roc build status Coverage Status Code Climate Issue Count Dependency Status

Modern Application Development Ecosystem

Project status is currently work in progress and proof of concept
We have started to implement the first few products based on Roc. These products are not yet in production. You have been warned!


Roc provides a complete ecosystem for developing modern applications.
Sweeps common complexities into easy-to-use packages with extendable APIs.

Composes some great open source tools and make them easy to use with a streamlined command line interface and configuration/extension system.

Direct your focus to writing great software and away from juggling boilerplate and dependencies. Roc is built on top of the Node.js ecosystem.

Example of tasks handled by extensions

  • Building and bundling through Webpack
  • Web server through Koa
  • React (complete with Redux and server side rendering)
  • First class developer experience featuring hot code reloading and Browsersync

Common tasks and boilerplate code does not exist in a Roc application but in extensions installed with npm making it easier to maintain and update. Roc extensions are opinionated by design.

Simplicity

As a user of Roc to create components or applications you will mainly direct your attention to your application code, configuration limited to your own project and using the command line interface. You do not need a deep understanding of how Roc makes your life simpler. We do however encourage you to take a deep-dive and contribute.

Get started

Install Roc

npm install -g roc

This provides you with a really simple command line interface. Only Linux and OS X currently supported.

Bootstrap Redux + React application

Create application directory. Name it whatever you like. We used react-app.

mkdir react-app && cd react-app

Init application starting point

roc init web-react

Build and start the application in development mode

roc dev

roc init web-react uses the starting point roc-template-web-react from Github

Suitable for more ambitious web-applications that prefer React views, universal rendering and established library Redux for unidirectional dataflow.

Bootstrap basic web application

Create application directory. Name it whatever you like. We used basic.

mkdir basic && cd basic

Init application starting point

roc init web

Build and start the application in development mode

roc dev

roc init web uses the starting point roc-template-web from Github

Suitable for serving static files and rendering html with basic javascript on the client.

Where to go from here

roc help will print available actions.
roc dev starts the application locally in development mode with hot code reloading and Browersync.
roc dev --help will list all options available to your current extension.
Be sure to read through this as minor adjustments to your roc.config.js is a very common use-case. Also check out defaults for web and web-react

View your application at http://localhost:3002 using default configuration.

Motivation

Roc was born out of the need to create modern applications following the correct conventions and using best practices consistently.
We quickly realized that keeping boilerplate updated within each project over time was unmanageable. It seems natural to have this repeated complexity managed by separated semantically versioned packages.

Eco system

Project Github page
CLI (this project) https://github.com/vgno/roc
Roc Config https://github.com/vgno/roc-config
Roc Web https://github.com/vgno/roc-web
Roc Web React https://github.com/vgno/roc-web-react

Roadmap

See milestones/issues.

Contribute

We are still working on getting the balance between flexibility and easy-of-use. Input here is valuable to us. Please get in touch and sync with us before committing your time to large PRs at this stage of the project.

Thanks

Thanks to Jongleberry for letting us use the roc package name on npm.