Electronic storefront is a basically look and feel of any eCommerce business. Lets try to figure out how to make it effective and engaging for your customers.

1 - Mobile experience and performance. Good mobile experience heavily depends on performance because mobile devices are not so capable in terms of CPU and bandwidth and this is the only reason why ecommerce companies develop own native applications. In the world of perfectness, mobile layout of main storefront works as fast as native and this would be enough to outperform native app. Just imagine, you have the same features, analytics tools, marketing tools (e.g. push notifications) etc in the day one it was developed at main storefront. And furthermore, you don't need to pass app aproval process and your visitors don't need to install application. Perfect world.

2 - Storefront portability. In the perfect world, storefront is a true asset. Storefront is a huge part of all development efforts. And what if you are making a decision to move to a new ecommerce platform? You are starting this work from scratch. Perfect storefront should not have hard dependecies to your back office.

3 - Analysis friendly. Literally all user interaction with storefront should be saved. No matter what is the level of analysis complexity currently in use and what data involved. We should save all interactions now and later we will benefit on this data. We might decide to implement advanced store monitoring using statistical models, verify 3rd-party analytical tools (e.g. GA) and test its integrations, build some complex reports, generate recommendations and cross-sell lists using user profile, adjust prices, predict supplies and volumes, import history to new analytical tools etc (this is a really long list). Perfect storefront should save all business events and its contexts without some additional developers efforts.

4 - SEO and SMM friendly, highly customizable and extensibile, secure etc.. it goes without saying.

And now I would offer you to take a look what might be under the hood of Perfect Storefront.

Really trendy ReactJS as it provides us virtual DOM and makes dynamic page modifications much more efficient. It will result in to performance improvements, especially at mobile devices. Another one important feature of ReactJS is a capability to render HTML page code both at client side and server side using the same code base. And this is a really important feature because search engine robots still can't handle dynamic pages which are produces at client side (single page applications). So, using ReactJS we can effectively build pages at client side and stay SEO and SMM friendly because robots will be getting complete pages from server.

Flux architecture from Facebook engineers fit perfect with React. Flux is a word made up to describe "one way" data flow with specific events and listeners which most importantly makes us capable to implement #3: catch all business events at storefront and send them to storage for further analysis.

As we are going to replace mobile apps with one storefront we probably might need Push Notification component. Web Push is the next ingredient. It is implemented in all major browser and works just like push in mobile apps. However, one more ingredient is absent: Web Push not implemented at iOS yet. Checkout this article for details: https://onesignal.com/blog/when-will-web-push-be-supported-in-ios/

Finally, Flux architecture allows us to make a loose couple with data source and communicate with it over the API. Nevermind how does your back office works (some inventory system, Shopify, Magento...) until it has API endpoint, we can get all data and fullfill the storefront on the fly.

Sound good? Okey, check out the demo!