PixelOven Framework
This project is a mono-repo
designed to contain several packages that in combination make up the PixelOven Framework. Below are instructions on how to contribute to this project as well as directions on how to integrate each individual package into existing projects.
Table of Contents
Requirements
This project has the following requirements for development. Keep in mind that the versions provided are a recommendation while other versions may be compatible they are untested.
- Node >=
8.0.0
- Yarn >=
1.0.0
Integration
TBD Link to each package here.
For existing projects please review our integration guide for more details.
Contribution
TBD Link to template directory with instructions for creating new template.
This project was born from a small collective effort within GoFundMe with the purpose to abstract common configuration and infrastructure used in the creation of isomorphic React applications. However, for this project to be even more successful we need your help. Join us and start coding!
Please consider reviewing our contribution guide for more details.
Features
TBD Add feature summary plus below might be inaccurate
Git Hooks
There is already set a precommit
hook for formatting your code with Prettier
By default, there are two disabled git hooks. They're set up when you run the npm run semantic-release-prepare
script. They make sure:
- You follow a conventional commit message
- Your build is not going to fail in Travis (or your CI server), since it's run locally before
git push
This makes more sense in combination with automatic releases.
Improvements
Below are just some of the up coming ideas for improvements.
- Review this starter and this one for trending ideas.
- Should look into tslint-immutable
- Add better typings for all packages but especially
docs
- Update package readmes
- Integrate TypeDocs with story book and for this repo
- Clean up deps across all packages
- Improve Offline Support of dynamic urls
- Create generator for new package
- Create generator for new starter based on demo app.
- Docker/CI support for open browser. (don't)
- Load env for storybook too.
- handle precommit for each package https://github.com/sudo-suhas/lint-staged-multi-pkg
- https://github.com/atlassian/lerna-semantic-release
Our Commitment
We are committed to providing a safe place for everyone. Please review our code of conduct guidelines to help us with our commitment. Thank you!
Planned v6
- Move generators to use gluegun
- Unify all logging and make json logging a thing
- Remove react-dev-utils
- Add help to CLI and documentation
- Reach 90-100% test coverage
- node-mocks-http replace with supertest
- Make client/server compilation configurable - we want to be able to use webpack in a library sense too
- Remove TypeDocs option for now... need to find a better solution (http://caolan.github.io/async/v3/). Make Github addon work
- Get audit into build and make sure it passes without critical
Planned v7
- Add static site generation support
- Add support for PWA
- Remove semantic UI deps in main example
- Break middleware up into smaller packages
- Create component library for the server side components and views
- Make @core wrap super common deps and @tasks a simple local cli wrapper with no deps
- Make smaller dep core addons
- Break webpack config into smaller parts - reuse between storybook and webpack compiler
Planned v8
- Create a unified configuration (perhaps an addon?) for the CLI
- Create a env addon for the CLI for those who wish to pull .env from a file (based on @env)
- Create our own all in one dashboard like Jarvis + BundleAnalyzerPlugin + console (read only)
- Create a commit CLI wrapper for commit lint... with config for both citizen and commitlint
- Update examples to be more specific