Handling the Web

You think that's air you're breathing?

It's difficult to remember what life was like before HTTP arrived. Sure, there were advanced computer networks, email, bulletin boards, and more before then. But the advent of HTTP, the web browser, and the growth of ubiquitous internet access sparked a permanent change in the way individuals and organizations share and engage with one another. Over the course of just a couple of decades the web has gone from being a mere novelty to a nearly necessary aspect of life for both families and businesses alike, and during that same time period the explosion of related technologies has been unprecedented. Here at Moxie Group, we live and breathe in this sea of technology, and love to bring that experience to bear on the interesting and complex problems that our clients engage us in.

Dealing with Devices

Ignoring users of mobile phones and tablets these days is more than just naive, it's quite foolish. The statistics are proving out that nearly 60% of users interacting with individual web sites these days are using both mobile devices and desktop PCs, and another 15% are using mobile devices exclusively. Tailoring a site to best serve different device types though is not a one-size-fits-all question. For some sites, taking a responsive approach is the most logical solution, but for many sites the responsive approach brings with it both excessive page weight and functional limitations that can kill the mobile experience. For sites that decide a more mobile tailored solution is worth the investment, then several key questions need to be answered such as how to best detect the device type (WURFL, DeviceAtlas, etc.) and how to dynamically react to the incoming URL requests (single canonical URL for all devices types, separate mobile domain, unique page paths, etc.) We're very familiar with these challenges, and have a successful track record implementing multiple kinds of mobile site solutions.

Service Enablement

One of the taken-for-granted things that HTTP also helped bring about was in providing a universal and simple standard for computers to interact with each other. Even with HTTP as the protocol backbone though, choosing the right SOA and integration technique can be tricky. We've learned how to help choose and implement the right strategy for the task at hand. When we're working on a service whose data can be nicely isolated from the rest of the enterprise, you'll find us recommending IaaS models like Google App Engine or AWS BeanStalk. If the service needs to be accessible directly to an end user in a web browser, we'll bring in JSONP techniques. When the service is going to be exposed to the world to use, we'll setup the appropriate request signing OAuth techniques to guarantee the identity of the person or system attempting to access the service. The list of strategies like this goes on and on, and we'd love a chance to help you enable the right kinds of services for your business challenges.

Making it Pretty

The days of table-based HTML layouts and "spacer GIFs" are long behind us, and CSS is here to stay. Doing CSS well though has almost become a field entirely to itself, and we've learned that depth of knowledge in this space cannot be taken for granted. Leveraging CSS carefully is also one of the key factors that impacts how intuitively and quickly a user can interact with pages on your site, with the potential to leave them frustrated that the site seems sluggish or difficult to use if it's not handled well. Therefore, you'll find us recommending things like the use of sprite-based images, taking advantage of CSS patterns instead of background images, leveraging font-based icons, setting up CSS3 animations instead of Javascript timers, using media targets for making sure things look awesome on retina displays, and utilizing technologies like SASS to keep all of the code organized and delivered to the browser in the most efficient means possible.

Handing Interactivity

For many sites jQuery has become the de facto standard for creating interactivity, and we certainly know our way around that ecosystem well and love its myriad of available extensions. We tend to then bolt on additional frameworks, such as Knockout, in order to make the code maintenance and page logic more straightforward. However, when the application needs get more complex, a raw Javascript solution can easily become unwieldy. So, you'll find us recommending GWT for large web site applications that require a richer set of interactivity and careful architectural management of the different parts of the system. When using GWT, we often also utilize the GWTP framework for creating a more organized and well isolated code structure, ensuring the "separation of concerns" principle that is critical to ensure a large code base can be maintained over time. We also strongly believe that beautiful applications that delight users are better for business, so we've developed techniques that merge the GWT technologies with styling techniques that allow for an impressive creative treatment and responsive interface. Some evidence of our strong GWT practice can be found in the popular open source projects that we maintain and freely give away to the world.

How we think, what fires us up
You think that's air you're breathing?
Keeping it all together while spreading it all out
Optimizing infrastructure for performance, efficiency, and automation
We've benefited, so we contribute