{"id":1063,"date":"2014-11-26T12:01:09","date_gmt":"2014-11-26T16:01:09","guid":{"rendered":"http:\/\/bruji.com\/blog\/?p=1063"},"modified":"2024-08-04T19:03:03","modified_gmt":"2024-08-04T23:03:03","slug":"anatomy-of-a-campaign","status":"publish","type":"post","link":"https:\/\/bruji.com\/blog\/2014\/11\/26\/anatomy-of-a-campaign\/","title":{"rendered":"Anatomy of a Campaign"},"content":{"rendered":"<h1>Anatomy of a Campaign<\/h1>\n<p>We here at Bruji love technology, you could say we are filled with Technolust. As such, we\u2019re always on the lookout for software to make our lives, if not easier, then certainly more interesting. This article will examine how we created our Summer Sales campaign with a focus on the technologies used, in the hopes that it can help other folks out there learn about them. One key aspect we focused on was integrating <a href=\"https:\/\/instantcasinos.com\/fi\/\">pikakasinoiden erilaiset maksutavat<\/a> to ensure seamless transactions for our users, enhancing their overall experience. This won\u2019t be an in-depth technical article (no code) and we won\u2019t delve too deeply into the apps, just a nice bird\u2019s-eye view.<\/p>\n<p>The software we\u2019ll be taking about here (for the impatient) are the following:<\/p>\n<ol>\n<li><a href=\"http:\/\/bohemiancoding.com\/sketch\/\">Sketch 3<\/a><\/li>\n<li><a href=\"http:\/\/sass-lang.com\">Sass<\/a><\/li>\n<li><a href=\"https:\/\/incident57.com\/codekit\/\">CodeKit 2<\/a><\/li>\n<li><a href=\"https:\/\/www.jetbrains.com\/ruby\/\">Rubymine<\/a><\/li>\n<li><a href=\"http:\/\/macaw.co\">Macaw<\/a><\/li>\n<li><a href=\"https:\/\/www.mozilla.org\/en-US\/firefox\/developer\/\">Firefox Developer Edition<\/a><\/li>\n<li><a href=\"http:\/\/www.ulyssesapp.com\">Ulysses III<\/a><\/li>\n<li><a href=\"http:\/\/www.rdio.com\">Rdio<\/a><\/li>\n<\/ol>\n<h2>The Idea<\/h2>\n<p>But it all begins with an idea. I wanted to do a Summer Sale campaign with happy, light colours and a flat look. To me, nothing says Summer quite like the beach, so off I went in search of some good beachy images for inspiration. It helps to be specific so I wanted a shot of the ocean and sand, an umbrella and a simple beach chair. The obvious stops include:<\/p>\n<ol>\n<li><a href=\"https:\/\/dribbble.com\">Dribbble<\/a><\/li>\n<li><a href=\"https:\/\/www.behance.net\">Behance<\/a><\/li>\n<li>Google Images<\/li>\n<\/ol>\n<p>Armed with a good image, the brainstorming started. You\u2019ll find lots of photos in Google like <a href=\"http:\/\/www.wallpaperhi.com\/thumbnails\/detail\/20130320\/nature%20beach%20sand%20shore%20chairs%20umbrellas%20sunny%201920x1080%20wallpaper_www.wallpaperhi.com_16.jpg\">this one<\/a>, which is very nice, but is not what I wanted at all. I wanted more of an illustration look. Another search netted me a bunch of illustrations like <a href=\"http:\/\/thumb7.shutterstock.com\/display_pic_with_logo\/438595\/438595,1304417907,5\/stock-photo-suitcases-beach-ball-and-umbrella-on-a-beach-76439560.jpg\">this one<\/a> or <a href=\"https:\/\/dribbble.com\/shots\/1089945-Summertime?list=searches&amp;tag=beach_umbrella&amp;offset=4\">this nice one on Dribble<\/a>, but none were quite right. So we extrapolate a little, we grab what we like and build from there.<\/p>\n<h2>Design Flow<\/h2>\n<p>I created first the umbrella, chair, <a title=\"Umbrella and Chair\" href=\"https:\/\/bruji.com\/blog\/wp-content\/uploads\/2014\/11\/umbrella-and-chair.png\">ocean and sand in Sketch<\/a>. Everything else followed from that design and the colours used. This was my first time with Sketch and I was learning as I went along, which can be very frustrating, but is also an excellent way to learn because you\u2019re tackling a real-world project and not just following along with a tutorial.<\/p>\n<p><a href=\"https:\/\/bruji.com\/blog\/wp-content\/uploads\/2014\/11\/umbrella-and-chair.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1067\" src=\"https:\/\/bruji.com\/blog\/wp-content\/uploads\/2014\/11\/umbrella-and-chair-300x207.png\" alt=\"umbrella-and-chair\" width=\"300\" height=\"207\" srcset=\"https:\/\/bruji.com\/blog\/wp-content\/uploads\/2014\/11\/umbrella-and-chair-300x207.png 300w, https:\/\/bruji.com\/blog\/wp-content\/uploads\/2014\/11\/umbrella-and-chair.png 342w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h3><\/h3>\n<h2>Palette<\/h2>\n<p>It is important to have a cohesive colour palette, you don\u2019t want your design to look like a rainbow unless that\u2019s exactly what you\u2019re shooting for. So based on that first image I created the colour palette for the rest of the elements. It\u2019s got nice warm colours that feel summery and light.<\/p>\n<p><a href=\"https:\/\/bruji.com\/blog\/wp-content\/uploads\/2014\/11\/palette.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1066\" src=\"https:\/\/bruji.com\/blog\/wp-content\/uploads\/2014\/11\/palette-300x51.png\" alt=\"palette\" width=\"300\" height=\"51\" srcset=\"https:\/\/bruji.com\/blog\/wp-content\/uploads\/2014\/11\/palette-300x51.png 300w, https:\/\/bruji.com\/blog\/wp-content\/uploads\/2014\/11\/palette.png 599w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>When selecting a colour palette, remember that Black, White and Gray <strong>are also colours<\/strong> and they mix well with pretty much everything.<\/p>\n<p>Black can be overpowering so use it sparingly or reduce it\u2019s value (tending more towards dark gray), white can also be overpowering, in which case you can use some off-white value, what the paints industry calls bone-white. Lastly, gray is your friend, don\u2019t leave it behind, if you need more variations of colours in your palette, try mixing an existing colour with gray (in small doses).<\/p>\n<h2>Sketch<\/h2>\n<p><a href=\"http:\/\/bohemiancoding.com\/sketch\/\">Sketch<\/a> is, in my opinion, the best App out there for Web and iOS design. After using Photoshop and Illustrator for about 20 years, I switched my workflow to Sketch. If you do any design for web or iOS, I encourage you to try it, there\u2019s a 30-day trial available. The export features alone in Sketch are enough to make you want to switch, as are the ease of use and low learning curve compared to Illustrator, and the price is right, especially compared to Adobe\u2019s overpriced offerings. It does have its quirks however so be patient, it is ultimately worthwhile. But, if you do a lot of heavy illustrations for print and not web then Sketch is probably not for you since it doesn\u2019t even recognize CMYK colour values and is lacking some of the more advanced illustration tools you might find in Adobe Illustrator.<\/p>\n<p>Sketch\u2019s layouts revolve around the idea of artboards (though you don\u2019t have to use them if you don\u2019t want to, unlike Illustrator which forces you to create a sized canvas before you can start doing anything with it) and they\u2019re actually very useful. In <a href=\"https:\/\/bruji.com\/blog\/wp-content\/uploads\/2014\/11\/macaw-320.png\"> artboards.png<\/a>, I have the Desktop and Mobile artboards side by side. It makes it really easy to create your designs for multiple platforms, Sketch comes with a number of ready-made Artboards to take the guessworks out of your designs, from iPhone screen sizes and icons to paper sizes and OS X icons with a number of responsive web page sizes along the way. Inserting a new Artboard is as simple as pressing A on the keyboard and choosing a size.<\/p>\n<p><a href=\"https:\/\/bruji.com\/blog\/wp-content\/uploads\/2014\/11\/artboards.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1064\" src=\"https:\/\/bruji.com\/blog\/wp-content\/uploads\/2014\/11\/artboards-300x188.png\" alt=\"artboards\" width=\"300\" height=\"188\" srcset=\"https:\/\/bruji.com\/blog\/wp-content\/uploads\/2014\/11\/artboards-300x188.png 300w, https:\/\/bruji.com\/blog\/wp-content\/uploads\/2014\/11\/artboards.png 802w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Exporting in Sketch is a joy. Group elements into a single Layer and create an exportable image from that with a single click. Even better, if you choose to export your image in PNG format, Sketch will ask if you want it to automatically create 1x, 2x and 3x versions of your image and name them appropriately for you, yes please! Click Export, you\u2019re done. If clicking and selecting a size is too much work, simply drag your grouped object to the desktop or any finder window and Sketch will create the image on the fly, nice.<\/p>\n<p>The Bezier curve tool (called the Vector Tool) in Sketch is also the fastest and easiest I\u2019ve ver used.<\/p>\n<p>I don\u2019t want this to turn into a raving review of Sketch, so I\u2019ll just end by saying that object alignment has never been easier. Do yourself and favour and check the app out.<\/p>\n<h2>Macaw<\/h2>\n<p><a href=\"http:\/\/macaw.co\">Macaw<\/a> is an HTML editor with the, sadly unfulfilled, promise of letting you create web sites visually instead of coding. I\u2019ve been <a href=\"http:\/\/kakubei.github.io\/2014\/06\/19\/macaw\/\">pretty critical of Macaw in the past<\/a> and I stand by what I wrote, I don\u2019t think Macaw is ready for primetime yet. So why am I talking about it here if it\u2019s no good? Well, I think that for web mockups Macaw is excellent. Currently, with version <em>1.5.9<\/em> I would never create a full website with it but for a single-page promo that will be up for, at most, a week, I think it\u2019s fine.<\/p>\n<p>After exporting all my images in <strong>SVG<\/strong> from Sketch (more on the SVG format later on) I bring them into Macaw and try to recreate the design in an actual web site and see how it responds. One of the nicer things about Macaw is that it\u2019s very easy to add breakpoints for different screen sizes and devices. I usually add a breakpoint for iPad at <em>800 pixels<\/em> (as opposed to the iPad\u2019s actual portrait width of <em>768px<\/em> to have a little buffer) then another for iPhone at <em>320px<\/em>.<\/p>\n<p>After you have all the elements in Macaw, properly named and properly placed, it\u2019s time to start testing those breakpoints to see how things react and what breaks. Don\u2019t forget to test them on an actual browser as well as Macaw\u2019s built-in browser to make sure things still look good and, most important, make sure that the sizes between breakpoints still work. Macaw does make it easy to move elements around visually when adjusting for different screen sizes. For example, for the iPhone I usually create a very different layout than for Desktop, I don\u2019t like sites where they simply scrunch all the elements into a tiny window where you can\u2019t even read the text.<\/p>\n<p><a href=\"https:\/\/bruji.com\/blog\/wp-content\/uploads\/2014\/11\/macaw-320.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1065\" src=\"https:\/\/bruji.com\/blog\/wp-content\/uploads\/2014\/11\/macaw-320-300x248.png\" alt=\"macaw-320\" width=\"300\" height=\"248\" srcset=\"https:\/\/bruji.com\/blog\/wp-content\/uploads\/2014\/11\/macaw-320-300x248.png 300w, https:\/\/bruji.com\/blog\/wp-content\/uploads\/2014\/11\/macaw-320-1024x846.png 1024w, https:\/\/bruji.com\/blog\/wp-content\/uploads\/2014\/11\/macaw-320.png 1201w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Macaw would be a lot easier to recommend if it were free (or worked as advertised). I\u2019d say it\u2019s a tool to keep an eye on in the hopes that one day soon they\u2019ll fix all the niggling faults and make it really useful. For now, try the demo but make sure you create a real website and not a tutorial so you can truly evaluate the product. I\u2019m one of the original Kisckstarter backers so I\u2019ll keep using it until they demand more money for a newer version.<\/p>\n<h2>Lots of elbow grease<\/h2>\n<p>Now it\u2019s time for <a href=\"https:\/\/www.jetbrains.com\/ruby\/\">Rubymine<\/a> and lots of coding. I know I said that Macaw was fine for a single-page promo, but the truth is I have to integrate it with our existing Bruji site, this means all the different menus and layouts (desktop, iPad and iPhone) and the different scripts we use on our site and this is, unfortunately, not possible to do in Macaw.<\/p>\n<p>Rubymine is an awesome <em>IDE<\/em> for Ruby coding by the good folks over at Jetbrains. It\u2019s where I spend all day most days (when I\u2019m not designing or fighting with Macaw I\u2019m knee-deep in Rubymine). Both the <em>Doghouse API<\/em> and the Doghouse Admin are all written in Ruby using Rubymine. If you do any Ruby (or Rails) coding at all, do yourself a big favour and check out Rubymine. If you\u2019ve ever tried it before and wrote it off, give it another try. I remember trying version 5.0 and being less than impressed with it because it was slow and ate up my CPU faster than champions at a pie-eating contest, but I tried version 6 and was hooked immediately, now I can\u2019t live without it, it even has a very good built-in Database editor! I started out coding Ruby in <a href=\"http:\/\/www.sublimetext.com\">SublimeText<\/a>, which is an excellent text editor but not an <em>IDE<\/em> and doesn\u2019t hold a candle to Rubymine. After using Rubymine, I could never got back. Rubymine even has real code refactoring, something that not even Xcode has for Swift (at the moment).<\/p>\n<p>But what does all this Ruby talk have to do with a website written in HTML? you might be asking. Simple: Rubymine also happens to be an extremely good web editor, much better than SublimeText, in my opinion. The autocompletion is great and the way it handles and integrates CSS is superb. I do all my heavy HTML work in Rubymine, in fact, Bruji\u2019s new website was built almost entirely, to great fanfare and general adulation, in Rubymine.<\/p>\n<p>So I integrate the craziness that Macaw wrote and tweak it in Rubymine. If we\u2019re going to reuse any CSS I try to convert it into SASS (or SCSS) for future reuse. This brings us to our next technology:<\/p>\n<h2>Sass<\/h2>\n<p><a href=\"http:\/\/sass-lang.com\">Sass<\/a> is a CSS preprocessor. Basically it\u2019s a much better way of writing and using CSS. Let\u2019s face it, CSS is not great. It was fine 15 years ago to style a simple web page without having to use dreaded tables. But these days it\u2019s really lacking and often contradictory, it\u2019s quite a mess really. Enter Sass. Sass is a way to write CSS to make it less painful and much more usable, it includes simple concepts like nesting CSS rules together without repetition (something so basic CSS should be ashamed not to support it) all the way to variables, partials and conditionals. It also integrates well with plain HTML and more complex frameworks like Rails, etc.<\/p>\n<p>Sass makes working with CSS an almost joyful experience.<\/p>\n<p>However, in order to work with Sass, you need some sort of compiler that will turn your fancy Sass code into vanilla CSS that any web browser can understand. For that we turn to Codekit.<\/p>\n<h2>CodeKit<\/h2>\n<p><a href=\"https:\/\/incident57.com\/codekit\/\">Codekit<\/a>, as their website states, is like steroids for web developers. Basically it allows you to use all sorts of modern frameworks and preprocessors by compiling them all in the background and updating your web site every time you save. This might not sound like a big thing but it\u2019s actually huge. You simply write your Sass, Haml, Slim, Coffeescript, JQuery, etc and Codekit does the rest. CodeKit compiles Less, Sass, Stylus, Jade, Haml, Slim, CoffeeScript, Javascript, TypeScript, Markdown and Compass files automatically each time you save.<\/p>\n<p>It will also alert you of any error you might have in any of those frameworks, very nice.<\/p>\n<p>The best part is there is nothing to install apart from the app, no servers to run or background processes to watch, you don\u2019t need to learn to use yet another editor or anything like that, you work in your preferred Editor like Rubymine or SublimeText and every time you save a file Codekit does its magic behind the scenes.<\/p>\n<p>Check it out.<\/p>\n<h2>Firefox Developer Edition<\/h2>\n<p>Finally, it\u2019s time to make sure everything works on a real browser, for this I use <a href=\"https:\/\/www.mozilla.org\/en-US\/firefox\/developer\/\">Firefox Developer Edition<\/a>. It has all the bells and whistles a developer might need built-in and Firefox\u2019s DOM inspector is the best there is in the world, no contest. I used to use Google Chrome, like everyone else, to test my websites (Safari\u2019s developer tools are the worst) but recently switched to Firefox simply because of its DOM inspector. Firefox has been instrumental in figuring out gnarly CSS problems. Plus it\u2019s free.<\/p>\n<h2>Ulysses III<\/h2>\n<p>A wonderful writing tool. I write everything in it, I\u2019m currently writing this in <a href=\"http:\/\/www.ulyssesapp.com\">Ulysses<\/a>. It might seem a bit pricey, but if you do any writing it\u2019s quite worth it, especially if you like Markdown.<\/p>\n<h2>Rdio<\/h2>\n<p>Last but certainly not least, <a href=\"http:\/\/rdio.com\">Rdio<\/a>. Nothing could be done without Rdio. It\u2019s the finest music streaming service out there (I\u2019ve tried them all) and so much better than iTunes\u2019 Radio. Superb design and great music selection, Rdio is always running on my Mac.<\/p>\n<h2>Conclusion<\/h2>\n<p>For the Summer Campaign it took a little more than a week to get everything done. This may seem like a long time, but the early stages of any design take a bit of time while you\u2019re figuring out what you like and what you don\u2019t like, what works and what doesn\u2019t work, etc. Also, I was learning to use Sketch so that added quite a bit of time to development, on top of that fighting with Macaw without a manual made things tougher. I was also developing a workflow which I&#8217;ve used later for subsequent campaigns and that takes time. I simply mention\u00a0all this so you don\u2019t get discouraged if coming to grips with new technology is eating up your precious time.<\/p>\n<p>So there you have it, a glimpse into just some of the technologies that Bruji uses. This is just one side of the coin, on the other side we have Xcode and all things iOS-specific, but that\u2019s a different can of worms for another day.<\/p>\n<p>Hopefully you\u2019ll find something interesting here that you might be able to use for your own projects. If you do, let us know in the comments. Also let us know if you enjoy these articles, we have plans to write more technical ones in the future once we can actually find the time \ud83d\ude42<\/p>\n<p>Cheers.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Anatomy of a Campaign We here at Bruji love technology, you could say we are filled with Technolust. As such, we\u2019re always on the lookout for software to make our lives, if not easier, then certainly more interesting. This article will examine how we created our Summer Sales campaign with a focus on the technologies [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,107],"tags":[],"class_list":["post-1063","post","type-post","status-publish","format-standard","hentry","category-programs","category-web-site"],"_links":{"self":[{"href":"https:\/\/bruji.com\/blog\/wp-json\/wp\/v2\/posts\/1063","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bruji.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bruji.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bruji.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/bruji.com\/blog\/wp-json\/wp\/v2\/comments?post=1063"}],"version-history":[{"count":14,"href":"https:\/\/bruji.com\/blog\/wp-json\/wp\/v2\/posts\/1063\/revisions"}],"predecessor-version":[{"id":1315,"href":"https:\/\/bruji.com\/blog\/wp-json\/wp\/v2\/posts\/1063\/revisions\/1315"}],"wp:attachment":[{"href":"https:\/\/bruji.com\/blog\/wp-json\/wp\/v2\/media?parent=1063"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bruji.com\/blog\/wp-json\/wp\/v2\/categories?post=1063"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bruji.com\/blog\/wp-json\/wp\/v2\/tags?post=1063"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}