Mugo Web main content.

All Lit Up

On All Lit Up, readers of emerging, quirky, and unabashedly Canadian literature can find and purchase the best books this country’s independent publishers have to offer. The site currently features some 5900 editions from close to 3800 contributors across 58 publishers.

On All Lit Up, readers of emerging, quirky, and unabashedly Canadian literature can find and purchase the best books this country’s independent publishers have to offer. Curious readers can also browse through our exclusive behind-the-scenes content about the books, authors, and publishers whose work is available on our site.

Additionally, All Lit Up serves as a community bookstore for readers with no local option, ensuring every Canadian has access to the literature produced by Canadian independent publishers.

All Lit Up came about as a response from the members of the Literary Press Group to the changing ways readers discover, purchase, and read Canadian books. The site currently features some 5900 editions from close to 3800 contributors.

The Literary Press Group, which manages All Lit Up, is a non-profit membership association of 58 independently-owned and -operated Canadian literary publishers. Since 1975, the LPG has helped its member publishers sell, distribute, and market their books to booksellers, libraries, institutions, and now, through All Lit Up, directly to readers.

All Lit Up was our first opportunity to deploy some of the proprietary technology that had originally been developed by Mugo for, and then to take it further still.

The Mugo team took the chance to rebuild the extensive data import components we use on 49th Shelf to handle large volumes of ONIX data, an XML-based data standard used extensively to exchange product information within the book industry supply chain. And we deployed an entirely new user interface for All Lit Up, one that used a responsive design approach to help ensure that the site could be effectively delivered across a complete range of desktop and mobile devices.

The other notable thing about this deployment is our extensive integration with e-commerce and e-book fulfillment components provided by UK-based Stison. Mugo accomplished this integration in collaboration with Stison via the development of a system of highly effective web services that pass users and user info seamlessly between the eZ Publish and Stison components that have been combined for the All Lit Up site.

This was another ambitious project undertaken with great humour, imagination, and dedication by the Mugo team, and the result is nothing short of spectacular. All Lit Up now lists nearly 8,000 Canadian literary titles from more than 40 publishers. The site is an invaluable platform for those publishers to build direct relationships with readers, and as such is a major contribution to marketing and selling literary work in Canada.

- Craig Riggs, Project Lead, All Lit Up






Before All Lit Up, Canada did not have an online book retailer that specialized in literary works from Canadian-owned publishers. This was a major gap in the marketplace, and provided an opportunity for a nonprofit like the Literary Press Group (LPG) to create a storefront that would benefit the Canadian-owned sector directly by addressing a group of readers (primarily core literary readers) who are unserved or underserved in Canada’s current book retail market.

Mugo Web has been the development team for All Lit Up since conception and has supported LPG to make the most of this opportunity.

The site leverages major infrastructure components in Canadian publishing, including BookNet Canada's BiblioShare database and, and as such represents an important new collaboration between Canada's literary publishers and other key industry groups, including BookNet Canada, the Association of Canadian Publishers, and the Literary Press Group.

All Lit Up features rich title listings for nearly 8,000 literary titles, all from small and mid-sized presses in Canada. It also incorporates an active editorial program featuring original content and an active community on social media.


Data import component update/rebuild

One of the key features of the All Lit Up site is that it pulls all of its book metadata via an ONIX feed from BookNet Canada's Biblioshare services. In All Lit Up, this is a rewrite of the code that we have developed for The 49th Shelf.

In doing the rewrite, we have consolidated several years of experience into a new codebase that is faster and more maintainable. The problems associated with importing and making use of an ONIX feed are numerous and complex, including:

  • diverse editions
  • massively de-normalized data
  • corrupted markup
  • stripped-down HTML

As well, All Lit Up added some new requirements to the import process such as requiring that only one edition of any given title be shown on the site -- this being different from The 49th Shelf where we show every single title in all its ONIXy glory. All Lit Up also required the option to manually invoke the update process for specific titles, again different than what happens on The 49th Shelf where the 80,000 titles are continuously being polled for updates.

All Lit Up uses a third party platform for handling fulfillment and DRM delivery of eBooks: This meant that the import process had to provide support for interacting with the remote system so as to provide updates and raw ONIX.

The ONIX import component is a powerful and battle-tested piece of code that would be of use to any publisher considering using ONIX to drive a website and we are leveraging it to build a platform specifically for book publishers.


Responsive design

The All Lit Up site was developed with a focus on responsive design from the beginning. This approach allowed All Lit Up to target a much greater range of devices in a cost effective manner as well as making the site more accessible overall. The layout adjusts in a number of ways, re-flowing and re-sizing content to provide a better user experience for users on smaller devices, such as mobile phones or tablets. Some of these modifications include increased font and image sizes, larger UI controls, re-stacking vertically rather than horizontally as well as grouping and consolidating UI elements to afford additional space for content and images.

While the mobile/portable layouts differ drastically from that of the desktop, they do offer all of the rich features of the desktop experience, including carousels and various modals.

The responsive design approach seems to be well received as over 20% of visitors are currently browsing the site from a mobile device such as smart-phones or tablets.

A website that displays well on such devices is also more likely to be used 'on-the-go', for example to get suggestions while at a bookstore, or to check out an interesting book that has been reviewed in a magazine or paper, on the radio or during a podcast.


mobile view of site showing the book feature slider


mobile view of site showing the read more feature


view of the mobile site, showing the expand image feature




Shop integration and interaction

For the e-commerce integration Mugo provided an interface that allowed site visitors to add items to their shopping cart transparently without interrupting the shopping/browsing process. A data exchange service handles the communication between the All Lit Up site and the third party e-commerce solution behind the scenes, handling books being added to the cart and providing an updated cart count back to the site to display.

In addition to this service, the e-commerce platform also uses a range of other services to retrieve book and merchandise content updates on a regular basis as well as user validation, registration and authentication for the shop via All Lit Up.

These services allow users not yet registered on the site, to start shopping without having to go through a sign-up process first. User registration and login are both available as part of the checkout process after the user transitions to the shop to review their cart.

This separation of services allows for content management to handled via eZ Publish entirely, while cart and transaction handling are done by the e-commerce platform.


Web development

All Lit Up runs on the Enterprise Content Management System eZ Publish. eZ Publish's robust content model enables all book and supporting data to be stored and displayed. It also provides a flexible framework for working with the data in various ways, as well as connecting to external services for data exchange.

As eZ Publish experts, Mugo Web's web development for All Lit Up has included:

  • Scripts to manage pricing & availability data
  • Web-services to provide user validation & authentication for single sign-on and registration
  • Web-services to provide up to date book and merchandise data to the third party e-commerce platform
  • Responsive layout to enable better access to the site across a range of devices
  • onix2 extension(s); a re-write of Mugo's ONIX data handling and import extensions consolidating several years of experience working with ONIX data into a leaner, faster and more maintainable code base.
  • Customized data import and update scripts to consolidate large sets external book data feeds of different quality
  • Scripts to manage record updates in bulk, by section, or individually; and to update entire sets of information, or specific pieces of information such as purchase links
  • Content maintenance scripts that dynamically adjust behaviour depending on server load
  • Content modelling for categorization, site structure, and content attributes
  • Enhanced object relations to store not only the internal links but also information about the relationships themselves (such as contributor type)
  • Non-book content integration (e.g. Merchandise) featured on the site and sold through the same online shop (3rd party)
  • Templating for dynamic landing pages, extended search functionality (using the Solr-based eZ Find extension), open graph meta data, book pages, and more
  • Social media integration
  • Server setup



Read more

Setting up custom Events in GA4

Events are the buzziest change between Universal Analytics (UA) and Google Analytics 4 (GA4). There’s a good reason for that — they mark a very substantial shift in how property owners track data on their sites. This is a daunting prospect and an opportunity. As a property owner, you will need to reevaluate how you use your analytics and how you can make the new system work for you. As you make the switch to GA4 before UA’s End Of Service date (July 1, 2023), you might be focusing on just recreating a familiar pattern and making your GA4 property look the same as your old UA dashboard; the better option is to clarify exactly what you need from your site’s analytics and leverage GA4’s superior flexibility to accomplish your goals.

Part of a data table in ASCII format showing output of the eep:location:subtree command

eep-bundle: eep is back, this time for eZ Platform / Ibexa DXP

We’ve discussed eep (Ease eZ Publish) several times over the years. It’s a powerful tool we at Mugo Web have used for innovative solutions. For the uninitiated, eep is a collection of scripts to support developers working with eZ Publish. Now that eZ Publish is a legacy product, we needed a new option for eZ Platform and Ibexa DXP. Introducing eep-bundle, a collection of Symfony commands specifically selected to work with the new system! We’ll dive in and look at some of the more useful functions eep-bundle provides, such as commands to work with cache, content, content field and type, location, section, and user data.

Business person riding rocket over top the GA logo

An introduction to what's coming with GA4, or: How I learned to stop worrying and love analytics

If you have a Google Analytics property, you’ve probably heard about the upcoming switch to GA4. You might have seen the banners across the top of the page when you log into UA. “Universal Analytics will no longer process new data in standard properties beginning July 1, 2023”, a polite yet vaguely threatening notification, easily ignored as a problem for next year. If you are proactive, you might have already started the switch to the new platform, having heard the recommendation to run both concurrently until the switch. And if you are like many, that might be as far as you’ve gotten.

A small shopping cart filled with boxes that say online shopping, next to a large magnifying glass

Explore flexible commerce features with Mugo’s ReaderBound platform for publishers

Specialty presses have specific requirements that aren’t met by run-of-the-mill websites or standard e-commerce solutions. Their readers are among the most demanding consumers you’ll find online, and they want precise details about your publications, trustworthy reviews, and recommendations from a community of like-minded readers.

A retail shopping cart e-commerce system isn’t up to the standard these customers expect.

This is part of the reason why Mugo built ReaderBound, an all-in-one, a feature-rich website platform for publishers. The specific demands of this industry require an integrated, purpose-built commerce experience.

There is an image of a phone with a material request form showing on the screen. Text beside the phone reads Custom Forms with Mugo Library.

Seven examples of how libraries use Mugo Library's Custom Forms to engage with their patrons

Libraries provide a myriad of services for their patrons, which requires a lot of coordination and communication. Patrons need multiple ways to interact with their librarians; in-person, via phone, social media, chat, etc. A modern library needs tools to quickly collect information and requests with an intuitive workflow for staff and the public.

outline of a person sitting at a computer typing. Text on screen reads Tales from a Developer: Troubleshooting Varnish

Tales from the Developer: Troubleshooting and fixing issues with Varnish

When things go seriously wrong in a well-built but complicated system, the cause is often a cascade of small failures that pile up. Not that we’re building rockets over here, but an excellent example is the ill-fated Ariane flight V88. Solving the issues behind such failures can be problematic. Many things contribute to the difficulty, from the extensive use of caching to the need to convincingly reconstruct the failure in retrospect. Debugging this kind of failure, especially under pressure, is hard. We consider the ability to do this to be the hallmark of a senior developer. Even so, it is essential to have a team of experts working together to troubleshoot issues and find solutions promptly to help keep your site running.

Google Analytics logo beside a bar graph with a magnifying glass

Cross-domain tracking in Google Analytics: Excluding domains in GA4 and GTM

If you manage one of the millions of websites affected by the Google-mandated migration from Universal Analytics (UA) to Google Analytics 4 (GA4), you might be following the best practice of simultaneously running UA and GA4 scripts until you’re ready to adopt GA4 fully. One of the analytics features that needs special attention is cross-domain tracking.