Categories
Uncategorized

Featured Shopify App: Portable

Large icon for the Portable app

If you haven’t visited Shopify’s App Store lately, take a look now! There are now over 100 apps there, each of which adds new capabilities to your shop. From apps that simplify the task of cranking out shipping address labels to managing your social media presence to rewarding loyal customers, we’ve got lots of ways to make your shop even better.

Portable is one of the currently featured apps, and it brings customer data to an application you can use any time and can access from anywhere: Gmail. It’s a great way to quickly get information about any of your customers and stay on top of your customer relationships.

We had a Q & A session with Justin Burdett, Portable’s developer, and his answers follow.

What does Portable do?

Portable brings Shopify customer details and brings your customers into where you’re interacting with them most: your email. Portable looks up any of the details about a customer using their email address. If the email address belongs to a customer, important details about that customer will be displayed, all within your Gmail window.

Portable currently works with Gmail through Rapportive, but we’re hoping to expand to other email software in the future.

What are Portable’s key features?

Screenshot of Portable working within Gmail

Portable brings the following customer details right to your inbox:

  • A direct link to that customer’s profile in your Shopify store
  • Lifetime value details like total number of orders and total spent, localized for your country and currency
  • Recent orders, including a direct link to the recent orders in your Shopify store, the order number, and the financial status, shipping status and order status
  • Primary address and phone details for that customer
  • Any notes you’ve entered about that customer

Why should shopowners use Portable?

Portable will save you time and effort by bringing customer details right to you when you get support requests. You will be able to provide faster support by cutting down on the time it takes to find the information you need and better support by gaining valuable insights into the customer.

Tell us a little about yourself.

I’m a geek from Pittsburgh, PA. I’ve got a couple of different projects I like work on. In my spare time, I like to play disc sports like Ultimate and disc golf. You can find more about me on my website or follow my dumb jokes on Twitter at @jburdeezy.

Where did you get the idea for Portable?

I was thinking about opening a Shopify store for another project of mine and I thought that I’d like something like Portable. I found Shopify’s API and got to work. Boom! Portable was born.

How long did it take for you to build Portable?

It only took me a few days to get an early version of the app and spent about a week in beta testing.

Where can I find out more about Portable?

Screenshot of the Shopify App Store, with Portable as a featured app

You can find out more about Portable on its page in the Shopify App Store.

This article also appears in the Shopify Blog.

Categories
Uncategorized

The Shopify Fund, Explained

"The Shopify Fund, Explained": stacks of $100 bills arranged into an "S" shape

Shopify, its API and the App Ecosystem

Every now and again, I get asked this question: “Okay, I’ve heard of Shopify, but what does Shopify actually do?” The answer I give depends on who’s asking:

  • The shortest, quickest, clearest, layperson-friendliest answer is something along the lines of “Shopify is a web app that lets you run your own online shop.”
  • I tell people interested in selling stuff online (as well as people whose inclinations are more towards business) that the stores for Angry Birds, Epic Meal Time, Evisu Jeans, Foo Fighters, General Electric, LMFAO, Penny Arcade and Pixar are all powered by Shopify.
  • And finally, for more technically-inclined people, I say “It’s an easy-to-use, themeable hosted ecommerce platform that’s extensible through an API.”

Let talk about Shopify’s API. It lets you write apps that add functionality to or extend the capabilities of a shop. Most of the things that a shopowner can do from the admin panel can be done programmatically via the API; the API also makes it possible for you to get information from a shop so that you can integrate it with other services. You can write an app that will be used only by your shop, or you can write one for use by any shop, which you can sell to shopowners at the App Store.

The API designed to be simple and straightforward. You can call it using either XML or JSON, and it exposes different parts of a shop – such as products (things you sell in a shop), orders (orders placed by customers) and collections (groups of products within a shop) – as resources, each with its own URL and you manipulate the resources using the HTTP verbs GET, POST, PUT and DELETE. We’ve made it as RESTful as possible.

Screenshot of the Shopify App StoreWhat sort of apps have been written? There are about 100 in the App Store, and they do all sorts of things. Apps that have been featured recently on the Shopify Blog and Shopify Technology Blog include:

The Fund

Last month, Shopify landed a sweet $15 million in series B funding, which we’re using to grow the company in all sorts of ways:

  • Some of it will be used to hire the best developers, designers and businesspeople out there.
  • Some of it will be used to fund strategic partnerships and make some acquisitions.
  • Some of it – one million dollars’ worth – will be used to create the Shopify Fund.

"Dr. Evil" from "Austin Powers", touching his lips with his pinky

That’s right, it’s one. Meeeellion. Dollars.

The purpose of the Fund is to encourage the development of Shopify apps. Apps make everyone happy:

  • Shopowners: because they extend the capabilities of their shops.
  • Customers: because when a shop is running well, they get the stuff they want.
  • You, the developer: because you write software for a living.

Joey deVilla on CTV News with the caption "Joey deVilla: Internet Software Developer"

Not only was I a software developer, I played one on TV!

Most of us at Shopify, myself included, come from a development background, and we’ve all done freelance and contract work. We know what it’s like to worry about where this month’s rent is coming from and to juggle and prioritize clients. Wouldn’t it be nice if you had a nice big client that paid you enough to concentrate full-time on a single project?

We want to be that big client! We created this fund to create a mutually beneficial arrangement: you get paid enough to work full-time on a Shopify app for a few weeks without having to take on other contracts and still make a living, and we get apps that extend the capabilities of our platform.

How Much Money are We Talking About Here?

Jack Nicholson's "Joker", dancing in a storm of bills

We expect that most of the projects will range from a couple of weeks’ to a couple of months’ worth of work. We’re looking at a ballpark figure of about $5,000 – $10,000 per app. The amount will vary with the scope and complexity of your project.

How Do You Get In on Some of This Action?

Screen capture of the Shopify Fund page

There are two ways that you can get in on the Shopify Fund:

  1. If you’re a developer with an idea for an app and we think it’s a good one, we’ll pay you to develop it.
  2. If you’re a developer with the talent to build apps but no idea of what to write, take a look at our App Wishlist and see if there’s an app idea you’d like to implement. If you can prove to us that you can deliver, we’ll pay you to develop it.

If you fall into either one of these categories and would like to get funded, visit the Shopify Fund page and fill out the form. We’re accepting submissions until Wednesday, November 30th.

After the submissions close on November 30th, we’ll spend December and a little bit of January reviewing the submissions. App development and funding will start around mid-January.

What Happens If You Get Funded?

A scattered pile of $100 bills

I like to describe the funding as being "like the advances paid to book authors, but nicer".

Suppose your app gets selected (or you get selected to write an app) and we decide to fund your project with $5,000. Here’s what happens:

  1. At the start of the project, we’ll pay you the first half of the “advance”. In this example, that amount is $2,500.
  2. You work on your app. We’ll check in with you regularly during this time.
  3. When the app’s done, you’ll get the second half of the “advance” — the other $2,500.
  4. Your app goes into the Shopify App Store. For every sale of the app, the revenue share between you and Shopify will be 50/50; you receive 50% and we receive 50%. This 50/50 revenue sharing will continue until Shopify’s total of the 50% share equals the advance we gave you (or in other words, until your app rakes in a total of $10,000).
  5. Once our 50% share is equal to the advance we gave you, the revenue share changes to Shopify’s standard 80/20 ratio for sales in the Shopify App Store: you receive 80% and we receive 20%.

See what I mean by “like a literary advance, but better”? With a literary advance, you don’t earn any money until your sales have paid off the advance. With the Shopify Fund, you’re always taking in money, even while you’re “paying off the advance”.

How Do I Find Out More?

If you have any questions or comments, please feel free to drop us a line at fund@shopify.com! We’d be very happy to answer your questions.

This article also appears in the Shopify Technology Blog.

Categories
Uncategorized

Toronto Techie Dim Sum on 11/11/11, a.k.a. “Nerd New Year”

Toronto Techie Dim Sum - 11/11/11, a.k.a. "Nerd New Year" - photo of har gow in a steamer

This Friday, November 11, 2011, can also be written down as 11/11/11, which is why a number of people have declared it “Nerd New Year”. Seeing as that’s the designation for the day, and seeing as we’re slightly overdue for another Toronto Techie Dim Sum, I’m calling one for this Friday at noon, Nerd New Year, at our regular place: Sky Dragon at Dragon City Mall (southwest corner of Dundas and Spadina).

In case you missed the one in September, I took some photos and wrote up a quick summary here.

As with the Toronto Techie Dim Sums, this is just a lunch gathering of folks who like tech. There’s no agenda, no set topics, no presentations – just good people, good conversation and good (and inexpensive) food. You don’t have to be a developer to attend! If you take part in the activity ofwriting software, building web sites or cobbling together technologies, or if you just like hanging out with the very nice people who comprise Toronto’s active and vibrant tech scene, please join us for a Nerd New Year lunch!

As always, we all pitch in on the final bill. For the past several dim sum lunches, it’s never gone over $12 a person including tip, and it’s sometimes been less. You’re not going to find a better deal or a better crowd!

It’s an open event – invite people, friends and colleagues! If you and your friends are interested in joining us for lunch at Toronto Techie Dim Sum, please RSVP on the Facebook event page. It’ll give me an idea of the number of people who’ll be attending and will let me make the proper arrangements with the restaurant.

This article also appears in The Adventures of Accordion Guy in the 21st Century.

Categories
Uncategorized

ClearFit’s Looking for a Rails Developer

Clearfit [hearts] Rails, GitHub and Amazon Web Services

My friend Robert Nishimura’s looking for a Rails developer for his company, ClearFit, which is based in uptown Toronto. He sent me some details about the position he’s trying to fill; I’ve posted them below.

If you’ve got the skills and if the position sounds interesting to you, you should drop him a line at robert@clearfit.com!

Company Information

ClearFit is changing the way small businesses hire. Most people know that ‘fit’ is the most desirable attribute for employees and employers — that intangible sense that can’t be found in a resume and is difficult to glean from a job interview. It’s a huge problem — employers spend billions every year on staffing in Canada alone.

Most small business owners don’t know where to even start when hiring a new employee. Ask around for referrals, “pay and pray” with a job board or deal with an avalanche of resumes from Craigslist? 

We have built the system that some describe as “an eHarmony for jobs”. We have over 2500 registered employers and tens of thousands of registered career seekers which barely scratches the surface of a multi-billion dollar market. All this and we just completed our first round of investment so we are poised for stellar growth.

We are located in the Yonge/Eglinton neighbourhood, strategically situated between 3 Starbucks and 3 minutes from Bulldog Coffee. We’re also upstairs from Copacabana Brazilian BBQ.

Skills & Requirements

Skills:

  • Minimum 2 years experience coding in Ruby on Rails
  • Minimum 2 years experience with HTML/CSS
  • Experience with Javascript (Prototype, JQuery)
  • Experience with Postgres SQL
  • Experience with Ubuntu/Nginx
  • Experience with GitHub

Bonus points:

  • Experience with Amazon EC2
  • Experience integrating with other web apps
  • Photoshop and front-end web development skillz
  • iOS development experience

What ClearFit Offers

  • Salary between $80K and $100K based on experience
  • Snacks and drinks in our kitchen
  • Wicked awesome coffee from our new Nespresso machine
  • 15 days paid vacation per year
  • Full group benefit plan which includes vision, dental

If this sounds like something you’re interested in, contact Robert Nishimura directly at robert@clearfit.com

Categories
Uncategorized

Three Months of CoffeeScript

coffeescript

Guest Post by Kamil Tusznio!

Kamil’s a developer at Shopify and has been working in our developer room just off the main “bullpen” that I like to refer to as “The Batcave”. That’s where the team working on the Batman.js framework have been working their magic. Kamil asked if he could post an article on the blog about his experiences with CoffeeScript and I was only too happy to oblige.

CoffeeScript

Since joining the Shopify team in early August, I have been working on Batman.js, a single-page app micro-framework written purely in CoffeeScript. I won’t go into too much detail about what CoffeeScript is, because I want to focus on what it allows me to do.

Batman.js has received some flack for its use of CoffeeScript, and more than one tweet has asked why we didn’t call the framework Batman.coffee. I feel the criticism is misguided, because CoffeeScript allows you to more quickly write correct code, while still adhering to the many best practices for writing JavaScript.

An Example

A simple example is iteration over an object. The JavaScript would go something like this:

var obj = {
  a: 1, 
  b: 2, 
  c: 3
};

for (var key in obj) {
  if (obj.hasOwnProperty(key)) { // only look at direct properties
    var value = obj[key];
    // do stuff...
  }
}

Meanwhile, the CoffeeScript looks like this:

obj =
  a: 1
  b: 2
  c: 3

for own key, value of obj
  # do stuff...

Notice the absence of var, hasOwnProperty, and needing to assign value. And best of all, no semi-colons! Some argue that this adds a layer of indirection to the code, which it does, but I’m writing less code, resulting in fewer opportunities to make mistakes. To me, that is a big win.

Debugging

Another criticism levelled against CoffeeScript is that debugging becomes harder. You’re writing .coffee files that compile down to .js files. Most of the time, you won’t bother to look at the .js files. You’ll just ship them out, and you won’t see them until a bug report comes in, at which point you’ll be stumped by the compiled JavaScript running in the browser, because you’ve never looked at it.

Wait, what? What happened to testing your code? CoffeeScript is no excuse for not testing, and to test, you run the .js files in your browser, which just about forces you to examine the compiled JavaScript.

(Note that it’s possible to embed text/coffeescript scripts in modern browsers, but this is not advisable for production environments since the browser is then responsible for compilation, which slows down your page. So ship the .js.)

And how unreadable is that compiled JavaScript? Let’s take a look. Here’s the compiled version of the CoffeeScript example from above:

var key, obj, value;
var __hasProp = Object.prototype.hasOwnProperty;
obj = {
  a: 1,
  b: 2,
  c: 3
};
for (key in obj) {
  if (!__hasProp.call(obj, key)) continue;
  value = obj[key];
}

Admittedly, this is a simple example. But, after having worked with some pretty complex CoffeeScript, I can honestly say that once you become familiar (which doesn’t take long), there aren’t any real surprises. Notice also the added optimizations you get for free: local variables are collected under one var statement, and hasOwnProperty is called via the prototype.

For more complex examples of CoffeeScript, look no further than the Batman source.

Workflow

I’m always worried when I come across tools that add a level of indirection to my workflow, but CoffeeScript has not been bad in this respect. The only added step to getting code shipped out is running the coffee command to watch for changes in my .coffee files:

coffee --watch --compile src/ --output lib/

We keep both the .coffee and .js files under git, so nothing gets lost. And since you still have .js files kicking around, any setup you have to minify your JavaScript shouldn’t need to change.

TL;DR

After three months of writing CoffeeScript, I can hands-down say that it’s a huge productivity booster. It helps you write more elegant and succinct code that is less susceptible to JavaScript gotchas.

Further Reading

This article also appears in the Shopify Technology Blog.

Categories
Uncategorized

Malcom Gladwell’s Take: Steve Jobs, Tweaker

Photo of Malcolm Gladwell speaking at PopTech 2008. Photo by Kris Krug.Not tweaker as in “amphetamine addict” or “hyperactive person” (like the South Park character Tweek Tweak), but as in “someone who takes something and makes it better.” That’s how Malcom Gladwell sees Steve Jobs in his right-on-the-money essay The Tweaker, which appears in the current issue of the New Yorker. In it, he states that Job’s gift wasn’t for invention, but editorial – or, in other words, tweaking.

“The visionary starts with a clean sheet of paper, and re-imagines the world,” writes Gladwell. “The tweaker inherits things as they are, and has to push and pull them toward some more nearly perfect solution.”

Here’s the key line, which immediately follows: “That is not a lesser task.”

The Tweaker, which could be described as an Apple-esque reduction of the Steve Jobs biogrpahy by Walter Isaacson, is exactly the sort of essay we’ve come to expect from Gladwell. At its heart is an interesting tale, but it’s his trademark touches that make it, from the way he can put together a narrative to the details that make a tale resonate in your mind to the little detours he takes into parallel stories, often culled from history, as a means of underlining his thesis.

In his essay, Gladwell explains Jobs’ genius by way of the industrial revolution and why it took place in Britain and not in nearby and equally-rich France and Germany: Britain had the tweakers – people who took the inventions that defined the age of industry and refactored them, either making them work or work better. They came up with what economists Ralf Meisenzahl and Joel Mokyr (whose article on the industrial revolution and tweakers Gladwell cites) call the “micro inventions necessary to make macro inventions highly productive and remunerative.”

MagSafe power adapter and jack

The MagSafe power connector: a great example of the lengths
to which Apple goes in their tweaking.

Gladwell puts forth the idea that Jobs is a tweaker in the same spirit as those Brits who refined the machinery of the industrial age and kicked it into high gear. Douglas Englebart may have given us the mouse and GUI, Altair the home computer, Audio Highway the MP3 player and IBM the smartphone, but it was Apple under Jobs that tweaked each of these devices to such heights that they became the gold standards.

It’s hard not to write about Steve Jobs’ creations without making some reference to his rival, Bill Gates. While the more hardcore Mac fans and even Jobs himself dismiss Gates as an copycat, Gladwell has a different take. He suggests that they’re two sides of the same coin. Both are tweakers, but one “resisted the romance of perfectionism”. Jobs saw Gates’ current role as philanthropist – something that isn’t all that popular in many corners of the relentlessly libertarian, cyberselfish world of Silicon Valley and apparently eschewed by Jobs  –  as something not requiring imagination, but Gladwell counters with this observation:

It’s true that Gates is now more interested in trying to eradicate malaria than in overseeing the next iteration of Word. But this is not evidence of a lack of imagination. Philanthropy on the scale that Gates practices it represents imagination at its grandest. In contrast, Jobs’s vision, brilliant and perfect as it was, was narrow.

Can a tweaker be an innovator? Dylan Love, in the title of his article in Business Insider says “no”, but I disagree. The Latin root of the word innovate is innovare, meaning “to renew of change”, and the dictionary definition of the word means both “to introduce something new” and to “make changes in anything established”. By tweaking established inventions and in turn redefining – or perhaps I should say tweaking – whole areas of technology, Jobs was most certainly an innovator.

This article also appears in the Shopify Technology Blog.

Categories
Uncategorized

It’s My Birthday!

"Interstate 44" sign

My 44th, to be precise. Party tonight, blog post on Accordion Guy tomorrow.