Shopify Unite 2021 | Coding commerce. Together.

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
(timer beeping) (gentle music) (upbeat music) - Hello everyone. It's great to be back for Unite. 12 months ago, we were at the opening stages of COVID and most of us were reeling from uncertainty. At that time, we have a two completely distinct industries, the retail industry and the online commerce industry. Now, it's just a commerce industry. A lot has changed in a year. In this new reality, our goal at Shopify is clearer than ever. We want to give entrepreneurs around the world the best possible chance to create their own certainty. To reach for independence. And to seize opportunities that they uniquely see. So today, we'll show you the results of exciting work that we've done together over the past year. We're going to give you a glimpse into the future office commerce world. And we'll show you where we're taking Shopify in order to make it the ideal platform for entrepreneurs. It's worth stating upfront something that feels obvious but it's effect of our times. You can't do anything on the internet, browse it, build on it, connect through it, without someone making the software to enable doing so. Software itself, and especially software platforms like Shopify, have a modern equivalent of essential infrastructure in an increasingly digital world. Shopify sees itself as essential commerce infrastructure that allows many people as possible to participate. This is what our product Shopify does and the role it plays in the eyes of most of our merchants and customers. But at the same time, we also build a platform that allows developers to build products for merchants, adding to this infrastructure. This has been a core idea since we first published APIs in early 2000s. You see this interplay here between the platform, Shopify, that we have been evolving on one side, and the ecosystem of partners, designers, app developers, who build on top of it all, all of us combining forces to help entrepreneurs become successful merchants. This has been the absolute key to Shopify's success. Today, we'll mostly talk about this platform. So at times, it will get very technical. If you are a developer watching us you're in for a big treat, we'll get more technical than you might expect from Unite. In fact, the next you and I meet on the screen later in the show, we'll actually write some code together and that's gonna be a lot of fun. If you're an entrepreneurial or merchant joining us today, this event is also for you. Some of the things we'll talk about will immediately make Shopify better for you. Everything else's you'll hear about will enable app developers and designers and ecosystem, to make things for you that were previously not possible, or at least very hard to imagine. We have three important guiding principles that we keep finding ourselves come back to, make commerce creative, make the important easy, and make everything else possible. Let's talk about each of those for a bit. We start every project here with a question. Does this increase the creative possibilities for our merchants or does it not? This is the why behind everything we do. The core question we ask ourselves. The primacy of creativity to commerce, was the core bet of Shopify on day one. I mean, creativity is the most human of traits, isn't it? But to anyone who has visited a generic department store, you know, that commerce can be pretty bland indeed. We believe strongly that every successful business tells a unique story of their own. So Shopify started with enough power for people to express themselves. On day one, we shipped Liquid, our template language. We created space and invited the global design community into our theme store and partner program. And therefore, into our industry. And most of the fastest growing apps in our app store also enable our creativity and storytelling. This bet has been proven correct, I think. But enabling creativity is as important now as it was when we first got started. The next principle is to make the important easy. Everyone who wants to, should be able to start a business and reach for independence. This is why we are business-essential infrastructure for independent commerce, isn't it? If the platform doesn't exist, people simply cannot do that. It is important that it's easy to start a business of our own. Not least above all local economies and communities that depend so much on local businesses. Simplifying the complex is what software does best. For an online store, you need to be able to automatically accept payments, and handle checkouts and shipping. And it's important to be able to sell all over the globe. And if you're lucky to have one, deal with any size flash sale that comes your way. These are not details that everyone should have to painstakingly figure out for themselves. These hundreds of thousands of tiny little details should just simply be set up for everyone correctly by default. This way, we let entrepreneur focus on what's truly important, their products and telling their stories to their customers. The third principle is, make everything else possible. The first set of steps in building an eCommerce business are often rather similar. But as we all know, defaults only take you so far. We make the important easy, but Shopify success has always been because we made everything as possible too. Every default can be changed, and just about everything can be extended with code. Liquid, apps, scripts, et cetera. This company was started by developers and this will always be part of our DNA. We want developers to feel right at home on Shopify and get all the (indistinct) that they want to tweak. We see this becoming increasingly important in the future as coding and technical literacy spreads. To all the developers out there, entrepreneurs need your help, it's been a hard year. Many of them make great leaps into the unknown and are looking for their opportunity to make their specific vision a reality. There'll be more likely to work if you are in the mix. And to all of entrepreneurs out there, we want your journey of Shopify to allow you to thrive. We are all in this together. So welcome to Unite. And let's get started. (upbeat music) - Like Tobi mentioned, our mission at Shopify is to empower the creatives. And there's nothing more creative than the online store. From day, one entrepreneurs of all shapes and sizes have used the code that you've made as theme developers to build their home on the internet. And to date, we've seen some really amazing digital storefronts. Today, I'm gonna show you the biggest and boldest upgrade we've ever shipped to the online store. Our goal is to give more power to developers, while making it even easier for merchants to leverage that power, and build their storefront. It's such a big platform upgrade, that we called it, simply, Online Store 2.0. To start, let's take a look at the three areas of the online store that have been rebuilt and re-imagined. The first is themes and the editor. This is where merchants go to configure and build their store's design. The second, is store content. This is what populates that store design with the shop stories. Hint, you're gonna see a lot of metafields in your future. And the third is developer tooling. We're giving you some great ways to be more productive and some new platform features for when you're building a theme or an app for the online store. Okay, let's get to it and jump into themes. In this new world of Online Store 2.0, themes are now completely modular and composed of reusable sections. Think of them like an online store's Lego blocks. Merchants can take these sections and use them to build their own online store. This gives merchants the ability to arrange their store design however they want, without having to know or touch code once. In order to make all of this possible, we had to change the way themes were structured. Let's look deeper into what exactly makes up these new themes. (gentle music) You'll notice that templates play a big role now. they define everything from the structure of a page to how each setting is configured. And now, all of the themes, Liquid code, is contained completely within sections. You can also add multiple template files, which then map to different products or different collections. And yes, these templates are available across the online store, which mean that sections are now everywhere. At its core, sections are chunks of Liquid code with some handy setting options. But if we look a little closer, they can also contain an array of blocks. These blocks further break up a section and are themselves, configurable chunks of Liquid. They're really powerful because they give merchants an even more granular way of customizing the layout of their store. Let's see this all in action in the new theme editor. (gentle music) The template picker is front and center in the new editor. And you'll see that I have multiple templates per page. Let's switch to the product page. And as you can see here, I have a default template, but let's go ahead and create a new template specifically for all of my bags. Every section of this new template is managed in this new sidebar, which makes it really easy for me to navigate as I edit this page. And since this template is for handbags, let's add a section to show the bag's dimensions and materials. (gentle music) Notice these handy sub items in the navigation, those are blocks that I mentioned before. You can add them, reorder them, and configure them independently. And so just by dragging and dropping, I can add some care instructions to my page. Okay. So we've added some sections, we've added some blocks of this page, but this is gonna look pretty bland if we don't have the right content. So let's jump into store content. We wanna make sure that you can store whatever data that you wanna display on the online store, within Shopify. And so alongside Online Store 2.0, we're also shipping a major update to metafields. Not only can you define and edit metafields now directly in the admin, but we've also shipped away to bind data sources to sections directly in the editor. So now there's no more hard coding metafields into themes. You're gonna really like this. (upbeat music) Let's add a custom image with embedded sizing to this section. From within the Settings panel, I can now create a new metafield definition using a new set of types. We've added new types like color, boolean, URLs. I can also add validation and descriptions, so that I can make sure that whatever is being entered is in the right format. Now that I've added this new metafield definition in my products, my team can access it right from within the product page whenever they're entering product information. I wanna pause here for a minute because what we just did was pretty major. This ability to add new attributes to products really changes the way that data can be stored inside of Shopify. Now, you can host data of any format, inside of one platform. Metafields are gonna be a really important part of Shopify going forward. Stay tuned for more support, for more types and arrays later this year. But while I have you, why don't I give you a sneak peek of something else we're working on. (gentle music) This metafields infrastructure not only lets you extend your Shopify models, but it'll also power a new content management platform. We know that content is super important when it comes to expressing the shop's brand. And so soon, you'll be able to create entirely new custom types, modeled using metafields. You'll be able to create content once and publish it to all of your channels, including the online store. And because this content is already in Shopify, it can be easily connected to other parts of the platform. And if you're already using a CMS, great, we'll be looking to work with partners in the industry to make it easy to integrate. That's enough for now, but we'll have more to share on this later this year. Okay, back to the demo. (upbeat music) Switching to the editor, you'll notice these handy little data icons on all of my section settings. Those let me connect the metafield we just created, to this part of the section. All right, after that, we're done. Now each product using this template will show the right dimensions automatically. And to bring everything full circle, this is one template that we've built for our handbags. But with the editor and sections and blocks, it's super easy and simple to make more. I can configure one for my shoes, or one for all the apparel products. And each template is tailored to the type of product it's displaying. And it's not just the products page, it's pages, collections, all of these parts of the online store now have templates. And all of these, are parts that a merchant can customize. Now that you've seen all the pieces we're giving you to tell a great story on the online store, I wanna introduce you to one of the best story tellers on the internet, and one of the earliest adopters of Online Store 2. We've all gotten to know them really well over the last year, Netflix. (Netflix theme) (upbeat music) A couple of weeks ago, Netflix launched their new store, Netflix.shop. And whether it's their anime collection, or the newest Lupin page, they wanted to make sure that every part of their store told a good story. They also want to be able to create these pages really fast. Because never know when another "Bridgerton" series is gonna take off. And so now, the Netflix team can use sections and blocks to configure a template for a new product drop without needing to fiddle with code. Okay, so let's switch gears for a minute and talk about apps. Apps provide a lot of functionality to the online store. And so we've intentionally carved out a way for them to work in this new world. I'm happy to announce the new Theme App Extension With Online Store 2, a theme is now a set of separate components. And the separation makes it possible for us to let apps contribute their own sections and blocks without having to touch a theme's code. (gentle music) So let's see this in action. Here's a new example app that adds product reviews to the shop using app blocks. Before Online Store 2, I would have had to open the theme editor and add code directly into the theme. It's super intimidating if you don't know how to code and it sticks around even after the app's been uninstalled. So now instead, apps can contribute Liquid in the form of their own app blocks. When an app is installed on a store, any app blocks that they've declared are automatically available in the theme editor. Depending on how you set up an app block, it can either be dragged in line, or auto injected in the head or the body of a page. This is super handy if you're building an app that needs to inject a script, or injecting a chat widget. Under the covers, a Theme App Extension is structured a lot like a miniature theme. We have a folder containing all of our blocks, but you see these other handy folders, assets, and snippets? It's all part of a new packager that allows you to ship everything, including Liquid and assets, in one single repo. And all of it's managed by the platform. Using this extension, your apps Liquid code and assets will be served using the same infrastructure that serves our online store today. This is gonna be the future of how apps augment themes. And it's gonna be a lot better than script tags or the Asset API. And so get ready in the future, we're gonna be deprecating script tags. App blocks are the way of the future. Okay. That was a lot, but we still have a lot more to come. Aside from this theme extension, we're also building a bunch of Liquid improvements to make sure that your themes are gonna be as fast as possible. I'd like to welcome Martina, to talk about some Liquid improvements and some awesome new developer tools. - We just heard about all the new features coming to the online store, but how does it all come together in how you build a theme? Meet Dawn. Dawn is our first open source theme available to all of you today, right now, on GitHub. It includes all the features that Vanessa just shared. Like sections, templates, and metafields. But it's so much more than that. It's also a new reference for how to build fast and beautiful e-commerce experiences on the web. So let's take a look at how we built it. Dawn was built using four principles. First, it's built for modern browsers. We estimate that 90% of visitors to Shopify stores are using an evergreen browser. And since evergreen browsers auto update to the latest version, it means that its users have access to all the latest features. So instead of using polyfills and external libraries to create pixel perfect fallbacks, we focus on semantic markup with HTML and CSS to create functional experiences for 100% of browsers. By using progressive JavaScript, we focused on the browser's latest capabilities to enhance the layout and experience of the theme. By using features like web components and custom HTML elements, we were able to easily use JavaScript to improve the functionality and accessibility of a feature. And for browsers that don't support these latest features, it means that customers can still use Dawn to find products and checkout. Dawn second principle focused on creative visual design. Through the process of progressive enhancement, we paired a lot with our design team to create the best possible experience for customers. Specifically, we focused on improving features that directly impact the purchase flow. So things like collection filtering, product variant pickers, price clarity, and navigation. By building themes for the modern web, it means that we can still support non-evergreen browsers without having to compromise on world-class e-commerce UX. Third, we wanna create lean and maintainable themes. So we're continuously updating the core functionality of the platform and the APIs to write less code. One way that we've done this is with the cart API. Now you can just request that it returns rendered sections along with its usual response. By making this change, we were able to reduce the number of lines of code needed to handle cart updates and JavaScript from a couple hundred to just under 20. And finally, performance was top of mind with every decision we made. In the past, we might've had to exchange feature functionality for performance. But with Dawn, we were able to ensure that we built a great theme that was also really fast by default. We've been making changes to how we build themes. But we've also been making a lot of improvements to the developer tools we use to build them. Let's bring in Colin to pair with me. He's been working on performance and developer tooling and we want to show you how it all works. (notification tone) Hey Colin. - Hey Martina. So along with Dawn, we've been building a bunch of new tools to make theme developers more productive. We're releasing a full Git integration for theme development, and we've extended the Shopify CLI to enable faster iteration. This will give you a powerful CI integration, better VSCode feedback, and a lot of other capabilities. So let's take a look. (upbeat music) So Martina, I was looking at the Dawn's code, specifically, the collections page and I noticed that the content is jumping around on page and it's impacting the lighthouse cumulative layout scores. Let's fix this together. - Sounds good. So if I were a new dev on the team, the first thing I do is go to my dev shop and connect it to my Git repo. And I can do this all from within the admin. And at the same time, I'd also go ahead and import and publish the main branch. - And this makes it handy. See you can use all of the Git tools that you have to themes now, and your published shop will be updated with all the latest commits. - Yeah, exactly. And now that I've connected my shop to Git, I'm gonna go ahead and clone the repo and start setting up my shop by CLI. It's really easy. All I need to do is log in and run Shopify theme serve to start up my local sandbox. And Colin, before you ask, yes, getting yourself set up with this new tooling is actually this fast. - [Colin] Amazing. Now that you're all set up, let's take a look at that collections page. - [Martina] Before we do that, let's go ahead and run theme check to see if it spots any obvious linting or performance issues. So it looks like it's identified an issue related to the images on the product card. And it's recommending that we add the height and width attributes. There's even some documentation that tells us why it's important to add these attributes to help prevent cumulative layout shifting. So I think that this should fix our collection page issue. - [Colin] All right. That's great. But now I'm noticing that the images aren't the right size anymore. - [Martina] You're totally right, thanks for pointing that out. I think because of the change we just made, we also need to add a height of 100% to our images now. - [Colin] I love that instant feedback in the browser as you make those changes. - [Martina] I know, right? Isn't it great? - [Colin] But while we're here, I also see that we're loading the lazysizes JavaScript library. We can replace that with image loading equals lazy since modern browsers support this as a standard feature now. - [Martina] That's a great point. I'll go ahead and make that change and then we can create our PR. - [Colin] Alright, that looks good. Let's check the CI to make sure the lighthouse scores have improved. We have it configured to use the Shopify CLI to spin up the ephemeral sandbox, to run performance tests with lighthouse, and we can use webpage test to integrate our own browser-based test if we wanted. - Yeah, and it looks like all of our tests are passing. So I say we ship it. And now that it's merged, my dev store's published theme will be updated with all of the latest changes. Because earlier we linked our dev store to our main branch. - Right on. Well, thanks, Martina for all the help. - No problem. - As you can see, we're passionate about performance. We know that store speed is critical to drive higher sales and conversion. And we see this in our data too. On average, if you improve the speed of the first page the buyer sees by 10%, we see a 7% increase in conversion. Those first impressions really matter. There's a lot that goes into building a fast store. And you aren't alone in helping improve the performance for every merchant. Last year, we talked about our new storefront rendering engine. And today, I'm really proud to announce that all the Shopify stores are operating on this new engine. And thanks to this, we've been able to increase the rendering speed five times. And with our increased edge deployment, we're now within 100 kilometers of every buyer around the world. Storefront Renderer, was just one of the many investments our engineering teams have made on the platform to make it fast and can scale to any event. In 2020, our platform almost doubled its monthly sessions and Storefront Renderer was able to help create a consistent human experience every time. We believe that the faster that you can build, the faster you can get that feedback, the easier it will be for you to create better, faster experiences. - So let's do a quick recap of everything that you just saw. There's a new theme editor, featuring templates, sections and blocks. A new update to metafields. And to wrap it all up, a set of developer tools for this new platform. And the best part is, all of this is available right now. Create a dev shop, clone the Dawn theme, and you can visit shopify.dev for some great tutorials. But everything that we just talked about is ready for you to play with. And of course, merchants will only be able to take advantage of all of these new features if you create new Online Store 2 themes and apps. And so to help you out, we've opened up the Theme Store to new submissions on July 15th. Stay tuned for some really cool new features coming to the Theme Store later this summer. We call this Online Store 2.0 because this release marks such a huge milestone for Shopify. It changes the way merchants express themselves on the internet. And we can't wait to see what you build. Let's go. (upbeat music) - Wow. A lot of exciting things happening across the Shopify platform. Now, speaking of exciting, and every Unite, we share dozens of stories of creative commerce experiences built on software platforms. And frankly, it never gets tiring. We're always amazed at the creativity of developers and merchants. For example, here are a few of my favorites. Offlimits wanted to make buying cereal fun. So they created animated characters to guide the journey and implemented an engaging game of five point system for checkout. And Yolélé created a unique and one of a kind visual product explorer, for their delicious fonio grain-based products. And ZSA's Moonlander keyboard configurator unlocked advanced customization of their ergonomic keyboard. Allowing you to choose from dozens of different key switch options, and enabling you to dial in and get the tactile feedback on your fingertips just right. Of course, Allbirds, continues to push the innovation envelope too. Their new mobile app unlocks exclusive access to new products. And now you can even try on the shoes virtually and from anywhere, with the magic of AR. Finally, there's ComplexCon. (upbeat music) It is one of the biggest events for streetwear fans, brands and creators. Known for its coveted product drops and flash sales. The pandemic meant that it had to be reimagined into virtual experience. So Complex turned it's annual fashion and music festival, into a futuristic video game called ComplexLand. Attendees curated their own avatars, and explored the virtual festival grounds to shop for sneaker drops. Ordered from virtual food trucks. And listen in on expert panels. This immersive 3D world attracted fans from 174 countries. It had over 60 brands offering exclusive product drops. What do all of these expenses have in common? They are powered by the Shopify Storefront GraphQL API. Which enables precise and high-performance access to the full breadth of Shopify commerce primitives. Speaking of breadth and performance, fun fact, did you know that Shopify was one of the first GraphQL adopters with first commit in 2015? And operates one of the highest traffic GraphQL APIs? It's true. GraphQL is widely used at Shopify. Both the Shopify admin, which is used by more than 1.7 million merchants. And the Shop App, used by over 24 million active users, are both built on top of our public GraphQL APIs. And it's the same API that powers over 60,000 partner-developed active API clients. That in, turn power Shopify applications, extensions, and custom storefronts. In fact, combined, we saw the usage of our storefront API double over the course of last year. We saw a big adoption ramp as commerce shifted online due to COVID. And then later in the year, we set a new Black Friday record and throughput. Fast forward to today, we are averaging similar peak levels on a regular basis. In fact, the Shopify GraphQL engine, now averages nearly 1 million queries per minute of sustained traffic. And by now you've picked up on our investment into performance and scalability. And it should not surprise you that we're making big investments for APIs. And so I'm proud to announce, they're working to bring our GraphQL engine to every major geographical region. Our vision, and North Star, is to bring all the Shopify capabilities you need to within 50 milliseconds of every buyer. To unlock this, we are rewriting our API from scratch with the new and optimized foundation that powers the online store. Shopify is an API first and resilient platform already, yet, I can't be more excited for everything that's ahead. And what these capabilities will enable you to build on our platform. And there in, is the true power of the Shopify platform. You can start with no code, and with just a few clicks, you get a batteries-included store up and running. You can then tailor and scale your business through thousands of existing apps and themes. Once you're ready, you can tap the network of over 65,000 partners to unlock custom capabilities. And of course, you can bring own development expertise to build unique experiences. Shopify is a platform that grows with you, and best of all, it enables you to flex where and when you need it. So lets zoom in on the Storefront API. We released quarterly updates with new capabilities. And the upcoming July release, has a few features in particular that are worth highlighting. We heard a lot about new super powers in metafields. And of course, you can create and whitelist them via the Admin API. And now, you'll also be able to retrieve any and all of them via the Storefront API. This gives you the full power to enter date products, product variance, orders, customers, in all other core Shopify sites. Next up, we are introducing the new in context QraphQL directive. That enables you to pass in relevant buyer context. For example, this unlocks access to international pricing configured by the merchant. In this example, we are communicating that the buyer's located or wants to see Canadian pricing. In return, same as our online store, the GraphQL response provides the correct pricing and confirms the currency code. International pricing is a critical feature for many merchants. And I'm really excited to have this available in our APIs. We can go further too. Last year, made local pickup unexpected feature for many buyers. Well, good news. You can now query for a list of nearby store locations via the Storefront API. Then, once you have the idea of the preferred location, you can use the same in context directive, to query for product availability for pickup. This enables your buyers to purchase and get the products from their desired location. Be it online, or in store. Next up, we have selling plans. Selling plans enable merchants to create custom billing, pricing and delivery policies. Combined, they enable merchants to create subscriptions, pre-orders, and other ways to sell through direct integration with a native Shopify checkup. We released Admin APIs that allow you to create custom plans earlier this year. And now, you also have the ability to retrieve selling plans configured by the merchants. In this example, we are retrieving a title and price for multiple product variance. Plus the available selling plans for each one. The response includes, price adjustments, per delivery pricing, and all other relevant metadata associated with the selling plan. Finally, we heard a lot about the great improvements in Shopify checkout earlier. But that's not all of it. We want to ensure that Shopify is able to scale to any merchant need and size. And provide the best buyer experience throughout the journey. So we've challenged ourselves to step back and think what we can do to help that mission. And so I'm excited to announce the new cart capabilities in Storefront API. We built cart from ground up for performance, reliability and Shopify scale. It is powered by the same powerful primitives available at checkout. But, also carefully tuned to provide predictable low latency response. And, also designed to scale without any store wide rate limits. Now, let's be clear. Checkout is still there, but if checkout is a precise and accurate accountant, then cart is it's speedy cousin. That unlocks access to estimated totals, for discounts, shipping, gift code processing, and more. Prior to starting the checkout process. How does it look in practice? We've added a new cart create mutation that accepts a set of products. In this case, we're adding a single product variance with a quantity of two. Let's run the mutation. In response we get a cart ID, the estimated costs, and a detailed description of our new cart. Next up, we can manipulate the cart. By, for example, passing in the cart ID that we just retrieved, and additional products via the cart line add mutation. Of course, this barely scratches the surface. There's support for discounts, buyer context that we've covered earlier and much more. Are you curious to dig in? Well, checkout our new docs and API release notes. And while you're there, there's one more thing. We've been spending a lot of time with developers. Talking and listening to their feedback about the overall ergonomics of our storefront API. And based on this feedback, we're planning to launch a major update to our storefront schema later this year. We are removing cruft, simplifying things, and making the API more intuitive to use. We've set up a preview playground with mock data and the GitHub repository for feedback. Please take it out for a spin and let us know how it feels. (upbeat music) - You heard a lot today about how Shopify is the global infrastructure for commerce on the internet. And there's no commerce without checkout. In 2020, over 450 million people. 8% of the world's adult population, checked out on Shopify. Day in and day out, our core engineering team is focused on ensuring that our checkout remains the best on the planet. We are relentless in our pursuit of this goal. Constantly optimizing, constantly pushing our limits. We know how to scale a checkout to handle the volume of the internet. And we've proven it with some of the largest flash sales in history. Last year, during Black Friday-Cyber Monday holiday, the biggest e-commerce moment of the year, over $5 billion was processed through Shopify checkout. At its peak, our platform was processing tens of thousands of checkouts per minute. That is incredible scale. But we're not done. We have continued to invest heavily in scale and soon, any single shop, at any single minute, will be able to support the same amount of traffic that we had across all of Shopify at our peak of BFCM 2020. And on top of that, we've also cut our checkout page load times by half. You've also just heard from Vanessa about how you can customize the online store to tell your story. And today, we will bring that flexibility to checkout. In the past, you had two options to configure checkout. Everyone could make small changes through the editor and plus merchants had access to the wild west of checkout.liquid. Our goal all along has been to allow merchants to customize checkout without compromising on the trust, speed, and scale, that you depend on us for. Today, we're excited to announce that we're making it possible to extend checkout with apps. We're introducing a new set of capabilities so that you can build exactly what merchants need. From simple changes to the look and feel, all the way through to complex UI and bespoke server-side business logic. These new capabilities include, checkout UI extensions, an overhaul of scripts, and a new payment platform. I'm gonna throw it out to Manuel now to tell you more. - I'm excited to be here, to dig a bit more into these apps for checkout. The new way to customize an extent checkout. In the past, customizations required you to hack checkout.liquid. Now, as Dal just mention, we're changing the way customizations gets built with apps at the center of our new approach. These apps will be easy for you to distribute, fast for merchants to install, and upgrade-safe. So merchants continue getting all the platform benefits as we release new features. Checkout extensions using new technology that allows us to take your code, host it on Shopify CDN for fast delivery, and run it securely inside of a web worker sandbox in the browser. The system maintains flexibility, but also has guardrails that ensures the trust and performance our checkout has always been known for. I'm sure you're all eager to see it in action. (gentle music) So this is my store, Plant. I have a nursery, and I still a pretty cool range of plants and products to help them grow. In addition to plants, I also sell fertilizer, which is a regulated product. And since a lot of my buyers are based in California, I'm going to build an app that shows a warning message under the order summary, to comply with the local Prop 65 regulation. So I have my development set up already. And I wrote a piece of code here that checks the product metafield, to see if they should trigger the warning. It also reads the shipping address, to check if the buyer is from California. Now, I wanted to create a warning message UI. With checkout extensions, Shopify will provide you with a component library that your app will use to create custom experiences and inject them at various extension points within checkout. Now I'm going to build the UI for the warning using some of those components. So I'm gonna start a view adding a border. And then drop a text block. And I have my Prop 65 warning, then I can paste it. Jumping into my subs checkout, you'll first notice that I've done some light customization to the appearance using our new Branding API. The Branding API gives you control over things like colors, spacing, typography, and more. Okay. So I have my fertilizer in the cart. And now, I'm going to change my shipping address to California. And there's my Prop 65 warning. But it's not looking very good. So I'm going to adjust the appearance by adding a few properties specific to my extension. One of the especially cool things about extensions is that they automatically inherit the appearance from the Branding API. You don't have to worry about duplicating brand settings in your app. I'll add an icon and wrap them into a bookend for perfect alignment. As you can see the extension fits right in. Okay, so this is looking good. But now, I'd like to add a little something to reward my best customers. For that, I'd like to introduce Gil Greenberg from Checkout Promotions. Gil's going to show us how easy it is to build a more advanced extension. - Thanks Manuel. Hey everyone. I'm Gill Greenberg the creator of Checkout Promotions, a Shopify app I've been building on the side for the past year and just recently left my job to work on full time. I'm super excited to share with all of you a preview of how to build a free gift with purchase checkout extension using UI components and APIs. So let's dive right in. Now you've already seen from Manuel how to build up the UI for an extension. I'm gonna take a shortcut and start from the UI code here. So this looks great, but you'll notice when we click add, nothing happens. What I need to do is use the provided React hook, and call the API to add a new product to the cart whenever the user clicks the add button. Let's do that now. (gentle music) I'm now passing a simple payload with the product and quantity I want to add. Now, whenever the user clicks the add button, the product will be added directly to the checkout and I don't need to worry about updating any other UI elements or triggering a full page refresh. Now finally, I'll add a bit of state management with standard React code, based off the response I get back from the API. First, I'm gonna make sure the offer's hidden once it's accepted and then I'll add loading state on the button. And with that, we're pretty much done. So let's take a look at what we've made. If we go back to checkout, and we click add, you'll see a loading state, the product is added, and the offer gets hidden. So that looks great. Now back to you Manuel. - Thanks Gill. So let's see it all come together. (upbeat music) So I'm opening up checkout with a potted plant already in my cart. The apps are just a free gift with the purchase, a sample of the recommended fertilizer. When the buyer accepts and the fertilizer is added to the cart, our second extension automatically loads and presents the warning. As you can see, both apps are fully decoupled and living in their own code base. Yet, they can play nicely together. Also, since these apps are built on top of solid APIs, they will always be automatically compatible with new features we release. So before the wheels in your brain gets cranking with all the things you'll build with checkout extensions, there's one more thing I wanna highlight. With checkout.liquid, changes like these were not applied on Shop Pay. Merchants needed to choose between maintaining their customizations, or disabling Shop Pay and take a hit on conversion. Now, checkout extensions and your branding settings, will show up even on Shop Pay. It will all just work. We're really excited about checkout extensions opening up a big opportunity for our partners to build out for checkout. And for all merchants, including those not on plus. Today, we're launching our first checkout extension called Post Purchase Extension. You can use it to present offers, or show content to buyers right after they completed their checkout, but before they arrive on the thank you page. We'll be opening up developer access to checkout extension and other parts of checkout in Q4. So be on the lookout for more information later this year. Let's talk about the backend component of checkout extensibility. Shopify Scripts. We released Shopify Scripts about five years ago, and it's been used by thousands of plus merchants to build custom logic unique to their brand. Although Script is an incredibly powerful tool, we believe it can be even better. And that's why we've rebuilt the script infrastructure from the ground up using WebAssembly. This new foundation will speed up the development process, improve reliability, and make your scripts run much faster. In fact, we've managed to get the most complex scripts code executing in under five milliseconds. But that's not all. Since scripts execute directly in Shopify, they can scale up to handle the performance needs of the biggest brands and flash sellers in the world. Now, all these improvements are great, but they won't make an impact without a best in class developer experience. That's why we've seriously upgraded the developer tooling. Practically speaking, the biggest improvement that we've made is that you can now build Shopify Scripts, using your preferred development workflow. Also scripts are now deployed and installed using apps. So you will be able to deploy your scripts to multiple stores, and merchants will be able to use them without ever touching code. No more copy and pasting. Now that you've heard about the changes, let's see what the experience actually looks like. To do this, I'm going to build a script that sorts shipping methods based on carbon emissions. So customers can pick up the most eco-friendly option. Although this isn't a use case that everyone will want, it will show you how incredibly easy it is to build unique checkout experiences with scripts. The first thing I'll do, is to use the CLI to scaffold our script project with all the necessary files to get started. When it comes to computing the most eco-friendly shipping option, I know that the biggest driver of CO2 emission is the type of transportation used. So, I've created a library that calculates total emissions based on the shipping distance and the transportation type. Next, I'm going to write a function that takes in the cart information and shipping methods. And then return a sorted list of shipping options from the lowest to highest. Now that my function is ready, I'll wire it all up, and the sorted list of shipping options will be rendered in the checkout. As you can see, we've been laser focused on making it easier for you to build the customizations that merchants needs to be successful and to stand out from the crowd. Although I built a shipping script for a single store, we envision a future where you can easily turn your script into a public app that's available for every merchant on Shopify. With our new Shopify Scripts announcements, you can now get into the business of being a checkout app developer. Now, we can't talk about checkout extensibility without talking about payments. Our partners are a critical part of our payment ecosystem. Solving for a diverse set of merchants needs. In fact, you've generated almost $65 billion in GMV last year alone. That's an astonishing number. This was all done by integrating with Shopify's checkout through active merchant and Hosted Payment SDK. Shopify merchants sells all over the world. And new payment methods appear at a faster rate than we can integrate into our platform. That's why, we're excited to announce that we now have a better option for all of our payment developers. Shopify's Payment platform will replace our legacy integration points and enables you to create payment gateways, as Shopify apps. The Payments platform has been built to work with Shopify as newest checkout technology stack. And will be the foundation as we continue to build new features and functionality. Payment apps will be easy to customize, fast for merchants to install, and enable you to build faster with modern APIs. I wanna show you how it works. First things first, you'll configure your payment app in the partners dashboard. You'll be able to easily configure your app settings like adding payment methods, and country availability. To improve localization, you can change the name of your payment gateway in different languages. And this is also where you'll be able to version your APIs. It's like building any other Shopify app. Once your app is approved, merchants can onboard directly to the Shopify admin. With the payments platform, you now own the end-to-end onboarding experience. We will redirect merchants to a page you will host, so you can collect all the business and KYC related information directly from the merchant. We will rely on OAuth for onboarding rather than passing credentials. It's as easy as that. Together with our partners, we're on a mission to build the best payments platform. So that's a lot of checkout announcements. To recap, I showed you checkout extensions built right into the checkout flow, lightning-fast checkout scripts, and the redesigned payments integration. We worked very hard on this new infrastructure and we can't wait to see what you'll build on it. (upbeat music) - You just heard about all the cool new tech and infrastructure we've built. But now let's talk about how big this opportunity really is. And how we're making it easier for you, developers all over the world, to build real companies on Shopify, while solving merchant problems. E-commerce accelerated at an unprecedented pace last year. This $5 trillion market, now represents nearly 20% of global commerce. And it's being pushed forward by independent merchants all over the world. What we saw is that while global economic impact fell by 3% last year, economic activity with Shopify merchants grew 125%. With this growth comes more diversity in merchant problems across every size, vertical and geography, at every stage of the merchant journey. And this growing demand and complexity represents a massive opportunity for you. Merchants need developers now more than ever. What we've seen is that when you solve real problems for merchants, they're more than willing to pay for your apps. The average developer on Shopify is already earning more sales than the average developer on Apple or Google. We estimate that Shopify developers earn at least one and a half times more than those on Apple, and at least four times more than those on Google. And we're just getting started. The demand for commerce innovation has never been more apparent. In 2020 alone, developers earned more than 2018 and 2019 combined. We saw ecosystem companies start to hit unicorn status. Klaviyo in Boston, ReCharge in LA, Printful in Latvia, Yotpo in New York, solidifying that there is more than one way to build a billion dollar business on Shopify. We wanna make it even easier for any developer in the world to take advantage of this growing opportunity. On top of all the new infrastructure you just learned about, we're gonna share how we're making it easier for you to build apps on Shopify, find the right customers, and manage your growing business. To get us started, I'd like to welcome Rebecca. - Over the past hour, you've heard us talk about all new extensions and toolings we've been working on, to make it easier for developers to build, test, and deploy apps. We've done everything from updating our dev docs in CLI, to improving our real-time testing, to visiting app load speeds, and simplifying app scaffolding. We've been maniacal in our efforts to make building on Shopify as simple and as quick as possible. And what better way to showcase the new developer tooling features we're releasing and just how easy we've made it. Let's build an app from scratch in under two minutes. There are lots of ways apps can integrate with Shopify. For today's demo, I'm gonna build a subscription app extension. This app lets merchants configure subscription settings directly in the Shopify admin, and display subscription plans on the product page. To get started, I'm gonna checkout the Shopify dev docs. In addition to the Shopify CLI upgrades, we've also shipped a new experience in our dev docs. We've made a big effort to improve the discoverability of our docs and focus in navigation on the outcome that you want to achieve. In my case, since I'm building a subscription app extension, I'm gonna look for that tutorial to see what I need to do to provide a best-in-class experience. As you can see, the tutorials have a new typography, a new layout, and multi-programming language code blocks, making them much easier to read and understand. Now that I've read the dev docs, I'm ready to start writing my subscription app. I've already created a partner account, made a development store, and installed the CLI using Homebrew. You can find these instructions in our docs. The first step in creating my app, is to use Shopify create node to scaffold it. Now I'm gonna pop into the partner dashboard and validate that the app was created. And there it is. One of the big design goals of the Shopify CLI, is that you do the bulk of the setup from the command line without having to log into the partner's UI. Next, I need to run the app using Shopify serve and install it in my store using the handy install link. This is where I could add some custom functionality to my app. Like applying a selling plan to multiple products at once. For now, I'm just gonna add some sample UI. And the UI library loads in my development store instantly. Amazing. But we're not done yet. I wanna create an extension that lets merchants interact with the app directly within Shopify. For this I'll use Shopify create extension. Although we have a few different framework options, I'm gonna use JavaScript and React. So now you can use Shopify serve to run it locally. You'll notice that the commands to create an extension are roughly the same as the commands I use to create NAP. Create and then serve. Next, I wanna show you the prebuilt UI on my development store. And show you how I can customize it to fit my needs. Since all the source code is pre-written, it should just need a few minor tweaks. Also, I wanted to call out that our library loading makes development even faster. Since my app extension is done, one cool thing that I wanna do, is test the experience in our new developer console. The developer console will let me test my app with real data and show me how it renders on both the desktop and mobile device. The great part about this is, I don't need to push or publish my app after each change. Instead, it will render instantly from my local environment. Real-time feedback for the win. Now that my testing is complete, I'm gonna push this version as a working draft. You can see that I'm also registering the extension to the app that I previously created. This is what lets me push my extension code to Shopify and run the app extension and the Shopify admin. And bam! I've successfully pushed my app extension, and I can see the date the draft was saved. My final step can't be done through the CLI, so I'm gonna hit that partner dashboard URL to version and publishing extension. Once I hit the publish button, my app is officially in my development store. As you can see, we've made it incredibly fast for you to find the content you need to write, test and deploy an app in under two minutes. So now that you know how easy it is to build on Shopify, what are you waiting for? - Now you know how we've made it easier for you to build high quality apps. But we know running your business is more than just building your app. You need a powerful distribution strategy to get in front of the right merchants at the right time and the tools to easily manage your scaling business. That's why we've enhanced the power of discovery on our app store and highly contextual surfaces like the Shopify admin. With over 1.7 million merchants on the platform, we've been able to deeply understand what unique segments of merchants need at each stage of their journey. And we use that data and insight to build a powerful matching and recommendation algorithm. So now you can get in front of the exact group of customers that need your help. You can see this in action on our new personalized and curated homepage of the app store, through to the category pages. We're introducing new content types, a more personalized feel, improved taxonomy, and a modular approach that will allow us to personalize an experience that's catered carefully to each merchant. On top of the enhanced organic discovery, for those of you looking to invest in accelerated growth, we'll also be enhancing our ads platform with creative format control and more robust features. We've even made it easier for you to manage your billing and payouts. You can now view details on apps subscription charges in the dashboard, and even resolve refund requests directly. Making it easier to understand how merchants experience charges, and how much you can expect to be paid. Now, I can't talk about payments without acknowledging what I know many of you have been asking for, making payouts better and more flexible all over the globe. Well, we're very excited to announce that soon you'll be able to receive payouts through different types of local bank transfers, wire transfers, and other payout methods in addition to PayPal. We support payouts in more than 200 regions and countries around the world. All of this and more is available in your partner dashboard today. We want developers everywhere to have the opportunity to build a successful business in commerce. As you can see, we're investing in every part of the developer experience. From making it easier for you to build products on Shopify, to helping you find customers through our app store, through to managing your business. The opportunity ahead is truly limitless and we wanna help you succeed every step of the way. Stay tuned. You might be surprised just how much we mean that. - I've been part of this incredible community now for over a decade. And I want to drop in and tell you, how proud I am of what we've accomplished together. And, how fast we're accelerating. Our ecosystem has played a huge role in that growth. We've always said we wanna create more opportunities for our developers and our partners than we take for ourselves. And the opportunities, they keep getting bigger. Last year, our partner ecosystem generated, $12,5 billion in revenue. And that number is up more than 84% from 2019. That is four times more than Shopify made. And that is the way it should be. We only succeed when you do. And our merchants, they survive and thrive because of you. As we've said throughout the day, we are committed to make it easier for developers to build their businesses on Shopify. We're solving hard problems here. And anyone who has ever built a business knows how hard it is to find product market fit. With our platform, and our discovery engine, we are able to play matchmaker for you. There are so many businesses out there who are willing to pay money to solve the problem that you fixed with an app. And because of our platform, they will find you when they need you. When you build for Shopify, you build for millions of small businesses who want what you have. And the proof? Well, the proof is in the numbers. Your apps in the Shopify app store, they were installed over 12,5 million times in 2020 alone. Now beyond removing the barrier of product market fit, there's still more we can do to make it easier for you to build on Shopify. So, on August 1st, we are removing all revenue share on the first million dollars you earn selling your apps on the Shopify app store. That means most of you will pay no revenue sharing, keeping you in control of how much money you make. Let me repeat that. Almost all of you will now pay zero revenue share on everything you earn from the Shopify app store. And at the end of every single year, the numbers reset. Every year, your first million dollars is all yours. And after you earn more than a million dollars, we are lowering the revenue share from 20% to 15%. Half of what other popular app stores cost. We are that serious about the potential for you to build on Shopify. We are that serious about allowing you to leverage the scale and power of the Shopify platform. We want the greatest developers in the world focused on making commerce better for everyone. The opportunity size here is massive. The problems are hard to solve. But we are it making easier for you to change the direction of the future of commerce and make a living doing it. So if you are an app developer, a mobile developer, a cloud developer, a student, a startup, or if this is just a side hustle, you can help merchants be successful and be part of the most creative and the most rewarding ecosystem on the planet. I am confident that the most exciting opportunities of your entire career lie ahead if you join us. (upbeat music) - Welcome back. And thank you so much to the team. A lot of hard work went into making all of this happen today. I think this is by far the best version of Shopify has ever existed. So many disparate systems are coming together here for a cohesive forward. This is really platform work at its best. I think this should really set up everyone to build with businesses you want. Bring the ambitions online that you have and really let your creativity shine. There's one more thing I want to talk to you about and it's best shown in code. So let's go write some code. Building for a web is fun. It's like solving a complicated but satisfying puzzle. Since the beginning the web has evolved, constantly gaining new capabilities. Every once in a while, this capabilities has come together into a new approach or a tech stack, that really captures the imagination of that particular time. Ruby on Rails is a good example of a great tech stack that we fully leveraged from the beginning of Shopify's journey. JavaScript and React is another tech stack, that we think it's just about to hit the sweet spot for commerce development. A lot of you are working with a stack on top of the Storefront API that Ilya I showed you earlier. And we've been experimenting with it too. Using React is a lot of fun. And it really fits into how some teams want to work together day to day. And fun is a perfectly good reason for choosing a technology. But we've also observed a few limitations. Limitations that make it complex and challenging for building online stores. Because you're forced to make some trade-offs. Online stores are deceivingly dynamic. Contextual pricing, customer accounts, currencies, languages, and especially rapidly changing product availability make it so. Using React only on the client side leads to load time issues for first time visitors. Especially on low powered mobile devices. Something that commerce is especially sensitive to. If you work around this by using static page generation you give up all that dynamism that I talked about earlier. Just to claw back some of that lost speed. Both of this trade offs, lead to fewer sales according to our data. The good news is that there are some significant additions to React and JavaScript ecosystem coming together soon that really address these issues. So we've been putting in the time to see how we can put everything back together without the downsides, while remaining just as fun to use. And see if this tool set can hit the sweet spot for making creative online stores. It's not something that we are ready to ship yet until later this year, but we really want to share this technical direction with you. It's called Hydrogen, and let's go take a look. (upbeat music) So here we have a store that already has some products. They've got some snowboards here because all my favorite product (indistinct) the snowboards of course. And we already have an online store channel and a point of sale channel. And let's add the Hydrogen channel. The next step is to connect GitHub. Which we'll just quickly do here. And here we are. All the template code to have a private snow devil repository. And we can just copy paste this into our terminal and grab a dependencies and wants the dependencies are there they'll go right over to VSCode. If you've seen React projects, this should be really familiar. You'll find a standard public directory for static assets and then a source directory. Here's a standard app component. And this implements React router from Hydrogen we get default routes component which implements file-based routes. And we gives you a pages directory. In here you'll find index, pages, blocks, collections, products, and so on. This is a standard Liquid file structure that you're already used to. And you can just make new files in here and that'll just work. There's also the Shopify provider. And a Shopify provider connects to the Storefront API, it already knows the right token to use, the right access tokens were already provisioned in the background, all this was done for you just so you can hit the ground running. The biggest difference you'll see here compared to other stacks you might have used in the past, is that the components have .server and .client in their names. That's because we make heavy use of react server components. Which are key to providing the dynamic behavior we need here. Then the store runs in production, .server components will be run in the cloud, .client components that will be run in the browser. What you get out of the box is that only the minimum amount of data is transferred between the two of them. And minimum of JavaScript code is delivered to the browser. Any component only used on the server doesn't even need to be added to the client bundle. This might be the first time you see React to the components, but you'll see them a lot in the future. This is the new approach developed by the React Core team. And we're going to go all in on it because we think it's key for making online stores work. Of course, this means that Hydrogen also has to contain a mini server. So let's get that started. This small server acts as a wonderful development server itself. So as we are opening that here. And here we go. This is the template that we give you. You can click around and, of course, you can make any change. Let's say you'd like to go change the add to bag to add to cart. You'll open the product details, and you just find a right place in code and you save and it will reload immediately. Very cool. Let's make a change that some of us have had to do in the past. We have a couple of colors here, back color and front color on these wonderful snowboards, that aren't as descriptive as I would like them. So I would like to replace them for color swatch. So let's go find the product options component which is just a parent of his file. And let's make this a little bit more dynamic. So let's see if a name of a option includes the word color. If it does, what we want to do here is let's go do a div and we are gonna use some tailwind CSS classes, we ship this with tailwind, you don't have to use it, completely up to you. It's just the way we set up this template. (indistinct) be really recommended is, it great. For screen readers, we're gonna still render the value here. But most people shouldn't see that. And we just make this six high and six wide and rounded-full just simply make it round, good. Now, lastly, we have to add the actual colors so that people understand what we are doing here. And we can just do this directly via the style tag back, we will set up the background tag, and background color to the value because all the options happen to be valid HTML colors. Right. And now, we also need to do this. And then everything's Gucci. So this is really nice. But my favorite thing about this product here is that we have a beautiful 3D model that we got made just to really show off what this product looks like. And I really want to give this placement it deserves. So let's make a slightly larger edit to this. Let's get rid of a feature image across the top. We'll create a new component right here to implement the 3D model right on the screen. Snowboard 3D, sounds good. And I'll just append this to the bottom of the file here. Good. So getting the access to the right data can often be complicated, but since Hydrogen ships with a lot of really useful tools and hooks, this is actually really easy. And since we know that the 3D model is the last item in gallery, we can just get it. Cool. Now we just need to use model 3D which ships with Hydrogen. And we assign the model that we just grabbed. And then we see if this works. That's awesome. This looks so much better. I really love this. The only thing we are losing now, of course, it's that variant pickers just don't dynamically update. But this particular 3D model actually comes with the right textures. All they really have to do is pass the selected variant in. So let's do this quickly. Options equals. Variant name. Selected variant ID. This is something that the 3D model standard supports out of a box. Okay. So after the page reloads, we can fronts for product. I guess you have to turn it around. You know what? That's silly. Let's get the computer to do this for us. We would have to know the selected options, But past that, we will need a little bit of state management. I'm cheating here and using a snippet but this is really basic code. Basically, that color changes. We set the angle to 180 degrees, which is just, you know, the other side of a snowboard. And then we go and pass camera orbit to camera orbit property. Is also something that 3D model viewers support out of box. And after save and hard reload. What we get here is a absolutely fantastic way to design your snowboard. It's just so much fun. Okay. So my team is really excited about Hydrogen especially because of the way we can work together with it. Vanessa showed you earlier the custom content section and she wants to send a pull request for code. So let's make sure our changes are reflected. And push this up to GitHub. Okay. If you go to the GitHub channel, you'll find the pull request and have a look. So here we have the testimonials. But looking at screenshots is kind of boring. Why don't we merge this have a look at it live? So if we could go to get this code from GitHub now. But there's an even easier way. Because there's also the deployment section down here. Because it happens every time you push to GitHub. Now, GitHub action takes a code and deploys it to something which we call Oxygen. Oxygen is a hosting servers, bespoke build for Hydrogen apps. And it has a lot of cool features. It makes working together really easy because you can go and see a preview for every branch in GitHub. But we hope will feel considered it in the future for running your production environments as well. It's not something you'd need to do. Hydrogen apps are easy to deploy. We give you a Dockerfile that'll work just great. Or you can deploy it to any hosting service that you might prefer. Okay. What did we just show you? You've talked about Hydrogen, a new toolkit for building amazingly creative online stores. And we've shown you React components and hooks and some of the workflows, so that you can imagine what it feels like to use these tools day in, day out. We've talked a little bit about Oxygen our new infrastructure for running Hydrogen apps. Super fast, global, custom designed for the commerce use case. All of this lets you focus on what you do best, creating amazingly creative online stores that are fun to both use and to make. So when are you going to be able to play with this? Well it's coming later this year. Hydrogen and Liquid channels will be available side by side. We expect most of our merchants to use Liquid. And will remain the default out of the box choice for Shopify stores. It has advantages, like the theme editor, like app blocks, and existing vibrant partner ecosystem. It's worth saying, nothing we've shown you in the Hydrogen demo, is something that couldn't ought to be accomplished in Liquid. The question really comes down to your team and what inspires them. Now, I keep talking about fun. I think fun is really underrated in business. 17 years ago, I made a bet on Ruby, a Japanese programming language. And Rails, which was just released a few days earlier. There weren't common choices back then, but I chose them because they inspired me. And that kept me going from my own entrepreneurial journey. The way they let me build software just fed more natural than anything else I use before. It allowed me to build Shopify in just the way I wanted to work. But if I'd ever feeling like I needed to compromise. There was nothing during that time that gave me more energy that working on Shopify's code. I'm convinced that if it wasn't for those tools and the inspiration they gave me, Shopify simply wouldn't exist today. So I guess what I really learned along the way is that fun is actually good for business. The most creative things in the world are created by talented people when they are having fun solving problems together. Let's work together to make sure that the internet stays vibrant. Full of loud and unique voices, and allow ourselves to have some fun while doing it. Thank you very much for joining us today. (upbeat music)
Info
Channel: ShopifyDevs
Views: 46,855
Rating: undefined out of 5
Keywords: Shopify
Id: 2vANhRa23ug
Channel Id: undefined
Length: 75min 50sec (4550 seconds)
Published: Tue Jun 29 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.