Background
When starting any new JavaScript application, architectural decisions impact the project's future. And, doing the ground work to create the good starting point eats time. There's shed-load of "universal starter kits" to solve this problem.
There's a slew of benefits to universal applications: SEO, performance, control of data-persistence and accessibility. But, there're challenges to creating flexible, resilient and maintainable systems with a developer experience providing immediate feedback and modern tooling.
Breko-hub aims to provide a SOLID architecture with a lucid and tested code base. Applications created with Breko-hub as a starting point, scale with confidence!
Hot Reloading and Live Updates
A server-side-hot-reloading POC was a key inspiration for starting Breko-hub as a unique starter kit. Breko-hub pushes for a good developer experience by giving quick feedback to code changes.
Functional Testing
By strictly defining code boundaries, we get confidence in the resilience of an application. It allows us to add new features and support existing features with a smile.
Architecture
Separation of concerns
Breko-hub adheres to the separation of concerns (SOC). The SOC is important for testing strategies and feature organisation. Aiding larger development teams, allowing developers to work without stepping on each others toes.
Dependency inversion
Dependency injection (DI) does not need a library or framework. It's nothing more than a pattern to provide flexibility. Breko-hub has utilized this pattern in pragmatic locations. Because of DI, Breko-hub benefits from easier functional testing and hot reloading.
Routes and asset names get injected into the server middle-ware for live updates. Functional testing uses DI, to inject and stub out boundaries between the functional units.
React, Redux and Koa
React and Redux provide reliable interface-tooling. They're used on both client and server for great universal features. Their abstractions work great for testing!
Koa is a node server framework for asynchronous flow. Koa offers great interoperability with development tooling and makes boundary testing a breeze.
Other starter kits
Apologies for being political here...
Today, there's an ocean of existing universal starter kits -- each offering great features! But it's easy for them fall to similar problems: complicated startup processes and a lack of high level testing. Breko-hub positions itself to introduce these features into the universal ecosystem.