Roc - CLI for the Roc ecosystem
Develop modern web applications and components without the boilerplate fragmentation.
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-base-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-base-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
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.