An opinionated CLI for building redux/react apps quicker

Overview

Build Status Code Climate PRs Welcome Gitter Chat Channel

______         _                   _____  _     _____
| ___ \       | |                 /  __ \| |   |_   _|
| |_/ /___  __| |_   ___  ________| /  \/| |     | |
|    // _ \/ _` | | | \ \/ /______| |    | |     | |
| |\ \  __/ (_| | |_| |>  <       | \__/\| |_____| |_
\_| \_\___|\__,_|\__,_/_/\_\       \____/\_____/\___/

Quick Start

npm i redux-cli -g       // install blueprint-cli globally
blueprint new <project name> // create a new blueprint project
blueprint new <project name> -S // OR use ssh to pull project down (if ssh setup with github)
blueprint init                  // OR configure a current project to use the CLI

// Start generating components/tests and save time \(• ◡ •)/
//(g is alias for generate)
blueprint g dumb SimpleButton

Blueprint CLI Usage Gif

Table Of Contents

  1. Getting Started
  2. Configuring Existing Project
  3. Commands
  4. Generators
  5. Roadmap
  6. Examples
  7. Creating Custom Blueprints
  8. Issues/Contributing
  9. Changelog

Getting Started

Running blueprint new <project name> will pull down the amazing Redux Starter Kit and initialize a new git repo. Running new will automatically set up a .blueprintrc to work with this specific starter kit. If you want to integrate the CLI in an existing project or store your components in different paths please see config existing project

Config Existing Project

There is an init subcommand for you to specify all paths to where components live in your project. The init command just creates a .blueprintrc in your project root. If you want to you can just create the .blueprintrc manually.

Final .blueprintrc might look like this:

{
  "sourceBase":"src",
  "testBase":"tests",
  "smartPath":"containers",
  "dumbPath":"components",
  "fileCasing": "default"
}

Note on configuration: This project tries to walk on a fine line between convention and configuration. Since the majority of React applications will separate their smart/dumb components if you pass in those paths you'll get those generators for free. However, some of the other generators might not write files to the exact paths that you use for your project. It's easy to override the CLI generators with your own so that the generators will write files to the correct location. See: creating custom blueprints.

Alternatively, if you use this CLI as a result of blueprint new <project name> the starter kit will come pre-configured with a bunch of blueprints (generators) that work out of the gate. Currently, I'm working on a PR for the react-redux-starter-kit with a bunch of blueprints. More starter kits and blueprints to come!

Default Settings

Key Name Required Description
sourceBase where you keep your pre-compiled source (relative from root of project)
testBase where you keep your tests (relative from root of project)
smartPath where you keep your smart (container) components (relative of sourceBase)
dumbPath where you keep your dumb (pure) components (relative of sourceBase)
fileCasing how do you want generated files to be named (pascal/camel/snake/dashes/default)

.blueprintrc

It's possible to put .blueprintrc files in other locations to better share configs. It looks for files in the following locations and deep merges the files it finds together. The defaultSettings will be overwritten by any following options while the --config=path/to/file option will override everything.

See the whole list and more ENV tricks at rc

  1. defaultSettings
  2. /etc/blueprint/config
  3. /etc/blueprintrc
  4. ~/.config/blueprint/config
  5. ~/.config/blueprint
  6. ~/.blueprint/config
  7. ~/.blueprintrc
  8. $BLUEPRINT_CONFIG
  9. --config=path/to/file

Note - All files found at these locations will have their objects deep merged together. Later file override earlier ones

Commands

Command Description Alias
blueprint new <project name> creates a new blueprint project
blueprint init configure an existing blueprint app to use the CLI
blueprint generate <generator name> generates files and tests for you automatically blueprint g
blueprint help g show all generators you have available

Generators

Name Description Options
blueprint g dumb <comp name> generates a dumb component and test file
blueprint g smart <smart name> generates a smart connected component and test file
blueprint g form <form name> generates a form component (assumes redux-form)
blueprint g duck <duck name> generates a redux duck and test file

You can also see what files would get created with the --dry-run option like so:

blueprint g dumb MyNewComponent --dry-run

// Output:

  info: installing blueprint...
  would create: /MyNewComponent.js
  would create: /MyNewComponent.test.js
  info: finished installing blueprint.

Roadmap

2.0

  • rename to blueprint-cli
  • replace commander with yargs for cli
  • extend .blueprintrc settings.
  • Allow .blueprintrc files to set search * path for blueprint directories
  • Enable npm blueprint packages
  • Enable better options support for blueprint generation
  • Add Copy command to cli
  • Add config command to cli
  • Add blueprintrc and blueprint-package blueprints
  • Update existing blueprints and move into own package, to be included by default

2.X

  • Replace "new" command with alternate ways of project creation
  • Enable blueprint partials
  • Enable blueprints for assets: icons, images, css, fonts
  • Enable ability to insert text into existing files
  • Enable generators that can invoke other generators. Inspired by rails scaffold

Examples

Below are some examples of using the generator to speed up development:

// generates a dumb component
blueprint g dumb SimpleButton

// generates a smart component
blueprint g smart CommentContainer

// generate a redux-form with <form> tags in render statement
blueprint g form ContactForm

// generate a Redux 'duck' (reducer, constants, action creators)
blueprint g duck todos

Creating Blueprints

Blueprints are template generators with optional custom install logic.

blueprint generate comes with a default set of blueprints. Every project has their own configuration & needs, therefore blueprints have been made easy to override and extend.

Preliminary steps:

  1. Create a blueprints folder in your root directory. Blueprint CLI will search for blueprints there first before generating blueprints that come by default.
  2. Create a sub directory inside blueprints for the new blueprint OR use the blueprint generator (super meta I know) that comes with Blueprint CLI by typing: blueprint g blueprint <new blueprint name>.
  3. If you created the directory yourself than make sure to create a index.js file that exports your blueprint and a files folder with what you want generated.

Customizing the blueprint:

Blueprints follow a simple structure. Let's take the built-in smart blueprint as an example:

blueprints/smart
├── files
│   ├── __root__
│   │   └── __smart__
│   │       └── __name__.js
│   └── __test__
│       └── __smart__
│           └── __name__.test.js
└── index.js

File Tokens

files contains templates for all the files to be generated into your project.

The __name__ token is subtituted with the entity name at install time. Entity names can be configued in either PascalCase, snake_case, camelCase, or dashes-case so teams can customize their file names accordingly. By default, the __name__ will return whatever is entered in the generate CLI command.

For example, when the user invokes blueprint g smart commentContainer then __name__ becomes commentContainer.

The __root__ token is subsituted with the absolute path to your source. Whatever path is in your .blueprintrc's sourceBase will be used here.

The __test__ token is substitued with the absolute path to your tests. Whatever path is in your .blueprintrc's testBase will be used here.

The __path__ token is substituted with the blueprint name at install time. For example, when the user invokes blueprint generate smart foo then __path__ becomes smart.

The __smart__ token is a custom token I added in the index.js it pulls from your .blueprintrc configuration file to use whatever you have set as your smartPath.

Template Variables (AKA Locals)

Variables can be inserted into templates with <%= someVariableName %>. The blueprints use EJS for their template rendering so feel free to use any functionality that EJS supports.

For example, the built-in dumb blueprint files/__root__/__name__.js looks like this:

import React, { Component, PropTypes } from 'react';

const propTypes = {
};

class <%= pascalEntityName %> extends Component {
  render() {
    return (
    )
  }
}

<%= pascalEntityName %>.propTypes = propTypes;
export default <%= pascalEntityName %>;

<%= pascalEntityName %> is replaced with the real value at install time. If we were to type: blueprint g dumb simple-button all instances of <%= pascalEntityName %> would be converted to: SimpleButton.

The following template variables are provided by default:

  • pascalEntityName
  • camelEntityName
  • snakeEntityName
  • dashesEntityName

The mechanism for providing custom template variables is described below.

Index.js

Custom installation (and soon uninstallation) behaviour can be added by overriding the hooks documented below. index.js should export a plain object, which will extend the prototype of the Blueprint class.

module.exports = {
  locals: function(options) {
    // Return custom template variables here.
    return {};
  },

  fileMapTokens: function(options) {
    // Return custom tokens to be replaced in your files
    return {
      __token__: function(options){
        // logic to determine value goes here
        return 'value';
      }
    }
  },

  filesPath: function() {
    // if you want to store generated files in a folder named
    // something other than 'files' you can override this
    return path.join(this.path, 'files');
  },

  // before and after install hooks
  beforeInstall: function(options) {},
  afterInstall: function(options) {},
};

Blueprint Hooks

As shown above, the following hooks are available to blueprint authors:

  • locals
  • fileMapTokens
  • filesPath
  • beforeInstall
  • afterInstall

locals

Use locals to add custom tempate variables. The method receives one argument: options. Options is an object containing general and entity-specific options.

When the following is called on the command line:

blueprint g dumb foo --html=button --debug

The object passed to locals looks like this:

{
  entity: {
    name: 'foo',
    options: {
      _: ['dumb', 'foo'],
      html: 'button'
    },
    rawArgs: [
      ... array of rawArgs passed to cli ...
    ]
  },
  debug: true
}

This hook must return an object. It will be merged with the aforementioned default locals.

fileMapTokens

Use fileMapTokens to add custom fileMap tokens for use in the mapFile method. The hook must return an object in the following pattern:

{
  __token__: function(options){
    // logic to determine value goes here
    return 'value';
  }
}

It will be merged with the default fileMapTokens, and can be used to override any of the default tokens.

Tokens are used in the files folder (see files), and get replaced with values when the mapFile method is called.

filesPath

Use filesPath to define where the blueprint files to install are located. This can be used to customize which set of files to install based on options or environmental variables. It defaults to the files directory within the blueprint's folder.

beforeInstall & afterInstall

Called before any of the template files are processed and receives the the options and locals hashes as parameters. Typically used for validating any additional command line options or for any asynchronous setup that is needed.

Contributing

This CLI is very much in the beginning phases and I would love to have people help me to make it more robust. Currently, it's pretty opinonated to use the tooling/templates I prefer in my projects but I'm open to PR's to make it more universal and support other platforms (I'm on Mac).

This repo uses Zenhub for managing issues. If you want to see what's currently being worked on or in the pipeline make sure to install the Zenhub Chrome Extension and check out this projects 'Boards'.

Development Setup/Contributing

Use npm link is to install the CLI locally when testing it and adding features.

nvm use 5.1.0    // install node V5.1 if not present (nvm install 5.1.0)
npm install
npm i eslint babel-eslint -g  // make sure you have eslint installed globally
npm start        // to compile src into lib
npm test         // make sure all tests are passing

// to test the cli in the local directory you can:
npm link         // will install the npm package locally so you can run 'blueprint <commands>'
blueprint <run commands here>

Package Utility Scripts:

npm start        // will watch files in src and compile using babel
npm test         // runs test suite with linting.  Throws when lint failing
npm run lint     // lints all files in src and test

Changelog

1.8.0 - adds --dry-run option to generators so you can see files before committing 1.7.0 - adds option to use a ui kit boilerplate with the -U flag.
1.6.0 - adds option to use a different boilerplate with the -B flag. Fixes windows issues
1.5.1 - fixes windows support, addes ejs eslint plugin, fixes bug with UI in windows
1.4.1 - default to https instead of ssh for pulling project down
1.4.0 - better generator help messages
1.3.5 - properly passes cli options to blueprints so they can use them
1.3.3 - fixes init command, adds --debug to generators, improves error messages for broken templates
1.3.0 - major internal refactor, addition of customizable blueprints
1.1.1 - adds support for html tag in render when generating components
1.0.1 - adds fileCasing to generators so Linux users can use snake_case_file_names
1.0 - first public release with stable api (new/generate/init)

Comments
  • Ideas for maintaining parity with react-redux-starter-kit

    Ideas for maintaining parity with react-redux-starter-kit

    First off, this is :sparkles: awesome :sparkles: , amazing work. Unfortunately I don't have the time right this second to type out as detailed of an issue as I'd like, but I wanted to put it out there in case you had any initial thoughts or ideas. Basically, what can be done in the base starter kit repo to make it easier to maintain feature consistency/parity?

    For example, at work we have a fork of the starter kit and have built an updater utility that automatically migrates changes from the base template to the target project. Unfortunately it's not yet open sourced, so I'd have to talk to the team about what would have to be done to get something like that out the door and in good enough condition for public consumption.

    I've been (very slowly) working toward a more "stable" v2.0.0 release, but would be willing to tag a new version earlier if that makes sense for you, since, despite my best efforts, pulling latest master isn't always perfect. Basically, tell me what you need from me and I'll do my best to accommodate.

    discussion 
    opened by davezuko 31
  • Consider a name change

    Consider a name change

    As big of a fan of redux as I am, this project got more general with the introduction of blueprints. I think blueprints got a lot of things right that something like YO got wrong, specifically committing the blueprints into the project. So I could see this project taking off.

    I intend to use this on several projects which are not redux based. (I work in marketing and have to deal with dozens of projects with all kinds of setups).

    This is still a really young project, it might be a good idea to change the name while you still can? It's going to be confusing if this is still going in 5 years and no one is using redux.

    help wanted discussion 
    opened by ericwooley 24
  • Unable to run redux-cli, issue with finding particular modules?

    Unable to run redux-cli, issue with finding particular modules?

    Hi,

    Not sure if this is just an issue with me but i cant seem to run any redux commands other than redux which obviously just shows what is available. I get the following:

    [email protected] MINGW64 /d/Projects/vagrant_local/docker/node/app2
    $ redux help generate
    module.js:339
        throw err;
        ^
    
    Error: Cannot find module 'C:\Users\deepc\AppData\Roaming\npm\node_modules\redux-cli\bin\index-generate'
        at Function.Module._resolveFilename (module.js:337:15)
        at Function.Module._load (module.js:287:25)
        at Function.Module.runMain (module.js:467:10)
        at startup (node.js:136:18)
        at node.js:963:3
    
    [email protected] MINGW64 /d/Projects/vagrant_local/docker/node/app2
    $ redux g smart Button
    module.js:339
        throw err;
        ^
    
    Error: Cannot find module 'C:\Users\deepc\AppData\Roaming\npm\node_modules\redux-cli\bin\index-g'
        at Function.Module._resolveFilename (module.js:337:15)
        at Function.Module._load (module.js:287:25)
        at Function.Module.runMain (module.js:467:10)
        at startup (node.js:136:18)
        at node.js:963:3
    
    

    Im running node v 4.2.2 on windows 10. I installed it globally and am trying to use it with React Redux Starter Kit.

    Thanks

    bug 
    opened by deep-c 23
  • Sub command opts

    Sub command opts

    Initial PR for discussion of #106.

    Not intended for merge yet. Missing tests, docs, some potential functionality. Includes an update to default blueprint blueprint that isn't necessarily the final desired change, just a demo.

    The bulk of the work is done in src/cli/cmds/generate.js, there are some comments in there worth discussing.

    eslint barfs on blueprints/blueprint/files/blueprints/name/index.js, could use some help with that.

    opened by jamesr73 12
  • Blueprintrc

    Blueprintrc

    This is built on top of a rename PR that's paused while we reimplement the cli

    But there;s stuff to checkout.

    models/project-settings

    What this PR does is expand the ProjectSettings to allow it to accumulate arrays of blueprint paths, and relate them to the .blueprintrc file it came from. Other changes make is possible to track specific settings to the .blueprintrc file it came from.

    models/blueprint-collection

    The Other addition is models/blueprint-collection. This is a finder, loader and organizer of blueprints. It's currently instantiated by ProjectSettings, but it wouldn't take much to convice me that should actually happen in sub-command instead.

    Right now it will get blueprint paths from settings, and provide a searchPaths that is an array of all of the valid blueprint paths. It also adjusts paths relative to home(~), absolute(/) and relative to the blueprintrc dir

    Next up will be removing moving things from Blueprint and BlueprintCollection. Collection to be in charge of finding, loading, collecting and indexing. Blueprint doesn't have to care about anything but the blueprint at the path given

    opened by anithri 10
  • Added option to wrap components into a folder

    Added option to wrap components into a folder

    opened by ericwooley 10
  • eslint fails for blueprints/blueprint/files/blueprints/name/index.js

    eslint fails for blueprints/blueprint/files/blueprints/name/index.js

    /home/scottp/4winds/redux-cli/blueprints/blueprint/files/blueprints/__name__/index.js
      3:24  error  Parsing error: Unexpected token
    
      1 | module.exports = {
      2 |   if (description) {
    > 3 |   description: function() {
        |                        ^
      4 |     return '<%- description';
      5 |   },
      6 |   }
    
    bug 
    opened by anithri 9
  • generator should support --path option

    generator should support --path option

    It is common to create apps in react-redux using the fractal project structure outlined in the manual. Currently a generator can be used to easily create a component in the main project folder, but you can't use it to create a component inside of a route. Using ember-cli you can use the --path <path> option with some generators to create the files in a subfolder.

    In redux-cli it might look like this:

    redux g dumb butter --path routes/about
    # creates a component in src/routes/about/components/Butter/
    # creates a spec file in tests/routes/about/components/Butter/
    

    One of the best reasons to use a generator is that it automatically creates the test files for you. Having to manually create the test files when creating a component within a route is an example of why people often prefer to use a generator.

    The proposal here is that if someone wants to prefix the thing they generate with a path that should be easy to do. I personally think it should apply to any blueprint.

    Note: I might build this feature soon.

    feature 2.0 
    opened by heygrady 9
  • Common CLI environment

    Common CLI environment

    Creates a single instance of UI and ProjectSettings that CLI SubCommands can share rather than each one creating it's own. Ensures settings, inc BlueprintCollection, are only loaded once.

    Fixes SubCommand instantiation to make it easier to test SubCommands with mock environments.

    Tidies up buildBlueprintCommands some more, including deep merge of blueprint settings.

    Tweaks yargs parser to use full console width to display usage.

    If this is a suitable approach to addressing this issue I can add some tests, primarily for buildBlueprintCommands, before merging. Adding a full test suite for all SubCommands and Tasks really needs separate PR(s).

    opened by jamesr73 8
  • Missing instructions on contributions

    Missing instructions on contributions

    I haven't found any statements about how @SpencerCDixon views external contributions.

    I am a great admirer of the simplicity of this tool and how easy it is to create and customize blueprints. It holds a place in my tool chain. My thanks and respect to Spencer for it. I'm looking for your guidance before I do something to make sure development continues and improves.

    This project isn't updated very often, there are pull requests languishing and if Spencer has talked about his intentions, I can't find it. I'm fine with forking and creating a personal version, but I suspect that others have the same pain points that I do, so some guidance for your wishes for the future is requested. Do you want to maintain as BDFL, and update more frequently. Or add others that have permissions to approve pull requests and push new versions. Would you change ownership of the repo and npm package to a different maintainer that meets your standards? Do you not care and the wish to have someone else figure it out?

    I just want the project to move again, and I don't want to step on any toes while making that happen. If someone else wants to take the lead I'm ok with that too.

    My needs are mostly around blueprint directory configuration. I'd like to use ~/.blueprints or ~/.local/.blueprints as a common directory. I'd like to be able to use npm to package and share blueprints. I'd like to be able to clone blueprints into the local directory to encourage customization. I'd like to have a solution to sub-components. I'd like to expand the available blueprints. I'd like to bounce ideas about how i've been organizing components with others.

    edited for stronger good will indications

    discussion 
    opened by anithri 8
  • Error: Cannot find module '../lib/cli' (on MacOS)

    Error: Cannot find module '../lib/cli' (on MacOS)

    I was gonna try redux-cli, but I can't get past this and I don't know how to troubleshoot it. This is what I'm getting:

    `{ Desktop } > redux new rc-test module.js:327 throw err; ^

    Error: Cannot find module '../lib/cli' at Function.Module._resolveFilename (module.js:325:15) at Function.Module._load (module.js:276:25) at Module.require (module.js:353:17) at require (internal/module.js:12:17) at Object. (/Users/jesusiniesta/.npm-packages/lib/node_modules/redux-cli/bin/redux.js:3:1) at Module._compile (module.js:409:26) at Object.Module._extensions..js (module.js:416:10) at Module.load (module.js:343:32) at Function.Module._load (module.js:300:12) at Function.Module.runMain (module.js:441:10)`

    I'm on MacOS, using npm 3.10.8 and node 4.3.1. I've reinstalled npm, but it wasn't it. I couldn't replicate this in an Ubuntu system, which made me suspect it's something weird on my machine, but other global modules are working just fine.

    bug help wanted 
    opened by jkurei 8
  • How to integrate React-Router (v4.0.0) in this Cli

    How to integrate React-Router (v4.0.0) in this Cli

    Hello Guys, Can any of you tell how to integrate the React Router 4 in this CLI and also would be great if you can give me an example of how to create a route generator and generate the code on the fly. I saw the issue https://github.com/SpencerCDixon/redux-cli/issues/6, but this was different

    opened by ghost 0
  • does the world need blueprints when it has Hygen?

    does the world need blueprints when it has Hygen?

    I encountered a project called Hygen, which is very similar to blueprint/redux-cli. Not in a stole the code or anything. But the way the templates and cli work. But with all of the changes I was hoping to get into this project.

    1. Generators to create generators
    2. Template files use FrontMatter to define template data. the to: field is the destination.
    3. Inject data into files (routes, dependencies)
    4. cli args to pass data to templates
    5. Multiple locations for templates
    6. build prompts to ask user for data
    7. Customization data sources possible

    It does everything I need a generator tool to do, and it would take me very little time to port my existing blueprints to templates and generators.

    So to be blunt, does the world need blueprints when it has hygen? Is there value to continue efforts here?

    @SpencerCDixon @jamesr73 @walreyes

    question discussion 
    opened by anithri 12
  • Multiple and Alternate Templating Engines

    Multiple and Alternate Templating Engines

    @Drulac opened #134 to replace EJS with template-literal . Which is an idea I quite like, though I'm open to other opinions.

    But what about allowing the ability for multiple template engines? If we moved the template processing from src/models/file-info.js into the (src/models/blueprint.js)[https://github.com/SpencerCDixon/redux-cli/blob/master/src/models/blueprint.js]?

    We could provide template-literal (or ejs) as the default processor, if no other processors are defined. But allow specific file types to be processed by a specific engine, and for the entire rendering process to be redefined.

    // willfully ignoring pomises for brevity
    import postcss from 'somewhere';
    import haml from 'haml';
    const postCSS = postcss(['autoprefixer','cssnext']);
    module.exports = {
      // ...
      engines: { 
        css: (contents, context) => {
          return processor(contents, context, options);
        }
      }
      preRender: () => (console.log('starting'));
      postRender: () => (console.log('done'));
    };
    
    feature request discussion 2.0 
    opened by anithri 0
  • Use template-literal instead of EJS

    Use template-literal instead of EJS

    Template Literal is fastest, smallest and simplest template engine, because it use JS's literal template feature.

    It's 55 times faster than EJS, and it also use less CPU and RAM ressources, so it may be a good idea to use it instead of EJS 😀

    help wanted feature request 2.0 
    opened by Drulac 3
  • [WIP] Feature/blueprint clone command

    [WIP] Feature/blueprint clone command

    What does this PR do?

    • Adds blueprint clone <blueprint-name> <name> [options] command.
    • Solves #108.

    TODO

    • [x] Review from maintainers.
    • [ ] Replace cloneTo path to the new settings.cloneTo
    • [ ] Review Blacklisted Files
    • [ ] Add Specs.
    opened by walreyes 8
Owner
Spencer Dixon
Cofounder and CTO of Tuple - https://tuple.app
Spencer Dixon
An opinionated web3 starter for building dApps

Web3 Starter The goal of this project is to give you an opinionated boilerplate to start a web3 project. Contributing If you are interested in contrib

Nick Taylor 72 Nov 30, 2022
hopify boilerplate for embedded apps. Built and re-written from the official Shopify CLI's app boilerplate

Shopify boilerplate for embedded apps. Built and re-written from the official Shopify CLI's app boilerplate, but moved it to Typescript, and more modularized, so you can use any frontend framework you want. I left it comes by default, with React.

Leonel Aimar 10 Dec 5, 2022
Building web, Electron, Cordova and Chrome apps, and cross-browser extensions with React, Redux and Webpack. "Write once, deploy everywhere" concept in practice.

CrossBuilder Building web, Electron, Cordova and Chrome apps, and cross-browser extensions that use Redux actions for messaging. Redux states are sync

Mihail Diordiev 487 Jan 6, 2023
Building web, Electron, Cordova and Chrome apps, and cross-browser extensions with React, Redux and Webpack. "Write once, deploy everywhere" concept in practice.

CrossBuilder Building web, Electron, Cordova and Chrome apps, and cross-browser extensions that use Redux actions for messaging. Redux states are sync

Mihail Diordiev 488 Sep 8, 2022
React Package Starter - a simple and slightly opinionated starter kit for developing and publishing React packages

React Package Starter This is a simple and slightly opinionated starter kit for developing and publishing React packages. It comes with a several pre-

Tim Mikeladze 22 Dec 29, 2022
Opinionated React app boilerplate in TypeScript, based on CRA.

Marvin ⭑⭑ (deprecated) Deprecation Notice The first version of Marvin was released in 2016. After more than four years, we have taken the decision to

Work & Co 773 Nov 8, 2022
Provide an opinionated project template for simple React App's with authentication

Purpose This app is meant to provide a boilerplate application with as few opinions as seems reasonable. It provides a sample authentication flow with

Matt Deasy 2 Mar 1, 2022
Opinionated Dapp Starter Template

Opinionated Dapp Starter Template

Dung Duc Huynh (Kaka) 235 Jan 5, 2023
Remix Starter Kit is an opinionated boilerplate based off of Remix

Remix Starter Kit is an opinionated boilerplate based off of Remix, with all the bells and whistles you would want ready, up and running when starting a Remix project with Supabase.

Aftab Alam 208 Jan 2, 2023
💅 Micro-library to write stylesheets with a non-opinionated approach, free of dependencies, and in the easiest way possible.

react-native-styl is a micro-library for React Native developers whose goal is to write stylesheets with a non-opinionated library, free of dependenci

Danilo Woznica 38 Oct 27, 2022
Vtexio-react-apps - Apps react para plafaforma VTEX.

Projeto Modal + Apps Extras Projeto modal setando cookies. Desenvolvido em React + TypeScript para aplicação em e-commerce VTEXIO. ?? Este projeto se

Marcelo 1 Jan 3, 2022
A minimal skeleton for building testable React apps using Babel

Essential React A minimal skeleton for building testable React apps using Babel. Design Goals Getting Started Commands server build test coveralls cle

Mark Fayngersh 2k Dec 14, 2022
Small boilerplate project for building React apps with Serverless functions

Serverless + React Stack A simple, containerized project for quickly starting with Serverless and React. The goal of this project is to containerize d

Kent Safranski 2 Feb 8, 2022
MERN Stack Boilerplate provides starter kits for building web, desktop and mobile apps

MERN Stack Boilerplate MERN Stack Boilerplate provides starter kits for building web, desktop and mobile apps in pure JavaScript. Create New MERN App

MERN Stack Boilerplate 1 Nov 8, 2021
A playground for building creative web apps – powered by Gleam.

Lustre A framework for building create web apps – powered by Gleam and React! import gleam/int import lustre import lustre/element.{button, div, p, te

Hayleigh Thompson 21 Dec 12, 2022
Template for developing react app with structure inspired by Ignite CLI's react native boilerplate

React Template A react template heavily inspired by Ignite CLI's boilerplate for React Native, it uses a couple of generators with simple template cus

Ibrahim Elaradi 12 Aug 18, 2022
Template for developing react app with structure inspired by Ignite CLI's react native boilerplate

React Template A react template heavily inspired by Ignite CLI's boilerplate for React Native, it uses a couple of generators with simple template cus

Ibrahim Elaradi 12 Aug 18, 2022
A CLI tool to clean out boilerplate code created by create-react-app

Clean React Clean React is a CLI tool that removes and modifies some of the boilerplate files and code that are being generated when initiating a new

Meike Hankewicz 1 Dec 23, 2022
A cli tool to generate cra-template from current create-react-app project.

Create Cra Template A cli tool to generate cra-template from current create-react-app project. Create Cra Template Templates cra-template-popular cra-

Yoki 23 Aug 18, 2022