├── .gitignore ├── LICENSE ├── README.md ├── bin └── sambell.js ├── package.json ├── scripts ├── build.js ├── run.js └── watch.js ├── template ├── .gitignore ├── client.js ├── components │ ├── App.js │ ├── Moon.js │ └── Outside.js ├── gerty.js ├── package.json └── server.js ├── webpack ├── create-config.js ├── handle-stats.js ├── ready-banner.js ├── replace-entry.js ├── sambell-client.js ├── sambell-server.js ├── timer-plugin.js ├── webpack.config.client.dev.js ├── webpack.config.client.prod.js ├── webpack.config.server.dev.js └── webpack.config.server.prod.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | npm-debug.log 2 | node_modules 3 | build 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright JS Foundation and other contributors 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | 'Software'), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 17 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 18 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 19 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 20 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DEPRECATED 2 | 3 | This project is deprecated. Use next.js, etc. 4 | 5 | --- 6 | 7 | # :new_moon::new_moon::new_moon: sambell :new_moon::new_moon::new_moon: 8 | create performant server-rendered React applications with no build configuration; ideal for universal react-router projects. 9 | 10 | - similar to [create-react-app](https://github.com/facebookincubator/create-react-app), but server side rendering. 11 | - similar to [next.js](https://github.com/zeit/next.js), but with [react-router](https://github.com/ReactTraining/react-router). 12 | - `sambell` came first! commit history proof :stuck_out_tongue_closed_eyes: 13 | 14 | Both [create-react-app](https://github.com/facebookincubator/create-react-app) and [next.js](https://github.com/zeit/next.js) are great projects, try them! I like aspects of both. But you don't get a **universal react-router** application out of the box. 15 | 16 | ## What will my app look like?!? 17 | 18 | Check out [the template](template)! 19 | 20 | ## Install 21 | 22 | ``` 23 | yarn global add sambell 24 | sambell new app 25 | cd app 26 | yarn start 27 | ``` 28 | 29 | ## Features 30 | 31 | **Dev experience** 32 | 33 | - Everything you (or at least, I) want without setting anything up! 34 | - Client side SPA with [react-router](https://github.com/ReactTraining/react-router) **version 4**. 35 | - [styled-jsx](https://github.com/zeit/styled-jsx) is a great feature of Next.js that I bring in here. I find it to be more pleasant than `css-modules`, and eaiser to work with for a universal application (critical styles, etc). 36 | 37 | **Performant** 38 | 39 | - React **16** 40 | - Server side rendering. Universal. 41 | - Critical styles with [styled-jsx](https://github.com/zeit/styled-jsx). 42 | - Async loading of routes with `react-loadable` (forked version `@humblespark/react-loadable`). 43 | - Async (`