On Github Snugug / presentation-front-end-tools
Breakpoint is a Sass and Compass based tool for handling media queries
It has become the go-to media query solution for those working with Sass
Singularity is a Sass and Compass based tool for working with fluid and responsive grids
It has quickly become one of the two most prominent grid frameworks when working with Sass
Unlike Twitter Bootstrap or Zurb Foundation, Singularity is a production ready tool that doesn't have pre-defined grids, but allows designers and developers to build their own
Toolkit is a Sass and Compass based set of mixins and functions to assist in progressive enhancement and responsive web design
The most used items from it include its Border Box, Clearfix, and Intrinsic Ratio mixins, the last being used for creating responsive embedded videos
Sassy Maps is a Sass and Compass based framework for working with maps in Sass
Memoization frameworks allows for increased performance of repeated function calls
Aurora is a Drupal base theme optimized for responsive web design, especially with Sass
The Drupal base theme used for sites built on Publisher
Borealis is a Drupal module providing easy to implement responsive images based on industry best practices
A rewrite is planned to increase performance and decouple the JavaScript from Drupal
Magic is a Drupal module allowing for advanced theming optimizations, including some basic performance optimizations, across all themes
CSS/JavaScript removal and enhancements, development improvements
EQ.js is a JavaScript library used to provide element query like functionality
Allows for a single component to be built that will adapt to the layout it's put into
North is a set of standards and best practices for responsive web design and development, from process through front end code
Development Process, Content Strategy, Visual Design, Responsive Web Design, Performance, and HTML/CSS/JS all covered.
A Style Prototype is a design in browser tool that leverages all above projects to modernize the design process for modern web development projects
The web is not print; this is a tool for designing websites, not print
The project ended before getting too far into using Style Prototypes
Team wanted to use Style Prototypes, they were discussed with design agency but never delivered as it was a fixed bid and the agency seemingly cut corners
Style Prototype started, but the designer left the team before it could be completed
* - What we plan on using, as development hasn't started yet
Domain Modeling is the act of creating a conceptual model of the various entities, their attributes, roles, relationships, and the constraints that govern the problem domain. It is created in order to represent the vocabulary and key concepts of the problem domain.
Domain Modeling is most often a software engineering technique used to get product owners and developers all talking the same language.
Content Strategy is the planning, development, and management of content. Creating an effective content strategy involves analysis, modeling, and an understanding of the system in which the content will be displayed
At its most essential, content strategy is a form of domain modeling. It requires an analytical mind to perform and describes and creates a model of the various types of content, their attributes, roles, relationships, and constraints.
User Experience Design is the art and science of guiding a user's behaviors and attitudes as they interact with computer systems. It includes working out a system's ease of use, efficiency, and perceived utility.
Information Architecture is the structural design of information, especially in software, to support usability and findability. It concerns what attributes of what types of content are displayed and used where and how on a site.
In order for a user experience design to be effective, it needs to be backed with a strong information architecture. In order for that information architecture to be effective, it needs to be backed by the content strategy produced by the modeling of the product's domain.
As the developed content strategy (including the information architecture) is effectively the modeled domain of what is being built, both back and front end developers need to be part of those processes from the beginning. They can provide valuable insight into the whole process, especially when it comes constraints of the system being worked in.
As with content strategy, having developers involved in the user experience process can help to create better experiences. Knowing the limitations and possibilities of the technology being worked with allows for an enhanced user experience.
Information architecture, what pieces of what content are most important, directly correlates to source order of a page. A page's source order directly correlates to page's user experience as it limits how items can be laid out.
One of the challenges faced in implementations is the tight coupling of our content management system with the rendering of our front end presentation
The content strategies of each site should not need to vary as much as they do. Our developers, architects, and product owners need to be well versed in content strategy in order to make better decisions about implementations
One of the best ways we can accomplish this is by decoupling the content management from content display.
Drupal is a fantastic content management system, but if we are to provide any sort of normalized presentation framework (from native apps to web apps), we need a normalized view of our content
This means we need a normalization service to asynchronously read our various Drupal services and normalize the content into a versionable REST service that can be accessed by any app (and potentially combined and mixed into larger feeds). A single interface for all apps.
While I haven't written much code in it, it appears as if Go is the language to use as it appears to have first class language support for building REST services and working asnychronously. It's also got a vastly smaller memory footprint and it just as fast, if not faster than Java. See also 30 to 2 servers with Go
In decoupling front end rendering from Drupal, we will need a web app framework to make building modern, standards based (North standards) websites quick and easy
We should standardize on a JavaScript MVC framework to allow for single-page apps and create a collection of components to be used with that framework. Those components can then be used to spin up a new project quickly by skinning and each component.
By removing the focus of builds from recreating the frontend each time and taking time to ensure every new build maintains our standards, builds can focus more intently on content strategy and information architecture, allowing for better overall websiteS
When developing websites, especially responsive web sites, most of the time and cost of the development is wrapped up in front end development. This also holds true for upgrading systems where the rendering is tied to the CMS
By removing the coupling, we will reduce the cost of upgrading to newer or potentially even changing CMS systems because all content will be passed through the content normalization system and all presentations, from web to native apps, will feed off of that system.