New Work: American Needle

Bright Bright Great is excited to announce the new brand and website for American Needle.

American Needle Website

American Needle is a third generation family business that continues to lead the industry with the design and manufacture of products that are admired by headwear connoisseurs around the world. American Needle holds licenses for major sports leagues and entertainment properties, as well as over 30 patents on design and manufacturing innovations.

Bright Bright Great was tasked with creating a new brand for American Needle that simultaneously paid homage to that long and and storied history of style and innovation while pushing the brand forward ahead of its centennial anniversary.

BBG created an interactive new e-commerce experience for American Needle shoppers complete with lifestyle photos to showcase the brand’s product lines.

American Needle Brand Refresh Logos-02 Logos-03 Logos-04

American Needle Mobile Experience American Needle Mobile Experience

Throughout the company’s nearly 100-year history, American Needle attributes its success to the company’s allegiance to its core principles of craftsmanship, leadership, individuality and heritage, while continually inventing dynamic new headwear concepts and expressions.

American Needle Interactive Experience

American Needle photoshoot LA American Needle photoshoot LA American Needle photoshoot LA American Needle photoshoot LA American Needle photoshoot LA American Needle photoshoot LA American Needle photoshoot LA

Bright Bright Great spent a week in Los Angeles shooting on location with our in-house Mlmtr crew and Los Angeles-based photographer Asteryx.

Posted By
Jason Schwartz

New Work: OKRP

In 2013, Bright Bright Great helped OKRP capture the “grown-up start-up” feel they were going for when the company launched. We were delighted to have the opportunity to help them evolve their look to match their impressive portfolio of work.

OKRP Desktop view Bright Bright Great

From their beginnings, OKRP sought to put the “agent” back in “advertising agency” for their clients, and on the back of a string of successes, the team thought the time was right to update their brand and website to better match the maturity of the agency and really show off what they’ve been doing.

Bright Bright Great’s goal in this project was to grow the brand we had created previously for OKRP, starting with a new art direction featuring a slightly refined palette and updated type stack. To complement that, we shot headshots as well as cultural shots to show off the brains behind OKRP and their amazing workspace.

With the site now launched, BBG will stay on to provide managed hosting services in order to ensure the best possible web experience for OKRP’s visitors.

OKRP Index Bright Bright Great

OKRP Mobile View Bright Bright Great

OKRP Who's Who 2 Bright Bright Great

OKRP Working Bright Bright Great OKRP Culture Bright Bright Great

OKRP Internal Pages 2 Bright Bright Great

The highest compliment I can give a creative partner is that they don’t just play back what we ask for, but inspire us with what we asked for in a form we couldn’t conceive in our wildest dreams.  That’s Bright Bright Great.

They get us, understand our brand, and as far as the all important digital identity is concerned, helped create us from the ground up.  They were with us in the beginning, and as we grew up and evolved they delivered a remarkable 2.0 update that elevated our brand without losing our original startup soul.

Tom O’Keefe, Chief Executive Officer

OKRP Front Desk Bright Bright Great OKRP Partner Shot Bright Bright Great

OKRP On The Street Bright Bright GreatOKRP Roof Shot Bright Bright Great OKRP Headshot Staging Bright Bright Great

Posted By
Jason Schwartz

WordPress Static Page Cache

WordPress is a dynamic application. When a page is requested, the application loads hundreds or thousands of files into memory, makes dozens or hundreds of database queries, and eventually, crafts a static HTML document, which the visitor’s web browser can then render as a web page.

All of this happens every time someone pulls up a web page.

As you might imagine, the complexity of such operations can put quite a strain on humble web servers. As traffic levels increase, the struggle to meet the demands can result in WordPress sites slowing to a crawl or worse, crashing.

Investments in better hardware will postpone the inevitable, but to really address the problem head on, one must eliminate the dynamic nature of WordPress.

By saving a static copy of the page being generated to the server, the chain of events must only occur once; after that, the server need only hand over the ready-made page when visitors request it.

This is the perfect solution for content-driven web sites like blogs and portfolios. When changes are made to the database (e.g. a new post is published, or an old one is edited), the author can simply clear the cache and the site is good as new!

This solution is not so good for interactive user sites like stores and forums, where access to realtime data or personalized templates are required. At the end of this article, we’ll examine some tricks that might still offer assistance for these types of sites.

W3 Total Cache

There are a lot of caching plugins available to WordPress, but none are as comprehensive as W3TC. It is available in both free and premium versions, however for users looking at just the static page caching functionality, the free version will suffice.

First things first, install it.

Once activated, you’ll find a “Performance” tab in the admin menu. Go to “Performance” > “General Settings” to enable page cache (to disk). Now go to “Performance” > “Page Cache” to configure settings specific to page caching. For most sites, the default settings will suffice. If you have any pages that need to be served dynamically, such as a contact form or a page displaying randomized content, you can add it to the list of “Never cache the following pages”.

That’s it!

You can verify page cache is working by looking at the source code of a page on your site. You should see something like the following at the end:

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/
Page Caching using disk: enhanced
Served from: brightbrightgreat.com @ 2015-07-11 10:17:07 by W3 Total Cache -->

If page cache is disabled for logged in users, you might instead see:


<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/
Page Caching using disk: enhanced (User is logged in)
Served from: brightbrightgreat.com @ 2015-07-11 11:14:21 by W3 Total Cache -->

The (User is logged in) lets you know that page cache would be used, were it not for the fact that logged in users are specifically excluded from it.

W3TC has a lot of features beyond page cache that are worth checking out. “Minify” will attempt to compress static documents before saving them to disk, which can result in faster load times for users.

Minification can break things in unexpected ways, so if you enable it, carefully double-check that your site is still working as expected (you can use an Incognito/Private session to view the site as a regular visitor would see it without having to log out of your account). If your server is already gzipping requests, you probably won’t see substantial performance gains from Minify.

To completely clear your static page cache, click “Performance” > “Empty All Caches” in the admin toolbar. If you forget to do this, the cache will empty itself automatically eventually.

Advanced

The biggest disadvantage to using static page cache is that pages are, well, cached. If a web site allows users to log in and then shows them personalized content (e.g. “Welcome back, Jane!”), static page cache won’t work correctly; all visitors will receive the same static page. Either Jane won’t see her message, or everyone will see Jane’s message.

One possible workaround is to disable cache for logged in users, but allow it for everyone else. If your site users are simply low-privilege WordPress users (e.g. subscribers), this is the default behavior anyway. But cache can also be disabled by the presence of a cookie; if user sessions are controlled through custom code, set a cookie at login (and remove it at logout), and add the cookie name to “Rejected cookies” list.

For sites where the session-specific variation is minimal, it might be preferable to maintain static page cache for all users, and let Javascript make any necessary adjustments at runtime.

A good example of this would be a storefront that displays the current cart count in the toolbar. As items are added to the cart, the count could be written to a cookie, which Javascript could then read and plop into place. Highly specific pages like the shopping cart could be individually excluded from cache, ensuring they are always up-to-date.

Lastly, it might be necessary for sites to clear the page cache programmatically. For example, if a product page lists its availability, that figure should be adjusted when a new order is placed.

To do this, make a wrapper function like the following (add/remove caches as necessary), and include calls to it where needed:

function my_cache_clear(){
	//clear W3TC page cache
	if(function_exists('w3tc_pgcache_flush'))
		w3tc_pgcache_flush();

	//clear W3TC database cache (comment out if not using)
	if(function_exists('w3tc_dbcache_flush'))
		w3tc_dbcache_flush();

	//clear W3TC object cache
	if(function_exists('w3tc_objectcache_flush'))
		w3tc_objectcache_flush();

	//clear W3TC minify cache
	if(function_exists('w3tc_minify_flush'))
		w3tc_minify_flush();
}

These techniques are no substitute for good coding and asset optimization, but they can give your site a boost and help make sure pages load quickly and efficiently.

Posted By
Josh Stoik

After All These Years We’ve Finally Solved It! Cracking the Code: Search Engine Optimization (SEO)

seo-bundle

In our strategy and marketing work, it is not uncommon for us to have in-depth conversations with our clients on the subject of Search Engine Optimization (SEO). In the heyday of the tech boom, SEO was everywhere, as companies took their competition online and fought to go to the top of search rankings by whatever means were at their disposal.

Early on, this meant essentially paying for advertising. Once Google broke through, with their purely algorithm-driven results,  as the search engine of choice for most users, this changed to making sure that companies were establishing a digital record of their prominence within their fields.

Some less scrupulous competitors turned to the dark arts, paying companies to load their pages and code with unusable links to irrelevant websites to trick search engines into thinking that more people were linking to their site than was actually the case. Eventually, this came full circle, with the only way to insert yourself into an otherwise algorithmically-determined search order being paying for placement.

Clients have been asking us for years how to trick people into buying their product on the internet and we haven’t had a concrete answer on how to do it. Today we think we finally got this right.

Jason Schwartz, SEO Specialist

Until today. Today, April 1st, Bright Bright Great is proud to announce that we have cracked Search Engine Optimization once and for all: by helpfully pointing out where search engines can find SEO,  namely in all of our links.

You will notice on our site that we have politely and helpfully appended the phrase “SEO” to all of the links on our site, in order to make it as plain as possible that these portions of our site are there to highlight our areas of expertise and that interested users should click those links in order to find relevant information.

With this new strategy, it has never been simpler to ensure that you are getting the maximum result for your content marketing efforts: by politely asking for more SEO by noting to search engines where they can find your optimized content on your site.

I mean, SEO is pretty much the best trick around.

Nick Lush, SEO Marketing, Strategy, Link-Building, Content Stuffing, White Hat Marketing Specialist

Posted By
Jason Schwartz