Technologist | Entrepreneur | Teammate

This website is partially an excuse to experiment and showcase different tools and techniques. The core engine is a Django application, fronted by Nginx. It lives on a Google Cloud Engine or AWS EC2 instance depending on the day. Pages are in majority static, rendered server-side using a few layers of templates to implement the theme, with Boostrap taking care of responsive layouts.

Dynamic and interactive gadgets are written in Elm or straight Javascript, with a Servant (Haskell) backend for micro-services. The live diagrams are either D3.js or hand-made SVG, and the 3D content is built with Three.js.


Over a decade ago I made this set of diagrams to explain to entrepreneurs the technology elements involved in an online retail venture and establish common terminology. While underlying solutions for each element has evolved, the structure still holds the road, facilitating discussions and investigations between the business and the IT teams about the priorities, costs and challenges that arise in assembling all the right pieces to obtain the platform that will sustain a successful growth.


The Storefront is your interface with customers. The customer experience (UX, CX, etc) through the virtual aisles, shelves and other sale devices of your site must be highly optimised to conclude a purchase. The famous Amazon's 1-click ordering button patent is a testament to the importance of that concept.

Having said that, on a website you will likely not be able to achieve an immediate conversion of a visit to a completed purchase. Basic marketing and the ability to give the customer a break and feel relaxed while visiting the site mean that many of the good old brick-and-mortar store elements are still relevant! Your online retail store must tell a pleasant and convincing story to maximise the relationship building with your customers, so they become your brand ambassadors.


The Purchasing process is dynamic, it involves the customer being able to consult the range of products offered, either through marketing-reflected paths or customer-selected priorities. Any item of interest must be easily put aside, support always at the ready to answer a customer question or guide the discovery process. The presentation must be up-to-date with the product inventory. Once the customer decides to end the shopping, a simple and clear payment flow must minimise the pain of the customer parting with her hard-earned money.

Product Reception

The identification and management of product lines, suppliers, delivery processes, payment plans, shared revenue agreements, multiple ownership structures typical (for digital media) must be integrated as much as possible into the platform and the flow of information flow automatically from initial data entry to business rules modifications. During growth phases, these activities take a significant amount of work and are very error-prone. This in turn will add inertia in the sale processes and create unnecessary delays and stress that reduce the success of the business.

Inventory Buildup, Cataloguing

Beside managing product lines, the online retailers must also track individual instances of each product. This is often overlooked, and lead to customer care issues as there can be evolution of products over time (eg subcomponents difference in a given item), or even more complicated versioning situations in the case of digital items (eg working with different spatial resolution of videos, compression algorithms, etc). Additionally it is important to reflect on how the presentation of a product in the catalog will be true to the many versions or derivatives that will exist over time, and to facilitate the on-boarding and categorisation of the many versions of a product specifications and visual representations.

Product Placement

The flexibility of product placement on the platform is critical, to take maximum advantage of best sellers status and very fast reaction to customers shift in interests. The platform efficiency at integrating layouts, flows and visuals while offering great flexibility in editing and customisation will be a significant differentiator once you start understanding your customers and need to create a strong differentiation with your competitors. Your platform must also be efficient at sending information to users, which means having responsive layouts to best match the form factor of a given user's device, send well scaled and compressed imges and videos and minimise the amount of html, css and javascript required to display a page.

Advertising, Marketing

Getting known by potential customers and them explaining your brand proposition is a critical task, whether you operate online or not. Google and social networks Ad platforms will nowadays broadcast your message to million of people for a relatively low cost. The downside of these very easy-to-use advertsiement channels is that they broadcast so much, the click-thru rates are very low. Your initial challenge is to make an attractive ad, so you do convert some impressions into clicks. But that's just the start. Your platform must be able to detect which advertisement campaign has convince a user to come to your site for the first time, and present itself with all the required bells and whistles to create a convincing first visit. For example, your site should continue the narrative of the advertisement seen by the new user and offer some promotional offer to close a first sale. Your platform must also present itself in the right way to search engines in order to achieve the famous search engine optimisation (SEO) targets. WHile there is a lot of black magic in this area, at least make sure that the simple rule applies, such as providing relevant keywords on your pages that can be understood by a machine algorithm to match a search request, while being careful that the page content doesn't appear inconsistent to the same machine algorithm so the site is identified as a clickbaith. Then your platform must provide very quickly the marketing team with profiling and customer experience reports so they can understand who is visiting the storefront and improve the presentation, offers and advertising to increase the sale volume and revenues. Some of this information will be provided by the advertisers and social networks, but without a proper integration of their event tracking tools the insight they can provide is probably going to be too coarse to help.


This area is more relevant to physical good vendors, especially in media. The first challenge with licensing is the respect of rules that often restrict the presentation of products to customers based on their location, gender or age. The second challenge comes at payment time, where the sharing of revenues can be fairly complex. The online retail platform should be able to create payment orders for all license holders to do away with an otherwise significant workload on the accounting team.


Like every other team in an online retail venture, the accounting and finance team shouldn't lose their time counting beans and making bar graphs but be involved in creative thinking to maximise the utilisation of cash flows, minimise the effect of interest, depreciation, taxes and adjustments and keep a vigilant eye on any financial stress in the system. Thus your retail platform must be tightly coupled with the usual accounting functions, hopefully automatising not only customers payment processing but also suppliers payments.

Customer Support, CRM

The integration of a performant Customer Support component in your website is critical to your online retail business success. It means your Customer Support team must be able to identify someone reaching to them in your customer database very quickly, they must be able to see the customer history of purchases and interactions with the CS team, they must be able to follow-up on an ongoing case, they must be able to simulate the customer intercation with the storefront and understand any issue the customer face in her experience, and they must have the means to provide rapid solutions to the customer issues. Finally they must also be able to interact with other teams to relay issues about the storefront, the products or other relevant items.


As your online retail operation gets some traction, your ability to extract business intelligence for the raw operational data will be key to optimising your actions to capture all possible growth at the lowest cost. The features offered by your platform in terms of data reporting and data mining should be a top selection criteria when looking at different eCommerce or custom built offering.

Operation and Maintenance

With the development of cloud computing and eCommerce platforms, this element of the online retail business is arguably the simplest. The modern online retail platform must be operating on machines that have redundant components, and it will exist in multiple physical locations to continuity in the case of a catastrophic event at a given hosting facility. The underlying infrastructure will provide monitoring tools to insure that software, networking and storage components are operating within specifications, and it will have notifications sent by email and instant messaging to alert of issues requiring human attention. The operating infrastructure will also scale automatically as volume increases or decreases to capture business growth while reducing operational costs when business contracts. The expectation with eCommerce platforms such as Shopify, SquareSpace, Magento, etc is that their entire infrastructure is operating as such and your venture doesn't need to take care of any of these items, although it is not clear for most what their Service Level Agreements are, if any. Custom platforms will operate on AWS, Google Cloud, Azure and the such, which all provide the usual features such as Docker and Kubernetes to implement non-stop scalable operations with very minimal efforts.


Shopify? React.JS? Wordpress? etc... What's the logical approach to selecting a eCommerce ready-to-go solution versus going for a custom site development?

This topic has been a recent focus of mine, given the appeal of not having to do almost any work and still get an online retail business operating as expected.

Some of the criteria I'll explore are:

  • ease of prototyping for discussions with Biz Dev, Marketing, advisors, investors
  • batch content formatting capabilities to transfer from one storefront “theme” to another
  • non-IT staff efficiency at storefront editorial management, back-office tools UX
  • feature development vs QA phase vs production environments management
  • product on-boarding efforts & optimal speed
  • multi languages / multi currencies / multi anything support
  • pricing rules flexibility and management effort to sustain marketing activities
  • selection and budgeting process for add-ons, maintenance efforts, bug detection and support
  • flexibility of adding custom components
  • relevance in evolving online retail channels (smartphone apps, messaging, social networks)
  • purchasing fulfilment support for just-in-time digital products
  • hiring effort of development / maintenance resources, quality of people in the ecosystem
  • amount of technology lockup and potential cost of transitioning at a later stage of growth
  • business intelligence reporting, operational data statistics

NeXT's WebObjects was released in 1996. It was an incredible web platform, using an object-oriented model, a virtual DOM with cachable serialized storage, a no-code page editor with strong model-view-controller design and backed by NeXT's very powerful database encapsulation system (Entreprise Objects Framework, or EOF). Most of these concepts make up the most modern web platforms; think Spring or Vaadin with Hibernate, and an Axure/Figma page editing/prototyping tool, tightly integrated with the backend elements, the whole thing being used just as the standard app development. Given it was so fantastic, why didn't WebObjects overtake the entire web market? Simple: the entry price to that technology was 50,000 USD, which meant very few could get their hands on the platform without a major commitment. And then there was a strong no-code approach to page authoring, at a time when typing static HTML or Perl to create dynamic sites was the way to go, which made a lot of developers nervous about not being able to jump into Vi to modify pages on the live site.

After Apple acquisition of NeXT, WebObjects transitioned slowly but surely toward being an internal tool only, used to build iTunes and the App store. As of this writing, it still seems to power some of iTunes site.

Luckily for me, a close relationship with NeXT led to early access to the technology, and then with a full blown platform to use for my own projects without dealing with the crazy price tag. The learning experience was just amazing! Although it was not possible to bring along this technology in later ventures, I have tried to always replicate the philosophy and concepts discovered through WebObjects. And throughout the evolution of other frameworks such as PHP, Rails, Django, or Servant I have been able to recycle the WebObjects approach to great benefit.