POPULARITY
#0179 John and Abigail Adams' Letters, Government Shutdown, Xenophobic Nationalist Apologetics, Ben & Jerry's: Abortion Ice Cream, Nicki Knows Facts, and The Great Divorce Chapter 5 Introduction Government Shutdown Avoided Cut 1 Narrowly avoided a shutdown Senate passes GOP-led bill to avoid government shutdown Cut 2 Do you remember these moments? https://youtu.be/KPQScyuH-QE?si=LZ8wV2GmMB1H3pXe Cut 3 See where Dems are now? https://www.youtube.com/shorts/IqLxHd9GbSA They do not believe what they said, they are liars. Remember this when discussing abortion, LGBT issues, and government shutdowns. Xenophobic Nationalist Apologist Moment Cut 4 https://youtu.be/Js15xgK4LIE?t=2429 From here until about 44:14 Cut 5 The issue with the Left not understanding Ethics vs Morality and being totally clueless as to what they believe: https://youtu.be/Js15xgK4LIE?t=1531 - 31:10 Cut 6 This immigrant aptly dealt with the Social Security Issue: https://youtu.be/Js15xgK4LIE?t=3375 - 1:04:15 Love is NOT Blind Here we see encapsulated in a horrible show, a horrible bride, a horrible groom, and perhaps a horrible church, why the West is dying: Cut 7 https://www.youtube.com/watch?v=t0WD82ZmpJU Where was this man's Church? Was he ever confronted on this? Has he never thought about it? Was he so spineless he couldn't stand up to her or did he just not have a strong enough opinion. More: https://www.reddit.com/r/LoveIsBlindNetflix/comments/1jah81z/bens_tiktok_response_part_2_ben_brings_the/ A Culture Flavored in Abortion With footage from the Women's March on 030825 has been flooding our screens this past week, I'm led to ask: what exactly does this day mean at this point? Cut 8 https://www.instagram.com/benandjerrys/reel/DG8xxaSvwKK/ Cut 9-14 Ben and Jerry's Political Statement on Abortion We see this idea that abortion is inextricably intertwined with women's rights, to the point where we're back to debating the right of Churches to abstain for paying for abortions: Cut 15 https://washingtonstand.com/news/shocking-court-rules-church-must-include-abortion-in-employee-health-care-plan- Cut 16 For International Women's Day, Dylan Mulvaney was on the View, and here is what Whoopi had to say: https://youtu.be/_hEldny3f74?t=467 What is the agenda truly here? How does confusing and separating Gender Roles divorce us from our understanding of God? John Adams' Letter to Abigail Adams 1776 Summary of each Paragraph: Cut 17-18: Paragraph 1: If we had declared independence 7 months ago, we could have taken Canada, but the fractious nature of the Convention and the Tories ultimately stymied our best shot of winning Quebec. This loss of opportunity provides Britain with a foothold on our northern border, disadvantages us. Cut 19 Paragraph 2: None of that truly matters, however, because of the terrible epidemic of Smallpox that broke out amongst our troops. God is aware of this, and we should be looking to Him to see why these events have turned out the way they have. Cut 20 Paragraph 3: The bright side of the delay is this: The idea of Reconciliation between Britain and America is dead. Everyone knows what must be done now. We all understand what is ahead and have a sober mind to that end. The Union is formed and strong in a manner not possible 6 months ago. Cut 21 Paragraph 4: July 2nd , 1776 will always live in memory as a beautiful day for liberty and of God's Providence. Cut 22 Paragraph 5: You may think me silly with joy, but I understand how dark the coming days and years will be. God will carry us through. https://founders.archives.gov/documents/Adams/04-02-02-0016 Nicki Knows Facts Time Zone Trouble: Why were they first conceived and what is Daylight Savings Time? Cut 23-25 The Great Divorce Chapter 5 Cut 26-33 Closing What's your bucket list trip PNGs of the cuts (NOT the real ones, *my png isn't playing….lol*)
Today's episode is with Paul Klein, founder of Browserbase. We talked about building browser infrastructure for AI agents, the future of agent authentication, and their open source framework Stagehand.* [00:00:00] Introductions* [00:04:46] AI-specific challenges in browser infrastructure* [00:07:05] Multimodality in AI-Powered Browsing* [00:12:26] Running headless browsers at scale* [00:18:46] Geolocation when proxying* [00:21:25] CAPTCHAs and Agent Auth* [00:28:21] Building “User take over” functionality* [00:33:43] Stagehand: AI web browsing framework* [00:38:58] OpenAI's Operator and computer use agents* [00:44:44] Surprising use cases of Browserbase* [00:47:18] Future of browser automation and market competition* [00:53:11] Being a solo founderTranscriptAlessio [00:00:04]: Hey everyone, welcome to the Latent Space podcast. This is Alessio, partner and CTO at Decibel Partners, and I'm joined by my co-host Swyx, founder of Smol.ai.swyx [00:00:12]: Hey, and today we are very blessed to have our friends, Paul Klein, for the fourth, the fourth, CEO of Browserbase. Welcome.Paul [00:00:21]: Thanks guys. Yeah, I'm happy to be here. I've been lucky to know both of you for like a couple of years now, I think. So it's just like we're hanging out, you know, with three ginormous microphones in front of our face. It's totally normal hangout.swyx [00:00:34]: Yeah. We've actually mentioned you on the podcast, I think, more often than any other Solaris tenant. Just because like you're one of the, you know, best performing, I think, LLM tool companies that have started up in the last couple of years.Paul [00:00:50]: Yeah, I mean, it's been a whirlwind of a year, like Browserbase is actually pretty close to our first birthday. So we are one years old. And going from, you know, starting a company as a solo founder to... To, you know, having a team of 20 people, you know, a series A, but also being able to support hundreds of AI companies that are building AI applications that go out and automate the web. It's just been like, really cool. It's been happening a little too fast. I think like collectively as an AI industry, let's just take a week off together. I took my first vacation actually two weeks ago, and Operator came out on the first day, and then a week later, DeepSeat came out. And I'm like on vacation trying to chill. I'm like, we got to build with this stuff, right? So it's been a breakneck year. But I'm super happy to be here and like talk more about all the stuff we're seeing. And I'd love to hear kind of what you guys are excited about too, and share with it, you know?swyx [00:01:39]: Where to start? So people, you've done a bunch of podcasts. I think I strongly recommend Jack Bridger's Scaling DevTools, as well as Turner Novak's The Peel. And, you know, I'm sure there's others. So you covered your Twilio story in the past, talked about StreamClub, you got acquired to Mux, and then you left to start Browserbase. So maybe we just start with what is Browserbase? Yeah.Paul [00:02:02]: Browserbase is the web browser for your AI. We're building headless browser infrastructure, which are browsers that run in a server environment that's accessible to developers via APIs and SDKs. It's really hard to run a web browser in the cloud. You guys are probably running Chrome on your computers, and that's using a lot of resources, right? So if you want to run a web browser or thousands of web browsers, you can't just spin up a bunch of lambdas. You actually need to use a secure containerized environment. You have to scale it up and down. It's a stateful system. And that infrastructure is, like, super painful. And I know that firsthand, because at my last company, StreamClub, I was CTO, and I was building our own internal headless browser infrastructure. That's actually why we sold the company, is because Mux really wanted to buy our headless browser infrastructure that we'd built. And it's just a super hard problem. And I actually told my co-founders, I would never start another company unless it was a browser infrastructure company. And it turns out that's really necessary in the age of AI, when AI can actually go out and interact with websites, click on buttons, fill in forms. You need AI to do all of that work in an actual browser running somewhere on a server. And BrowserBase powers that.swyx [00:03:08]: While you're talking about it, it occurred to me, not that you're going to be acquired or anything, but it occurred to me that it would be really funny if you became the Nikita Beer of headless browser companies. You just have one trick, and you make browser companies that get acquired.Paul [00:03:23]: I truly do only have one trick. I'm screwed if it's not for headless browsers. I'm not a Go programmer. You know, I'm in AI grant. You know, browsers is an AI grant. But we were the only company in that AI grant batch that used zero dollars on AI spend. You know, we're purely an infrastructure company. So as much as people want to ask me about reinforcement learning, I might not be the best guy to talk about that. But if you want to ask about headless browser infrastructure at scale, I can talk your ear off. So that's really my area of expertise. And it's a pretty niche thing. Like, nobody has done what we're doing at scale before. So we're happy to be the experts.swyx [00:03:59]: You do have an AI thing, stagehand. We can talk about the sort of core of browser-based first, and then maybe stagehand. Yeah, stagehand is kind of the web browsing framework. Yeah.What is Browserbase? Headless Browser Infrastructure ExplainedAlessio [00:04:10]: Yeah. Yeah. And maybe how you got to browser-based and what problems you saw. So one of the first things I worked on as a software engineer was integration testing. Sauce Labs was kind of like the main thing at the time. And then we had Selenium, we had Playbrite, we had all these different browser things. But it's always been super hard to do. So obviously you've worked on this before. When you started browser-based, what were the challenges? What were the AI-specific challenges that you saw versus, there's kind of like all the usual running browser at scale in the cloud, which has been a problem for years. What are like the AI unique things that you saw that like traditional purchase just didn't cover? Yeah.AI-specific challenges in browser infrastructurePaul [00:04:46]: First and foremost, I think back to like the first thing I did as a developer, like as a kid when I was writing code, I wanted to write code that did stuff for me. You know, I wanted to write code to automate my life. And I do that probably by using curl or beautiful soup to fetch data from a web browser. And I think I still do that now that I'm in the cloud. And the other thing that I think is a huge challenge for me is that you can't just create a web site and parse that data. And we all know that now like, you know, taking HTML and plugging that into an LLM, you can extract insights, you can summarize. So it was very clear that now like dynamic web scraping became very possible with the rise of large language models or a lot easier. And that was like a clear reason why there's been more usage of headless browsers, which are necessary because a lot of modern websites don't expose all of their page content via a simple HTTP request. You know, they actually do require you to run this type of code for a specific time. JavaScript on the page to hydrate this. Airbnb is a great example. You go to airbnb.com. A lot of that content on the page isn't there until after they run the initial hydration. So you can't just scrape it with a curl. You need to have some JavaScript run. And a browser is that JavaScript engine that's going to actually run all those requests on the page. So web data retrieval was definitely one driver of starting BrowserBase and the rise of being able to summarize that within LLM. Also, I was familiar with if I wanted to automate a website, I could write one script and that would work for one website. It was very static and deterministic. But the web is non-deterministic. The web is always changing. And until we had LLMs, there was no way to write scripts that you could write once that would run on any website. That would change with the structure of the website. Click the login button. It could mean something different on many different websites. And LLMs allow us to generate code on the fly to actually control that. So I think that rise of writing the generic automation scripts that can work on many different websites, to me, made it clear that browsers are going to be a lot more useful because now you can automate a lot more things without writing. If you wanted to write a script to book a demo call on 100 websites, previously, you had to write 100 scripts. Now you write one script that uses LLMs to generate that script. That's why we built our web browsing framework, StageHand, which does a lot of that work for you. But those two things, web data collection and then enhanced automation of many different websites, it just felt like big drivers for more browser infrastructure that would be required to power these kinds of features.Alessio [00:07:05]: And was multimodality also a big thing?Paul [00:07:08]: Now you can use the LLMs to look, even though the text in the dome might not be as friendly. Maybe my hot take is I was always kind of like, I didn't think vision would be as big of a driver. For UI automation, I felt like, you know, HTML is structured text and large language models are good with structured text. But it's clear that these computer use models are often vision driven, and they've been really pushing things forward. So definitely being multimodal, like rendering the page is required to take a screenshot to give that to a computer use model to take actions on a website. And it's just another win for browser. But I'll be honest, that wasn't what I was thinking early on. I didn't even think that we'd get here so fast with multimodality. I think we're going to have to get back to multimodal and vision models.swyx [00:07:50]: This is one of those things where I forgot to mention in my intro that I'm an investor in Browserbase. And I remember that when you pitched to me, like a lot of the stuff that we have today, we like wasn't on the original conversation. But I did have my original thesis was something that we've talked about on the podcast before, which is take the GPT store, the custom GPT store, all the every single checkbox and plugin is effectively a startup. And this was the browser one. I think the main hesitation, I think I actually took a while to get back to you. The main hesitation was that there were others. Like you're not the first hit list browser startup. It's not even your first hit list browser startup. There's always a question of like, will you be the category winner in a place where there's a bunch of incumbents, to be honest, that are bigger than you? They're just not targeted at the AI space. They don't have the backing of Nat Friedman. And there's a bunch of like, you're here in Silicon Valley. They're not. I don't know.Paul [00:08:47]: I don't know if that's, that was it, but like, there was a, yeah, I mean, like, I think I tried all the other ones and I was like, really disappointed. Like my background is from working at great developer tools, companies, and nothing had like the Vercel like experience. Um, like our biggest competitor actually is partly owned by private equity and they just jacked up their prices quite a bit. And the dashboard hasn't changed in five years. And I actually used them at my last company and tried them and I was like, oh man, like there really just needs to be something that's like the experience of these great infrastructure companies, like Stripe, like clerk, like Vercel that I use in love, but oriented towards this kind of like more specific category, which is browser infrastructure, which is really technically complex. Like a lot of stuff can go wrong on the internet when you're running a browser. The internet is very vast. There's a lot of different configurations. Like there's still websites that only work with internet explorer out there. How do you handle that when you're running your own browser infrastructure? These are the problems that we have to think about and solve at BrowserBase. And it's, it's certainly a labor of love, but I built this for me, first and foremost, I know it's super cheesy and everyone says that for like their startups, but it really, truly was for me. If you look at like the talks I've done even before BrowserBase, and I'm just like really excited to try and build a category defining infrastructure company. And it's, it's rare to have a new category of infrastructure exists. We're here in the Chroma offices and like, you know, vector databases is a new category of infrastructure. Is it, is it, I mean, we can, we're in their office, so, you know, we can, we can debate that one later. That is one.Multimodality in AI-Powered Browsingswyx [00:10:16]: That's one of the industry debates.Paul [00:10:17]: I guess we go back to the LLMOS talk that Karpathy gave way long ago. And like the browser box was very clearly there and it seemed like the people who were building in this space also agreed that browsers are a core primitive of infrastructure for the LLMOS that's going to exist in the future. And nobody was building something there that I wanted to use. So I had to go build it myself.swyx [00:10:38]: Yeah. I mean, exactly that talk that, that honestly, that diagram, every box is a startup and there's the code box and then there's the. The browser box. I think at some point they will start clashing there. There's always the question of the, are you a point solution or are you the sort of all in one? And I think the point solutions tend to win quickly, but then the only ones have a very tight cohesive experience. Yeah. Let's talk about just the hard problems of browser base you have on your website, which is beautiful. Thank you. Was there an agency that you used for that? Yeah. Herb.paris.Paul [00:11:11]: They're amazing. Herb.paris. Yeah. It's H-E-R-V-E. I highly recommend for developers. Developer tools, founders to work with consumer agencies because they end up building beautiful things and the Parisians know how to build beautiful interfaces. So I got to give prep.swyx [00:11:24]: And chat apps, apparently are, they are very fast. Oh yeah. The Mistral chat. Yeah. Mistral. Yeah.Paul [00:11:31]: Late chat.swyx [00:11:31]: Late chat. And then your videos as well, it was professionally shot, right? The series A video. Yeah.Alessio [00:11:36]: Nico did the videos. He's amazing. Not the initial video that you shot at the new one. First one was Austin.Paul [00:11:41]: Another, another video pretty surprised. But yeah, I mean, like, I think when you think about how you talk about your company. You have to think about the way you present yourself. It's, you know, as a developer, you think you evaluate a company based on like the API reliability and the P 95, but a lot of developers say, is the website good? Is the message clear? Do I like trust this founder? I'm building my whole feature on. So I've tried to nail that as well as like the reliability of the infrastructure. You're right. It's very hard. And there's a lot of kind of foot guns that you run into when running headless browsers at scale. Right.Competing with Existing Headless Browser Solutionsswyx [00:12:10]: So let's pick one. You have eight features here. Seamless integration. Scalability. Fast or speed. Secure. Observable. Stealth. That's interesting. Extensible and developer first. What comes to your mind as like the top two, three hardest ones? Yeah.Running headless browsers at scalePaul [00:12:26]: I think just running headless browsers at scale is like the hardest one. And maybe can I nerd out for a second? Is that okay? I heard this is a technical audience, so I'll talk to the other nerds. Whoa. They were listening. Yeah. They're upset. They're ready. The AGI is angry. Okay. So. So how do you run a browser in the cloud? Let's start with that, right? So let's say you're using a popular browser automation framework like Puppeteer, Playwright, and Selenium. Maybe you've written a code, some code locally on your computer that opens up Google. It finds the search bar and then types in, you know, search for Latent Space and hits the search button. That script works great locally. You can see the little browser open up. You want to take that to production. You want to run the script in a cloud environment. So when your laptop is closed, your browser is doing something. The browser is doing something. Well, I, we use Amazon. You can see the little browser open up. You know, the first thing I'd reach for is probably like some sort of serverless infrastructure. I would probably try and deploy on a Lambda. But Chrome itself is too big to run on a Lambda. It's over 250 megabytes. So you can't easily start it on a Lambda. So you maybe have to use something like Lambda layers to squeeze it in there. Maybe use a different Chromium build that's lighter. And you get it on the Lambda. Great. It works. But it runs super slowly. It's because Lambdas are very like resource limited. They only run like with one vCPU. You can run one process at a time. Remember, Chromium is super beefy. It's barely running on my MacBook Air. I'm still downloading it from a pre-run. Yeah, from the test earlier, right? I'm joking. But it's big, you know? So like Lambda, it just won't work really well. Maybe it'll work, but you need something faster. Your users want something faster. Okay. Well, let's put it on a beefier instance. Let's get an EC2 server running. Let's throw Chromium on there. Great. Okay. I can, that works well with one user. But what if I want to run like 10 Chromium instances, one for each of my users? Okay. Well, I might need two EC2 instances. Maybe 10. All of a sudden, you have multiple EC2 instances. This sounds like a problem for Kubernetes and Docker, right? Now, all of a sudden, you're using ECS or EKS, the Kubernetes or container solutions by Amazon. You're spending up and down containers, and you're spending a whole engineer's time on kind of maintaining this stateful distributed system. Those are some of the worst systems to run because when it's a stateful distributed system, it means that you are bound by the connections to that thing. You have to keep the browser open while someone is working with it, right? That's just a painful architecture to run. And there's all this other little gotchas with Chromium, like Chromium, which is the open source version of Chrome, by the way. You have to install all these fonts. You want emojis working in your browsers because your vision model is looking for the emoji. You need to make sure you have the emoji fonts. You need to make sure you have all the right extensions configured, like, oh, do you want ad blocking? How do you configure that? How do you actually record all these browser sessions? Like it's a headless browser. You can't look at it. So you need to have some sort of observability. Maybe you're recording videos and storing those somewhere. It all kind of adds up to be this just giant monster piece of your project when all you wanted to do was run a lot of browsers in production for this little script to go to google.com and search. And when I see a complex distributed system, I see an opportunity to build a great infrastructure company. And we really abstract that away with Browserbase where our customers can use these existing frameworks, Playwright, Publisher, Selenium, or our own stagehand and connect to our browsers in a serverless-like way. And control them, and then just disconnect when they're done. And they don't have to think about the complex distributed system behind all of that. They just get a browser running anywhere, anytime. Really easy to connect to.swyx [00:15:55]: I'm sure you have questions. My standard question with anything, so essentially you're a serverless browser company, and there's been other serverless things that I'm familiar with in the past, serverless GPUs, serverless website hosting. That's where I come from with Netlify. One question is just like, you promised to spin up thousands of servers. You promised to spin up thousands of browsers in milliseconds. I feel like there's no real solution that does that yet. And I'm just kind of curious how. The only solution I know, which is to kind of keep a kind of warm pool of servers around, which is expensive, but maybe not so expensive because it's just CPUs. So I'm just like, you know. Yeah.Browsers as a Core Primitive in AI InfrastructurePaul [00:16:36]: You nailed it, right? I mean, how do you offer a serverless-like experience with something that is clearly not serverless, right? And the answer is, you need to be able to run... We run many browsers on single nodes. We use Kubernetes at browser base. So we have many pods that are being scheduled. We have to predictably schedule them up or down. Yes, thousands of browsers in milliseconds is the best case scenario. If you hit us with 10,000 requests, you may hit a slower cold start, right? So we've done a lot of work on predictive scaling and being able to kind of route stuff to different regions where we have multiple regions of browser base where we have different pools available. You can also pick the region you want to go to based on like lower latency, round trip, time latency. It's very important with these types of things. There's a lot of requests going over the wire. So for us, like having a VM like Firecracker powering everything under the hood allows us to be super nimble and spin things up or down really quickly with strong multi-tenancy. But in the end, this is like the complex infrastructural challenges that we have to kind of deal with at browser base. And we have a lot more stuff on our roadmap to allow customers to have more levers to pull to exchange, do you want really fast browser startup times or do you want really low costs? And if you're willing to be more flexible on that, we may be able to kind of like work better for your use cases.swyx [00:17:44]: Since you used Firecracker, shouldn't Fargate do that for you or did you have to go lower level than that? We had to go lower level than that.Paul [00:17:51]: I find this a lot with Fargate customers, which is alarming for Fargate. We used to be a giant Fargate customer. Actually, the first version of browser base was ECS and Fargate. And unfortunately, it's a great product. I think we were actually the largest Fargate customer in our region for a little while. No, what? Yeah, seriously. And unfortunately, it's a great product, but I think if you're an infrastructure company, you actually have to have a deeper level of control over these primitives. I think it's the same thing is true with databases. We've used other database providers and I think-swyx [00:18:21]: Yeah, serverless Postgres.Paul [00:18:23]: Shocker. When you're an infrastructure company, you're on the hook if any provider has an outage. And I can't tell my customers like, hey, we went down because so-and-so went down. That's not acceptable. So for us, we've really moved to bringing things internally. It's kind of opposite of what we preach. We tell our customers, don't build this in-house, but then we're like, we build a lot of stuff in-house. But I think it just really depends on what is in the critical path. We try and have deep ownership of that.Alessio [00:18:46]: On the distributed location side, how does that work for the web where you might get sort of different content in different locations, but the customer is expecting, you know, if you're in the US, I'm expecting the US version. But if you're spinning up my browser in France, I might get the French version. Yeah.Paul [00:19:02]: Yeah. That's a good question. Well, generally, like on the localization, there is a thing called locale in the browser. You can set like what your locale is. If you're like in the ENUS browser or not, but some things do IP, IP based routing. And in that case, you may want to have a proxy. Like let's say you're running something in the, in Europe, but you want to make sure you're showing up from the US. You may want to use one of our proxy features so you can turn on proxies to say like, make sure these connections always come from the United States, which is necessary too, because when you're browsing the web, you're coming from like a, you know, data center IP, and that can make things a lot harder to browse web. So we do have kind of like this proxy super network. Yeah. We have a proxy for you based on where you're going, so you can reliably automate the web. But if you get scheduled in Europe, that doesn't happen as much. We try and schedule you as close to, you know, your origin that you're trying to go to. But generally you have control over the regions you can put your browsers in. So you can specify West one or East one or Europe. We only have one region of Europe right now, actually. Yeah.Alessio [00:19:55]: What's harder, the browser or the proxy? I feel like to me, it feels like actually proxying reliably at scale. It's much harder than spending up browsers at scale. I'm curious. It's all hard.Paul [00:20:06]: It's layers of hard, right? Yeah. I think it's different levels of hard. I think the thing with the proxy infrastructure is that we work with many different web proxy providers and some are better than others. Some have good days, some have bad days. And our customers who've built browser infrastructure on their own, they have to go and deal with sketchy actors. Like first they figure out their own browser infrastructure and then they got to go buy a proxy. And it's like you can pay in Bitcoin and it just kind of feels a little sus, right? It's like you're buying drugs when you're trying to get a proxy online. We have like deep relationships with these counterparties. We're able to audit them and say, is this proxy being sourced ethically? Like it's not running on someone's TV somewhere. Is it free range? Yeah. Free range organic proxies, right? Right. We do a level of diligence. We're SOC 2. So we have to understand what is going on here. But then we're able to make sure that like we route around proxy providers not working. There's proxy providers who will just, the proxy will stop working all of a sudden. And then if you don't have redundant proxying on your own browsers, that's hard down for you or you may get some serious impacts there. With us, like we intelligently know, hey, this proxy is not working. Let's go to this one. And you can kind of build a network of multiple providers to really guarantee the best uptime for our customers. Yeah. So you don't own any proxies? We don't own any proxies. You're right. The team has been saying who wants to like take home a little proxy server, but not yet. We're not there yet. You know?swyx [00:21:25]: It's a very mature market. I don't think you should build that yourself. Like you should just be a super customer of them. Yeah. Scraping, I think, is the main use case for that. I guess. Well, that leads us into CAPTCHAs and also off, but let's talk about CAPTCHAs. You had a little spiel that you wanted to talk about CAPTCHA stuff.Challenges of Scaling Browser InfrastructurePaul [00:21:43]: Oh, yeah. I was just, I think a lot of people ask, if you're thinking about proxies, you're thinking about CAPTCHAs too. I think it's the same thing. You can go buy CAPTCHA solvers online, but it's the same buying experience. It's some sketchy website, you have to integrate it. It's not fun to buy these things and you can't really trust that the docs are bad. What Browserbase does is we integrate a bunch of different CAPTCHAs. We do some stuff in-house, but generally we just integrate with a bunch of known vendors and continually monitor and maintain these things and say, is this working or not? Can we route around it or not? These are CAPTCHA solvers. CAPTCHA solvers, yeah. Not CAPTCHA providers, CAPTCHA solvers. Yeah, sorry. CAPTCHA solvers. We really try and make sure all of that works for you. I think as a dev, if I'm buying infrastructure, I want it all to work all the time and it's important for us to provide that experience by making sure everything does work and monitoring it on our own. Yeah. Right now, the world of CAPTCHAs is tricky. I think AI agents in particular are very much ahead of the internet infrastructure. CAPTCHAs are designed to block all types of bots, but there are now good bots and bad bots. I think in the future, CAPTCHAs will be able to identify who a good bot is, hopefully via some sort of KYC. For us, we've been very lucky. We have very little to no known abuse of Browserbase because we really look into who we work with. And for certain types of CAPTCHA solving, we only allow them on certain types of plans because we want to make sure that we can know what people are doing, what their use cases are. And that's really allowed us to try and be an arbiter of good bots, which is our long term goal. I want to build great relationships with people like Cloudflare so we can agree, hey, here are these acceptable bots. We'll identify them for you and make sure we flag when they come to your website. This is a good bot, you know?Alessio [00:23:23]: I see. And Cloudflare said they want to do more of this. So they're going to set by default, if they think you're an AI bot, they're going to reject. I'm curious if you think this is something that is going to be at the browser level or I mean, the DNS level with Cloudflare seems more where it should belong. But I'm curious how you think about it.Paul [00:23:40]: I think the web's going to change. You know, I think that the Internet as we have it right now is going to change. And we all need to just accept that the cat is out of the bag. And instead of kind of like wishing the Internet was like it was in the 2000s, we can have free content line that wouldn't be scraped. It's just it's not going to happen. And instead, we should think about like, one, how can we change? How can we change the models of, you know, information being published online so people can adequately commercialize it? But two, how do we rebuild applications that expect that AI agents are going to log in on their behalf? Those are the things that are going to allow us to kind of like identify good and bad bots. And I think the team at Clerk has been doing a really good job with this on the authentication side. I actually think that auth is the biggest thing that will prevent agents from accessing stuff, not captchas. And I think there will be agent auth in the future. I don't know if it's going to happen from an individual company, but actually authentication providers that have a, you know, hidden login as agent feature, which will then you put in your email, you'll get a push notification, say like, hey, your browser-based agent wants to log into your Airbnb. You can approve that and then the agent can proceed. That really circumvents the need for captchas or logging in as you and sharing your password. I think agent auth is going to be one way we identify good bots going forward. And I think a lot of this captcha solving stuff is really short-term problems as the internet kind of reorients itself around how it's going to work with agents browsing the web, just like people do. Yeah.Managing Distributed Browser Locations and Proxiesswyx [00:24:59]: Stitch recently was on Hacker News for talking about agent experience, AX, which is a thing that Netlify is also trying to clone and coin and talk about. And we've talked about this on our previous episodes before in a sense that I actually think that's like maybe the only part of the tech stack that needs to be kind of reinvented for agents. Everything else can stay the same, CLIs, APIs, whatever. But auth, yeah, we need agent auth. And it's mostly like short-lived, like it should not, it should be a distinct, identity from the human, but paired. I almost think like in the same way that every social network should have your main profile and then your alt accounts or your Finsta, it's almost like, you know, every, every human token should be paired with the agent token and the agent token can go and do stuff on behalf of the human token, but not be presumed to be the human. Yeah.Paul [00:25:48]: It's like, it's, it's actually very similar to OAuth is what I'm thinking. And, you know, Thread from Stitch is an investor, Colin from Clerk, Octaventures, all investors in browser-based because like, I hope they solve this because they'll make browser-based submission more possible. So we don't have to overcome all these hurdles, but I think it will be an OAuth-like flow where an agent will ask to log in as you, you'll approve the scopes. Like it can book an apartment on Airbnb, but it can't like message anybody. And then, you know, the agent will have some sort of like role-based access control within an application. Yeah. I'm excited for that.swyx [00:26:16]: The tricky part is just, there's one, one layer of delegation here, which is like, you're authoring my user's user or something like that. I don't know if that's tricky or not. Does that make sense? Yeah.Paul [00:26:25]: You know, actually at Twilio, I worked on the login identity and access. Management teams, right? So like I built Twilio's login page.swyx [00:26:31]: You were an intern on that team and then you became the lead in two years? Yeah.Paul [00:26:34]: Yeah. I started as an intern in 2016 and then I was the tech lead of that team. How? That's not normal. I didn't have a life. He's not normal. Look at this guy. I didn't have a girlfriend. I just loved my job. I don't know. I applied to 500 internships for my first job and I got rejected from every single one of them except for Twilio and then eventually Amazon. And they took a shot on me and like, I was getting paid money to write code, which was my dream. Yeah. Yeah. I'm very lucky that like this coding thing worked out because I was going to be doing it regardless. And yeah, I was able to kind of spend a lot of time on a team that was growing at a company that was growing. So it informed a lot of this stuff here. I think these are problems that have been solved with like the SAML protocol with SSO. I think it's a really interesting stuff with like WebAuthn, like these different types of authentication, like schemes that you can use to authenticate people. The tooling is all there. It just needs to be tweaked a little bit to work for agents. And I think the fact that there are companies that are already. Providing authentication as a service really sets it up. Well, the thing that's hard is like reinventing the internet for agents. We don't want to rebuild the internet. That's an impossible task. And I think people often say like, well, we'll have this second layer of APIs built for agents. I'm like, we will for the top use cases, but instead of we can just tweak the internet as is, which is on the authentication side, I think we're going to be the dumb ones going forward. Unfortunately, I think AI is going to be able to do a lot of the tasks that we do online, which means that it will be able to go to websites, click buttons on our behalf and log in on our behalf too. So with this kind of like web agent future happening, I think with some small structural changes, like you said, it feels like it could all slot in really nicely with the existing internet.Handling CAPTCHAs and Agent Authenticationswyx [00:28:08]: There's one more thing, which is the, your live view iframe, which lets you take, take control. Yeah. Obviously very key for operator now, but like, was, is there anything interesting technically there or that the people like, well, people always want this.Paul [00:28:21]: It was really hard to build, you know, like, so, okay. Headless browsers, you don't see them, right. They're running. They're running in a cloud somewhere. You can't like look at them. And I just want to really make, it's a weird name. I wish we came up with a better name for this thing, but you can't see them. Right. But customers don't trust AI agents, right. At least the first pass. So what we do with our live view is that, you know, when you use browser base, you can actually embed a live view of the browser running in the cloud for your customer to see it working. And that's what the first reason is the build trust, like, okay, so I have this script. That's going to go automate a website. I can embed it into my web application via an iframe and my customer can watch. I think. And then we added two way communication. So now not only can you watch the browser kind of being operated by AI, if you want to pause and actually click around type within this iframe that's controlling a browser, that's also possible. And this is all thanks to some of the lower level protocol, which is called the Chrome DevTools protocol. It has a API called start screencast, and you can also send mouse clicks and button clicks to a remote browser. And this is all embeddable within iframes. You have a browser within a browser, yo. And then you simulate the screen, the click on the other side. Exactly. And this is really nice often for, like, let's say, a capture that can't be solved. You saw this with Operator, you know, Operator actually uses a different approach. They use VNC. So, you know, you're able to see, like, you're seeing the whole window here. What we're doing is something a little lower level with the Chrome DevTools protocol. It's just PNGs being streamed over the wire. But the same thing is true, right? Like, hey, I'm running a window. Pause. Can you do something in this window? Human. Okay, great. Resume. Like sometimes 2FA tokens. Like if you get that text message, you might need a person to type that in. Web agents need human-in-the-loop type workflows still. You still need a person to interact with the browser. And building a UI to proxy that is kind of hard. You may as well just show them the whole browser and say, hey, can you finish this up for me? And then let the AI proceed on afterwards. Is there a future where I stream my current desktop to browser base? I don't think so. I think we're very much cloud infrastructure. Yeah. You know, but I think a lot of the stuff we're doing, we do want to, like, build tools. Like, you know, we'll talk about the stage and, you know, web agent framework in a second. But, like, there's a case where a lot of people are going desktop first for, you know, consumer use. And I think cloud is doing a lot of this, where I expect to see, you know, MCPs really oriented around the cloud desktop app for a reason, right? Like, I think a lot of these tools are going to run on your computer because it makes... I think it's breaking out. People are putting it on a server. Oh, really? Okay. Well, sweet. We'll see. We'll see that. I was surprised, though, wasn't I? I think that the browser company, too, with Dia Browser, it runs on your machine. You know, it's going to be...swyx [00:30:50]: What is it?Paul [00:30:51]: So, Dia Browser, as far as I understand... I used to use Arc. Yeah. I haven't used Arc. But I'm a big fan of the browser company. I think they're doing a lot of cool stuff in consumer. As far as I understand, it's a browser where you have a sidebar where you can, like, chat with it and it can control the local browser on your machine. So, if you imagine, like, what a consumer web agent is, which it lives alongside your browser, I think Google Chrome has Project Marina, I think. I almost call it Project Marinara for some reason. I don't know why. It's...swyx [00:31:17]: No, I think it's someone really likes the Waterworld. Oh, I see. The classic Kevin Costner. Yeah.Paul [00:31:22]: Okay. Project Marinara is a similar thing to the Dia Browser, in my mind, as far as I understand it. You have a browser that has an AI interface that will take over your mouse and keyboard and control the browser for you. Great for consumer use cases. But if you're building applications that rely on a browser and it's more part of a greater, like, AI app experience, you probably need something that's more like infrastructure, not a consumer app.swyx [00:31:44]: Just because I have explored a little bit in this area, do people want branching? So, I have the state. Of whatever my browser's in. And then I want, like, 100 clones of this state. Do people do that? Or...Paul [00:31:56]: People don't do it currently. Yeah. But it's definitely something we're thinking about. I think the idea of forking a browser is really cool. Technically, kind of hard. We're starting to see this in code execution, where people are, like, forking some, like, code execution, like, processes or forking some tool calls or branching tool calls. Haven't seen it at the browser level yet. But it makes sense. Like, if an AI agent is, like, using a website and it's not sure what path it wants to take to crawl this website. To find the information it's looking for. It would make sense for it to explore both paths in parallel. And that'd be a very, like... A road not taken. Yeah. And hopefully find the right answer. And then say, okay, this was actually the right one. And memorize that. And go there in the future. On the roadmap. For sure. Don't make my roadmap, please. You know?Alessio [00:32:37]: How do you actually do that? Yeah. How do you fork? I feel like the browser is so stateful for so many things.swyx [00:32:42]: Serialize the state. Restore the state. I don't know.Paul [00:32:44]: So, it's one of the reasons why we haven't done it yet. It's hard. You know? Like, to truly fork, it's actually quite difficult. The naive way is to open the same page in a new tab and then, like, hope that it's at the same thing. But if you have a form halfway filled, you may have to, like, take the whole, you know, container. Pause it. All the memory. Duplicate it. Restart it from there. It could be very slow. So, we haven't found a thing. Like, the easy thing to fork is just, like, copy the page object. You know? But I think there needs to be something a little bit more robust there. Yeah.swyx [00:33:12]: So, MorphLabs has this infinite branch thing. Like, wrote a custom fork of Linux or something that let them save the system state and clone it. MorphLabs, hit me up. I'll be a customer. Yeah. That's the only. I think that's the only way to do it. Yeah. Like, unless Chrome has some special API for you. Yeah.Paul [00:33:29]: There's probably something we'll reverse engineer one day. I don't know. Yeah.Alessio [00:33:32]: Let's talk about StageHand, the AI web browsing framework. You have three core components, Observe, Extract, and Act. Pretty clean landing page. What was the idea behind making a framework? Yeah.Stagehand: AI web browsing frameworkPaul [00:33:43]: So, there's three frameworks that are very popular or already exist, right? Puppeteer, Playwright, Selenium. Those are for building hard-coded scripts to control websites. And as soon as I started to play with LLMs plus browsing, I caught myself, you know, code-genning Playwright code to control a website. I would, like, take the DOM. I'd pass it to an LLM. I'd say, can you generate the Playwright code to click the appropriate button here? And it would do that. And I was like, this really should be part of the frameworks themselves. And I became really obsessed with SDKs that take natural language as part of, like, the API input. And that's what StageHand is. StageHand exposes three APIs, and it's a super set of Playwright. So, if you go to a page, you may want to take an action, click on the button, fill in the form, etc. That's what the act command is for. You may want to extract some data. This one takes a natural language, like, extract the winner of the Super Bowl from this page. You can give it a Zod schema, so it returns a structured output. And then maybe you're building an API. You can do an agent loop, and you want to kind of see what actions are possible on this page before taking one. You can do observe. So, you can observe the actions on the page, and it will generate a list of actions. You can guide it, like, give me actions on this page related to buying an item. And you can, like, buy it now, add to cart, view shipping options, and pass that to an LLM, an agent loop, to say, what's the appropriate action given this high-level goal? So, StageHand isn't a web agent. It's a framework for building web agents. And we think that agent loops are actually pretty close to the application layer because every application probably has different goals or different ways it wants to take steps. I don't think I've seen a generic. Maybe you guys are the experts here. I haven't seen, like, a really good AI agent framework here. Everyone kind of has their own special sauce, right? I see a lot of developers building their own agent loops, and they're using tools. And I view StageHand as the browser tool. So, we expose act, extract, observe. Your agent can call these tools. And from that, you don't have to worry about it. You don't have to worry about generating playwright code performantly. You don't have to worry about running it. You can kind of just integrate these three tool calls into your agent loop and reliably automate the web.swyx [00:35:48]: A special shout-out to Anirudh, who I met at your dinner, who I think listens to the pod. Yeah. Hey, Anirudh.Paul [00:35:54]: Anirudh's a man. He's a StageHand guy.swyx [00:35:56]: I mean, the interesting thing about each of these APIs is they're kind of each startup. Like, specifically extract, you know, Firecrawler is extract. There's, like, Expand AI. There's a whole bunch of, like, extract companies. They just focus on extract. I'm curious. Like, I feel like you guys are going to collide at some point. Like, right now, it's friendly. Everyone's in a blue ocean. At some point, it's going to be valuable enough that there's some turf battle here. I don't think you have a dog in a fight. I think you can mock extract to use an external service if they're better at it than you. But it's just an observation that, like, in the same way that I see each option, each checkbox in the side of custom GBTs becoming a startup or each box in the Karpathy chart being a startup. Like, this is also becoming a thing. Yeah.Paul [00:36:41]: I mean, like, so the way StageHand works is that it's MIT-licensed, completely open source. You bring your own API key to your LLM of choice. You could choose your LLM. We don't make any money off of the extract or really. We only really make money if you choose to run it with our browser. You don't have to. You can actually use your own browser, a local browser. You know, StageHand is completely open source for that reason. And, yeah, like, I think if you're building really complex web scraping workflows, I don't know if StageHand is the tool for you. I think it's really more if you're building an AI agent that needs a few general tools or if it's doing a lot of, like, web automation-intensive work. But if you're building a scraping company, StageHand is not your thing. You probably want something that's going to, like, get HTML content, you know, convert that to Markdown, query it. That's not what StageHand does. StageHand is more about reliability. I think we focus a lot on reliability and less so on cost optimization and speed at this point.swyx [00:37:33]: I actually feel like StageHand, so the way that StageHand works, it's like, you know, page.act, click on the quick start. Yeah. It's kind of the integration test for the code that you would have to write anyway, like the Puppeteer code that you have to write anyway. And when the page structure changes, because it always does, then this is still the test. This is still the test that I would have to write. Yeah. So it's kind of like a testing framework that doesn't need implementation detail.Paul [00:37:56]: Well, yeah. I mean, Puppeteer, Playwright, and Slenderman were all designed as testing frameworks, right? Yeah. And now people are, like, hacking them together to automate the web. I would say, and, like, maybe this is, like, me being too specific. But, like, when I write tests, if the page structure changes. Without me knowing, I want that test to fail. So I don't know if, like, AI, like, regenerating that. Like, people are using StageHand for testing. But it's more for, like, usability testing, not, like, testing of, like, does the front end, like, has it changed or not. Okay. But generally where we've seen people, like, really, like, take off is, like, if they're using, you know, something. If they want to build a feature in their application that's kind of like Operator or Deep Research, they're using StageHand to kind of power that tool calling in their own agent loop. Okay. Cool.swyx [00:38:37]: So let's go into Operator, the first big agent launch of the year from OpenAI. Seems like they have a whole bunch scheduled. You were on break and your phone blew up. What's your just general view of computer use agents is what they're calling it. The overall category before we go into Open Operator, just the overall promise of Operator. I will observe that I tried it once. It was okay. And I never tried it again.OpenAI's Operator and computer use agentsPaul [00:38:58]: That tracks with my experience, too. Like, I'm a huge fan of the OpenAI team. Like, I think that I do not view Operator as the company. I'm not a company killer for browser base at all. I think it actually shows people what's possible. I think, like, computer use models make a lot of sense. And I'm actually most excited about computer use models is, like, their ability to, like, really take screenshots and reasoning and output steps. I think that using mouse click or mouse coordinates, I've seen that proved to be less reliable than I would like. And I just wonder if that's the right form factor. What we've done with our framework is anchor it to the DOM itself, anchor it to the actual item. So, like, if it's clicking on something, it's clicking on that thing, you know? Like, it's more accurate. No matter where it is. Yeah, exactly. Because it really ties in nicely. And it can handle, like, the whole viewport in one go, whereas, like, Operator can only handle what it sees. Can you hover? Is hovering a thing that you can do? I don't know if we expose it as a tool directly, but I'm sure there's, like, an API for hovering. Like, move mouse to this position. Yeah, yeah, yeah. I think you can trigger hover, like, via, like, the JavaScript on the DOM itself. But, no, I think, like, when we saw computer use, everyone's eyes lit up because they realized, like, wow, like, AI is going to actually automate work for people. And I think seeing that kind of happen from both of the labs, and I'm sure we're going to see more labs launch computer use models, I'm excited to see all the stuff that people build with it. I think that I'd love to see computer use power, like, controlling a browser on browser base. And I think, like, Open Operator, which was, like, our open source version of OpenAI's Operator, was our first take on, like, how can we integrate these models into browser base? And we handle the infrastructure and let the labs do the models. I don't have a sense that Operator will be released as an API. I don't know. Maybe it will. I'm curious to see how well that works because I think it's going to be really hard for a company like OpenAI to do things like support CAPTCHA solving or, like, have proxies. Like, I think it's hard for them structurally. Imagine this New York Times headline, OpenAI CAPTCHA solving. Like, that would be a pretty bad headline, this New York Times headline. Browser base solves CAPTCHAs. No one cares. No one cares. And, like, our investors are bored. Like, we're all okay with this, you know? We're building this company knowing that the CAPTCHA solving is short-lived until we figure out how to authenticate good bots. I think it's really hard for a company like OpenAI, who has this brand that's so, so good, to balance with, like, the icky parts of web automation, which it can be kind of complex to solve. I'm sure OpenAI knows who to call whenever they need you. Yeah, right. I'm sure they'll have a great partnership.Alessio [00:41:23]: And is Open Operator just, like, a marketing thing for you? Like, how do you think about resource allocation? So, you can spin this up very quickly. And now there's all this, like, open deep research, just open all these things that people are building. We started it, you know. You're the original Open. We're the original Open operator, you know? Is it just, hey, look, this is a demo, but, like, we'll help you build out an actual product for yourself? Like, are you interested in going more of a product route? That's kind of the OpenAI way, right? They started as a model provider and then…Paul [00:41:53]: Yeah, we're not interested in going the product route yet. I view Open Operator as a model provider. It's a reference project, you know? Let's show people how to build these things using the infrastructure and models that are out there. And that's what it is. It's, like, Open Operator is very simple. It's an agent loop. It says, like, take a high-level goal, break it down into steps, use tool calling to accomplish those steps. It takes screenshots and feeds those screenshots into an LLM with the step to generate the right action. It uses stagehand under the hood to actually execute this action. It doesn't use a computer use model. And it, like, has a nice interface using the live view that we talked about, the iframe, to embed that into an application. So I felt like people on launch day wanted to figure out how to build their own version of this. And we turned that around really quickly to show them. And I hope we do that with other things like deep research. We don't have a deep research launch yet. I think David from AOMNI actually has an amazing open deep research that he launched. It has, like, 10K GitHub stars now. So he's crushing that. But I think if people want to build these features natively into their application, they need good reference projects. And I think Open Operator is a good example of that.swyx [00:42:52]: I don't know. Actually, I'm actually pretty bullish on API-driven operator. Because that's the only way that you can sort of, like, once it's reliable enough, obviously. And now we're nowhere near. But, like, give it five years. It'll happen, you know. And then you can sort of spin this up and browsers are working in the background and you don't necessarily have to know. And it just is booking restaurants for you, whatever. I can definitely see that future happening. I had this on the landing page here. This might be a slightly out of order. But, you know, you have, like, sort of three use cases for browser base. Open Operator. Or this is the operator sort of use case. It's kind of like the workflow automation use case. And it completes with UiPath in the sort of RPA category. Would you agree with that? Yeah, I would agree with that. And then there's Agents we talked about already. And web scraping, which I imagine would be the bulk of your workload right now, right?Paul [00:43:40]: No, not at all. I'd say actually, like, the majority is browser automation. We're kind of expensive for web scraping. Like, I think that if you're building a web scraping product, if you need to do occasional web scraping or you have to do web scraping that works every single time, you want to use browser automation. Yeah. You want to use browser-based. But if you're building web scraping workflows, what you should do is have a waterfall. You should have the first request is a curl to the website. See if you can get it without even using a browser. And then the second request may be, like, a scraping-specific API. There's, like, a thousand scraping APIs out there that you can use to try and get data. Scraping B. Scraping B is a great example, right? Yeah. And then, like, if those two don't work, bring out the heavy hitter. Like, browser-based will 100% work, right? It will load the page in a real browser, hydrate it. I see.swyx [00:44:21]: Because a lot of people don't render to JS.swyx [00:44:25]: Yeah, exactly.Paul [00:44:26]: So, I mean, the three big use cases, right? Like, you know, automation, web data collection, and then, you know, if you're building anything agentic that needs, like, a browser tool, you want to use browser-based.Alessio [00:44:35]: Is there any use case that, like, you were super surprised by that people might not even think about? Oh, yeah. Or is it, yeah, anything that you can share? The long tail is crazy. Yeah.Surprising use cases of BrowserbasePaul [00:44:44]: One of the case studies on our website that I think is the most interesting is this company called Benny. So, the way that it works is if you're on food stamps in the United States, you can actually get rebates if you buy certain things. Yeah. You buy some vegetables. You submit your receipt to the government. They'll give you a little rebate back. Say, hey, thanks for buying vegetables. It's good for you. That process of submitting that receipt is very painful. And the way Benny works is you use their app to take a photo of your receipt, and then Benny will go submit that receipt for you and then deposit the money into your account. That's actually using no AI at all. It's all, like, hard-coded scripts. They maintain the scripts. They've been doing a great job. And they build this amazing consumer app. But it's an example of, like, all these, like, tedious workflows that people have to do to kind of go about their business. And they're doing it for the sake of their day-to-day lives. And I had never known about, like, food stamp rebates or the complex forms you have to do to fill them. But the world is powered by millions and millions of tedious forms, visas. You know, Emirate Lighthouse is a customer, right? You know, they do the O1 visa. Millions and millions of forms are taking away humans' time. And I hope that Browserbase can help power software that automates away the web forms that we don't need anymore. Yeah.swyx [00:45:49]: I mean, I'm very supportive of that. I mean, forms. I do think, like, government itself is a big part of it. I think the government itself should embrace AI more to do more sort of human-friendly form filling. Mm-hmm. But I'm not optimistic. I'm not holding my breath. Yeah. We'll see. Okay. I think I'm about to zoom out. I have a little brief thing on computer use, and then we can talk about founder stuff, which is, I tend to think of developer tooling markets in impossible triangles, where everyone starts in a niche, and then they start to branch out. So I already hinted at a little bit of this, right? We mentioned more. We mentioned E2B. We mentioned Firecrawl. And then there's Browserbase. So there's, like, all this stuff of, like, have serverless virtual computer that you give to an agent and let them do stuff with it. And there's various ways of connecting it to the internet. You can just connect to a search API, like SERP API, whatever other, like, EXA is another one. That's what you're searching. You can also have a JSON markdown extractor, which is Firecrawl. Or you can have a virtual browser like Browserbase, or you can have a virtual machine like Morph. And then there's also maybe, like, a virtual sort of code environment, like Code Interpreter. So, like, there's just, like, a bunch of different ways to tackle the problem of give a computer to an agent. And I'm just kind of wondering if you see, like, everyone's just, like, happily coexisting in their respective niches. And as a developer, I just go and pick, like, a shopping basket of one of each. Or do you think that you eventually, people will collide?Future of browser automation and market competitionPaul [00:47:18]: I think that currently it's not a zero-sum market. Like, I think we're talking about... I think we're talking about all of knowledge work that people do that can be automated online. All of these, like, trillions of hours that happen online where people are working. And I think that there's so much software to be built that, like, I tend not to think about how these companies will collide. I just try to solve the problem as best as I can and make this specific piece of infrastructure, which I think is an important primitive, the best I possibly can. And yeah. I think there's players that are actually going to like it. I think there's players that are going to launch, like, over-the-top, you know, platforms, like agent platforms that have all these tools built in, right? Like, who's building the rippling for agent tools that has the search tool, the browser tool, the operating system tool, right? There are some. There are some. There are some, right? And I think in the end, what I have seen as my time as a developer, and I look at all the favorite tools that I have, is that, like, for tools and primitives with sufficient levels of complexity, you need to have a solution that's really bespoke to that primitive, you know? And I am sufficiently convinced that the browser is complex enough to deserve a primitive. Obviously, I have to. I'm the founder of BrowserBase, right? I'm talking my book. But, like, I think maybe I can give you one spicy take against, like, maybe just whole OS running. I think that when I look at computer use when it first came out, I saw that the majority of use cases for computer use were controlling a browser. And do we really need to run an entire operating system just to control a browser? I don't think so. I don't think that's necessary. You know, BrowserBase can run browsers for way cheaper than you can if you're running a full-fledged OS with a GUI, you know, operating system. And I think that's just an advantage of the browser. It is, like, browsers are little OSs, and you can run them very efficiently if you orchestrate it well. And I think that allows us to offer 90% of the, you know, functionality in the platform needed at 10% of the cost of running a full OS. Yeah.Open Operator: Browserbase's Open-Source Alternativeswyx [00:49:16]: I definitely see the logic in that. There's a Mark Andreessen quote. I don't know if you know this one. Where he basically observed that the browser is turning the operating system into a poorly debugged set of device drivers, because most of the apps are moved from the OS to the browser. So you can just run browsers.Paul [00:49:31]: There's a place for OSs, too. Like, I think that there are some applications that only run on Windows operating systems. And Eric from pig.dev in this upcoming YC batch, or last YC batch, like, he's building all run tons of Windows operating systems for you to control with your agent. And like, there's some legacy EHR systems that only run on Internet-controlled systems. Yeah.Paul [00:49:54]: I think that's it. I think, like, there are use cases for specific operating systems for specific legacy software. And like, I'm excited to see what he does with that. I just wanted to give a shout out to the pig.dev website.swyx [00:50:06]: The pigs jump when you click on them. Yeah. That's great.Paul [00:50:08]: Eric, he's the former co-founder of banana.dev, too.swyx [00:50:11]: Oh, that Eric. Yeah. That Eric. Okay. Well, he abandoned bananas for pigs. I hope he doesn't start going around with pigs now.Alessio [00:50:18]: Like he was going around with bananas. A little toy pig. Yeah. Yeah. I love that. What else are we missing? I think we covered a lot of, like, the browser-based product history, but. What do you wish people asked you? Yeah.Paul [00:50:29]: I wish people asked me more about, like, what will the future of software look like? Because I think that's really where I've spent a lot of time about why do browser-based. Like, for me, starting a company is like a means of last resort. Like, you shouldn't start a company unless you absolutely have to. And I remain convinced that the future of software is software that you're going to click a button and it's going to do stuff on your behalf. Right now, software. You click a button and it maybe, like, calls it back an API and, like, computes some numbers. It, like, modifies some text, whatever. But the future of software is software using software. So, I may log into my accounting website for my business, click a button, and it's going to go load up my Gmail, search my emails, find the thing, upload the receipt, and then comment it for me. Right? And it may use it using APIs, maybe a browser. I don't know. I think it's a little bit of both. But that's completely different from how we've built software so far. And that's. I think that future of software has different infrastructure requirements. It's going to require different UIs. It's going to require different pieces of infrastructure. I think the browser infrastructure is one piece that fits into that, along with all the other categories you mentioned. So, I think that it's going to require developers to think differently about how they've built software for, you know
Send Everyday AI and Jordan a text message
Three years ago, Bailey opened her Etsy shop selling PNG designs for sublimation tumblers—and since then, she's become a top 0.1% Etsy Seller earning $45k per month with digital downloads. Today she's sharing how she uses AI to create tumbler wraps and PNGs and helps hundreds of students (myself included) have success doing the same. **“How to Sell Your Stuff on Etsy” is not affiliated with or endorsed by Etsy.com STUFF I MENTIONED: ➡️ Would you attend an AI PNG/Tumbler Wrap Workshop? Submit your email for more info: https://lizziesmiley.surveysparrow.com/s/AI-Workshop-for-PNGs-and-Tumbler-Wraps/tt-tBpJF KITTL: https://kittl.pxf.io/y22q9N Try MyDesigns Here ➡️ https://bit.ly/mydesignsbailey For a Discount Use the Code: BAILEY25 FIND BAILEY: First podcast ep with Bailey was #112: https://www.howtosellyourstuff.com/blog/112 Work with Bailey: https://bailey.digitally-purposed.com/DFYCLUB YouTube: https://bit.ly/BaileyYouTube Bailey's Facebook Group: https://www.facebook.com/groups/baileytumblerdesigns POPULAR RESOURCES: ➡️NEW Beginner Course: Six Figure Secrets to Getting Starting on Etsy: https://www.howtosellyourstuff.com/six-figure-secrets Use code SAVE50 to save $50 ➡️Trendspotting Membership: https://www.howtosellyourstuff.com/offers/JxNYgLnw Use code KEEP20 to save $20 on your first month Get weekly emails with current trends + 5 product opportunities (POD/Digital) ➡️ Join my list and get the Christmas Trend Video: https://www.howtosellyourstuff.com/join-the-list ⭐Apply to be a Podcast Guest: https://bit.ly/48hFD8X Do you know how to beat saturation on Etsy by finding the Micro-Niches? Learn how to find them AND write competitive SEO: ➡️ Micro-Niche Magic Masterclass: https://www.howtosellyourstuff.com/micro-niche-magic Save $50 with the code SAVE50 --------------------------------------------- ⭐Book a one-on-one Etsy coaching session with Lizzie: https://www.howtosellyourstuff.com/coaching Find me on Instagram and TikTok @HowtoSellYourStuff FREE PDF DOWNLOAD: “4 Strategies I Used to Grow My Etsy Shop from $25 to $6000k/month”: https://www.howtosellyourstuff.com/site/4-strategies-opt-in ----- HOW TO SELL YOUR STUFF WEBSITE: https://www.howtosellyourstuff.com/ HOW TO SELL YOUR STUFF SHOWNOTES: https://www.howtosellyourstuff.com/blog/155 THIS EPISODE IS SPONSORED BY: THE TRENDSPOTTING MEMBERSHIP: Are you a print on demand OR digital product Etsy seller who's tight on time or still learning all of the Etsy secrets? Let me give you a leg up with my weekly trends and opportunities report! You just join my membership and every Monday I will email you a list of exactly what is trending right now— with a video tutorial showing you how I found them and how to apply them in your shop. I'll also send you 5 POD AND digital product opportunities that are growing in demand RIGHT NOW--- helping new shops make sales—and still very low saturation in the marketplace. Grab my free demo example of the weekly trends and opportunities email right from the shownotes to see exactly what you'll get. And I'll see you soon on the inside! ➡️Get the FREE Demo of the weekly Etsy Trendspotting email: https://www.howtosellyourstuff.com/request-the-trendspotting-demo ⭐Register for weekly trend reports and product opportunities emailed straight to your inbox: https://www.howtosellyourstuff.com/offers/JxNYgLnw AND CREATIVE FABRICA Do you use special fonts, graphics, svgs, or other digital goods to create your products or run your Etsy business? You NEED Creative Fabrica! Creative Fabrica is a website where you can access UNLIMITED digital goods for just $9 per month. They have over 6 MILLION fonts, graphics, and other digital resources that you will gain full access to. (It's essentially the top Etsy seller's best kept secret!) AND on top of all that Creative Fabrica discovered this podcast and reached out to me because they wanted to offer you guys a special little perk: you can now get a one-month free trial for up to 10 product downloads to test drive it and see if it's a good fit for you. Learn more at: https://www.howtosellyourstuff.com/creative
The official Etsy holiday trend report for 2024 is HERE! Tune in to hear an update on my brand new Etsy shop, a summary of Etsy's trend report, and the Thanksgiving, Christmas, and overall trends that are super hot right now on Etsy. **“How to Sell Your Stuff on Etsy” is not affiliated with or endorsed by Etsy.com STUFF I MENTIONED: ➡️ Would you attend an AI PNG/Tumbler Wrap Workshop? Submit your email for more info: https://lizziesmiley.surveysparrow.com/s/AI-Workshop-for-PNGs-and-Tumbler-Wraps/tt-tBpJF ➡️NEW Beginner Course: Six Figure Secrets to Getting Starting on Etsy: https://www.howtosellyourstuff.com/six-figure-secrets (Massively discounted, get it before the price goes up Monday, 11/11/24) ➡️Trendspotting Membership: https://www.howtosellyourstuff.com/offers/JxNYgLnw Use code KEEP20 to save $20 on your first month Get weekly emails with current trends + 5 product opportunities (POD/Digital) ➡️ Join my list and get the Christmas Trend Video: https://www.howtosellyourstuff.com/join-the-list ➡️ Etsy Seller Handbook Trend Report: https://www.etsy.com/seller-handbook/article/1317070046426 POPULAR RESOURCES: ⭐Apply to be a Podcast Guest: https://bit.ly/48hFD8X Do you know how to beat saturation on Etsy by finding the Micro-Niches? Learn how to find them AND write competitive SEO: ➡️ Micro-Niche Magic Masterclass: https://www.howtosellyourstuff.com/micro-niche-magic Save $50 with the code SAVE50 --------------------------------------------- ⭐Book a one-on-one Etsy coaching session with Lizzie: https://www.howtosellyourstuff.com/coaching Find me on Instagram and TikTok @HowtoSellYourStuff FREE PDF DOWNLOAD: “4 Strategies I Used to Grow My Etsy Shop from $25 to $6000k/month”: https://www.howtosellyourstuff.com/site/4-strategies-opt-in ----- HOW TO SELL YOUR STUFF WEBSITE: https://www.howtosellyourstuff.com/ HOW TO SELL YOUR STUFF SHOWNOTES: https://www.howtosellyourstuff.com/blog/154
Unlock the secrets of skyrocketing your e-commerce sales with TikTok Shop! Join us as we sit down with Michelle Barnum-Smith, a leading expert on TikTok Shop, who will reveal why this platform is revolutionizing e-commerce and how you can tap into its immense potential. From unparalleled user engagement to an all-inclusive buying experience that supports brand building and data transparency, Michelle dissects the unique advantages TikTok Shop offers over traditional platforms like Amazon. Get ready to learn how full visibility of sales data and direct customer interactions can transform your business. In this episode, we explore the seamless customer journey on TikTok Shop from sparking awareness to completing a purchase all within the app. Discover how the shift from traditional influencer marketing to a collaborative affiliate model is empowering creators to drive sales through direct rewards from TikTok. We also get into TikTok's growing prominence as a search engine for younger generations and the new shopping features that make discoverability effortless. This is a golden opportunity for sellers to leverage TikTok Shop's innovative ecosystem to maximize engagement and boost sales. Prepare to be inspired by real-life success stories and practical tips for setting up your very own TikTok Shop. We cover everything from business registration and linking social accounts to optimizing your listings and content for viral success. Michelle shares invaluable insights on inventory forecasting and the ripple effect of TikTok Shop's success on other platforms like Amazon. Plus, learn the importance of adhering to community guidelines to avoid account suspensions and ensure your business thrives on TikTok Shop. Don't miss out on this comprehensive guide to navigating and conquering TikTok Shop's dynamic marketplace! In episode 578 of the Serious Sellers Podcast, Bradley and Michelle discuss: 00:00 - Exploring TikTok Shop for Sellers 02:56 - TikTok's Influence on Consumer Purchases 06:23 - Enhanced Shopping Experience on TikTok 09:32 - Maximizing Sales Through TikTok Shop 11:04 - Reviving Live Selling With TikTok Shop 16:22 - TikTok Shop Viral Success Stories 16:40 - Success Tips for TikTok Shop Setup 19:55 - Maximizing Marketing Opportunities on TikTok 25:11 - TikTok Shop Guidelines and Best Practices 26:40 - Navigating TikTok Shop Suspension Guidelines 33:48 - Effective Creator Outreach Strategy Guide ► Instagram: instagram.com/serioussellerspodcast ► Free Amazon Seller Chrome Extension: https://h10.me/extension ► Sign Up For Helium 10: https://h10.me/signup (Use SSP10 To Save 10% For Life) ► Learn How To Sell on Amazon: https://h10.me/ft ► Watch The Podcasts On YouTube: youtube.com/@Helium10/videos Transcript Bradley Sutton: TikTok shop is one of the hottest marketplaces in 2024 to sell on. Today we're going to do a deep dive into everything you need to know to get started selling on that platform. How cool is that? Pretty cool, I think. Hello everybody and welcome to another episode of the Serious Sellers Podcast by Helium 10. I'm your host, Bradley Sutton, and this is the show that is our special Freedom Ticket monthly workshop, where we actually film live a training, a deep dive training, into a certain aspect of e-commerce and we put it later into Freedom Ticket so that you guys can benefit from it. But you guys here on the podcast are going to get the benefit of getting this training too. Now today's guest is going to be Michelle Barnum-Smith, who is definitely an expert in the field of TikTok shop and she's going to do a deep dive into like hey, what do you need to do to get started and what are some best practices? You know we've had some people on this podcast who sell on TikTok shop. You guys have heard them doing some crazy, crazy numbers, some of them even doing more than their Amazon business. So if you guys want to know what's involved with getting set up on this platform, this episode is going to be for you. Kevin King: Now, Michelle I've known for quite some time, and so today she's going to be showing you why you need to be considering TikTok and talking about some of the opportunities that are there and what she's doing to help herself and her clients actually crush it. So please welcome Michelle. Michelle: Today we've got lots of ground to cover and we're going to be talking about the TikTok shop opportunity. Just like Kevin said and Shivali said, unless you've been living under a rock, it is all the buzz, and rightly so. Some people don't realize this, but TikTok shop was born from a hashtag and the whole idea of TikTok made me buy it. This hashtag has been around for several years and it basically was like hey, I discovered this on TikTok and I went and bought it. And here I'm showing it off again because TikTok made me buy this. And essentially, TikTok shop allows businesses to showcase through engaging short videos, live streams and creator collaborations, and users can discover and purchase products directly within the app, creating a smooth and convenient shopping experience. And we're going to talk about, like, just how powerful this really is for you as brand sellers. Michelle: So the opportunity of a TikTok shop has never been hotter. I mean, essentially, we're talking about a billion monthly users. They're on the app 17 times a day, with 83% of people saying that TikTok has influenced purchase decisions on what they're doing and what they're buying. So consumers are on TikTok specifically to be entertained. They hang out for hours. One and a half billion monthly user base spending an average of 95 minutes a day on the platform. I want you to think about that. That's like at least three episodes of your favorite show on Netflix. It's, you know, it's like people are just like scrolling, scrolling, scrolling and, um, all, all times of the day, like, like we saw in that previous stat of 17 times. You know, essentially starting the app 17 times a day, kind of crazy. Um, they offer a frictionless buying experience from creator to product page, to checkout to back to scrolling in seconds, which is one of the huge reasons why TikTok and TikTok Shop is such a powerful opportunity for sellers, right this second, so you can literally go from an organic discovery experience to a checkout experience in just seconds, and you can amplify that opportunity with some certain promotional activities that we'll talk about. So, bottom line, TikTok shop really helps build brands, not just sell products, so they have more high quality traffic, more sales and repurchases, have full visibility of data, end to end loop closing data. Michelle: So one of the things that I love so much about TikTok shop is having previously just used TikTok to drive traffic to Amazon. So I have tried it a whole bunch and it is so frustrating because Amazon's a black hole. They don't share data back with you. So if you've ever tried to run ads, drive influencer content, even do social media like, just focus on the social media side of TikTok or Instagram or Facebook or whatever it might be. There's no data back from Amazon, even with using attribution, because Amazon attribution is 55% inaccurate to actually tell you what converted, what drove sales. It's kind of like a guess most of the time and if sales rise you're kind of like, okay, well, what contributed to that In TikTok shop? You know exactly what contributed to that sale. You know exactly what social posts drove how many sales. Which affiliate is your number one affiliate? If you're running ads, you know exactly how those ads are performing. Michelle: It allows you to speak directly with your viewers as well, your customers, your prospects, every step along the way. It's you the face of the brand, your brand, interacting directly with customers. So most of the time, most sellers, most consumers, don't realize that there's sellers behind their brands on Amazon. They just think that they're buying a product on Amazon. That's not the case with TikTok. TikTok gives sellers opportunity to interact directly with the customer on every step of the customer journey. So there's no question who is? You know who this relationship is with and there's serious marketing opportunities, and I'm such a marketing geek. I love all of the marketing opportunities that TikTok has. Just this, just today, they released promo codes. Super excited about that. So let's talk about the full shopping journey within TikTok. Essentially, TikTok allows you to discover through shoppable content and through short videos and lives to select, basically go and learn more from about the product on the product detail page and then actually check out and buy, place orders and check out without ever leaving TikTok. So why this is so significant? As a marketer and as a seller myself, if I have, let's say, the counter to that is on Instagram and if you've ever been influenced on Instagram, you know, let me know, raise your hand, you're watching, you're watching that content and then the person is saying, oh, go to the link in my bio and you go to the link in your bio in, and it's some linktree that may or may not have been updated and that link might take them to Amazon. Take you to Amazon, where their Amazon storefront is like laid out, all for you to have to sort through just to find the product that you were interested in that caught your attention for just a second, that interrupted your entertainment experience that you were there on Instagram to experience, and now you can't even find what it was that caught your attention. You just give up in frustration. Michelle: What I love about TikTok shop is that you can go from being entertained seeing a shoppable video, seeing something that a creator is promoting, to all the way to checkout in just seconds and back into your entertainment. That experience has very little interruption. So TikTok has several ways to checkout. Essentially, you have the opportunity to go from a shoppable video to a TikTok shop where you can see that brand's full lineup of offerings, and go to the product detail page where you can then check out. But this is not typically the shopping experience. Usually, it's you see a video. It takes you directly to the product detail page and then you just check out. These are the things and ways that you can build your brand on TikTok shop directly. So let's talk about the customer journey on TikTok versus Amazon. So previously TikTok, when it was just a social media channel, sat a little bit higher up in the customer journey. So if you guys aren't familiar, the customer journey is this idea of a funnel or this process where somebody goes from awareness to consideration, to purchase, to customer service, to going deeper in their rebuy or loyalty to that specific brand. So previously, TikTok the app, the social media side of TikTok was just in the awareness phase, the awareness and consideration phase. Just like Instagram, it was like a place of discovery, a place of entertainment, a place to maybe get educated, but it wasn't a place to purchase. That was where you would go to Amazon, and Amazon fit squarely in the consideration phase, like I need more information, I'm aware of my need already and then I'm going to purchase. So essentially, Amazon is solution solving. It's a search engine for buying. Customers are already aware of a need. They search, research and buy on Amazon. Michelle: Buyers don't hang out on Amazon for fun or entertainment, despite Amazon's best efforts with Amazon Lives, Amazon Post, Amazon Inspire, and that's really why TikTok shop has taken over in that regard. Not necessarily like I'm not saying that Amazon's going away anytime soon. Obviously that's a huge opportunity, but TikTok shop now owns the entire customer journey, from awareness through consideration, purchase, the customer service experience, all the way to rebuy opportunities, average order value increases, um rebuy rates, all sorts of things that TikTok shop makes available to sellers to be able to do and accomplish all within the TikTok shop platform. Are you guys seeing the potential and the opportunity here? And, as a marketer, this is why I'm so passionate about it, because if you own the awareness, if you are the one creating the awareness of the need and you immediately go into a checkout scenario, you win. The checkout is not okay we're making you aware and then you're being taken to a page where you and 100 other competitors are then brought up with different options and people are overwhelmed with options. It's not like that. It's literally going from awareness to checkout to back to entertainment in a matter of seconds. So TikTok really comes down to need awareness. Their focus is on entertainment and education and their goal is to keep users on the platform with their addictive algorithms. Users are made aware of products and the purchases is done within TikTok shop with quick checkouts and then buyers are back to scrolling within seconds. So that's really kind of the crux of TikTok shop there and live selling. I don't know if you guys have seen have been on the platform yet, but live selling it really had its heyday. I feel like you know as far as US consumer behavior goes in, like the late eighties, early nineties, Saturday morning infomercials Anybody remember those? Michelle: I know I was like, always sucked in. I was always sucked into those Um. And then there's QVC and home shopping network where, you know, basically little ladies hang out to buy kitchen kitchenware, but TikTok shop, specifically, is bringing live, selling back, and it's crazy's crazy, the amount of organic viewers you get checking out your products live, seeing what you have to offer live, you know, and it's a form of entertainment, so they're already on there to be entertained and then they get to watch you pitch whatever it is that you have. That's kind of crazy. And also creators we have this. Creators have been kind of like put up on this pedestal as influencers, right, and this kind of title and with that has come a little bit of a combative nature. When it comes to working with brands, right, how many of you have worked with an influencer where you've reached out to them, you've tried to recruit them and they're charging like a couple hundred dollars of post to like two thousand dollars a post, five thousand dollars a post for the honor to get to work with them. Anybody experience that. And then you're like, um, what did I get from that? I got a post. Did it do anything, right? So the awesome, the awesome thing with working with creators now is that they essentially become affiliates because TikTok is rewarding them for sales that they make through the platform. So creators are now motivated to work with brands and to push products and seek out opportunities. It's no longer just like oh well, I'm a creator and so my creative needs are above your needs as a brand. Now they're willing to be more collaborative with brands in and focusing on content that converts and that drives sales, because, at the end of the day, they want to make money right and we all want to make money, and so it makes it more of a win-win relationship. So that's one of my favorite things about this kind of shift is it goes from the honor of working with a creator and an influencer to now like okay, we're affiliates and we're in this together. Michelle: So there's kind of four native ways to discover and buy on TikTok. There's the browse area, which is shoppable videos. That's what you would generally see if you're just scrolling through TikTok. You're going to have some content that is just entertainment content. You're going to have content that's educational and informative and that sync to and our shoppable videos, basically, and shop pages. That's where you know brands show up with their brand presence, um, live shopping, like we discussed, and the shop tab. So that's the new kind of search functionality within TikTok. That's all about finding and discovery and searching for solutions. It's kind of crazy, but TikTok has now become a search engine for a certain demographic. Anybody who's less than 25 years old, instead of going to Google with their questions first, they're going to TikTok with their questions first, and it used to be that videos were what was served first in the search results and now it's product. Are you picking up? What I'm putting down? Like this is this is a significant opportunity. This is such a crazy shift and I will say that every almost like 80 to 90% of the in TikTok shop contacts that I have were recently recruited from Amazon. Like Amazon employees are moving over to TikTok shop just like clawing their way over here. So it's very soon there's gonna be some aspects that are native to Amazon that we'll start seeing show up in TikTok shop, especially this kind of search portion, the shop tab, and then the buying experience, like we've talked about, is very seamless, from the product page to the checkout page. You literally can like sync your Apple Pay with TikTok shop, click the side of your phone gosh and be back to doom scrolling in seconds, if I haven't, you know, beat that into you enough. Michelle: But let's talk about this idea and this question is TikTok shop just a distraction for you as sellers? I hear this kind of objection a lot, and from really big sellers, and so I'm a little surprised. I'm always a little surprised because, like Kevin said, I think that if you have an opportunity to make money, are you going to say no to that opportunity, especially when it's relatively zero to low cost to get started? You already have inventory. You just bring it over to TikTok. So let's talk about just some case studies really quick. Every time I talk to an Amazon seller who is looking to expand off Amazon or diversify their revenue off Amazon, they're usually happy with like, hey, if I can get 5% of my Amazon sales off Amazon, like my Shopify site or Walmart or Etsy or something, I would be happy if just 5%. So here we have a few sellers and I'm just going to cruise through here. This brand got serious about TikTok shop beginning of April and year to date, they are 8% of their Amazon sales on TikTok shop. This brand launched in September of 2023 with TikTok shop. They're one of my brands and we immediately went viral. Immediately, like the bestseller that we had became a bestseller on TikTok shop and then, as we got to know our audience a lot better and affiliates a lot better, launching products on TikTok shop with them, we saw halo effect on Amazon. Every single time that we launched a new product on TikTok shop it would go viral. It would go viral on Amazon as well. Rank would skyrocket and along with sales. So their year to date revenue is 11%. Michelle: Our biggest struggle with this brand is every time we go viral. Like it's really hard to forecast inventory for going viral. So we keep running into like our bestsellers going out of stock because they just take off. They just take off, so that I guess that is like one of the sides of TikTok shop that is a warning is that your shop could go viral and with your inventory. This seller I did a big training in Cancun back in February and in and around TikTok shop this seller was doing two sales a day before my training and after that, um, 180 sales in the week following. So I was a little proud of that. And then subsequently, uh, we've been working together and now their brands, their, uh, they have 15% of their total brand revenue, uh, of their Amazon revenue they're making on TikTok shop. I'm not going to talk a lot about these brands, because these brands are just like killing it. They're 16% of Amazon sales for this brand. This brand, gosh, they're just like. I just met with their category manager last week, their new category manager. They're number one in their category on TikTok shop, all of TikTok shop, and their year to date is 17% of their Amazon sales. So I guess you have to ask yourself, like, is it worth getting started? Like, yes, I think the answer is obvious, right, like I'm not doing a sales pitch here guys. I don't like this is you already have the inventory, right? You're already selling on Amazon. It's not too much more difficult to extend, uh, what you're doing and get started with that same inventory on TikTok shop as well. So, but there's some nuances to it and I want to talk about those nuances. So there are some keys that are necessary to a successful setup on TikTok shop. So this is where we're getting a little bit down into some specifics. On setup, I am not walking you through step-by-step a setup step-by-step at this point. This is not necessarily how to. This is more of kind of like lessons learned from setting up over 30 brands personally on TikTok shop and some of the nuances, some of the troubleshooting, some of the kind of like things to avoid, basically from a high level perspective. Michelle: So this is kind of my setup checklist to be successful, this is what. These are all the things that you have to do one time during a setup. You need to get through your business registration. You need to complete that. You need to link a TikTok social account that is US based based with your TikTok shop seller account that is US based. You need to create or connect a TikTok ads manager to that account ads manager account to your TikTok shop account. You need to get your shipping set up and your listing set up and your content optimized for TikTok shop. You need to import available reviews, meaning, if you have like and this is all legal TikTok shop owns well, TikTok is owned by a company called ByteDance and ByteDance owns lots of different tech companies. One included is the main tool that's used for importing reviews. So if you have a Shopify site or another website with reviews on it, then you can bring those reviews over. If you don't, you can import reviews from Amazon to your website and then import those reviews from Amazon. It's a little bit of a process. It's a process, but you only have to do that once. To help you build up, to start the process of building your review presence, you need to select and implement promotions for your listings, such as pre-shipping with qualifications, product discounts, flash sales. Now the new promo codes that are released, and for select accounts, if you qualify, there's now a customer marketing whole section where you can go back and offer, you know, present offers in app. So showing up in the customer's TikTok inbox, basically like they already bought from you once, or, if they're a potential client, you can get directly inside of TikTok users' inboxes with your offers. My marketing heart, it just loves this from an opportunity perspective and we can actually measure how many sales converted from those messages. I love email marketing, I love SMS marketing, I love all of that, but sometimes we just can't close all the loops. And when we're talking native platforms and the marketing opportunities that are native to that platform, we're able to see all those loops close. When it's when we're talking native platforms and the marketing opportunities that are native to that platform, we're able to see all those loops closed and the associated data with that. So we know what further to invest in, what's working, what's not working, and then, of course, they're the final step in success. A successful setup is making sure that you have an affiliate plan set up for affiliates creators to find your products and to start promoting them and to make sure free samples are available. We'll show that here in a second. Michelle: Okay, the second thing that you need to make sure that you do is to review the prohibited products list. So just because you can sell something on Amazon and Shopify doesn't mean you can sell it on TikTok shop. And this is probably like the number one thing that I see sellers screw up on, um, that they just like rush to get all of their products on TikTok shop and all of a sudden uh, they didn't ever check prohibited products and all of a sudden their account gets deactivated. Um, because they're promoting products or promoting it in such a way that's against, that's either prohibited products or against community guidelines in how you talk about it. So the most suspensions and account deactivations could be avoided by checking this first. So essentially, just, I mean you could even just search for it TikTok shop prohibited products policy and go on there or also look at their restricted categories on there as well to see is my product a prohibited product? I've been surprised how many products are not allowed on TikTok shop that are allowed on Amazon and, of course, on Shopify. You can sell whatever the heck you want to. So it's definitely one of those things that just because you can sell it somewhere doesn't mean you can sell it on TikTok shop. Michelle: And this is just from a having been through it so many times. Business registration is not what it used to be. In September, I was able to get just like a ton of brands on TikTok shop with very little effort. Now there's a few more steps. Now there's a few things that kind of slow people down. It's amazing to me how many sellers just like give up. They just roll over and they're just like oh no, I can't get it to work. And I'm like guys, you are Amazon sellers, it is selling on Amazon is not an easy thing. Why are we giving up so easily? Have some like, have some resilience here. Also, TikTok shop like says oh, your account setup failed. I wish they would use different language, because sometimes it's not true failure and sometimes it's like they're just um, you get to a certain place in the process and then the system is moving you forward, but it needs more information, like you need to submit additional documents or you need to submit them in a certain way, and so it says failure, but really it just means like you need to go add more, add more documentation or whatever it is that they're actually asking for. So my advice to you is just keep pushing forward, keep pushing through that. It is worth it in the end. And just as a little like hack is any requested documentation, even if it says that they accept PDFs and PNGs, only submit them as JPEGs. Like their system, their bots read JPEGs and more often than not they don't read PDFs. So just, even if it says it'll accept a PDF, just submit it as a JPEG. Okay, cause it will help you. And especially if you're talking to support, support. It's so crazy because support can't see submitted PDFs or PNGs, but it can see submitted JPEGs. Does that make sense? So that's a little, a little note for you to take and make sure that you're doing Okay. Michelle: This is relatively new and this has to be. This is around community guidelines. Community guidelines were updated mid last month and essentially it's just saying hey, this is the way that we behave on our platform. So there's, they become a lot more strict about what creators as well as sellers can and can't say on their product. You know, on the platform and that includes your listings and what you say about your products, especially, um, you know if something has an effect on weight or weight loss, physical performance or physiological effects or changes. So in this example, I had a seller reach out to me and they're like I don't know what I did wrong, I don't know why this account is frozen, or this product is frozen, I don't know what's wrong with it. And all I had to do was read through the title to see what the issue was. They're essentially saying this eliminates snoring and enhances facial structure and post-workout recovery claim, claim, claim, claim, claim, like you're physiological effects, physical performance, eliminate snoring. You can't say that on Amazon had. Like how can you say that? Like you can't say that on TikTok shop either? Um, and if you have any product in and around weight loss, I'm not saying it's not possible to sell on TikTok shop, it absolutely is. But how you talk about it is really critical. You cannot say weight loss, you cannot say metabolism, fat burning oh my gosh. I had another brand that was just like beside themselves. They were so like offended that TikTok shop suspended their product, their you know key seller, and I was looking through their account. It was like weight loss, metabolism, dah, dah, dah. And I'm like you can't say those things. You. You failed TikTok, you know like. You showed up like, oh well, we can sell it on Shopify. Yes, you can sell it on Shopify, because on Shopify you can say whatever the heck you want about your product. There's nobody policing what you can and can't say on your Shopify site. But this is their market and so they get to say what you can and can't say. And it's not just what you say in the text, in your title, in your bullet points, it's also what you say in the images, on the products themselves as well. So if you have packaging that you're showing and it's making claims. You got to scrub that. You got to like, get rid of it if you have infographics. So that's why I say you're not just pulling over everything that you've created for your Amazon listing or your Shopify listing. You got to be really careful in what you're bringing over and being aware of these community guidelines and what you can and can't say. These are the main ones. It's worth looking at, it's worth reading through and I do talk about that extensively in my course where I detail and outline it, but these are the top ones. Michelle: Okay, focus on your bestsellers. I often see that the second somebody gets started on TikTok shop, they bring their whole category, their whole catalog of offerings over at once and I really advise you to just test the opportunity and to learn the platform and which of your products is the best opportunity first. So too many products are a distraction to affiliates and your ops team. So, like in this example, this brand brought over gosh all of their products and anytime that they were doing creator outreach they basically all of their creator and targeted plans was just like hey, here's everything that we sell and that's a lot, that's too much. So instead we shifted their focus to okay, what's your best seller on Amazon, what's the one with the best reviews, the strongest call to action, the most obvious for how it helps a consumer? And they're like, okay, this one, their free sample request took off, the affiliate performance took off, their sales took off. So just don't flood. It's a distraction for your team. It's a distraction when you start to reach out to affiliates, so just focus on your best sellers first. Now hear me out. This is probably the biggest warning that I have for you. Second to prohibited products okay, so this is probably the biggest area that I want you to be really careful with. And don't use the shortcuts, okay. So oftentimes I see that sellers are you're on Amazon, you're on Shopify and there are apps available within TikTok shop where you can just sync your Shopify account or sync your Amazon account and sync over your listings. So all of your listing content immediately gets imported into TikTok shop, and I have seen so many issues with this. Like I've said so many times, there's things that you're saying on your listings that you can't say in a TikTok shop, and what happens, guys, is that your listings are not reviewed by human beings, right, they're reviewed by bots, and what I have seen happen so many times is that people have seen those listings and they bring over their entire catalog, like we just talked about, and they're making claims or bringing over prohibited products or something like that that they didn't know. Michelle: I didn't know and immediately they get account violations and account violations and they get a million account violations and then their account gets suspended because there's a limit to your account violations that you can receive, and then you lose your account, your account gets deactivated and it's over before you begin. So that's an extreme example, but I have seen that too many times to count what also happens, especially in the case of Shopify. For example, if you're syncing your listings, let's say you want to make a change to your TikTok shop listing, like your price or your title or something like that, because your listings are synced with these apps. You can't do that because Shopify and the Shopify listing owns the TikTok listing, so you have to go and make the change on Shopify If you want to make that change, show up on TikTok. You see how that's a problem, right? So and it's not an easy fix, it's not, it's not just like a quick separation, um, because I have a seller, like I've talked about. He's number one in his category and he set this up, his like. When he first got set up, an account manager told him to do this and they didn't know. These account managers have no clue, they really don't, um, and so he is dealing with this issue. If he were to try to separate at this point, he would have to create a new ASIN, for lack of a better term. A new listing for one of his best sellers and one of the big areas of social proof on TikTok shop is to see how many people have purchased the product. He would lose all of that history on that listing that now has like a hundred thousand purchases. So, yeah, it's, it's like a serious deal. So please don't do that. If you're wanting any kind of true shortcut, use the bulk uploading options. This is new the import product upload accelerator. Go this route if you're looking for shortcuts. But, like I said, I really do want you to like set up your listings manually first, at least the first couple, so you understand what TikTok is really looking for, so you can then go and add more products in the future. Michelle: Offer free shipping. Oh, my goodness, we're running out of time, guys, we'll send you these slides. Basically, bottom line, you set up the free shipping opportunities within the promotions tab and not when you're setting up your shipping templates and your shipping solutions. So it's a promotion and you can apply all sorts of qualifications to qualify for free shipping and fulfilled by TikTok is now a thing, and they're gonna start pushing this really, really hard. So start with your Amazon inventory, start selling via Amazon MCF syncing with TikTok shop. Once you've proven the opportunity for your brand, immediately apply for FBT as soon as you set up your TikTok shop account so that when you prove like, hey, is this an opportunity for me, cause MCF is expensive, you want to get that inventory into FBT and start taking advantage of the opportunities and like super cheap pricing that they have for fulfillment over there. Okay, I'm going to cruise through this, but, just like I showed you, there's kind of like the setup checklist and then there's the ongoing success checklist. This is what you need to do ongoing, daily, weekly, monthly to be able to make sales on TikTok shop. Really, what it comes down to is working with creators, making sure you have your free samples turned on. I have my three S's to targeted outreach, which is search, sort and then save. And just a warning if you are using bots or planning to use bots, that gosh. They've now put regulations in place where new sellers are limited and restricted on how many people they can reach out to because of these messaging bots that are out there. So I really recommend focusing on target collaborations versus and reaching out to creators that way, versus messaging and spamming methods. So this is my search and sort and save method. Essentially, you're under the find creator tab and you're searching via relevant search terms for your brand or your category. You're sorting I like to sort by GMB, and if they're fast growing that's even better, because then they're hungry, they're starting to see success, but they're not so successful yet that they you can't get the time of day with them. And then you hit the little save button over here and then when you go to target collaboration up here, you can import your saved folks I recommend at least 50 per day that you're reaching out to via this message. Kevin King: Thanks everybody for showing up today. We'll be back again next month to do this again on a whole new topic. Remember there's a replay of this, if you missed part of it, in Freedom Ticket inside the Helium 10. So if you're a member of Helium 10 at any level, there's a little button somewhere up around the top in the education section or resources section that says Freedom Ticket. You'll be able to find this recording in a few weeks in there, added as a permanent addition to the Freedom Ticket. So thanks everybody for coming today and thanks again, Michelle. Michelle: Thank you, bye, guys.
Check out Tokyo Treat for the best Japanese snacks! Use the promo code ANIMEBROTHERS to get $5 off your next snack box! https://team.tokyotreat.com/AnimeBrothersIn this episode we're talking about Space Patrol Luluco! The wild-wacky-action anime from the mind of Hiroyuki Imaishi and Studio Trigger that is one of the tastiest visual treats in animation. But does this short series bring more to the table than pretty colors and artful PNGs? We discuss! Support The Adventure!Patreon Join The Adventure!DiscordTwitter Instagram animexbrotherspodcast@gmail.com All The Links, On One Tree!https://linktr.ee/AnimeBrothersPodcast Intro Song: YungxHarm - No Cap Freestyle feat vacaationOutro Song: YungxHarm - Kept in the Dark Follow YungxHarm;Instagram: https://www.instagram.com/yungxharm/Twitter: @YungxHarmSoundcloud:https://soundcloud.com/yungxharm471 Follow vacaation;Instagram: https://instagram.com/vacaation?igshiTwitter: @vacaation_Soundcloud:https://soundcloud.com/vacaation86
Joël shares his experience with the dry-rb suite of gems, focusing on how he's been using contracts to validate input data. Stephanie relates to Joël's insights with her preparation for RailsConf, discussing her methods for presenting code in slides and weighing the aesthetics and functionality of different tools like VS Code and Carbon.sh. She also encounters a CI test failure that prompts her to consider the implications of enforcing specific coding standards through CI processes. The conversation turns into a discussion on managing coding standards and tools effectively, ensuring that automated systems help rather than hinder development. Joël and Stephanie ponder the balance between enforcing strict coding standards through CI and allowing developers the flexibility to bypass specific rules when necessary, ensuring tools provide valuable feedback without becoming obstructions. Transcript: AD: We're excited to announce a new workshop series for helping you get that startup idea you have out of your head and into the world. It's called Vision to Value. Over a series of 90-minute working sessions, you'll work with a thoughtbot product strategist and a handful of other founders to start testing your idea in the market and make a plan for building an MVP. Join for all seven of the weekly sessions, or pick and choose the ones that address your biggest challenge right now. Learn more and sign up at tbot.io/visionvalue. STEPHANIE: Hello and welcome to another episode of the Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Stephanie Minn. JOËL: And I'm Joël Quenneville. And together, we're here to share a bit of what we've learned along the way. STEPHANIE: So, Joël, what's new in your world? JOËL: I've been working on a project that uses the dry-rb suite of gems. And one of the things we're doing there is we're validating inputs using this concept of a contract. So, you sort of describe the shape and requirements of this, like hash of attributes that you get, and it will then tell you whether it's valid or not, along with error messages. We then want to use those to eventually build some other sort of value object type things that we use in the app. And because there's, like, failure points at multiple places that you have to track, it gets a little bit clunky. And I got to thinking a little bit about, like, forget about the internal machinery. What is it that I would actually like to happen here? And really, what I want is to say, I've got this, like, bunch of attributes, which may or may not be correct. I want to pass them into a method, and then either get back a value object that I was hoping to construct or some kind of error. STEPHANIE: That sounds reasonable to me. JOËL: And then, thinking about it just a little bit longer, I was like, wait a minute, this idea of, like, unstructured input goes into a method, you get back something more structured or an error, that's kind of the broad definition of parsing. I think what I'm looking for is a parser object. And this really fits well with a style of processing popularized in the functional programming community called parse, don't validate the idea that you use a parser like this to sort of transform data from more loose to more strict values, values where you can have more assumptions. And so, I create an object, and I can take a contract. I can take a class and say, "Attempt to take the following attributes. If they're valid according to the construct, create this classroom." And it, you know, does a bunch of error handling and some...under the hood, dry-rb does all this monad stuff. So, I handled that all inside of the object, but it's actually really nice. STEPHANIE: Cool. Yeah, I had a feeling that was where you were going to go. A while back, we had talked about really impactful articles that we had read over the course of the year, and you had shared one called Parse, Don't Validate. And that heuristic has actually been stuck in my head a little bit. And that was really cool that you found an opportunity to use it in, you know, previously trying to make something work that, like, you weren't really sure kind of how you wanted to implement that. JOËL: I think I had a bit of a light bulb moment as I was trying to figure this out because, in my mind, there are sort of two broad approaches. There's the parse, don't validate where you have some inputs, and then you transform them into something stricter. Or there's more of that validation approach where you have inputs, you verify that they're correct, and then you pass them on to someone else. And you just say, "Trust me, I verified they're in the right shape." Dry-rb sort of contracts feel like they fit more under that validation approach rather than the parse, don't validate. Where I think the kind of the light bulb turned on for me is the idea that if you pair a validation step and an object construction step, you've effectively approximated the idea of parse, don't validate. So, if I create a parser object that says, in sort of one step, I'm going to validate some inputs and then immediately use them if they're valid to construct an object, then I've kind of done a parse don't validate, even though the individual building blocks don't follow that pattern. STEPHANIE: More like a parse and validate, if you will [laughs]. I have a question for you. Like, do you own those inputs kind of in your domain? JOËL: In this particular case, sort of. They're coming from a form, so yes. But it's user input, so never trust that. STEPHANIE: Gotcha. JOËL: I think you can take this idea and go a little bit broader as well. It doesn't have to be, like, the dry-rb-related stuff. You could do, for example, a JSON schema, right? You're dealing with the input from a third-party API, and you say, "Okay, well, I'm going to have a sort of validation JSON schema." It will just tell you, "Is this data valid or not?" and give you some errors. But what if you paired that with construction and you could create a little parser object, if you wanted to, that says, "Hey, I've got a payload coming in from a third-party API, validate it against this JSON schema, and attempt to construct this shopping cart object, and give me an error otherwise." And now you've sort of created a nice, little parse, don't validate pipeline which I find a really nice way to deal with data like that. STEPHANIE: From a user perspective, I'm curious: Does this also improve the user experience? I'm kind of wondering about that. It seems like it could. But have you explored that? JOËL: This is more about the developer experience. STEPHANIE: Got it. JOËL: The user experience, I think, would be either identical or, you know, you can play around with things to display better errors. But this is more about the ergonomics on the development side of things. It was a little bit clunky to sort of assemble all the parts together. And sometimes we didn't immediately do both steps together at the same time. So, you might sort of have parameters that we're like, oh, these are totally good, we promise. And we pass them on to someone else, who passes them on to someone else. And then, they might try to do something with them and hope that they've got the data in the right shape. And so, saying, let's co-locate these two things. Let's say the validation of the inputs and then the creation of some richer object happen immediately one after another. We're always going to bundle them together. And then, in this particular case, because we're using dry-rb, there's all this monad stuff that has to happen. That was a little bit clunky. We've sort of hidden that in one object, and then nobody else ever has to deal with that. So, it's easier for developers in terms of just, if you want to turn inputs into objects, now you're just passing them into one object, into one, like, parser, and it works. But it's a nicer developer experience, but also there's a little bit more safety in that because now you're sort of always working with these richer objects that have been validated. STEPHANIE: Yeah, that makes sense. It sounds very cohesive because you've determined that these are two things that should always happen together. The problems arise when they start to actually get separated, and you don't have what you need in terms of using your interfaces. And that's very nice that you were able to bundle that in an abstraction that makes sense. JOËL: A really interesting thing I think about abstractions is sometimes thinking of them as the combination of multiple other things. So, you could say that the combination of one thing and another thing, and all of a sudden, you have a new sort of combo thing that you have created. And, in this case, I think the combination of input validation and construction, and, you know, to a certain extent, error handling, so maybe it's a combination of three things gives you a thing you can call a parser. And knowing that that combination is a thing you can put a name on, I think, is really powerful, or at least it felt really powerful to me when that light bulb turned on. STEPHANIE: Yeah, it's kind of like the whole is greater than the sum of its parts. JOËL: Yeah. STEPHANIE: Cool. JOËL: And you and I did an episode on Specialized Vocabulary a while back. And that power of naming, saying that, oh, I don't just have a bunch of little atomic steps that do things. But the fact that the combination of three or four of them is a thing in and of itself that has a name that we can talk about has properties that we're familiar with, all of a sudden, that is a really powerful way to think about a system. STEPHANIE: Absolutely. That's very exciting. JOËL: So, Stephanie, what's new in your world? STEPHANIE: So, I am plugging away at my RailsConf talk, and I reached the point where I'm starting to work on slides. And this talk will be the first one where I have a lot of code that I want to present on my slides. And so, I've been playing around with a couple of different tools to present code on slides or, I guess, you know, just being able to share code outside of an editor. And the two tools I'm trying are...VS Code actually has a copy with syntax functionality in its command palette. And so, that's cool because it basically, you know, just takes your editor styling and applies it wherever you paste that code snippet. JOËL: Is that a screenshot or that's, like, formatted text that you can paste in, like, a rich text editor? STEPHANIE: Yeah, it's the latter. JOËL: Okay. STEPHANIE: That was nice because if I needed to make changes in my slides once I had already put them there, I could do that. But then the other tool that I was giving a whirl is Carbon.sh. And that one, I think, is pretty popular because it looks very slick. It kind of looks like a little Mac window and is very minimal. But you can paste your code into their text editor, and then you can export PNGs of the code. So, those are just screenshots rather than editable text. And I [chuckles] was using that, exported a bunch of screenshots of all of my code in various stages, and then realized I had a typo [laughs]. JOËL: Oh no! STEPHANIE: Yeah, so I have not got around to fixing that yet. That was pretty frustrating because now I would have to go back and regenerate all of those exports. So, that's kind of where I'm at in terms of exploring sharing code. So, if anyone has any other tools that they would use and recommend, I am all ears. JOËL: How do you feel about balancing sort of the quantity of code that you put on a slide? Do you tend to go with, like, a larger code slide and then maybe, like, highlight certain sections? Do you try to explain ideas in general and then only show, like, a couple of lines? Do you show, like, maybe a class that's got ten lines, and that's fine? Where do you find that balance in terms of how much code to put on a slide? Because I feel like that's always the big dilemma for me. STEPHANIE: Yeah. Since this is my first time doing it, like, I really have no idea how it's going to turn out. But what I've been trying is focusing more on changes between each slide, so the progression of the code. And then, I can, hopefully, focus more on what has changed since the last snippet of code we were looking at. That has also required me to be more fiddly with the formatting because I don't want essentially, like, the window that's containing the code to be changing sizes [laughs] in between slide transitions. So, that was a little bit finicky. And then, there's also a few other parts where I am highlighting with, like, a border or something around certain texts that I will probably pause and talk about, but yeah, it's tough. I feel like I've seen it done well, but it's a lot harder to and a lot more effort to [laughs] do in practice, I'm finding. JOËL: When someone does it well, it looks effortless. And then, when somebody does it poorly, you're like, okay, I'm struggling to connect with this talk. STEPHANIE: Yep. Yep. I hear that. I don't know if you would agree with this, but I get the sense that people who are able to make that look effortless have, like, a really deep and thorough understanding of the code they're showing and what exactly they think is important for the audience to pay attention to and understand in that given moment in their talk. That's the part that I'm finding a lot more work [laughs] because just thinking about, you know, the code I'm showing from a different lens or perspective. JOËL: How do you sort of shrink it down to only what's essential for the point that you're trying to make? And then, more broadly, not just the point you're trying to make on this one slide, but how does this one slide fit into the broader narrative of the story you're trying to tell? STEPHANIE: Right. So, we'll see how it goes for me. I'm sure it's one of those things that takes practice and experience, and this will be my first time, and we'll learn something from it. JOËL: That's exciting. So, this is RailsConf in Detroit this year, I believe, May 7th through 9th. STEPHANIE: Yep. That's right. So, recently on my client work, I encountered a CI failure on a PR of mine that I was surprised by. And basically, I had introduced a new association on a model, and this CI failure was saying like, "Hey, like, we see that you introduced this association. You should consider adding this to the presenter for this model." And I hadn't even known that that presenter existed [laughs]. So, it was kind of interesting to get a CI failure nudging me to consider if I need to be, like, making a different, you know, this other change somewhere else. JOËL: That's a really fun use of CI. Do you think that was sort of helpful for you as a newer person on that codebase? Or was it more kind of annoying and, like, okay, this CI is over the top? STEPHANIE: You know, I'm not sure [laughs]. For what it's worth, this presenter was actually for their admin dashboard, essentially. And so, the goal of what this workflow was trying to do was help folks who are using the admin dashboard have, like, all of the capabilities they need to do that job. And it makes sense that as you add behavior to your app, sometimes those things could get missed in terms of supporting, you know, not just your customers but developers, support product, you know, the other users of your app. So, it was cool. And that was, you know, something that they cared enough to enforce. But yeah, I think there maybe is a bit of a slippery slope or at least some kind of line, or it might even be pretty blurry around what should our test failures really be doing. JOËL: And CI is interesting because it can be a lot more than just tests. You can run all sorts of things. You can run a linter that fails. You could run various code quality tools that are not things like unit tests. And I think those are all valid uses of the CI process. What's interesting here is that it sounds like there were two systems that needed to stay in sync. And this particular CI check was about making sure that we didn't accidentally introduce code that would sort of drift apart in those two places. Does that sound about right? STEPHANIE: Yeah, that does sound right. I think where it gets a little fuzzy, for me, is whether that kind of check was for code quality, was for a standard, or for a policy, right? It was kind of saying like, hey, like, this is the way that we've enforced developers to keep those two things from drifting. Whereas I think that could be also handled in different ways, right? JOËL: Yeah. I guess in terms of, like, keeping two things in sync, I like to do that at almost, like, a code level, if possible. I mean, maybe you need a single source of truth, and then it just sort of happens automatically. Otherwise, maybe doing it in a way that will yell at you. So, you know, maybe there's a base class somewhere that will raise an error, and that will get caught by CI, or, you know, when you're manually testing and like, oh yeah, I need to keep this thing in sync. Maybe you can derive some things or get fancy with metaprogramming. And the goal here is you don't have a situation where someone adds a new file in one place and then they accidentally break an admin dashboard because they weren't aware that you needed these two files to be one-to-one. If I can't do it just at a code level, I have done that before at, like, a unit test level, where maybe there's, like, a constant somewhere, and I just want to assert that every item in this constant array has a matching entry somewhere else or something like that, so that you don't end up effectively crashing the site for someone else because that is broken behavior. STEPHANIE: Yeah, in this particular case, it wasn't necessarily broken. It was asking you "Hey, should this be added to the admin presenter?" which I thought was interesting. But I also hear what you're saying. It actually does remind me of what we were talking about earlier when you've identified two things that should happen, like mostly together and whether the code gives you affordances to do that. JOËL: So, one of the things you said is really interesting, the idea that adding to the presenter might have been optional. Does that mean that CI failed for you but that you could merge anyway, or how does that work? STEPHANIE: Right. I should have been more clear. This was actually a test failure, you know, that happened to be caught by CI because I don't run [laughs] the whole test suite locally. JOËL: But it's an optional test failure, so you're allowed to let that test fail. STEPHANIE: Basically, it told me, like, if I want this to be shown in the presenter, add it to this method, or if not, add it to...it was kind of like an allow list basically. JOËL: I see. STEPHANIE: Or an ignore list, yeah. JOËL: I think that kind of makes sense because now you have sort of, like, a required consistency thing. So, you say, "Our system requires you...whenever you add a file in this directory, you must add it to either an allow list or an ignore list, which we have set up in this other file." And, you know, sometimes you might forget, or sometimes you're new, and it's your first time adding a file in this directory, and you didn't remember there's a different place where you have to effectively register it. That seems like a reasonable check to have in place if you're relying on these sort of allow lists for other parts of the system, and you need to keep them in sync. STEPHANIE: So, I think this is one of the few instances where I might disagree with you, Joël. What I'm thinking is that it feels a bit weird to me to enforce a decision that was so far away from the code change that I made. You know, you're right. On one hand, I am newer to this codebase, maybe have less of that context of different features, things that need to happen. It's a big app. But I almost think this test reinforces this weird coupling of things that are very far away from each other [laughs]. JOËL: So, it's maybe not the test itself you object to rather than the general architecture where these admin presenters are relying on these other objects. And by you introducing a file in a totally different part of the app, there's a chance that you might break the admin, and that feels weird to you. STEPHANIE: Yeah, that does feel weird to me. And then, also that this implementation is, like, codified in this test, I guess, as opposed to a different kind of, like, acceptance test, rather than specifying specifically like, oh, I noticed, you know, you didn't add this new association or attribute to either the allow list or the ignore list. Maybe there is a more, like, higher level test that could steer us in keeping the features consistent without necessarily dictating, like, that it needs to happen in these particular methods. JOËL: So, you're talking something like doing an integration test rather than a unit test? Or are you talking about something entirely different? STEPHANIE: I think it could be an integration test or a system test. I'm not sure exactly. But I am wondering what options, you know, are out there for helping keeping standards in place without necessarily, like, prescribing too much about, like, how it needs to be done. JOËL: So, you used the word standard here, which I tend to think about more in terms of, like, code style, things like that. What you're describing here feels a little bit less like a standard and more of what I would call a code invariant. STEPHANIE: Ooh. JOËL: It's sort of like in this architecture the way we've set up, there must always be sort of one-to-one matching between files in this directory and entries in this array. Now, that's annoying because they're sort of, like, two different places, and they can vary independently. So, locking those two in sync requires you to do some clunky things, but that's sort of the way the architecture has been designed. These two things must remain one-to-one. This is an invariant we want in the app. STEPHANIE: Can you define invariant for me [laughs], the way that you're using it here? JOËL: Yeah, so something that is required to be true of all elements in this class of things, sort of a rule or a law that you're applying to the way that these particular bits of code need to behave. So, in this case, the invariant is every file in this directory must have a matching entry in this array. There's a lot of ways to enforce that. The sort of traditional idea is sort of pushing a lot of that checking...they'll sometimes talk about pushing errors to the left. So, if you can handle this earlier in the sort of code execution pipeline, can you do it maybe with a type system if you're in a type language? Can you do it with some sort of input validation at runtime? Some languages have the concept of contracts, so maybe you enforce invariants using that. You could even do something really ad hoc in Ruby, where you might say, "Hey, at boot time, when we load this particular array for the admin, just load this directory. Make sure that the entries in the array match the entries in the directory, and if they don't, raise an error." And I guess you would catch that probably in CI just because you tried to run your test suite, and you'd immediately get this boot error because the entries don't match. So, I guess it kind of gets [inaudible 22:36] CI, but now it's not really a dedicated test anymore. It's more of, like, a property of the system. And so, in this case, I've sort of shifted the error checking or the checking of this invariant more into the architecture itself rather than in, like, things that exercise the architecture. But you can go the other way and say, "Well, let's shift it out of the architecture into tests," or maybe even beyond that, into, like, manual QA or, you know, other things that you can do to verify it. STEPHANIE: Hmm. That is very compelling to me. JOËL: So, we've been talking so far about the idea of invariants, but the thing about invariants is that they don't vary. They're always true. This is a sort of fundamental rule of how this system works. The class of problems that I often struggle with how to deal with in these sorts of situations are rules that you only sometimes want to apply. They're not consistent. Have you ever run into things like that? STEPHANIE: Yeah, I have. And I think that's what was compelling to me about what you were sharing about code invariance because I wasn't totally convinced this particular situation was a very clear and absolute rule that had been decided, you know, it seemed a little bit more ambiguous. When you're talking about, like, applying rules that sometimes you actually don't want to apply, I think of things like linters, where we want to disable, you know, certain rules because we just can't get around implementing the way we want to while following those standards. Or maybe, you know, sometimes you just have to do something that is not accessible [laughs], not that that's what I would recommend, but in the case where there aren't other levers to change, you maybe want to disable some kind of accessibility check. JOËL: That's always interesting, right? Because sometimes, you might want, like, the idea of something that has an escape hatch in it, but that immediately adds a lot of complexity to things as well. This is getting into more controversial territory. But I read a really compelling article by Jeroen Engels about how being able to, like, locally disable your linter for particular methods actually makes your code, but also the linter itself, a worse tool. And it really kind of made me rethink a little bit of how I approach linters as a tool. STEPHANIE: Ooh. JOËL: And what makes sense in a linter. STEPHANIE: What was the argument for the linter being a worse tool by doing that? JOËL: You know, it's funny that you ask because now I can't remember, and it's been a little while since I've read the article. STEPHANIE: I'll have to revisit it after the show [laughs]. JOËL: Apparently, I didn't do the homework for this episode, but we'll definitely link to that article in the show notes. STEPHANIE: So, how do you approach either introducing a new rule to something like a linter or maybe reconsidering an existing rule? Like, how would you go about finding, like, consensus on that from your team? JOËL: That varies a lot by organizational culture, right? Some places will do it top-down, some of them will have a broader conversation and come to a consensus. And sometimes you just straight up don't get a choice. You're pulling in a tool like standard rb, and you're saying, "Look, we don't want to have a discussion about every little style thing, so whatever, you know, the community has agreed on for the standard rb linter is the style we're using. There are no discussions. Do what the linter tells you." STEPHANIE: Yeah, that's true. I think I have to adapt to whatever, you know, client culture is like when I join new projects. You know, sometimes I do see people being like, "Hey, I think it's kind of weird that we have this," or, "Hey, I've noticed, for example, oh, we're merging focused RSpec tests. Like, let's introduce a rule to make sure that that doesn't happen." I also think that a different approach is for those things not to be enforced at all by automation, but we, you know, there are still guidelines. I think the thoughtbot guides are an example of pretty opinionated guidelines around style and syntax. But I don't think that those kinds of things would, you know, ever be, like, enforced in a way that would be blocking. JOËL: Those are kind of hard because they're not as consistent as you would think, so it's not a rule you can apply every time. It's more of a, here's some things to maybe keep in mind. Or if you're writing code in this way, think about some of the edge cases that might happen, or don't default to writing it in this way because things might go wrong. Make sure you know what you're doing. I love the phrase, "Must be able to justify this," or sometimes, "Must convince your pair that this is okay." So, default to writing in style A, avoid style B unless you can have a compelling reason to do so and can articulate that on your PR or, you know, convince your pair that that's the right way to go. STEPHANIE: Interesting. It's kind of like the honor system, then [laughs]. JOËL: And I think that's sort of the general way when you're working with developers, right? There's a lot of areas where there is ambiguity. There is no single best way to do it. And so, you rely on people's expertise to build systems that work well. There are some things where you say, look, having conversations about these things is not useful. We want to have some amount of standardization or uniformity about certain things. Maybe there's invariance you want to hold. Maybe there's certain things we're, like, this should never get to production. Whenever you've got these, like, broad sweeping statements about things should be always true or never true, that's a great time to introduce something like a linting rule. When it's more up to personal judgment, and you just want to nudge that judgment one way or another, then maybe it's better to have something like a guide. STEPHANIE: Yeah, what I'm hearing is there is a bit of a spectrum. JOËL: For sure. From things that are always true to things that are, like, sometimes true. I think I'm sort of curious about the idea of going a level beyond that, though, beyond things like just code style or maybe even, like, invariance you want to hold or something, being able to make suggestions to developers based off the code that is written. So, now you're applying more like heuristics, but instead of asking a human to apply those heuristics at code review time and leave some comments, maybe there's a way to get automated feedback from a tool. STEPHANIE: Yeah, I think we had mentioned code analysis tools earlier because some teams and organizations include those as part of their CI builds, right? And, you know, even Brakeman, right? Like, that's an analysis tool for security. But I can't recall if I've seen an organization use things like Flog metrics which measure code complexity in things like that. How would you feel if that were a check that was blocking your work? JOËL: So, I've seen things like that be used if you're using, like, the Code Climate plugin for GitHub. And Code Climate internally does effectively flog and other things that are fancier on your code quality. And so, you can set a threshold to say, hey, if complexity gets higher than a certain amount, fail the build. You can also...if you're doing things via GitHub, what's nice is that you can do effectively non-blocking comments. So, instead of failing CI to say, "Hey, this method looks really complex. You cannot merge until you have made this method less complex," maybe the sort of, like, next step up in ambiguity is to just leave a comment on a PR from a tool and say, "Hey, this method here is looking really complex. Consider breaking it up." STEPHANIE: Yeah, there is a tool that I've seen but not used called Danger, and its tagline is, Stop saying, "You forgot to..." in code review [laughs]. And it basically does that, what you were saying, of, like, leaving probably a suggestion. I can imagine it's blocking, but a suggestive comment that just automates that rather than it being a manual process that humans have to remember or notice. JOËL: And there's a lot of things that could be specific to your organization or your architecture. So, you say, "Hey, you introduced a file here. Would you consider also making an entry to this presenter file so that it's editable on the admin?" And maybe that's a better place to handle that. Just a comment. But you wouldn't necessarily want every code reviewer to have to think about that. STEPHANIE: So, I do think that I am sometimes not necessarily suspicious, but I have also seen tools like that end up just getting in the way, and it just becomes something you ignore. It's something you end up always using the escape hatch for, or people just find ways around it because they're harming more than they're helping. Do you have any thoughts about how to kind of keep those things in check and make sure that the tools we introduce genuinely are kind of helping the organization do the right thing rather than kind of being these perhaps arbitrary blockers? JOËL: I'm going to throw a fancy phrase at you. STEPHANIE: Ooh, I'm ready. JOËL: Signal-to-noise ratio. STEPHANIE: Whoa, uh-huh. JOËL: So, how often is the feedback from your tool actually helpful, and how often is it just noise that you have to dismiss, or manually override, or things like that? At some point, the ratio becomes so much that you lose the signal in all the noise. And so, maybe you even, like, because you're always just ignoring the feedback from this tool, you accidentally start overriding things that would be genuinely helpful. And, at that point, you've got the worst of both worlds. So, sort of keeping track on what that ratio is, and there's not, like, a magic number. I'm not going to tell you, "Oh, this is an 80/20 principle. You need to have, you know, 80% of the time it's useful and only 20% of the time it's not useful." I don't have a number to give you, but keeping track on maybe, you know, is it more often than not useful? Is your team getting to the point where they're just ignoring feedback from this tool? And thinking in terms of that signal versus that noise, I think is useful—to go back to that word again, heuristic for managing whether a tool is still helpful. STEPHANIE: Yeah. And I would even go on to say that, you know, I always appreciate when people in leadership roles keep an eye on these things. And they're like, "Oh, I've been hearing that people are just totally numb to this tool [laughs]" or, you know, "There's no engagement on this. People are just ignoring those signals." Any developer impacted by this, it is valid to bring it up if you're getting frustrated by it or just finding yourself, you know, having all of these obstacles getting in the way of your development process. JOËL: Sometimes, this can be a symptom that you're mixing too many classes of problems together in one tool. So, maybe there are things that are, like, really dangerous to your product to go live with them. Maybe it's, you know, something like Brakeman where you're doing security checks, and you really, ideally, would not go to production with a failing security check. And then, you've got some random other style things in there, and you're just like, oh yeah, whatever, it's this tool because it's mostly style things but occasionally gives you a security problem. And because you ignore it all the time, now you accidentally go to production with a security problem. So, splitting that out and say, "Look, we've got blocking and unblocking because we recognize these two classes of problems can be a helpful solution to this problem." STEPHANIE: Joël, did you just apply an object-oriented design principle to an organizational system? [laughter] JOËL: I may be too much of a developer. STEPHANIE: Cool. Well, I really appreciate your input on this because, you know, I was just kind of mulling over, like, how I felt about these kinds of things that I encounter as a developer. And I am glad that we got to kind of talk about it. And I think it gives me a more expanded vocabulary to, you know, analyze or reflect when I encounter these things on different client organizations. JOËL: And every organization is different, right? Like, you've got to learn the culture, learn the different elements of that software. What are the things that are invariant? What are the things that are dangerous that we don't want to ship without? What are the things that we're doing just for consistency? What are things which are, like, these are culturally things that we'd like to do? There's all these levels, and it's a lot to pick up. STEPHANIE: Yeah. At the end of the day, I think what I really liked about the last thing you said was being able to identify the problem, like the class of problem, and applying the right tool for the right job. It helps me take a step back and perhaps even think of different solutions that we might not have thought about earlier because we had just gotten so used to the one way of enforcing or checking things like that. JOËL: On that note, shall we wrap up? STEPHANIE: Let's wrap up. Show notes for this episode can be found at bikeshed.fm. JOËL: This show has been produced and edited by Mandy Moore. STEPHANIE: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes. It really helps other folks find the show. JOËL: If you have any feedback for this or any of our other episodes, you can reach us @_bikeshed, or you can reach me @joelquen on Twitter. STEPHANIE: Or reach both of us at hosts@bikeshed.fm via email. JOËL: Thanks so much for listening to The Bike Shed, and we'll see you next week. ALL: Byeeeeeee!!!!!! AD: Did you know thoughtbot has a referral program? If you introduce us to someone looking for a design or development partner, we will compensate you if they decide to work with us. More info on our website at: tbot.io/referral. Or you can email us at: referrals@thoughtbot.com with any questions.
This is The Thirty Third Episode of the Visual Scholar Podcast - With Tim Mcburnie. Let's look at how Tracking relates to your artistic progress! (Yeah this can sound a bit analytical.... but trust me it's critical for overcoming many of the natural pitfalls we can fall into as aspiring artists!) Below is in Automagically generated summary so you can check out the content and also to help with search functionality! ---Artistic progress can often feel elusive, especially when you're just starting out or deeply immersed in your work. It's not uncommon to struggle with recognizing your own development, which can lead to frustration or even a loss of motivation. However, tracking your progress visually can significantly change this dynamic. This simple yet effective practice involves collecting images of your work over time. By creating a visual timeline, you can more clearly see improvements, changes in style, and the evolution of your skills. This isn't just about confirming that you're getting better; it's about understanding the nature of your growth and the specific areas you've improved in. For many, the benefits of this practice become particularly clear when comparing older works with more recent ones. This comparison can provide a tangible sense of advancement and can be particularly encouraging during periods of self-doubt or stagnation. Moreover, this visual record can serve as a valuable tool for reflection and learning, highlighting both strengths and areas for further development. By making this a regular practice, you establish a habit that not only motivates but also deeply informs your artistic journey. It serves as a personal archive that you can refer to, learn from, and draw inspiration from throughout your career. CHOOSE A STORAGE MEDIUMDecide where you will store your images. This could be a digital folder on your computer or cloud storage like Dropbox or Google Drive. The key is to choose a platform that you find easy to access and reliable. COLLECT REGULARLYMake it a habit to save images of your artwork regularly. This could be daily, weekly, or whenever you complete a piece. The important part is consistency. ORGANIZE BY DATEArrange your images chronologically. This helps in easily seeing your progress over time. Most digital platforms automatically record the date an image is saved, which can help in organizing. HIGH-QUALITY IMAGESEnsure the images are of good quality. If you work digitally, save JPEGs or PNGs directly. For traditional media, take well-lit, high-resolution photographs of your work. CONSIDER PUBLIC SHARINGFor additional motivation and feedback, consider sharing your progress on social media platforms like Instagram, ArtStation, or a personal blog. This not only creates a backup of your work but also allows you to engage with a community that can provide support and constructive criticism. REVIEW REGULARLYSet a routine to review your collected images. This could be every few months or at least once a year. Use this time to reflect on your growth, identify trends in your work, and assess areas needing improvement. KEEP EVERYTHINGInclude both your successes and failures. Every piece of art, regardless of its quality, is a step in your development and provides valuable insights into your artistic process and growth.--- This Podcast is designed to help you demystify the world of Art, Productivity, and Creativity. So you can get better faster, and enjoy your Art Journey. We discuss Drawing, Painting, Illustration and Entertainment Design. Along with Productivity and Career Advice. Learn more about Tim Mcburnie: Learn Drawing and Illustration at The Drawing Codex: www.thedrawingcodex.com Check out this podcast with video on Youtube: https://www.youtube.com/@Tim-Mcburnie Spotify Link: open.spotify.com/show/6VbdwbiZqy8nqb90ruKQCX?si=21b9c1d02c85419f Apple Podcasts: podcasts.apple.com/us/podcast/the-visual-scholar/id1678505411 www.thedrawingcodex.com/podcasts/the-visual-scholar Check out The Drawing Codex Youtube Channel: https://www.youtube.com/@TheDrawingCodex Portfolio: www.timmcburnie.com www.artstation.com/tim-mcburnie www.instagram.com/timmcburnie twitter.com/timmcburnie
This digital product success story will blow your mind and inspire you to no end! Just three years ago, Bailey opened her Etsy shop selling PNG designs for sublimation tumblers—and since then, she's become a top 0.1% Etsy Seller earning $45k per month passively through digital downloads. Listen in as she shares her story, key strategies that helped her grow, and how she's scaling and securing her business for the future. **“How to Sell Your Stuff on Etsy” is not affiliated with or endorsed by Etsy.com STUFF I MENTIONED: Bulk listing and editing tool Bailey mentioned (Vela): https://welcome.getvela.com/ How to Create Your Own Font in Midjourney: (Go to the Fonts and Calligraphy Chapters of the video): https://youtu.be/OY427QKSXcM?si=MlQRbJmRMSVc1QIX Bailey's Digitally Purposed Community and Training: https://www.digitallypurposed.com/digitallypurposedsales-7407?am_id=lizzie295 Find Bailey: YouTube: https://bit.ly/BaileyYouTube Digitally Purposed: https://bit.ly/digitallypurposed WHAT'S HAPPENING NOW: ⭐The A.I. Print on Demand LIVE Workshop just happened on 1/17/24! Get a copy of the recording, prompts for your own mockups + POD designs, tutorials for Midjourney, Ideogram, and Dalle-3 and MORE (Use code POD50 to save $50): https://www.howtosellyourstuff.com/ai-POD-workshop-enrollment ⭐ Get my free list of 100 in Demand Micro-Niche Keywords: https://www.howtosellyourstuff.com/Micro-Niche-Demand ⭐ Join the $4.99 monthly subscription to the In Demand Micro-Niche Keywords List: https://www.howtosellyourstuff.com/micro-niche-member (You'll get ongoing access to the ever growing of list of hundreds--soon to be thousands-- of micro-niche opportunities on Etsy!) --------------------------------------------- ⭐Book a one-on-one Etsy coaching session with Lizzie: https://www.howtosellyourstuff.com/coaching ⭐Apply to be a Podcast Guest: https://bit.ly/48hFD8X Find me on Instagram and TikTok @HowtoSellYourStuff FREE ETSY MASTERCLASS: https://www.howtosellyourstuff.com/masterclass FREE PDF DOWNLOAD: “4 Strategies I Used to Grow My Etsy Shop from $25 to $6000k/month”: https://www.howtosellyourstuff.com/site/4-strategies-opt-in Grab my UPDATED Etsy Course for physical product sellers: “Listings that Sell 2.0” and learn how to skyrocket your Etsy business: https://www.howtosellyourstuff.com/etsy-listings-that-sell ----- HOW TO SELL YOUR STUFF WEBSITE: https://www.howtosellyourstuff.com/ HOW TO SELL YOUR STUFF INSTAGRAM: https://www.instagram.com/howtosellyourstuff/ HOW TO SELL YOUR STUFF SHOWNOTES: https://www.howtosellyourstuff.com/blog/112 ------- THIS EPISODE IS SPONSORED BY: My Resources Me! And the Resources section on my website. If you have questions specific to your personal niche on Etsy, you should definitely come check out my Resource page at www.HowtoSellYourStuff.com/Resources where I will connect you with my favorite free and paid resources created by experts I have personally vetted. Whether you sell POD, digital products, printable, physical products and more—there's info waiting for you to help you on your Etsy journey! Recommended Resources: https://www.howtosellyourstuff.com/resources AND Paige Hulse Law and the Creative Law Shop Whether you're just getting started on Etsy or you've been selling for years but never quite got around to the legal setup, I want to make sure you know about Attorney Paige Hulse and her Creative Law Shop. If you need legal assistance for your Etsy shop, want to register a trademark, or are looking for help with forming a business—contact Paige at https://paigehulse.com/ AND If you're looking for a well-crafted legal document that is tailored to creative entrepreneurship, but don't want the cash outlay of hiring an attorney by the hour, you can get everything you need from an LLC operating agreement, multi-person LLC agreements for partnerships, special provisions for your Etsy Shop Policies, affiliate agreements, influencer contracts, photography releases, and so much more. There are over 80 contracts available plus free resources and educational tools waiting for you at https://www.shopcreativelaw.com/ Make sure you use the code smiley10 for 10% off of anything from the Creative Law Shop! *Some of the links above are affiliate links which means I'll receive a commission if you purchase through my link, at no extra cost to you. You can see my affiliate disclosure here: https://www.howtosellyourstuff.com/affiliate-disclosure
SEO for Bloggers - Episode 96 Bad SEO Advice You've Probably Heard Before In this episode... [0:24] Bad SEO Advice You're Probably Following[7:29] Image Alt Text[8:08] Meta Description Tags[8:58] Keywords in URLs[13:34] External Links for SEO[14:36] Link to Quality Websites[15:37] JPGs vs. PNGs for SEO[17:03] Use WEBP Images[18:49] How to Approach Image Alt Tags[21:44] My Five SEO Rules Get in touch:> https://www.meredithshusband.com/contact
Om Shownotes ser konstiga ut (exempelvis om alla länkar saknas. Det ska finnas MASSOR med länkar) så finns de på webben här också: https://www.enlitenpoddomit.se Avsnitt 427 spelades in den 19 september och därför så handlar dagens avsnitt om: INTRO: - Vi firar pumpkin spice latte, och att det är internationella Piratdagen! - Alla har haft en vecka... David har kommit fram till att han INTE gillar Volkswaren Tiguan, åsså har han snöat in på obsidian, bygger vidare på presentationer och sin altan, å läst bok. Björn har fått sin bil inlämnad på service, hämtat ut glasögon, tittat på Amerkansk fotboll, Tittat på Tv serien "Quarterback" på Netflix. Johan har haft en rutin-vecka, det har varit innebandy, varit på AW, och lyssnat på fulkultur podden - BONUSLÄNK: https://obsidian.md/ - BONUSLÄNK: https://www.netflix.com/tudum/articles/quarterback-nfl-docuseries-news - BONUSLÄNK: https://fulkulturpodden.se/ FEEDBACK AND BACKLOG: - Elon vill ta betalt av alla för att använda X/Twitter -- eller vill han det? https://variety.com/2023/digital/news/elon-musk-charge-all-x-twitter-users-fee-1235726693/ https://www.bbc.com/news/technology-66850821 - Vill vi prata om Unity. https://appleinsider.com/articles/23/09/18/unity-caves-is-reconsidering-new-fee-structure-after-developer-revolt - Dagens onödiga kunskap… fast ascoolt https://www.cookwithki.com/ DISKUSSION: - Hur mycket ska man testa? Är det olika nivåer man behöver göra tester på. När det kommer nya releaser och funktioner… MICROSOFT - Panos slutarr https://www.theverge.com/2023/9/18/23878609/microsoft-windows-panos-panay-leaving - Å går till Amazon devices: https://www.thurrott.com/amazon/289315/report-panay-is-headed-to-amazon-devices - Microsoft läcker data från Teams https://www.wiz.io/blog/38-terabytes-of-private-data-accidentally-exposed-by-microsoft-ai-researchers - Årets mest uppenbara Shortcut (det är inte konstigt att appleanvändarna skrattar) https://www.theverge.com/2023/9/15/23874798/microsoft-windows-linkedin-onenote-keyboard-shortcut - ÄNTLIGEN: MS paint får stöd för lager och genomskinliga PNGs… https://arstechnica.com/gadgets/2023/09/hell-freezes-over-ms-paint-adds-support-for-layers-and-png-transparency/ APPLE - Apple har problem med strålning i Frankrike fr daggr https://www.bleepingcomputer.com/news/security/france-demands-apple-pull-iphone-12-due-to-high-rf-radiation-levels/ - Lagra "jättemycket" i iCloud… fast inte JÄTTEmycket. Bara lagom mycket. Så mycket som vi bestämt att du behöver https://appleinsider.com/articles/23/09/15/apples-new-icloud-tiers-are-too-much-for-consumers-too-little-for-professionals - Har du tappat din apple produkt nån gång? Jupp jag åxå. ÄR det dyrt att laga. JUPP!! Som fan. https://appleinsider.com/articles/23/09/18/iphone-15-pro-back-glass-is-hugely-cheaper-to-repair-than-iphone-14-pro - Ang apple eventet: jag vet varför det är astråkiga färger GOOGLE: - Chromebooks får längre support (kanske för att skolorna blev arga) https://www.bleepingcomputer.com/news/security/google-extends-security-update-support-for-chromebooks-to-10-years/ EXTRA NYHETER: - Precis som Apple ryktas Samsung släppa en ring https://9to5google.com/2023/09/15/samsung-galaxy-ring-app-release-date/ PRYLLISTA - Björn: DC Comics ring! https://www.amazon.com/dp/B0C6YJHGB9/?th=1 . Eller en klocka till Garaget. https://www.amazon.com/Seesii-Interval-Timer-Gym-Timer-Stopwatch-11x3-6inch/dp/B08NS8ZJXC/ - David: Tamron 70-180/2,8 G2 https://www.cyberphoto.se/objektiv/telezoom/tamron-af-70-180-2-8-di-iii-vc-vxd-g2-for-sony-e-fattning-fullformat - Johan: behöver inte en Keps. Men en https://www.androidpolice.com/boox-palma-launch-impressions/ eller en herrbetjänt EGNA LÄNKAR - En Liten Podd Om IT på webben, http://enlitenpoddomit.se/ - En Liten Podd Om IT på Facebook, https://www.facebook.com/EnLitenPoddOmIt/ - En Liten Podd Om IT på Youtube, https://www.youtube.com/enlitenpoddomit - Ge oss gärna en recension - https://podcasts.apple.com/se/podcast/en-liten-podd-om-it/id946204577?mt=2#see-all/reviews - https://www.podchaser.com/podcasts/en-liten-podd-om-it-158069 LÄNKAR TILL VART MAN HITTAR PODDEN FÖR ATT LYSSNA: - Apple Podcaster (iTunes), https://itunes.apple.com/se/podcast/en-liten-podd-om-it/id946204577 - Overcast, https://overcast.fm/itunes946204577/en-liten-podd-om-it - Acast, https://www.acast.com/enlitenpoddomit - Spotify, https://open.spotify.com/show/2e8wX1O4FbD6M2ocJdXBW7?si=HFFErR8YRlKrELsUD--Ujg%20 - Stitcher, https://www.stitcher.com/podcast/the-nerd-herd/en-liten-podd-om-it - YouTube, https://www.youtube.com/enlitenpoddomit LÄNK TILL DISCORD DÄR MAN HITTAR LIVE STREAM + CHATT - http://discord.enlitenpoddomit.se (Och glöm inte att maila bjorn@enlitenpoddomit.se om du vill ha klistermärken, skicka med en postadress bara. :)
Welcome to an extra special episode of LeanCast! Today, we have a fantastic treat for you as our usual host, Behrad Mirafshar, takes on the role of a guest speaker at the amazing SPICED Academy. He was invited to share his extensive experiences, including insights from starting and running his design agency, Bonanza Design.In this engaging podcast, Behrad starts by sharing his journey and the trials he faced early in his career. He highlights the value of taking initiative, a crucial personality trait for career advancement. Initiative, as he defines it, is taking action on things that you believe will create an impact without requiring someone else's explicit instruction.Behrad graciously walks us through the inception of Bonanza Design. He introduces the services offered by the agency, which includes everything from UX design to growth work. By leveraging agile, Lean, and Design Thinking methodologies, Bonanza Design aims to drive impact and deliver remarkable results to its clients.During the podcast, Behrad offers invaluable advice for up-and-coming designers looking to make a mark in the industry. He emphasizes the importance of showcasing a clear understanding of the design process and being outcome-oriented rather than merely focusing on outputs. He encourages aspiring designers to conduct multiple iterations and to continuously refine their skills to stand out in the competitive global creative industry.With the discussion moving forward, Behrad delves into the exciting topic of NFTs (Non-Fungible Tokens) and how they can be utilized for utility rather than just for expensive PNGs. He highlights NFT ticketing as an example of how NFTs can be harnessed to solve real-world problems for businesses.In the Q&A session, Behrad answers questions from eager participants, sharing more insights on the design process and how to enter the design job market. He emphasizes the importance of training, honing one's craft, and producing work consistently to build a strong portfolio and stand out among the competition.Overall, this episode of LeanCast is an enriching experience, filled with valuable advice and practical insights from a seasoned professional like Behrad Mirafshar. Whether you're an aspiring designer or a design enthusiast, this podcast is sure to inspire and guide you on your own design journey. Don't miss out on the opportunity to learn and grow from this engaging discussion!Join our Discord Community here.Check out our UX Gym Training Program here.
Stitcher is Closing Down Correction about Regenerative Braking CCATP #772 — Dr. Jason Briner on Studying the Greenland Polar Ice Sheet Tiny Tip - Use Numbers to Print Multipage PNGs Create a Test Volume to Diagnose Your Mac with APFS Canon EOS M50 Camera - by Steven Goetz Belkin iPhone Mount with MagSafe for Continuity Camera Support the Show Tiny Mac Tips Part 7 Transcript of NC_2023_07_02 Join the Conversation: allison@podfeet.com podfeet.com/slack Support the Show: Patreon Donation PayPal one-time donation Podfeet Podcasts Mugs at Zazzle Podfeet 15-Year Anniversary Shirts Referral Links: Parallels Toolbox - 3 months free for you and me Learn through MacSparky Field Guides - 15% off for you and me Backblaze - One free month for me and you Setapp - One free month for me and you Eufy - $40 for me if you spend $200. Sadly nothing in it for you. PIA VPN - One month added to Paid Accounts for both of us
¿Te imaginas poseer una voz y todos sus derechos de explotación? ¿Sabías que por ciertas parcelas del metaverso pasa más gente al día que por Gran Vía?• Las notas del episodio con enlaces e información adicional en: https://producthackers.com/es/podcast/nft-alex-granados/
TABLE OF CONTENTSWhat Are SEO Best Practices?1. Align Your Content with Search Intent2. Write a Compelling Title Tag and Meta Description3. Optimize Your Images4. Optimize Your Page Speed5. Build an Internal Linking Structure6. Improve User Experience7. Make URLs SEO-Friendly8. Earn Authoritative Backlinks9. Create Useful ContentFinal ThoughtsHere is the harsh truth: if you aren't ranking in Google's top 10 results for your target keywords, your website might as well be invisible on Google. There are four common types of search intent:Informational: A search falls under informational intent when the user is looking for specific information. It can be a simple search like “what's the weather today?” that provides instant results or something complex like “best SEO strategies” that requires a more in-depth explanation. Navigational: In this case, the searcher is looking for a specific website or app. Common examples of navigational searches include “Facebook login,” “Semrush,” and “Amazon.”Commercial: The intent behind a search is commercial when the user is looking for a specific product but hasn't made the final decision yet. For example, searches such as “best SEO tools” and “best DSLR cameras” are all commercial searches. Transactional: Here, the intent is to buy. The searcher has already made a decision to buy a specific product or tool. Examples include searches such as “buy Nikon d500,” “buy Macbook Air,” and “buy groceries online.”Here are some best practices to follow while writing your meta descriptions:Write unique meta descriptions for each pageUse action-oriented copyInclude your target keywordsMatch search intentProvide an accurate summaryCompress Your ImagesThe larger your image file size, the longer it takes the web page to load, which is why it is imperative that you compress your images before uploading them on your site. Luckily, there are several free tools out there that can help you compress your images. TinyPNG: TinyPNG uses smart lossy compression techniques to reduce the file size of your PNG and JPEG files.ImageOptim: If you're a Mac user, you can download and use this free tool for all your image compression needs. ImageOption is a tool recommended by Google as well. It's by far the best tool for compressing JPEGs, but not for PNGs. For compressing PNGs, you're better off using TinyPNG.ShortPixel: If you run your site on WordPress, you can install this plugin to compress your images. ShortPixel's free plan allows you to compress 100 images per month.In addition to image compression, here are some other things you can do to help your pages load faster:Enable browser cachingDelete unnecessary pluginsReduce server response timeReduce the number of redirectsMinify CSS and JavaScript filesHere are a few content-specific best practices to follow:Find the right keywords to targetIdentify user intentReview competing contentKeep linking structure in mindGather original dataInclude visualsOptimize headers and meta tagsThe SEO best practices outlined above are a great starting point to achieve higher search rankings. That said, the competition for the coveted first page on Google is intense, regardless of the niche you operate in. Once these best practices are in place, make sure you are sufficiently up to speed with the latest SEO trends and follow other SEO techniques from time to time to stay ahead of the game.Mick Smith, Consultant M: (619) 227.3118 E: mick.smith@wsiworld.com Commercials Voice Talent:https://www.spreaker.com/user/7768747/track-1-commercials Narratives Voice Talent:https://www.spreaker.com/user/7768747/track-2-narrativesDo you want a free competitive analysis? Let me know at:https://hubs.ly/Q0139TgJ0Website:https://www.wsiworld.com/mick-smithLinkedIn:https://www.linkedin.com/company/wsi-smith-consulting/Make an appointment:https://app.hubspot.com/meetings/mick-smithBe sure to subscribe, like, & review The Doctor of Digital™ Podcast:https://www.spreaker.com/show/g-mick-smith-phds-tracksSign up for the Doctor Up A Podcast course:https://doctor-up-a-podcast.thinkific.com/
Want to know how to grow your traffic with the new Google Update coming this summer? I'm interviewing my husband. partner, and tech guru, David Leslie, about what you need to know to get your site ready for the update, and even how to use it to your advantage to grow your traffic! This interview is for non-technical bloggers. David breaks everything down so it's easy to understand and his tips are easy to implement. Whenever there is a Google update, some people lose traffic and some gain. Many f these tips will help you be on the winning side of this change. In the interview we discuss: What Google is looking for in the new update What core web vitals are and how you should evaluate yours Why you want to track your top five posts before and after the update When you want to use PNGs vs. JPGs How you can compete on page speed and increase your rank in Google search results I recommend all you bloggers and online entrepreneurs listen to this episode. David is so good at explaining complex technical concepts to non-technical people (like me!!). I think you're going to really enjoy this episode! Show Notes MiloTree Become a Blogger Genius Facebook Group MiloTree Membership Group 4 Favorite Takeaways Newsletter The Blogger Genius Podcast episodes Catch My Party Subscribe to The Blogger Genius Podcast: iTunes Stitcher YouTube Spotify Amazon Music Imagine a world where growing your social media followers and email list was easy… If you are looking for ways to grow your community whether that be email whether that be social media, right now head to Milotree.com install the MiloTree app on your blog and it will do the work for you. Let it do the heavy lifting for you. Let it pop up in front of your visitors and ask them to follow you on Instagram Pinterest, YouTube, Facebook, join your list, check out the exit intent but really get your community growing. And we'd love to help you with MiloTree. And I will see you here again next week. Sign up for MiloTree now and get your first 30 DAYS FREE!
Danielle and merritt return, and despite the fact that merritt is recovering from oral surgery, she still managed to eek out enough functional mouth time to discuss the important questions of the day, such as "how did we all know about Mew under the truck?" Keep the conversation going: Fanbyte Podcast Network (Hear more shows from the entire Fanbyte crew!) Follow us on Twitter (Stay up-to-date with our articles, live streams, game guides, and all things Fanbyte.) Talk to us on Discord (Join our amazing listeners to catch community events, post-podcast discussions, and more.) Twitch Live Streams (Hang out on our virtual couch every week as we play games LIVE.) Rate and review our show (Please show us your support by rating and reviewing our show to help spread the good word.) Learn more about your ad choices. Visit megaphone.fm/adchoices
In today’s episode, we talk all about image formats, DAM integrations and how to manipulate images using the Contentful Image API with my guest Allen White, an interdisciplinary designer and developer who works at Contentful as a solutions engineer. ******************************* Questions Asked ******************************* Tell us about your background. Tell us about the different kind of image formats we should be concerned with. Tell us about the JPEG compression. Tell us about lossy versus lossless compression. Tell us about the PNG image format. Tell us about the WebP image format. Tell us about the SVG image format. How do you create SVGs? What tools can you use? What are some challenges when working with SVGs? How do you work with SVGs in Contentful? How can you animate an SVG with Javascript? How can you use the Contentful Image API to convert an SVG into another format? How are RAW images different from all other formats for the web? How can you make images responsive and what does that mean? Tell us about Contentful's face detection feature in the Image API. Can we have 1 master image and have the Contentful API generate the required images depending on the viewport? Does the Contentful Image API cache images? How and where are images stored in Contentful? Give us an overview of the Contentful Images API. Can you use the CPAPI or CDAPI to retrieve images? Tell us about progressive JPEGs. Tell us about 8 bit PNGs. Tell us about GIFs. Can we use the Contentful Image API on images not stored in Contentful? How can we integrate Contentful with other DAMs? Tell us about external image APIs. What do you see as the future of Image APIs? What is Lazy Loading of images? ******************************* Reference Links ******************************* Sara Soueidan (https://www.sarasoueidan.com/) Figma (https://www.figma.com/) Sketch (https://www.sketch.com/) Can I Use (https://caniuse.com/) ImageOptim (https://imageoptim.com/mac) Allan’s Image API Blog Article (https://www.contentful.com/blog/2020/07/20/creator-guide-to-image-file-formats-and-why-they-are-important/) Allan’s Website (https://allanwhite.design/)
In this video I share my "Monday morning routine" as far as print on demand workflows go It involves using AutomatePOD to create a batch of mass-scaled out designs Then organizing them in folders & spreadsheets to prepare them for upload to ~10 different markets using Merch Titans Automation After that I convert the PNG designs to KDP ready PDF book covers for sale on Amazon KDP Aaaaand if that wasn't enough already, I then convert them one more time into PNGs optimized for sale on coffee mugs via Amazon Seller Central FBM listings It's a killer workflow that lets you maximize your designs & coverage with minial effort. I hope you'll like it!
In this episode, I welcome Grace Strachan! Grace shares about her passion for the art of sending out greeting cards every single day, and the value of giving to give. She talks about the impact that a simple, heartfelt greeting card can have on someone's life. Get in touch with Grace Strachan: https://www.sendoutcards.com/u/greetingswithgrace | gracestrachan2014@gmail.comArtfully Told links: www.facebook.com/artfullytold | www.artfullytold.podbean.com | elevateartskc@gmail.comSchedule your interview with Artfully Told! https://calendly.com/artfullytold/podcast-interviewArteza: Arteza makes art supplies affordable to creators with every budget. Art is about the journey. They provide the tools – you steer the way. Click here and use promo code PB8PROMO for 8% off all purchases! Intro & Outro Music Credits:Bad Ideas (distressed) by Kevin MacLeodLink: https://incompetech.filmmusic.io/song/3412-bad-ideas-distressed-License: http://creativecommons.org/licenses/by/4.0/ SHOW NOTES:Episode 013 - Grace StrachanLindsey Dinneen: Hello, and welcome to Artfully Told, where we share true stories about meaningful encounters with art.[00:00:06] Krista: I think artists help people have different perspectives on every aspect of life.[00:00:12] Roman: All I can do is put my part out into the world.[00:00:15] Elizabeth: It doesn't have to be perfect the first time. It doesn't have to be perfect ever really. I mean as long as you, and you're enjoying doing it, and you're trying your best, that can be good enough.[00:00:23] Elna: Art is something that you can experience with your senses and that you just experience as so beautiful.[00:00:30] Lindsey Dinneen: Hello, and welcome to another episode of Artfully Told. I'm Lindsey, I'm your host and so excited to be sharing more stories about art with you. And I am especially delighted today to have as my guest, Grace Strachan. She is an amazing person, super kind, thoughtful-- I can go on and on--very generous, just a wonderful, wonderful lady. And I'm so excited to have her on because she has a unique platform for the way that she shares art with the world. And, I don't want to spoil it, so I won't give too much away, but I am just thrilled to have her on the show. And just to share a little bit about what her experience with art has been and how she continues to, to bring art into the world. And I think it's just an incredible story. So without further ado, thank you, Grace, for being here today.[00:01:29]Grace Strachan: Thank you, Lindsey, for inviting me. I'm thrilled to be here.[00:01:33]Lindsey Dinneen: And Grace, I would love if you would share just a little bit about, you know, who you are a little bit about your story, whatever you kind of want to share. That'd be amazing.[00:01:43]Grace Strachan: Thank you. Well, I actually, my background is in art. When I was a child, I actually took art lessons and had to go out and get a job to be able to pay for them. And so I actually drew and I also used to paint and I did photography. So my background was art. And then as I grew up, I actually ended up doing interior design. So again, very artistic, very color oriented. And then I spent the next, I dunno how many years of my life--I didn't end up doing interior design for very long . So I got to deal with your creative side, but I'm supplying, actually, products to the interior design, to market in commercial, as well as residential.[00:02:29]But then now something that I actually fell in love with and got to be creative in a new way. And, I really consider it a lost art, and that is the art of communication and the art of card sending. So it was something that was very close to my heart because my mother always taught me that if you didn't send out a thank you card and thank somebody for a gift, you needed to give it back because you didn't show gratitude. And because it became a lost art and now it's becoming a big art, and something that people are really appreciating in their life. Again, I'm quite excited to be a big part of that new movement.[00:03:11] Lindsey Dinneen: Yeah, that is incredible. Yeah, so, so definitely I'd love to hear your stories about, you know, about what that experience has brought to you. I knew about the interior design, but I don't think I knew about growing up as an artist. So that's so fun. Do you still, do you still do any of that as well? Any drawing or the photography or anything like that right now?[00:03:33] Grace Strachan: Well, I use the photography of course, for my cards and because I can download a picture onto a card. I think you kind of suppress a lot of things. When I got married, it was just something that I just didn't do. And I'm seriously thinking about starting to maybe paint, draw again. And, I actually used to make my own clothes, too, so that's something I don't think I'll ever want to do again, but yeah, going back and drawing. And I think, yes, I think I'm seriously thinking about starting to do that again and maybe, drawing and painting and putting that on the cards as well.[00:04:12] Lindsey Dinneen: Oh yeah. Yeah. That would be amazing to have some of your original artwork on cards. That's really cool. So I would love to hear some of your stories about the way that writing and communication you were talking about . It's kind of a lost art. I'd love to hear more about your experience with that and, and just how it's impacted you and others, 'cause I know it's, it's really important.[00:04:37] Grace Strachan: Thank you. Well, I have a couple stories I'd like to share with you. One of them is probably my favorite. I've been taught by Cody Bateman who actually owns a company that I'm associated with, Send Out Cards, to act on promptings. And what that means is that when somebody comes to your mind, to act on that, because that usually means that either they need to hear from you or you need to touch them. And one of the stories that I wanted to share was I had a boss who was probably the best boss I ever had in my life. And I actually worked for him for 13 years out of the 15 years with the company. And I had not seen him in about three or four years, and one morning I got up and the first person that came to my mind was him.[00:05:23] And so I actually started, I actually decided to send him a card and you know, when I do something like that, I usually don't remember what I put on the card, but I remember that I wrote him a card and I pretty well said to him that he had been a mentor and that I had never, ever told him how much he meant to me. And that I felt bad that I hadn't ever told him that. But what I wrote, I don't really remember. I just remember that I felt good and I sent it. Well, three weeks later, I'm driving down, down the road in St. Louis with my other job that I had. And, I think pull over to the side of the road, 'cause my phone rang and there it was. And I hear, "Hey Gracious," which is what he called me. And I went, "Oh my goodness." And I couldn't believe it was Tom in this beautiful Southern accent. And I asked him how he was doing. And he said, "Good now." And I said, "Wow, that's great." And he said, "Yeah," he said, "I'm gonna tell you, I just got back from a vacation. And we got our mail brought in. Oh, there's a card here from Grace." And his first reaction was, "Oh, I hope everything's okay."[00:06:35] Well, Lindsey, my heart went into my throat. Oh yeah. I almost broke into tears at that time. And I realized right then and there that I hadn't, it was, I mean, it was a lost art. I had not been keeping in communication with them. He said, so him and Jo, they sat down and they read the card. He said, "We cried. And now I'm calling you." And he said, "And I just wanted to let you know, you totally made my day." He said, "I cried out of, of love." He said, "I've never had anybody tell me what they really thought of me and how a great mentor I had been to them." And he said, "You've probably made my entire year."[00:07:20] Lindsey Dinneen: Oh, wow.[00:07:24] Grace Strachan: That proves the point of the fact that the written word is a lost art because we don't bear our hearts to people. We don't tell people what we think and how we think of them and share with them our true feelings. And that card was just a stock card out of our, our card catalog. And with a few words in it, it wasn't even very creative in any way, shape or form, but it affected somebody that greatly. The biggest thing I got from this too, was the fact that no more was I going to not stay in contact with this man, because he had been such a mentor to me and I have not talked to him in four years. And that is really, really sad. So that's my first story. The second story that I, that I was going to tell was actually a different one, but I, I actually had something happen in my life. I had lost my husband three years ago, and I'm going to tell you that when I received all the cards that I received in the mail from all the people that I knew in my life, I could literally cover a complete dining room table and three other tables with cards, just from people sending me sympathy cards and saying how much they love me, how much they, you know, they cared about me and they were sending prayers.[00:08:56] And a lot of those cards had pictures of my husband and myself in them, the best keepsakes I've ever had in my entire life. And that probably meant more to me than anything. And I left those cards up. It took me three months before I could take those cards down because I would literally every day go over and pick a different card and read it. So it made me realize how much we, the lost art hasn't really been lost. It's just been kind of put on the sideline. And we're bringing it back, you know, it's not really a lost art. It's been a delayed art and now it's a part that's coming back.[00:09:41]Lindsey Dinneen: Yeah. That is beautiful. And I'm sure you have probably a bazillion stories like that to share of people that you've touched, that you didn't even necessarily know why they came to your mind, but I love--so you have a very particular practice and I'm not going to spoil it for our audience because I want you to tell about it, but you have a very particular practice that you do, with the cards on a daily basis. Do you want to talk a little bit about that and kind of why that's important?[00:10:11] Grace Strachan: Yeah, we call them cards of gratitude. I get up every day and like I said, that that morning, when I sent that card to Tom, that was acting on a prompting. So I get up every day and the first person that comes to my mind gets a card. And again, that, that means something because you're giving to give and the beauty of giving to give is that when you give back, the universe gives back tenfold. When you give to get, and what that means is that when you give to get, you're expecting something in return. So like I said, when I sent that card to Tom, I didn't remember what I wrote in it. I mean, I just wrote it and sent it because that was my, my card of gratitude, telling him I was grateful for knowing him and having a part of my life.[00:10:55] So I, I do that every day. And actually the, the owner of our company, Cody Bateman, wrote a book on promptings and it, and that's what it is. It's a prompting and yeah, it's teaching you to touch people because when they come to your mind, they come to your mind for a reason. And so I do that usually every morning. And I try now to do it every night because I find that when I do it every night, I sleep better, because I've touched somebody from my heart before I go to sleep as well. So it starts my day off, but it also ends my day in a, in a really great frame of mind. And whatever I love about it is that-- the other story I was going to tell, and I probably should is one of my very best friends.[00:11:43] One day she came to my mind and I didn't know why. And I just said, Oh, so I'll just send her. And I just put in it something like, you know, you can't be everything to everybody, but guess what? You're the best to me, or something like that. Something very, you know, probably kind of corny. But anyway, I wrote it and I sent it and the next Friday, my husband and I, my husband was still alive-- we were at dinner and all of a sudden my phone rang and I thought, "Oh, I can't believe that she's calling me. She knows I'm out for dinner with my husband. So I got her voice message and all it was was "wmwmwmw," and it was just tears. So I'm thinking, Oh, I said to my husband, I said, "Yeah, I think I need to call her back, 'cause I think there's something major going on." I don't know what's going on. I called her and she said, "Oh, I'm so glad you called me." She said, "I've had such a bad week. And you know, just everything had gone wrong and everything was bad. And, you know, we were supposed to be going camping and we weren't going to go. I was going to cancel it 'cause I've had such a bad week." And she just--and I went, "Okay, okay." And I said, "Are you okay now?" She said, "Oh yeah. I was ready to cancel our trip."[00:12:53] And she said, "And I just had this prompting to go to the mailbox and pick up the mail." And she said, she walked to the mailbox and there in the mailbox was my card. It was the only thing in the mailbox. So she walked back to the front stoop and she opened it up and started crying because she said it was exactly what she needed to hear, that she couldn't be everything to everybody. And that was what she had been feeling all week. And she said, she says, "I picked up your car and took it in the house and got prepared for the camping weekend." So what you send does mean something to somebody and it could be that, that one thing that might make their whole day.[00:13:34] Lindsey Dinneen: Yeah, absolutely. And I would love to hear your thoughts on, on the impact of words in particular, because I know that when you act on your promptings and you're sending these cards, you're obviously putting a lot of thought and care into the message that you're sending. And so I'd just love to hear a little bit about, you know, your process. So when somebody comes to mind and you decide to send them a card, how does it work from there essentially? Is there a particular pattern you follow when you write these cards, or how does that work for you?[00:14:08] Grace Strachan: Actually, you'll be surprised to know there is none. Amazingly enough, I learned very quickly that when the prompting comes, it comes for a reason. Now I've had things happen where I've thought, huh? Why, you know, I just talked to that person. Why did that person come to my mind? And what's weird about it is there is no rhyme or reason, and I've had it happen where, I've, I've literally sent a card, and that afternoon, that person called me and said, "Oh, you know, I needed to talk to you." And, and something stressful had happened to them that day or whatever. And I've literally gone back into our system because our cards don't get mailed or don't get printed until after midnight. And so I've literally gone back into the system and changed what's been written in the card because they've told me something that's been stressful or something, and I needed to add to it. But typically the cards I write, I usually get out of my head, because I think if you try too hard to think about what you're going to write, it doesn't sound like you. So normally what I do is I sit back and I calm myself and I say, "Okay, why did this person come to my mind?"[00:15:26] And a lot of the time it'll be guilt because I haven't talked to them for a while or I haven't communicated what I needed to communicate. And so then what I'll just do is just let, I really just let God do his work. And it comes to me and a lot of the time it can be maybe a phrase. It can be a couple sentences. I've been known to write paragraphs because depending on the person, but I really, there is no rhyme or reason. I just let my heart tell me what to write. And I've been known to only write a couple of words even. And I don't know, I don't know if that's affected somebody or not, because you don't, some people you hear from them, some you don't. I don't give to get, so I don't know. I've had people tell me six or eight months later, you know? "Oh, that card you sent me. I really appreciated it because such and such was happening that day." And, and, you know, and you don't know that that's happening. So I, I can't really say that there is a rhyme or reason to what I write, except that I don't try too hard. Does that make sense?[00:16:33] Lindsey Dinneen: Absolutely. Well, and I think that in, in and of itself is an art that you can allow yourself to sort of sit with that prompting and then from there, allow the words that come to you to go into your card. I think that that is, that is great. Like you said, you don't want to, you don't want to think about it too much. You don't want to kind of force it because then you're not being maybe authentic. I think that's really neat.[00:17:02] Grace Strachan: Yeah. Yeah.[00:17:03] Lindsey Dinneen: That's wonderful. And I, I know, I know you touch a lot of lives through that and I think it's--you've said a couple of times that you, you give to give. And I think that that is really beautiful and, and really important, you know, obviously. So, I'm lucky, I'm a beneficiary of some of the cards that Grace has sent and they're always so beautiful and thoughtful and, and I'll, I'll have her share a little bit later about the platform that she uses. But I just want to say that it is, it is incredible because with that particular platform, you get to kind of design the card to an extent, and you can include pictures and obviously your own words. So for example, from Grace, I've gotten a picture of my cast after we finished our Nutcracker production for the very first time. She sent me this cast photo and it, it's perfect because frankly I probably would have never printed it out. And now I have a framed copy of it, which is so lovely to be able to, to have that memory, you know, in, in print form. Well, Grace, I have a couple of questions for you if that's okay. So how do you personally define art or what is art to you?[00:18:22]Grace Strachan: Well, I think art is in the eye of the beholder. I really believe that. I consider art nature. I consider art beauty. I consider art feelings. I consider art love. I really believe that art is all around us. I don't think we appreciate art the way we should appreciate art. I get very sad when I hear about them taking art out of the schools. I just think that is the most, I don't know how to say it in a very polite way, but wrong. I'll just say it.[00:18:58] Lindsey Dinneen: There you go![00:18:59]Grace Strachan: It's just, it's totally wrong. One of the biggest reasons I, I got into art as a child was because I happened to have a very good school system where we were taught art. And so I took, and then I ended up taking art on, you know, outside of school as well. So I think art is so important and it makes people creative. It helps children blossom in so many ways . And I think we, we tend to not appreciate the art around us. I grew up in a small city in Canada. So I grew up with art all around me, and I've always been, I felt very blessed by that because to have the theater and having that around me, I think gave me a different aspect and a different look on life. I ended up getting into working in theater and doing makeup and, and doing some backstage stuff when I lived in Canada. And that is, that's something that I could never, ever, ever, be lucky enough to repeat again. So I think art is just everywhere and everything.[00:20:04]Lindsey Dinneen: Yeah, I agree. I love that answer. Okay. What do you think is the most important role of an artist?[00:20:14]Grace Strachan: To share their gift. To make sure that everybody is aware of their gift and to be proud of their gift. I think there's too many artists that, you know, I mean, I always remember hearing people say, "Oh, they want to be an artist. What are they going to do to make a living?" I find that sad. I find that very negative. I think what's wonderful about life now is that most people have more than one means of income. So artists have the advantage. Now there's a lot of ways that they can make a living, maybe not making okay, total living, but at least help support their art. And so I think the biggest thing is that people, when you have somebody that shows artistic talent, nurture that and, and have them share that with the world.[00:21:08]Lindsey Dinneen: Yes, absolutely. Okay. And then for my final question, I'll explain my terms a little bit, but it's--do you think that art should be inclusive or exclusive? And what I mean by that is exclusive referring to when an artist creates something and they put it out in the world, and they let the audience take from it, what they will without any real context to it. So that means that maybe we don't know the intention behind it, or we don't know the way that the artist was feeling at the time, or even what they necessarily want to communicate. Versus inclusive referring to, you know, the artists create something and they share their intention with the audience. So perhaps that's program notes or they at least have a title and description, or just basically something so they can help the audience understand the intention behind it. Regardless of what the audience draws from it, if that makes sense.[00:22:09] Grace Strachan: Wow. That's heavy. That's a very, that's heavy, a deep topic. I think it depends on the art. Yeah. I think some, some art has to be very inclusive because I think there sometimes needs to be an explanation behind what the artist is trying to show. But exclusive also. I really cannot not say one or the other. I really believe that it should depend completely on the artist if they want to be inclusive or exclusive.[00:22:46]Lindsey Dinneen: Well, thank you so much for sharing, Grace. I so appreciate the time that you took today to tell us about all those stories, about the impact of words and being generous and giving back. And I would love if you wanted to share a little bit about how people can get connected with you, even about the platform that you use.[00:23:06]Grace Strachan: Thank you so much. I would love to. Actually it is Send Out Cards and my Canadian comes out when I say "out," that's probably the only time people know I'm Canadian. And the best way to reach me is at www.sendoutcards.com/greetingswithgrace. And that is a platform that, that is my website. If you go there, please send a free card on me. Try out the system, take it for a spin, see what you think. And, and let me know. Another way to reach me is by email and it so, it's Grace and my last name is S T R A C H A N 2014 at gmail.com.[00:24:00]Lindsey Dinneen: Perfect. Yes. And I would highly encourage anyone listening who is curious about the platform to definitely check it out. It is just a really neat way to send cards that are very unique. Grace, you actually have a phrase that you've been sharing that I love. Do you know what I'm talking about?[00:24:21]Grace Strachan: I have a feeling, I know what you're talking about.[00:24:24] Lindsey Dinneen: Okay.[00:24:25]Grace Strachan: That we have a high touch product in a no touch world.[00:24:30] Lindsey Dinneen: Beautiful.[00:24:31] Grace Strachan: Is that what you were talking about?[00:24:32] Lindsey Dinneen: That's exactly what I was talking about. Yeah.[00:24:35]Grace Strachan: People need to know that, what we, what I believe I do is that I take those memories, those photos, the artwork--a lot of the people have photos in their phones. I mean, what do you do with them? Look at them, right? Well, I can take those photos off of Facebook that you share, pieces of art, may put them into JPEGs or PNGs and, and literally put them on a card. And send them out to your grandmother, who you don't get to see; your mother, who hasn't been able to see you maybe in six weeks, and share a memory that is a tangible touch. It doesn't fade away. It doesn't go away in your mind. It is something that you can share with somebody else and share that love and memory forever. And what we send, people keep.[00:25:32]Lindsey Dinneen: Yeah. I just want to say, Grace, on behalf of the world. thank you so much for sharing art. I think it's vital. I think it's so important that, that you are blessing people with--you have so much art, not just in that, in the card sending, but just in general. Thank you for sharing art with the world. I think you, I truly believe that when you do that, you make the world a more inclusive and beautiful and generous place. So thank you.[00:26:04] Grace Strachan: Thank you, Lindsey. And I just want to say one thing, you know, during this time, being, being kind and showing gratitude is kind of, and again, and I'm really hoping, I don't know about you, but I don't want to go back to the old norm. I want kindness and gratitude, love to stay around for a long time. So, amen. I hope if nothing great comes out of this time that we've had to put up with, at least this will stay with us for a long time.[00:26:33] Lindsey Dinneen: Yes. I absolutely agree. Absolutely. Well, thank you again, Grace, for joining us. Thank you for all the listeners who've joined us too. If this episode has left you as inspired as it has left me, I would be delighted if you would share it with a friend or two, and continue to spread art and joy into the world, and we will catch you next time.[00:26:55]If you have a story to share with us, we would love that so much. And I hope your day has been Artfully Told.[00:27:07] Hey, Artfully Told listeners. I'm excited to share with you a little bit about one of my very favorite resources for artists. It's a website called Arteza. They have incredible products, but what makes this company really unique is that they have supplies that are affordable to creators with every budget. So whether you're just starting out, or dabbling, or you, or you do have that budget available to you, they do you have options for every budget level. They provide the tools, but you steer the way. Literally you can access hundreds of thousands of high quality, unique products through their website. And right now they are offering a promo code to receive 8% off of any purchase, and you can access the link and the promo code in my comments and show notes.
Twitter announces a ban on animated PNGs, Travis Kalanick leaves Uber's board, and SpaceX completes its 10th successful parachute system test. See acast.com/privacy for privacy and opt-out information.
What's up everybody? I'm going to show you something I've been really excited to do myself. This is how to create an animated GIF (I pronounce it JIF like the peanut butter), then add it to Instagram Stories, so that anyone can stick it to their stories on Insta. This is complete branding arbitrage, because it costs NOTHING. 1. You just create a GIPHY.com account, apply to have it verified (which is easy - this video explains it) - https://giphy.com/apply/ 2. Create the frames for your GIFs using Canva and download them as transparent PNGs. 3. Upload them into GifMaker.me ... Download them as an animated GIF file. 4. Upload them to your GIPHY.com account and add tags. The tags are important, because these are the search phrases that users will type in to find your GIFs on Instagram. Why is this branding arbitrage? 1. Because the data says user attention is HIGH on Instagram Stories. 2. The cost of putting your logo into Instagram Stories via these GIFs is ZERO Dollars and ZERO cents. 3. You can do as many as you want, with as many keywords as you want. So get creative, or contact us if you need help - paul@datadriven.design --- Support this podcast: https://anchor.fm/paulhickey/support
Today: Facebook may be shutting down an important part of LINK ads LinkedIn finally joins the Live Video party And expect another placement in your Facebook ads manager — good news, especially for hyper-LOCAL brands Here’s what you missed… today, in digital marketing. Today in Digital Marketing is brought to you by engageQ digital. Can we help you with YOUR brand’s digital marketing and social media? Let’s chat. http://www.engageQ.com or call 1-855-863-6233. --- Send in a voice message: https://anchor.fm/todayindigital/message
En este episodio revivimos una de las Guerras Civiles más dramáticas y emblemáticas de la Edad Media y en la que se han basado historias actuales como Juego de Tronos: la Guerra de las Rosas entre las casas de los York y los Lancaster.Árbol genealógico de la Guerra de las Rosas: http://www.tudor-history.com/wp-content/uploads/2013/08/Wars-of-the-Roses-Family-Tree.pngSíganos en nuestras redes sociales para enterarse de toda nuestra actividad y futuros episodios. Por el mismo medio agradeceremos nos hagan llegar todos sus comentarios, sugerencias y preguntas:Facebook: https://www.facebook.com/amehmmx/Twitter: https://twitter.com/amehmmx
The ISDA Secure Transportation and Executive Protection News Podcast for Wednesday, October 10th, 2018 ========================= In Vehicle News From the International Security Driver Association Armoring Small Vehicles In the past armoring lightweight vehicles were not something that was recommended. BUT in Mexico and other locations around the world armoring, smaller vehicles is a reality of the security environment. Whether armoring a large or small vehicle the basic theory of armored vehicles does not change. The armored vehicle must protect the occupants from the threat, maintain some level of performance and be able to be maintained and function in the environment they will be operating in. All armored vehicles must have the capability of absorbing the initial attack and have the ability to escape. https://isdacenter.org/armoring-small-vehicles-2/ ==================== And from Business Insider Chipmaker Nvidia to supply computer for Volvo's upcoming vehicles Graphics chipmaker Nvidia Corp said on Wednesday that Swedish automaker Volvo would begin using its artificial intelligence computer to deliver low-level autonomous features in all its next-generation vehicles. The deal, announced during a developers' conference in Munich, underscores the importance of computing power even for partially autonomous systems, which are not designed for full self-driving but offer drivers assistance, such as lane keeping or emergency braking. https://www.businessinsider.com/r-chipmaker-nvidia-to-supply-computer-for-volvos-upcoming-vehicles-2018-10 ====================== In Technology News From the Verge Dropbox will now scan your images for text Dropbox is building automatic text recognition into its service so that you can search your documents even if they’re saved as images like JPEGs or PNGs. Text will also be recognized in PDF files if they contain scans or photographs of your document. You’ll need to have one of Dropbox’s premium accounts to take advantage of the new feature. https://www.theverge.com/2018/10/10/17958782/dropbox-optical-character-text-recognition-scan ====================== In Cyber Security News From Fox News Facebook friend request hoax goes viral: Don't fall for these messages At first glance, it appears like a friend is trying to warn you about your Facebook account potentially being hacked — but it's actually a hoax. Facebook users who are receiving these friendly reminders are being urged to resist heeding the advice. Messages that have circulated on the social media platform in recent days have all been worded similarly to this: "Hi....I actually got another friend request from you which I ignored so you may want to check your account. Hold your finger on the message until the forward button appears...then hit forward and all the people you want to forward too....I had to do the people individually. PLEASE DO NOT ACCEPT A NEW friendship FROM ME AT THIS TIME." https://www.foxnews.com/tech/facebook-friend-request-hoax-goes-viral-dont-fall-for-these-messages ==================== Links to all news stories mentioned in this podcast are available at the archive website securitydrivernews.libsyn.com. You can also listen to past podcast episodes and leave comments. Thanks for listening to the ISDA Secure Transportation and Executive Protection News podcast. ====================== This podcast is brought to you by the International Security Driver Association ISDA is a valuable resource for all practitioners working in the protection profession. We offer benchmark educational, networking, and marketing programs. The ISDA Membership ISDA Members represent all facets and levels of the protective services profession. The membership can be defined as a group of practitioners from different disciplines within the profession and with years of experience coming together to assist ISDA Members. Read more about our members Here is a collection of Books, and Articles authored by ISDA Members. Learn More about the ISDA Advantage and Become a Member Today
In today's podcast, we hear that Russia has retaliated against the US with diplomatic expulsions and at least one consulate closure. Potential cyber operations remain a matter of concern. Julian Assange no longer has Internet access in his room at Ecuador's embassy. WannaCry hits a Boeing plant, but Boeing is resilient enough to work through the infection. A new keylogger pretends to be Kaspersky AV, but not very convincingly. Facebook works to upgrade user privacy, and Apple says it doesn't need to do the same. David Dufour from Webroot with tips for first-time conference goers. Guest is Deral Heiland from Rapid7 on smart sensors.
At Shopify Unite, we heard that Shopify is advancing their checkout process by adding new features like Shopify Pay. Advancement in the checkout process is great for merchants, and especially important for Shopify. It's important because the Shopify checkout process is tightly controlled. There's limited customization options, and unless you're on Shopify Plus, you're not given access to edit the checkout process. This brings us to a controversial point: is it not being able to edit that checkout process good or bad? And if we wanted to edit it, how could we do it? Then, what would do to improve the checkout process for the better? Joining me on the show to discuss it is Jordan Gal. Jordan is the Cofounder and CEO of CartHook, a software company that offers products that make your ecommerce business more successful. — Subscribe to The Unofficial Shopify Podcast via Email Subscribe to The Unofficial Shopify Podcast on iTunes Subscribe to The Unofficial Shopify Podcast on Stitcher Subscribe to The Unofficial Shopify Podcast via RSS Join The Unofficial Shopify Podcast Facebook Group Work with Kurt — Learn: The coming battle for your Shopify checkout The arguments for and against replacing your Shopify checkout Customizations to consider that may improve conversion at checkout The one trend in ecommerce you need to know about The power of free plus shipping offers The strategy used by the most sophisticated Shopify store owners to dramatically increase ROI on ad spend Links Mentioned: CartHook Bold Apps Cashier (Beta) Zipify One Click Upsell Shopify Pay Address Auto Completion ClickFunnels Free Guide I want to send you a sample chapter of Ecommerce Bootcamp, absolutely free. Tell me where to send your sample at ecommerce-bootcamp.com Transcript Kurt: One of the interesting and perhaps blessed things that happen in Shopify is that unless you're on plus you can't mess with the checkout, and even on plus you can mess with it a little bit but totally rewriting the thing just probably isn't a great idea. The reason I say I like this about Shopify is the Shopify checkout is based on millions of data points, so in theory they're always optimizing this thing and we know it works well. I've seen really optimized stores with conversion rates at 3% and 5% and those that really juice their traffic to the store, conversion rates in the low double digits, so we know the checkout works. We've certainly seen it work a number of times, but that doesn't mean there aren't ways to improve it, and not just in terms of conversion rate but there are other features maybe we would like to add to the checkout which would be cool. There's a controversial practice that happens and we'll go into why, but it's replacing the checkout. If you've ever used a subscription app, Bold app's recurring orders is a wonderful way to do subscription. It actually when someone goes through the checkout to place their subscription, it entirely circumvents the Shopify checkout, replaces it with Bold's that is just a duplicate. They have remade the standard Shopify checkout so that they can do their own payment processing, and then just funnels all that stuff back into your Shopify store via the API. It's kind of crazy and early on we were like, "Oh damn, that's how they solved that? That's nuts." And now we're seeing more people do it. You've probably heard about Ezra Firestone's Zipify, his company Zipify. Zipify's one click upsell. Bold Apps has one in beta. I've seen it enough places now I'm comfortable mentioning it, that we got a replacement called Bold Apps Cashier that's designed to try and pull all these things together, add a bunch of features to the checkout. And of course we have heard from him before. Jordan Gal from CartHook, who joins me today to talk about what's going on in this space, why and how it's heating up, and why it's controversial, what the trends are and what's going on. It's a more high level discussion but I think this should be very interesting. Jordan, welcome. Jordan: Thank you very much, Kurt. Thanks for having me on. I had to bite my tongue through the intro because I have a lot of interjections to make. Not disagreements but adding to the richness of the debate. How about that? I think we can get into it. I think it's a good, good topic. Kurt: I don't even know where I fall on this, so we'll see if you sway me. You probably will. You're a charismatic gentleman. Jordan: I don't even know if it's about swaying. It's a laissez faire argument. The checkout on Shopify right now is good. It converts well. Once people get into the checkout, it converts and it's standardized and it looks great on mobile and it's super stable and super fast, so there's not an argument to be made about how Shopify's checkout is terrible. That's not the argument. The argument is, should the eCommerce merchant have control over their checkout? And if so, then why? What are people trying to do with the checkout? And we saw the first rumblings of it with the subscription apps, and now it's starting to blossom a little bit in that space and we've got a few different companies playing in that space. Our company, CartHook, has a one page checkout and post purchase upsell app, and then Ezra's got OCU and then Bold's coming out, so it's getting interesting and my only argument is to let the merchant do what they want with their store. Kurt: When you phrase it like that then it's hard to argue with it. I'll play devil's advocate. The argument against it would be, protect people from themselves. If the checkout is based on ... It works and it's got these millions of data points, then lock it down. It's so important. Don't let people mess with it. But then I have said that and we've heard that on the show, but then I've also said if you want to add predictable, recurring revenue to your store, you should try selling subscriptions, in which case you got to replace the damn checkout. Jordan: And it may not even be like that forever. This very well may be a temporary period where things are in transition around the checkout. That's one of the things that we keep an eye on. We say to ourselves, how long does this last? This period where Shopify's checkout is locked down and then people are replacing it. Maybe there's something that we're transitioning into with some of Shopify's new APIs that allow for more features to be built into the Shopify checkout instead of replacing. I think it's a very fluid thing. To back up a touch, our product, it originated years ago when I ran an eCommerce business on Volusion where I ran the company with my three brothers. One brother was in charge of getting traffic to the store. I was in charge of converting that traffic into sales, and my other brother was in charge of everything that happened after the sale, from customer service to shipping, inventory, and so forth. So I spent my days staring at, okay, how do I convert more of this traffic into sales? The truth is I spent a considerable amount of my time on the checkout process or the cart page and the checkout page and trust symbols and error notifications and as everyone knows, every little tweak can make a difference. Sometimes you don't know which tweak makes a difference so you start off with your best practices and you make it super simple, and then you start to work from there and a lot of unexpected things happen. That's where it originated and now what we're really doing is we're bringing that same mindset and that same situation into Shopify. We're saying what works for one store may not be optimal for another store, so let's give control over to the merchant to experiment. Kurt: If we hand control over to the merchant, what are the things that people are going to do? What are they missing out on now that they could be doing if they had access to this checkout, or swap it to one of these other replacements such as CartHook? Jordan: We're seeing it happen in two different ways. The first is on the checkout page itself, and the second is what's happening after the checkout. I don't even know where we should focus first. I guess the first one's almost easier. Kurt: We'll do it in order. Jordan: Sure. I think it's more straightforward too and then the second part that the upsells after the purchase go deeper, so we can go deeper into that side. The first part is the checkout page itself. Shopify has a three step checkout and it's debatable whether or not that is the right way to go compared to a one page checkout. These days with more and more traffic and more and more conversions happening on mobile, you want it to be as fast as possible. Again, it's not straightforward that a one page checkout is faster and easier and converts better, but you can't tell without experimentation. What our customers are doing is they're trying to match up their checkout page with their brand so that it's on their own domain and it has trust symbols, testimonials, images, design that match the rest of the company's site so that there's a consistency from the product page to the cart page to the checkout page and then that consistency is generally understood to help conversions. Kurt: So the first is we want access to design for two reasons. One to make it match the store so you have a cohesive experience. You don't have this jarring, suddenly I'm on a different domain name with a different feel, a different look entirely. That's usually the first objection is listen, I just want this thing to look the same. Okay, cool. Then the second would be, all right, you're asking a lot saying to a stranger, "Hey, give me your credit card details and your home address, buddy." That's a big ask, so you want to add some psychological triggers in there like social proof, trust indicators. Even just, "Hey, if you have questions call us. Here's our toll free number." That kind of thing. Then of course remove all the friction. Make it as easy to use as possible. Add fancy features like address auto-completion would be a not atypical customization we see. Jordan: Yeah, and along with that just the desire to experiment with whether or not one page checkout will convert better for you than the multistep, and it's not straightforward. Kurt: It really does depend on the audience, because before we hitched our cart and did only Shopify, and obviously this was years ago so things have changed wildly, but we saw situations where some stores did better where you gave people the option to register as customers versus be guests. Some stores did better when you did one page checkout versus multistep. It really was dependent on the audience. Jordan: Yeah, it makes sense and that's what we're seeing too. It is not a straightforward, the second you add a one page checkout it converts better. It's not straightforward like that, so it's an experimentation piece. Kurt: And the end goal there to have those options, to have those features, is to increase the conversion rate. We make it as easy as possible, remove all those barriers, all that friction and we just make it easier for people to buy, and in theory our purchased rate goes up, right? Jordan: Yes, and one of the interesting things that we have an eye on is it's my opinion that the thumbprint wins. That's where I think everything is going on checkout. What I say is that my ideal is that 12 months from today, our default checkout page has no fields. Like the cart summary where you don't see the cart summary until you click on it and then it opens up and extends the cart summary. My hope is that the fields are hidden and you have to click on it to open up the fields to put your name and address in, because the thumbprint purchase will be that prevalent. That's what I hope things get to for merchants, because once ... There are a few different options. Apple Pay, Android Pay, some type of a Shopify Pay, Stripe. Whatever comes out over the next year I think the thumbprint is the thing that wins. Kurt: We see that with Apple Pay now and really I've only used it in maybe two or three situations and it was absolutely magical. Like oh my gosh, this is the easiest thing ever. How long has it been around? A year? And it's stunning to see how few ... This is not a criticism of just Shopify stores. Of just eCommerce and mobile in general that just don't use Apple Pay and that confuses me. Jordan: I think these things happen all at once. They grow and then all of a sudden you look at it and you say, "Whoa,". It wasn't that big last year and it's bigger this year and it's anticipated to be big, and the next thing you know it's huge and then everyone adopts it all at once. Over a 12 month period everyone will add it. That's my ... It's just inefficient, man. To be on a phone and punch in all those buttons when you're just using the credit card that you already have in your wallet and then you will eventually have inside your phone. It seems inevitable to me. Kurt: Absolutely. I'm confused as to why it didn't happen sooner. Jordan: I agree. Kurt: That's our dream as we get to, I want to check out. I just tap my thumb and it's like, "Hey, you want to pay with this card and send it to this address, right?" Yeah. Done. Send. No more thinking about it. It's done. It's over. It's one step. It works on our mobile devices and soon we'll see touch ID on everything. Jordan: It's a bit scary, isn't it? Kurt: A little bit. Jordan: The fact that the entire Internet will be as easy to purchase from as Amazon is scary. Kurt: Yeah. I ... It's a total rabbit hole here. I don't keep Amazon on my phone to prevent impulse purchases. When I need to shop on Amazon, I download the app and then I have to log in, make a purchase, then delete it. Jordan: Wow, good for you. Kurt: Because it's too easy. Jordan: If I were a Shopify merchant, that's what I would want. I want it to be too damn easy to buy from my store. Kurt: Right and fundamentally, with conversion rate optimization, that's the end goal is it is too damn easy to buy from this store. That's number one is, give me access to design so I can optimize this thing tailored to my specific audience. Then the pushback against that would be, "Well, if we do that we're giving you enough rope to hang yourself or you could mess it up and make it harder to use." In theory you're sophisticated enough. You can test it. You would know that your conversion rate goes down. Jordan: Yes. Like all business. I have plenty of rope to hang myself with in my business, just like you do and just like everyone else does. Kurt: There are other places I could through things up like uploading 12 meg PNGs to my carousel slider and that kind of thing. Then the other is this post purchase stuff, which I think is really exciting and is an untapped opportunity. Talk to me about that. Jordan: I think it's fascinating, and I have really enjoyed my job for the past year working in this space because it's just genuinely interesting and new. Once again, let's back up two steps. Here's what I see that happened over the past year or two. What's happening is that the marketers, the army of marketers that move around the web and identify opportunities, they have been moving from digital products to physical products en masse. Just a gigantic trend. It was not kicked off but accelerated by ClickFunnels. ClickFunnels brought marketing innovation in their platform. They basically said, "Okay, Leadpages, you guys have awesome landing pages, but people don't build landing pages on their own. They build them together in a funnel." So ClickFunnels just put that concept into play and said, "Now instead of building standalone landing pages, we're going to help you build landing pages that connect in a funnel," and then on top of that they provided a ton of education around how to use that. How to sell both digital and physical products through a funnel, and one of the key components of the funnel is the post purchase upsell. It's not just an opportunity to add something to someone's order. It is an opportunity to completely change the way you actually sell. The strategy from the starting point can be changed because of the fact that the post purchase upsell exists. A popular example is the free plus shipping offer. The free plus shipping offer, the way it works is what you want to do is offer something on the front end on your checkout page that's really low, low price. Ideally it's free. It's, "Hey, I just wrote a book. Buy my new book. I'll give it to you for free. All you need to do is pay for shipping." So the book is free, $0, and the shipping is call it $6.95, hence the free plus shipping nomenclature. Kurt: If you want to see this in action, if you've ever seen ads ... Clearly Facebook has considered me an info-marketer because I see ads for this stuff all the time. I got ads continuously for Russell Brunson, the owner, creator, of ClickFunnels, for his book DotCom Secrets, which was offered to me as free plus shipping and sure enough, after seeing enough ads, I did end up buying it for free plus shipping and it was like $7. Jordan: Right. And now after- Kurt: Then it worked on me a second time. He just came out with another book. Did it again. Jordan: That's right. So look, it works. It's a great offer, and so what that does is it gets the person into your funnel. All of a sudden your checkout page, what you're selling on the front end becomes an entryway. It's not the point. It is the beginning of the point. Once you put in your credit card information to pay $6.95 in shipping, what happens is that payment token can then be used again, which means ... Kurt, when you bought that book, what happened after you made the purchase? Kurt: Immediately afterward it's like, thanks. That's great. You purchased it. By the way, one time offer. You'll never be able to get this again. For $150 or something, add this extra package of just amazing value and it had a video and it was it's own amazing landing splash page and I said no thanks. But I also made sure to not read it because I'm sure it was very compelling and I might have bought it, and then when I said no thanks, it offered me another different thing. Jordan: A downsell. Kurt: A downsell, which is always going to be cheaper than the first thing it offered me. It always seemed way cheaper because I was just price anchored to the other thing. Jordan: Right. So if you had decided to purchase, in order to purchase all you would've had to do is click on the button that said, "Yes, I want to purchase." You would not have needed to reenter your credit card again. The credit card would have been stored in the payment token stored from the checkout page. That became very, very popular in the ClickFunnels world, and then the next phase what happened is a lot of people on ClickFunnels started selling physical products in this way. They'd say, "Okay, here's one unit of skin cream," and then after the purchase it's, "Hey, do you want to buy another one for a different price?" And, "Hey, do you want to subscribe and just save and get it every month without you having to do anything?" So then it started to creep into the physical product world. People started making a lot of money being really successful in the physical product world, and then what do they realize, Kurt? They realize, "Oh man, I really want to use Shopify to do the order management because it's really good at it." Then you had this strange gap where you said, "Okay, I want to sell like ClickFunnels but I want to manage like Shopify," and that's really what's happening in the market right now. You have a ton of these marketers coming into Shopify and they're introducing all these marketing concepts and now they're slowly seeping into the regular retailer world, not just the marketer world, and now there's this crazy [crosspollinization 00:19:30] around post purchase upsells are ... It's a legitimate strategy. It works. Kurt: Right. Initially, as soon as I think retailers and eCommerce folk in general hear info-marketer, they're like, "Oh, it's sleazy. I don't want to do it." Then over time they open their mind to it. It works for them for reasons, and a lot of the stuff is based on 50, 100 year old direct response marketing ideas. We've seen that with the power of landing pages and people's desires to rather than just have a product page, make these much more sophisticated, compelling landing pages for their Shopify store that are borrowed straight out of this info-marketing world. Jordan: Yes, and I actually want to make sure we talk about the landing page thing. That's probably the biggest insight I can give to your audience based on what we're seeing, so let's put a marker on that. I just wrote that down as a note. The process of normalization. I remember three years ago when we first launched our abandoned cart application, CartHook started off as an abandoned cart email app. We used to get people who saw our site and email us in such anger. Just, "I cannot believe what you guys are doing, that you are horrible, evil people who do this," and it's because we're sending emails to people after they abandon their cart. Do you know anyone who thinks that's a horrible, controversial, sleazy practice? No, it's normal. It works. It's inevitable. You need to do it in a tasteful way. It's always in the way you do it. Kurt: Yeah. Don't damn the tools. It's what you do with them. Jordan: Exactly right. I think there is now a process of normalization around upsells. I think within a year, basically not every single time but most of the time you buy something online you will have a post purchase upsell, and people will start to learn about it and be conditioned to it and understand that they're going to get certain offers and then they'll start to try to game it to see what kind of offers they get after the purchase. It's just a totally normal process. Kurt: I had not thought of it that way but yeah, we're already doing that as a standard practice in email marketing automation. You've got to be doing an upsell after the fact to extend customer lifetime value. Even the previous episode to this one that's literally what we discussed. Like a third of the emphasis was devoted to those post purchase sequences. At no point did we think it was strange, sleazy, or anything like that. Jordan: No, it's just a normal part of retail. Anyway, so that's the second piece. The first piece is the checkout. The second piece is what happens after the checkout. Now there's this amazing experimentation. What can you do ... If it's helpful I can give you what a typical post purchase funnel looks like. Kurt: I love examples. Really solidify it, picture it, so lay it on me brother. Jordan: Yeah, let's do it. Let's say you are selling flip flops. Okay. You sell flip flops from Brazil, so it's cool. You've got a brand going. A typical post purchase upsell funnel would look something like this. Visitor puts a pair of your flip flops in the cart, goes to the checkout page, fills out the forms, puts in their payment information, and clicks "complete purchase." After that checkout page the first page they would see would be an offer for more of the same. Meaning, the product you just bought, I'm going to offer you the same thing but for a better deal. Basically say, "You want to get a second pair of flip flops for 20% less?" And it's positioned as a one time offer because literally on the site publicly, it's offered for call it $40, but because you just purchased it, it's a thank you to someone who just purchased it. It's a one time offer. Add a second pair for you, for your spouse, for safekeeping, whatever. You get it for $30. Then, if they accept it, let's not get into downsells because that gets complicated, so let's just say three upsells in a row. Let's say they have two pairs of flip flops and they got a good deal on the second one and they're happy. The second would be for a complimentary product. What goes along with your flip flops? It is your flip flop cleaning kit. Then again you can say a one time offer, publicly or it may not even be available publicly on the website, or on the website the cleaning kit is available for $10 but now you can add it to your order for $5. So upsell number one is more of the same. Upsell number two is complimentary. Then what some people do, upsell number three is expedited shipping. What you're doing is you're saying, "This person is really interested. They just purchased. Maybe they want to get their product faster," and so instead of trying to convert them to upgraded shipping on the checkout page which creates friction, you can add an upsell as the third upsell for expedited shipping. Basically offering the same type of upgrade in shipping that you would've on the checkout page but this time you're not adding the friction up front. You're making an offer after the fact, then they can decide whether they want expedited shipping or not. That would be a typical post purchase upsell. More of the same, complimentary product, expedited shipping. Kurt: I love it. I love it and I can't do it right now. Jordan: Right. The point of this is really to change your average order value. Kurt: Right, obviously you're increase customer lifetime value but we're doing it in a much faster way. Where normally it'd be they make the purchase and then you email them their upsell offers, versus now we're doing it like, they have already committed to the first purchase, and in that same transaction now we're increasing that average order value, I think in theory extending their customer lifetime value through these upsells. Jordan: Right and the whole theory is, because these offers come after the checkout they don't interfere with the conversion rate on the front end. Kurt: Right and that's the risk. Right now if I want to do something similar I would use an app like Bold Apps Product Upsell [inaudible 00:25:51] pops up in the cart based on what's in the cart and offers me additional items. It's like, "Oh, you bought this beach towel. Did you also want to buy this suntan lotion?" So it pops this thing up. But they haven't bought the first item yet, so there's always the fear that this is going to increase bounce rate on the cart page. It's going to impact that conversion rate. Jordan: You got it. So it should be the same math on the front end. If you spend $10,000 a month in advertising and that usually results in let's just say 100 orders and the average order value is $100, that makes you $10,000 in revenue. Cool. Now, if you add post purchase upsells, that doesn't change at all. It's still the same spend, the same conversion rate, the same revenue but now 20% of those 100 purchases also add an additional average of $10, so now you've just made an extra $200. It shouldn't change the math on the front end at all on the conversion rate. Now what you're doing is just X% of customers are also taking an upsell, so you spend the exact same amount on ads but you make more revenue as a result. Kurt: So I'm getting a higher ... My initial order, my customer value goes way up but my cost per acquisition of customers doesn't change in the slightest. Jordan: Right. Shouldn't change, but the average order value goes up, and what does that allow you to do? It allows you to spend more on ads, and then you can make more money, and then spend more on ads, and make more money. Kurt: Right, you step on the gas and just keep this ... which I learned from you in a previous episode. If you get a funnel that works, it's profitable, step on the gas. See what you can do. Jordan: Yeah, step on the gas. Kurt: See how far you can scale it. That's a good example of how one might use upsells in eCommerce. Can I do this in Shopify right now? Jordan: You can do it in Shopify right now and there are a few options for merchants. Between ourselves and Ezra's OCU, there's starting to be some innovation in the space. Bold just came out with their Cashier. That's in beta, so the features there, we don't know what they're going to do but right now in the market you can use our product, CartHook Checkout or you can use Zipify OCU and people are doing it. We are getting a healthy amount of demand and we are kind of quiet. We don't really do any advertising and marketing, and we're just getting a wave of people who are talking about it in Facebook and then wanting to try it. It's starting to grow very organically and I think it's going to tip at some point over the next few months where it's just going to be more standard practice as opposed to the innovators on the marketing side. We're already talking to some really well known merchants that I don't want to mention, so it's already seeping into the ... The mean. The one standard deviation away from the normal. It's already creeping into the norm for them. Kurt: Right. Once we have these big ... You have some hero stores. Some stores that you aspire to be like. Very large, work in public Shopify stores. A good example would be [Beer Brand 00:29:18] or I always reference [Everest Bands 00:29:19] on here where you hear a lot about them and you're just like man, I want a store like that. Once you see those people, because we perceive they're successful and therefore when we see them adopting these things we go, "Well, they must know what they're doing." Everybody has that thought, even if they're just experimenting. That's what's going to normalize this and we're going to see more demand for it, and then we'll see more education about it, more people talking about it in Facebook groups, and you're right about that. I start seeing more and more mentions, especially in the Shopify Plus Facebook group. See mentions like, "Hey, how do I do this?" Then, "How do I do upsells? How do I do this?" And you hear people like, "Oh, check out CartHook. Check out OCU. Have you heard about this new thing from Bold?" I keep seeing this in the last month this conversation keep happening. Jordan: I think it's a great thing for Shopify merchants. I think it's a good thing for our market specifically. I expect more competition. Ezra and I are in touch and we're both supporting what the other person's doing and I think it's good for everybody. Kurt: That's one of the wonderful things about this community in general. Everybody works together for the greater good. Jordan: Yeah, and it's big enough. It's all good. Kurt: There's 400,000 Shopify stores. Jordan: That's wild. Kurt: It's all good, man. Jordan: Kurt, how we doing on time? I want to get to this one thing that we see that I don't want to leave out. Kurt: Right. We're at 30 minutes recording so I do want to wrap it up after this, but give me that one hit. Give me the tremendous value. Lay it on me. Jordan: All right, here's what we're seeing. People who are heavy into Facebook advertising, the people who really, really care about their ROI every single day for every dollar spent. What they are doing is they are first figuring out which product on their store sells, and then they are no longer sending the traffic to the product page. They are building a landing page and sending the traffic there and they are getting much more success from it. In theory you and I know that works. We know that a landing page converts better than a homepage let's say, but it is being put into practice in a big way in the Shopify world. People will figure out which of their products sell best and then they will do more work on the page to sell. Instead of just sending to a standard page where there's some photos on the left and then on the right there's some bullet points and a description, they'll put together a full blown landing page that does away with the navigation, keeps a super focus on the product, and does a lot more work with videos, additional testimonials, additional images, more copy, and they are being rewarded for going that next step in effort beyond just the standard page on the Shopify store. Kurt: I'm totally with you. I absolutely believe it. Just to give the crash course in Shopify landing pages, imagine a more purposeful product page. Often that is how we do it is if you've got access to a front end designer developer, we make a longer form version of the product page where we've got longer sales copy. We go through the whole pain, dream, fix format. We include social proof. Maybe we include urgency on there, scarcity. We'll do little hacks with that stuff ... And you can't do this for every product, right? So either you sell a few products, you could do it for all of them. Do it for your flagship product or use the 80/20 rule. Figure out, this is the big bad boy. Do it on just this one. Then take that same page, make a version of it where you just throw in some extra style tags and hide, display none, all the extraneous links that would get someone to leave the page. The fundamental thing that makes a landing page is in theory, it only has one call to action. Generally that means you got to strip out your navigation from your header/footer, so there you go. There's the easy crash course in Shopify product landing pages. Jordan: Just to plug my own product a little bit, what they're doing from there is they're using ... This is what our most successful merchants are doing. They're using what we call product funnels. In CartHook you can build something called a product funnel which links up directly to one specific product in your Shopify store and then provides you with a URL that goes right to a checkout page that has that product preloaded. They don't go from the landing page to the cart. They go directly from the landing page, they put the funnel URL from the CartHook product funnel, and then they go straight from landing page into the checkout page with that product preloaded, and then all the post purchase upsells after it and because you know exactly where the traffic is coming from, that one landing page, you know which product they bought so you can put testimonials that are specific to that product on the checkout page and then you can have a post purchase upsell sequence that's very specific to that product. It's a super, super focused funnel that you have full control over. You have control of the landing page, checkout page, upsell pages, thank you page. That's where our most successful merchants are dialing in their ad spend. Kurt: Just thinking out loud, if you are just starting out with a Shopify store, is this something you want to worry about or is this once you've got where your processes, your product validated, dialed in, then you want to start exploring this stuff? At what point do I start doing this, I think is my question. Jordan: I'm going to say that this is not something you should do as one of the first things. There are so many other foundational elements to your store that you need to get right, between the positioning and copy, navigation, and so on. I would work on that first. This is an optimization. This is, okay, how do I make things better? I think maybe eventually it will get to the point where, okay, I need an email app. I need a cart abandonment app. I need an exit intent popup app, and I need a checkout app. That's where I hope it gets to where every single person that starts a store just grabs these few fundamental apps that they need to add. I don't think it's quite there yet. I think this is a bit more advanced. Kurt: I want to wrap this up but now I got more questions. You rattled off here's the four apps you need to have. Do you have a preferred one or recommendation for an exit intent popup app? Jordan: No. I don't know. I don't know. I know OptinMonster. I know OptiMonk. I know Bounce Exchange for bigger stores, but I'm not as familiar with the app ecosystem to recommend exactly what to use. We partner with certain apps like ReCharge Apps on the subscription billing so people can sell subscription products inside the funnel and so on, but beyond the larger market, I'm not the right person to make those recommendations. Kurt: Okay. All good. I'll throw in my recommendation. I really like OptiMonk, but I've also heard fantastic things about Justuno but I have not personally played with it. I think in theory the thing I'd like to do and I never get around to because these other exit intent popup builders are so convenient, would be just coding our own using Ouibounce which is just an open source JavaScript snippet. It's O-U-I bounce, Ouibounce. I will throw those into the notes, the links mentioned. Jordan, where can people go to learn more about you? Jordan: Go to CartHook.com/checkout and you'll see more about the products, and then we interact with our customers and people on the site a lot so if you have questions just click on that chat button in the bottom right or hit us up at support@CartHook.com and if you are feeling podcasty, check out BootstrappedWeb.com which is my weekly podcast. Kurt: Who do you host that with? Jordan: Brian Casel. Kurt: He is a good dude. Jordan: My man. Kurt: Wonderful man. I will not go down any more rabbit holes as I was about to do. No, this is good. We're going to wrap it up here. Jordan: Cool. Kurt: Thank you, Jordan. I greatly, greatly appreciate it. I think that's all for us today at the Unofficial Shopify Podcast. And to our listeners, I would love to hear your thoughts on what you've heard come out of this discussion, so join our Facebook group. Just search the Unofficial Shopify Podcast Insiders. You'll find it. Apply to join. I will approve you, and come talk to us. I post every episode there. Or, you can always sign up for my newsletter at KurtElster.com. Shoot me an email. Either way, you'll be notified when a new episode goes live. And of course if you want to work with me, I'd love to have you. Go apply at Ethercycle.com. That's my consultancy. As always, thanks for listening and we'll be back next week.
Nothing can throw a wrench in your morning like being asked for a file type you’ve never heard of or having a graphic designer send you strange files you have no idea what to do with. In this episode, we’ll run down a host of file types you may come across in your day-to-day marketing activities, what they’re used for, and why you would need to send them. We cover JPGs, PNGs, EPS, AI, GIF and more in this short, informative episode. Having at least a basic understanding of different file types can go a long way to saving you time, stress, and sanity - oh, and it can totally make the difference between getting your flyer or newsletter out on time or past deadline (trust us, we’ve been there). Tune in to discover: • 10 different file types that you may come across in marketing your medical practice and how to use them •The difference between vector and raster images •When to use high resolution vs. low resolution files and how to send them •Which file types you can work with and which are best left to your graphic designer
Ramon and Passy continue on their journey of explaining how big applications are built on the example of Twitter for Android and iOS. The main topic this time is code review. How do you write patches that are easy to review, structure your workflow and which guidelines do you follow when evaluating others' work? Topics YakYak authentication problems The Fall 2016 Special Apple Event Ramon's (un)success story of switching to a Nexus phone for a week Passy's small Haskell web service rendering PNGs and SVGs (on GitHub) It's Passy's last week at Twitter. :( But Strictly Untyped shall persevere! 00:19:45 - Code Review at scale Code Review Gerrit for code review. https://twitter.com/iamdevloper/status/397664295875805184 IBM's study on effectiveness of big code reviews. stacked git for breaking down large patches. Picks Ramon: Game, Inside for PS4 Passy: Podcast, Magic Read Along Ramon: Podcast, Rocket Passy: Paper, Type-level Web APIs with Servant
In this Xcode 8 video tutorial, we'll take a quick look at Sticker Packs for iOS 10, how to set them up, how stickers are sent, and then we'll discuss how to create animated PNGs (APNG files) as an alternative resource asset that can be imported to Xcode. In other words instead of using Sticker Sequence, you can import APNG which can have some advantages.
It’s hard to know which type of image will best help you optimize your site’s performance. Front-end Developer Patrick Weston breaks down four different image types and assesses the function and benefits of each kind. TRANSCRIPT Allison Manley [AM]: Hi and welcome back to this week’s Secret Sauce, a short podcast by Palantir.net that offers a quick tip on some small thing you can do to help your business run a little bit better. I’m Allison Manley, an Account Manager, and today’s advice comes from front-end developer Patrick Weston, who has some thoughts about dealing with images on the web. Patrick Weston [PW]: Hi, I’m Patrick, and I’m going to be talking about images on the web. The web is really progressing forward and evolving, and as developers we tend to take data and speed for granted. We normally work at businesses and offices with really fast broadband connections, but that might not always be the case for all users. Responsive web design has really focused on mobile first, and a lot of times these mobile users are data capped or have their data limited. And they can also be in remote locations on slow connections. Images are often the largest asset on web pages. So if you make improvements with images, you can really make large improvements with your site speed and performance. I’m going to talk about different types of images, when to use which, and some general tips for improving your site with regard to images. First, I’m going to cover two different types of categories. There are: Lossless vs. lossy compression Lossless as the name implies, is no loss of data. So these are images where the source feed is the exact same as the outcome. But lossy compression allows you to lose some quality at the sake of file size. There are also vector graphics vs. raster graphics Vector graphics are defined mathematically. For example, a line starts here, and ends here 10 pixels over. But Raster is defined pixel by pixel, so you can think of it as kind of a 2D grid with different colors at each pixel.So now I’m going to talk about the different types of images that there are. There are four main types: PNGs JPEGs Gifs and SVGsI’m going to go through each one and kind of talk about their strengths and weaknesses, and then I’ll recap about when to use each type. PNGs are the first type I’m going to talk about. They are a lossless file format, so you don’t lose any quality. And they are also raster, so they are defined pixel by pixel. But the benefit with PNGs is that they have what’s called an alpha channel, so this allows for transparency. If you’re using transparency on the web, it’s likely a PNG. And this alpha channel is a scale of transparency, so it can have different values of how transparent the image actually is. The next are JPEGs. These are kind of the workhorse. This is one of the most common file formats, and it’s a lossy file format, so you can have some loss of quality, but also save image size at the same time. They are raster, so they have a 2D grid of pixels, and they don’t have an alpha channel, so there’s no transparency. The next type are GIFs. They are also lossless and raster. They do support transparency, but it’s kind of an on/off switch, so the pixel is either transparent, or not transparent. So you do lose some quality here with the transparency. But the main thing that makes them famous on the web is that they support animation. So if you’re looking for kind of a simple animation, GIFs are a good way to go. Last you have kind of a newer file format that’s beginning to be more popular on the web , and that’s SVGs. They are vector graphics, so they are defined mathematically. You have shapes and sizes, different line widths, thicknesses, colors . . . they’re really versatile. These four file formats are kind of confusing, and there are different approaches to when you want to use each of them. So the real key is to kind of figure out what image is best for you. If you need any sort of animation, GIF is the only option. It’s the only one that provides animation without using a video format. If you need any sort of transparency, PNG is probably your best bet because it gives you that alpha channel for transparency that is a nice scale rather than just an on/off like GIF provides. But if you have an image that’s a photo or a scene, a JPEG is probably your best choice. And JPEGs are probably your best choice just by default (unless you don’t want to lose image quality, in which case a PNG is also a great choice). The great thing about JPEGs is that you can set the quality. If you have something that needs to scale well . . . a logo, or something with simple shapes and colors . . . then go with an SVG, because they can have really small file sizes. Other alternatives that you can use include CSS. A lot of times you can do gradients or background images, and you can avoid images all together. Or if you have a logo you can use text or a web font. And there are also some great approaches that are starting to come out, and become more popular, for responsive images. One is called “Srcset.” It allows you to define different images depending on the width of your browser. There’s also the picture element. And Drupal also has a great responsive image module that’s new in Drupal 8. You set up different images sizes and styles, and then tell Drupal when to apply each. But all of these really depend on having a really good source image to begin with. You can do all sorts of responsive tricks and things. But if your source image isn’t the right type and isn’t optimized, it’s not going to be a good result. There are lots of types of images out there. But with a little thought, and with the help of some new best practices and automation (like Drupal’s new responsive image module), you can create a great, fast-loading site for all users regardless of screen size or internet speed. AM: Thank you Patrick. That’s it for this week’s Secret Sauce! For more great tips, follow us on twitter at @palantir, or visit our website at palantir.net. Have a great one. Helpful links Image types and when to use them: https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/image-optimization?hl=en Configuring Drupal's new responsive image module: https://www.advomatic.com/blog/adding-responsive-images-to-your-drupal-8-site
Daniel erzählt noch die Geschichte, wie er PNGs erstellt, und Max diskutiert, ob Konferenz 28 eigentlich Story-Driven ist, und überhaupt ist ja wichtig, dass die letzten siebzig Folgen eine Geile Zeit waren.
Andrew finally has his car; then him and Chris talk about solar cells, Google, Mozilla, Valve, Ubuntu, PNGs, SSDs, Wolfram Alpha, and plenty of other juicy little tidbits!
Bienvenue dans le vingt-huitième épisode de CacaoCast! Dans cet épisode, Philippe Casgrain et Philippe Guitard discutent des sujets suivants: Tweety10 - Client twitter spécialisé pour les Jeux Olympiques de Vancouver PubSub - Apprenez à utiliser ce framework mal connu, mais fourni par Apple PNG sur iPhone - Les images sur iPhone ne sont pas des PNGs ordinaires. Voici comment les décoder Nearest Neighbor - Un exemple d'Image Unit pour Core Image Ecoutez cet épisode
Designing using alpha-transparent PNGs makes life so much easier and cooler designs possible. As we are all painfully aware, IE 6 and under do not support them. They display… but any areas of alpha transparency get turned into nasty blue-gray and are anything but transparent. There is a way to force IE to respect the alpha transparency though, commonly referred to as the PNG hack. There are various methods, all boiling down to the use of a proprietary Microsoft CSS … Read article “#32: Using the Unit PNG Fix”
Episode #10: Artwork & Lyrics by Tony Vincent This is Learning in Hand: iPods. My name is Tony Vincent and this is the podcast where I share tips, how-tos, and ideas for iPods in teaching and learning. Episode 11, "Artwork & Lyrics," recorded March 2008, happens now! I'm going to tell you about two things you can add to audio files that make them more useful on an iPod. While almost all references you’ll find to artwork and lyrics deal with music, the audio files do not have to be songs. They can be recordings from a voice recorder, ripped from a CD, podcasts, files from Audacity or GarageBand, or downloaded from the Internet. Wherever you got the audio, let's explore adding customized artwork and accompanying text to these files! Artwork First, if you are listening on an iPod, you can see that this episode has artwork. Look at your iPod's screen and you can see that this podcast has a square graphic I made that says Learning in Hand: iPods with blue and orange lettering. That's the artwork, also called cover art or album art. You might notice that most podcasts and all music downloaded from iTunes has artwork. Newer iPods even have Cover Flow where you can browse an iPod's contents by the artwork. If a file has no artwork, then a gray generic graphic with a musical note on it is used. You can use iTunes to easily add or change an audio file's artwork. Artwork appears in iTunes in the artwork viewer in the lower left corner of the iTunes window. If the viewer isn't showing you can click View > Show Artwork. You can drag an image into the artwork viewer to add cover art. But, let’s do it using the File menu. Choose File > Get Info. Then click the Artwork tab. You can click in the box and paste a copied image. Or, click add and browse for a saved image file. Click OK. Sync or copy the file to an iPod. Then play the file on the iPod. The artwork will appear on the screen. It is possible to add multiple images as artwork in iTunes. However, only the first one will be displayed on an iPod. You can click through multiple pieces of artwork in iTunes’ artwork viewer using the arrows that appear when more than one image is available for artwork. But since iPods only display the first one, I just give my files one image as artwork. Images that are square look best on an iPod and in iTunes. The images can be JPEGs, PNGs, GIFs, or TIFFs. The images could be scanned, digital photos, or created with a graphics program. Or, the image could be copied from a web page. I've found that images with a resolution of 300 x 300 pixels or larger look best. If you'd like to add the same image as artwork for multiple files, just select multiple files in iTunes and click File > Get Info. iTunes will warn you, "Are you sure you want to edit information for multiple items?" Click yes and you’ll see the Artwork box. Just drag an image into that box or paste an image and click OK. Now each of those files you selected has that image as it's artwork. Ok, so why would you want to add artwork? Well, first it gives a visual cue about what you are listening to. Also, newer iPods and iTunes use Cover Flow where you can browse for a file by its artwork. iPod touch displays artwork as the entire background when playing audio--so having the generic gray artwork looks boring and isn't memorable. If you have iPods loaded with files for students, the artwork can help organize or add to the content. The artwork could have large text on it that gives students a reason for listening. For example, while listening to audio from NASA about Mars, the artwork could say, "How is Mars like Earth?" Text-oriented artwork could be made in PowerPoint and exported as a JPEG and then added in iTunes. But text works best on an iPod touch because of its large screen. Too much text on a little graphic can be difficult or impossible to read. Another educational use of artwork is for illustration. Students could make short recordings about an endangered animal. A photo of the animal used in the recording would make useful cover art. Teachers could use artwork as a way to manage differentiated content. Perhaps recording are color-coded depending on vocabulary level or content. Then the teacher could glance at an iPod's screen to see what is being listened to by glancing at the artwork on the screen. There are lots of ways artwork can be useful in classrooms. But, don't confuse artwork with an Enhanced Podcast. GarageBand can make Enhanced Podcasts, where it's like a narrated slide show where the image on the screen changes to match the audio. The artwork I've been talking about does not change--you can only have one image displayed on the iPod’s screen. Lyrics I wish lyrics was named something else because the text doesn't have to be the words to a song. Lyrics in iTunes and on iPods can be a transcript of a speech, podcast, or other recording. The lyrics could be guiding questions, objectives, or a glossary of terms. In fact, the audio file you are listening to now has lyrics with it. If you're listening on a click wheel iPod, press the Center button four times (older iPod models may only take 3 presses). Now you can read the script for this episode while you listen. If you’re an iPhone or iPod touch user, while on the Now Playing screen, just tap the middle of the screen and the Lyrics will appear. Swipe the screen to scroll through the text. How did I add this text to my audio file? Well, it was quite easy using iTunes and the process is very similar to adding artwork. In iTunes, select the audio file. From the File menu, choose Get Info. Click the Lyrics tab and enter the words in the text box. You are more than welcome to copy and paste the text into the box instead of typing it all out. Sorry, lyrics can only be text--that means no formatting like centering, bold, fonts, or colors. Click OK and then sync or copy the file to iPod. On the iPod, start playing the audio file you added the lyrics to. On an iPod with a click wheel press the Center button to cycle through the playback scrubber, ratings, shuffle, and lyrics. My iPod seems to pause a few moments before displaying lyrics. So be patient. If you’re like me, you’ll press that Center button too many times and end up having to cycle through again to display the lyrics. Newer iPods with click wheels have a nice touch of showing the artwork in the upper-left corner of the screen when displaying lyrics. And of course, you use the click wheel to scroll through the text on the lyrics screen. Like I've said, there are lots of uses for lyrics. Here's how I’ve used the lyrics feature. I found an MP3 of Dr. Martin Luther King’s "I Have a Dream Speech." I then find the transcript of the speech online. I copy the text and paste it as the lyrics in iTunes. Then students can listen and read at the same time. Lyrics could also be objectives for listening. Or, I like the idea of a glossary. Perhaps the recording from NASA has some hefty vocabulary words. They could be defined and available in lyrics so students can pause the recording and easily look up the meaning of a confusing word. For younger students, they could listen to a recording of their favorite story as they read the words on the iPod's screen. Anyhow, there are plenty of great uses when you can have accompanying text just a couple button presses away. You should note that iPods will only display the first 10,000 or so characters of lyrics. Anything longer will be cut off. So, if you have added the complete text of the U.S. Constitution to a recording of it, an iPod won’t display the entire text, just the first 10,000 characters, which turns out to be about one-third of the Constitution. I'd suggest breaking down a longer audio file into smaller chunks. So with the Constitution, divide the audio by Articles and then you’ll have enough room for the transcript of each section in the lyrics. Also note that WAV and QuickTime files do not support artwork or lyrics. But, MP3, AAC, m4a, and m4b do. You can use iTunes to convert a WAV or QuickTime file to MP3 or AAC and then you can add that beautiful artwork and text to the lyrics. Everything you edit in the File > Get Info are called ID3 tags--for Identify MP3. Other software and players besides iTunes and iPods can can use this information. Artwork and lyrics are actually stored in the audio file itself. So if you transfer or email the audio file and use it on another computer, guess what? The artwork and lyrics will show up on the new computer! You can add lyrics and cover art to your podcasts. Just bring the audio file into iTunes, add lyrics and cover art. Then drag and drop the file onto your desktop and upload to your podcast server. That’s all for Episode 11. Thanks for listening. If you like this podcast, please give it a good review on iTunes. Don’t forget you can go to learninginghand.com where you can read more about educational iPod uses. Stay special everyone!
Discuss this episode in the Muse community Follow @MuseAppHQ on Twitter Show notes 00:00:00 - Speaker 1: It’s very common that you want 3 views. You want a view which is temporal, what is the team working on this week? You want a view that’s personal, what is Mark thinking about right now? What does he want to have at hand. And then there’s a view which is subject base. What is the design of our sync system? And what link cards allow you to do is to have any given thing appear in each of those. 00:00:27 - Speaker 2: Hello and welcome to Meta Muse. Muse is a tool for deep work on iPad and Mac, but this podcast isn’t about Muse the product. It’s about the small team and the big ideas behind it. I’m Adam Wiggins here with my colleague Mark McGrenigan. Hey, Adam. So a little bit of news from the new product side. We recently released a feature called Linked Cards to everyone and been quite surprised and happy with how useful these have proven to be. It was in beta through the Backstage Pass with our pro members for a few months, but yeah, it just seems so valuable to everyone. We are really happy to launch it broadly, and that’s especially true within the Muse for teams. Context. So we’ll talk about that. We’ll talk about the future and our approach, and we’ll talk about some of these use cases that we’ve seen. But of course, we have to start with something philosophical and historical to set the context. So our topic today is linking. So, what comes to mind for you, Mark, when you hear that word? 00:01:26 - Speaker 1: That’s quite a rich set of precedents there. Perhaps the very first thing one thinks of is web links. Although, as we discussed, I don’t think that’s actually the closest case of prior art. Also comes to mind things like citations, but really dialing into linked cards, things like file system sim links, wiki backlinks, the knowledge graphs that you see in emerging knowledge management tools, things like that. 00:01:51 - Speaker 2: To me it’s an interesting topic because it is such a simple idea. It almost seems too simple. It’s just one place or work or piece of information is referencing another place or work or piece of information, but I think there is something very powerful emerges from that. I would say a lot of the current. Sort of tools for thought, excitement or revolution, if you want to call it that, and the productivity software space is largely built on the foundation of linking as a core idea, as well as the web, obviously, hypertext and hyperlinks, even though there’s much more to the web than just the link, that actually is a very foundational piece. And so it’s quite surprising what emerges from that. Yeah, you mentioned citations, be fun maybe to talk about that a little bit more towards the end, but I think that was sort of the original thing is, I don’t know, 1000 years ago, someone is writing a book and they want to reference another book or I don’t know, maybe it’s not even a book, maybe it’s a scroll and you just name it, right? You say the item titled this, maybe you give the author and when it was written as a way to kind of Hopefully unambiguously refer to this thing, and that implies that there is this greater canon of human knowledge, which indeed at some point we started to have a, if not unified, perhaps today you can say it’s a fairly unified sort of sphere of books and videos and newspaper articles and all that sort of thing. But yeah, you go back in history and just a simple idea of referencing another work that is not the one that you’re currently reading implies the larger sphere and indeed then you start to build this network and these connections and this implication of shared knowledge. So again, this one simple idea, just this simple reference of naming another thing from that comes this sort of giant hive mind of all human knowledge. 00:03:46 - Speaker 1: Yeah, and I think it’s really important because, as we’ve said many times on the podcast, knowledge is built up in this web. It’s not a linear process. It’s this very messy, organic, incremental growth of knowledge that happens over time, and so things like citations help reify that. 00:04:07 - Speaker 2: And Another piece of prior art that’s more on the technical side is file systems. I think this was probably my first exposure to thinking about links as a first class item. So in Unix you have what’s called the sim link or symbolic link. There’s also hard links, but we don’t necessarily need to get into those. On Windows you have something that are called shortcuts, which I think a lot of people are familiar with just because there’s a little kind of icon that indicates this isn’t the original item, this is a pointer to that item, and you often get that on your desktop, for example. The application doesn’t live on your desktop, you just have a, well, a shortcut to it there for convenience. And Mac also has something called aliases, although of course it’s also Unix under the hood, so you can use some links, but regardless, this idea of linking things together where a file lives in one place in the hierarchical file system or on your hard drive, but you can reference it from another, that was my first real exposure to both the power of it, but also sometimes can be confusing, or you can tie yourself in knots with, you know, circular references or whatever. 00:05:08 - Speaker 1: I think file systems are interesting because they illustrate, there’s actually several very different types of things that can be happening here. So let me enumerate them quickly. You can have a duplicate to make a copy of a file. You could potentially recognize that those copies are the same objects by content addressing. You can have a transparent pointer. This would be like aiming or an alias where The second object is of a different type. It has a little arrow thing. It’s not a regular icon, but when you, for example, double click on it, it opens the underlying pointed to objects. So it’s mostly but not entirely behaving like the original thing. And then you can have something that behaves exactly like the original thing. If you have the recent tab in your finder, for example, the items there are the same thing as when you go to the original location in your file system, it’s kind of a different view. So when we talk about linking, we’re often referring to one or more of these things. I think it’s useful to remember that there’s several quite different types of objects in play. And maybe one more that we could add is the actual file system path. This would be comparable to the HTTPS URL on the web. Some people call that a link, some people would say the actual underlying hyperlink thing where you click the link, but these are all different objects and they have different properties. 00:06:22 - Speaker 2: Yeah, I would call the path, but I would think of the generic term for that is the address. And within a single computer system you usually have this unified way to reference a file, which is the path. Actually I would argue citations are probably a place where you know there’s all these standards, right? You use the Chicago Manual of style or the this or that. Basically how you do a citation is actually there’s a lot of specific formats and if you mess it up, you get in trouble, especially if you’re trying to do a scientific work. But coming to the web, one of the things that is so miraculous there is this totally unified address format. So there’s links and links have appeared in a lot of different computer software, but maybe what makes the World Wide Web and HTML work so well is that you have the URL, the Uniform Resource locator. And that that single address is unique in the world, or at least in the internet, which is, you know, our digital world, and that now that that is deployed so universally both in desktop browser software, but also in APIs and so on, that if you just have that one string and you don’t need to understand how it works or how to break the pieces apart or even certainly how the packets are routed, you just know that your web request is going to go to where you need it to. Which is again quite a miraculous, not just technical achievement or design achievement, but really kind of human coordination achievement that we’ve managed to deploy that so widely. And probably as long as we’re talking about the history here worth just giving a quick nod to, you know, links and well, the term hyperlink was coined by Ted Nelson, who’s quite good at these rather bombastic terms. Tranclusion is another one of his that we use with some frequency. But then also, for example, Doug Engelbart’s NLS included a version of linking Hypercard. A lot of that is about how cards link together. And so there’s the web, I think rolls together or is the best manifestation of all of those ideas, but the history of it in computing goes back to really to almost the beginning. Now another invention from the 1990s, sort of piggybacking on the web is the wiki, right? And I think Ward Cunningham was the inventor of the first of these, and it certainly builds on that foundation of the web. But one thing it brought that’s unique is what I usually call the double bracket notations, the idea that you can put in brackets a keyword, a very human readable keyword that is a link to someplace else and not the entire internet. It’s not a complete Globally addressable address, but it more makes that keyword into something we’re saying there’s a reference for this in this system in this wiki. And one of the interesting things about that, certainly there’s the accessibility that it’s very easy to use, but I think one of the fallouts of that or one of the implications is that you can link something that doesn’t exist yet. Which is an interesting idea, right? And I’ve certainly used this in Team wikis, for example, where there’s a project page I know I need to write because we’re talking about doing this project, but I haven’t done it yet, but I want to reference that. I can put that in brackets, and sometimes that link shows up in a different color or something like that. Wikipedia has a version of this as well, where you basically can link something that’s not there, you click on it and then it tells you this isn’t here yet. Would you like to add some content, but it’s a nice way to stub something out. 00:09:39 - Speaker 1: And there’s another very important behavior difference. So if we go back to the example of the file system, if you want to refer to a file several times, the first operation is very different. You gotta create the file and write the contents, and then subsequent operations create a different type of object, a similar link or an alias or something. So there’s a huge discontinuity and Typically on a file system, it’s not as native to go the other direction to get the so-called backlinks, and one of those backlinks that you’re basically missing it because there’s nothing pointing back to the place where you did the original operation from. Whereas on a wiki, for example, when you make a double bracket, that’s the same the first time, the second time, the 3rd time you do it. And furthermore, when you go to the backlink page for whatever was in double brackets, those backlinks are all symmetric. I believe, like there’s not special treatment for the first double bracket that you happen to have made mentioning some noun that is the current title of the page. Those properties are subtle, but as we discuss the muse approach to link cards, I think that will become important. 00:10:41 - Speaker 2: Yeah, I think backlinks were present for a long time and things like Wikipedia and other places, but I really think the modern, call it linking back linking trend really came with what are now usually called knowledge graphs. So Rome kicked that whole thing off. The notion it always had linking, but they added backlinks, I think somewhat in reaction to the overnight success of Rome, then you have all these kind of Rome descended products like obsidian, LogSeek, even classic kind of text editor note tools like I writer or get. Into that now and I think what you referenced there with the backlink and links being symmetric, I think that’s why they call them the knowledge graph is this idea that the nodes are the notes and those notes might be something about a person or a thing or a concept or an event or a meeting or whatever, but the edges, those links in the graph represent relationships and actually seeing those relationships and again treating them as symmetric as you said. Of course, it gives you these cool visualizations where you see all the time you’ve invested in your notes and how they all fit together, or if you look at more like a larger scale Wiki like Wikipedia, you can see the relationship, the clustering of different knowledge, but sometimes the relationship between things is as important as the things themselves. 00:11:59 - Speaker 1: Yeah, and I have to be honest, I’ve been surprised by how taken folks are with linking and back linking and explicit knowledge graphs. I certainly think that they’re useful in their own ways, but there’s something about them that people get really excited about. 00:12:15 - Speaker 2: Indeed, well, I certainly think of this trend scene, community. Around tools for thought in the last 3 or 4 years. Obviously I’m very happy. I’m sometimes surprised as well. I certainly find it very powerful. I’m also glad people get excited about it and in general, I think that’s part of what’s been great about this tools for thought, scene or community or just trend that we’ve had in the last few years, which is people getting excited about productivity software and excited about their knowledge tools. Now, sometimes I do think it gets a little bit narrowly focused on Linking and back linking knowledge graphs and lots of different variations on that, but I think that was a really good starting place. It’s a good example of showing how just managing our information in different ways can unlock new possibilities for individuals, for groups, for humanity as a whole, and obviously computing, the dynamic medium of computing has so much untapped potential that we are really just at the beginning of it, so I Certainly hope that the excitement over knowledge graphs is just a door opener to a wider world of tools for thought, productivity, and in general just continuing to explore what’s possible in the world of knowledge and information systems. Well, I guess that naturally brings us to the muse approach and this linked cards feature, and it came up a lot in the very early days of our product because we were part of the tools for Though scene from the beginning and people naturally think of the linking back linking knowledge graph stuff that that’s kind of like a foundational feature and obviously we are more focused on the visual and spatial elements, the free form sketching, bringing together your research materials to ruminate upon. But we always knew, hey, yeah, linking is super useful for all the reasons we just described, and we always knew we would want to bring it to the product at some point, but we wouldn’t necessarily, it wouldn’t be right to just straight up copy the double bracket notation or something like that. I mean, you know, maybe that could fit in, but we wanted something that would be more in tune with how we do things, the visual and spatial approach, and that’s what brought us to linked cards. 00:14:22 - Speaker 1: Yeah, and Muse, we think there’s a lot of value to each piece of content having a place, and for a long time, we said that a piece of content should have exactly one place, but we found that to be a little bit too limiting. So often you would have a board, for example, that you wanted to be able to access that made sense in the context of Say your daily work in the context of a longer term project and that presented a conundrum, what do you do in use to be able to access, say that board from both locations. Now, one thing you could do is the file system type approach where you have some canonical board in one place and you have a second class pointer board in another case, but that felt unsatisfying to us, like we didn’t want this two-tier system and this notion of like a pointer board versus a regular board. So this is where we come to linked cards. And the idea with linked cards is that it’s a set of cards, 2 or more, that point to the same content symmetrically. I think actually back some years ago now, we had this notion of like portals or mirrors, which I think are not as suitable for a public product, but I think described the notion of the sort of two views from two different locations into the same. Underlying content. So you can access the content from either place A or B, but when you zoom in, for example, you’re at the same place. And there’s also a sort of back leaking tight mechanism where you can from any of these linked card instances, say, where else is this card present, and you can seamlessly navigate to those other locations to move across different contexts. And then to close the loop here, if for some reason you were to delete one instance of two of these linked cards, you gracefully go back to the base case of a simple piece of content that’s in exactly one location. 00:16:13 - Speaker 2: Yeah, you mentioned the concept of location quite a bit there, and I think that ends up being key to it. This is something that’s different compared to a, for example, a notes tool that does not have the spatial component. The spatial component is so core to muse and what Muse is offering you as a thinking tool where something is located that’s in a little pile of some things over here versus this other pile over here might be really important for your thinking process or how you’re making sense of a set of materials. So naturally then where something lives, if it’s going to live in two places or more than two places, you need to have some concept of that, and key to this ends up being this little icon that basically goes in the upper left corner that lets you see all the places that it is, and then really importantly switch between them quickly. So you can use it as kind of a portal to essentially teleport to this other location in your larger knowledge sphere, and this proves to be a really helpful and useful concept that preserves the spatialness and preserves that sense of place that we think is so important, but kind of breaks the 1 to 1 relationship and gets you a lot more of the ability to build a more complex knowledge graph. 00:17:29 - Speaker 1: Yeah, and by the way, there’s a pretty slick animation that happens when you change locations like this that I think really nicely reflects what we’re trying to get after, which is when it works correctly, it’s hard to get it to work correctly in all cases because of the literal dimensionality of the canvas and the objects, but the content that is linked in multiple locations sort of stays in the same place, and the background around it shifts. So you are appearing in this new location, but you’re still anchored by this content that was meant to appear in multiple locations. I think that’s pretty slick. 00:17:59 - Speaker 2: Yeah, that was a really clever creation by Leonard and Julia because so much of how you are oriented is based around this navigation in and out of boards and panning around them and so we were worried or even in the early prototypes, I think when you saw you could just jump, it’s disorienting. So this transition animation serves more than the purpose of just being fun to look at or something like that, but actually helps you keep that sense of being oriented. 00:18:30 - Speaker 1: And now that I think about it, I’m actually not sure how common it is to have this backlink style navigation available without going into the object in question. Do you know what I mean? So like on a wiki, you can click on a link and then click on backlinks, and from there, get to a sibling page. But I don’t know how common it is to be able to go directly to a sibling page from the, say, link. 00:18:53 - Speaker 2: Hm, cause yeah, typically you’re viewing the board sort of from the outside, you’re seeing its thumbnail essentially, and then you’re deciding to go to this other place where it is located. Yeah, that’s true. This is why we needed to do our own take on this is that when you’re in that spatial setting, it’s just a different thing than when you’re in lists of documents that aren’t organized or you just don’t have a visual metaphor for it that works in that same way. Speaking of that, animation in general, the transition of being able to quickly jump between locations, this was actually quite a technical challenge to implement. So I thought it might be fun if we could get our colleague Yullia on the phone here briefly and see if she could tell us a little bit about how that worked. 00:19:41 - Speaker 3: Hello. 00:19:43 - Speaker 2: Hey, Julia, congratulations on shipping linked cards. 00:19:47 - Speaker 3: Oh, thanks, yeah, it’s been a long time coming. I guess it’s been sitting there in the backstage pass for a while, but it’s nice that we can finally give it to the whole world. And yeah, it looks like you are pretty excited about it. 00:19:59 - Speaker 2: Yeah, well, I feel like it was one of our smoother betas in the sense that we actually went pretty quickly from, I think it was in the backstage pass for I don’t know, 3 or 4 months, something like that, but it basically worked really great from the start. We needed to make a couple small tweaks, but nothing too dramatic. And yeah, people were finding it really useful, so it just sort of made sense to bring it into production. But Mark and I were just talking about the location switching and the transition animation as well as the challenges there, and I seem to remember in that first implementation there was a lot of technical challenges. I was hoping you could give us a little insight into that. 00:20:35 - Speaker 3: Yeah, there’s quite a few. I mean, I guess we could start with the transition since we were just talking about that, but um there’s actually quite a bit to uncover. So let’s see if we get to all of that. But yeah, one of the things that made this a bit challenging to implement is that of course, as being news, we had kind of high stakes for the UX and how we wanted it to feel. And Leonard, our designer, had initially prototyped something where you could just super quickly like hit a button and cycle through all of the different places where this link card existed. That ended up not being quite feasible, but we still wanted to make it pretty fast so that you can just go and select a different location and you’re basically there quite instantly. But yeah, depending on how large these boards are that these cards live in, rendering a big board can actually take quite a bit of time and there’s some tricks that we do when you transition from one board to the next, kind of just in a normal zoom in, that makes that feel instantaneous, even though it’s actually not quite instantaneous. So for every board that you have, we store a snapshot. They’re basically PNGs that render your entire board content into an image. And those are actually what you see in the little cards that represent your boards, and when you zoom in, we actually load a higher resolution version of that image kind of seamlessly as the transition happens so that when the transition finishes and you’re zoomed in for the first. Depending on how big the board is, 0.5 a second to maybe 1 2nd or 2, you’re actually still looking at the image of the board, and then as everything gets loaded in the background, we switch out that image for the actual board view that where you can interact with the cards and everything. So this usually happens behind the scenes and ideally the user never actually notices it. So for these transitions for the link cards, we basically had to do a similar trick. So when you first select from the drop down menu on the Mac or I think on the iPad, it’s a context menu as well, tapping on this button. When you first select a different location, we actually immediately load in the high resolution snapshot of that board. And we transform it to match exactly the position of the card in the board that you came from. So the idea is basically the card stays in the same place and then the content around it just changes. And yeah, to do that really fast we have to. Load in the JPEG, put the card on top of that image, then in the background, we actually load the entire board hierarchy and the real views, and then once that’s done, we remove the image and you’re actually in that board and you can start interacting with the content. 00:23:27 - Speaker 2: And it feels very quick to me, but certainly your brain needs a moment to process the new scene that you’re looking at before you’re gonna go do anything to it. And so that sort of like, is part of the stage magic there is use that moment of the human is reorienting themselves to the new location to do the work of rendering the interactive view. 00:23:49 - Speaker 3: Yeah, and most of the time it works actually quite nicely. Of course, since the card in the new location that you’re going to might actually be in a completely different position. Let’s say you come from a board where the card is on the very top left, kind of the first thing that you see in the board. And then you go to a board where it’s all the way at the bottom right, like maybe several screen widths away. Then there’s also the thing that we sometimes see where it kind of jumps a little bit because in the destination board it’s actually so close to the edge that you can’t scroll it into the place where the car was in the previous view. Maybe that’s getting a little bit too much into the details. 00:24:30 - Speaker 2: And I also remember really well we were in the midst of implementing this that a lot of other operations in the application that seemed unrelated to linked cards got really slow as a result, once we had this in our internal test flight builds and it just so we were at our team summit last August when we were working on this, and I remember you and Adam Wulf furiously drawing complex graphs and talking through the problem on the kitchen table in the house we were staying in. Can you tell me about what that was all about? 00:25:01 - Speaker 3: Yeah, so this was kind of a surprising turn that the whole thing took. We initially thought seems like a pretty straightforward feature. We just basically create a new card that points to the same document and then we display this little kind of link icon in the top left corner of the card to indicate that this is a link card, so there’s other cards that represent the same document. And the initial implementation of all of this was actually really fast, like kind of done in a few days, and then we noticed the app got really slow and it wasn’t initially clear why that was, but as we looked into it further, it actually turned out that the kind of database queries that had to happen to actually determine whether a card is a linked card or not a linked card. Ended up being extremely expensive. So the first thing that needs to happen is that we check for a given document how many cards actually point to this document. So that’s kind of one database create. That’s relatively simple. And if we have more than one card, you would think, OK, surely this is a linked card, so we should show this little icon. But it’s actually not enough to just look at the number of cards that point to this documents because some of these cards might actually not be in your corpus at all. They might be unreachable from the home board. And this is because when you delete something from your corpus, let’s say you delete a board that has a bunch of subcontent. We don’t actually go in and prune every single subboard and every single document that is contained in the subtree that is that board. We just set the board that you deleted to delete it and it disappears from your view hierarchy and as far as the app is concerned, you can’t actually navigate to it anymore from anywhere. But there might be somewhere in there a board or a card that points to that same board that you have also linked somewhere else, and that card is technically not deleted. It just happens to not be reachable from the home board. So we actually also for each card that points to the board we need to determine. Is this actually in the user’s graph? Is this card something that is in quotation mark deleted, so the user can’t actually reach it from their home board? Or is it actually in the corpus and we should include it in the list of linked cards for this particular document? And that actually ended up being an extremely expensive operation because you kind of have to tee up multiple queries to find the parent board of the parent board of the parent port. And if you eventually end up at the root of the corpus, then yes, this card is reachable. But doing this kind of on every render just because you want to display a board with a couple of cards in it and determine whether or not they should get a little icon in the corner. Just ended up really slowing down the app, just kind of rendering a pretty basic board structure started becoming very slow and affecting all kinds of parts in the app. So what we ended up doing was something that we had thought about on and off anyway because it was kind of a data structure that would help us in all kinds of different scenarios and working on the app and kind of working with the user’s content. We ended up creating a graph structure that actually maps out the user’s content in a very easily queriable way. So in this case we’re only storing the IDs of all the documents and their relationships to each other. So if a card displays a board, that’s basically one node of the graph, and then we build out the graph this way. And every time something changes, every time you add a card or delete a card or you move a card around, we update that graph immediately. So then every time we want to render something, we don’t need to do all of these database queries again. We just need to go to this graph and say give me all the cards that point to this document or give me all the parents of this cards, and from there on it then got very fast. Now of course you have kind of an additional. Data structure kind of model around the user data that you constantly have to maintain. So that’s of course leaves new surface area for bugs or kind of forgetting to update this as the code grows, but it’s so far had been really helpful and has made the app a lot faster in that regard again. 00:29:27 - Speaker 1: Yeah, and this is all in memory, right? 00:29:29 - Speaker 3: Yes, exactly. This gets built once when you launch the app and then just continuously updated. 00:29:35 - Speaker 1: Yeah, and we have a similar thing on the server and it’s definitely true that it’s a little bit troublesome to get all the details right of maintaining basically a second view over all the data, but at least it’s just a memory, so you get to blow it away each time the app starts, it makes it much more forgiving in my experience, versus something on disk, which is a whole another level of ordeal. 00:29:55 - Speaker 3: Yeah, that’s true. 00:29:56 - Speaker 2: And I think that’s always a trade-off with database or persistence layers is that the more indexes you have that slice the data in different ways you want to view it, the faster it will be, but now all those indexes have to be maintained, and if they get messed up, you need to regenerate them or something like that, and that’s the fine art of data persistence. 00:30:17 - Speaker 3: Yeah, exactly. 00:30:19 - Speaker 2: As Mark and I were talking about earlier, one thing that introducing linked cards to Muse did was to break this strict 1 to 1. Cars are only in one place. Everything is a very direct hierarchy, and that changed things in the user interface. Certainly, for example, that you can navigate into a board from several different locations, and that comes up, I think, in both the individual user just, you know, when you pinch out, you expect to go back to the board you were on. Originally, but it also comes up even in our multiplayer world in terms of like where we’re going to show an avatar floating over a board relative to the path they took to get into it. Curious to know what kinds of challenges there’s been in adapting all of that. 00:31:04 - Speaker 3: Yeah, this is something that we kind of noticed in hindsight when certain things in the app that used to be really easy, like navigate to a particular document based on his ID now suddenly had kind of unclear implications because that document isn’t just in one place anymore. So if for example, I have a deep link that points to a specific document and I open news. Clicking on that deep link, where do I actually go? Like, of course I go to the document, but what’s the context? Is it the linked card on my home board or is it the one that’s 5 levels deeply nested in one of the subboards or is it one that’s, you know, linked from somewhere else? So we can’t actually describe a position in your corpus anymore just by a particular document or board ID. This also became evident when Something that seems really trivial, like you close the app and then you open it up again, and we have to like launch it afresh and ideally bring you to the place that you’ve left off because that’s probably where you want to continue working. Previously we just basically always stored the idea of the board where the user was last on, and when the app launched, we opened that board and built the view hierarchy underneath it, so all of the parent boards all the way up to the root board underneath and that was it. So now we actually have to store the entire navigation stack, including every card, basically kind of leaving bread crumbs of where the user went to end up on the board that they’re currently viewing. And this all gets serialized to disk when the app quits so that when you launch the app again, we can look at these bread crumbs and retrace the steps to exactly where the user had come from. And we’re going to have to do that probably with all kinds of things like deep links or like sharing URLs for go to this sports. Well, which one do you mean? Do you mean the one on the home board or the one? levels deep down below, so we’re, we’re gonna have to start encoding these path information into all kinds of things, including, I think like you said, the presence of avatars in a board. Like if you’re in this board, you’re technically in 5 different locations, but we don’t want to show you avatar and all of these different locations. We want to show exactly the path you took to get to that board. 00:33:26 - Speaker 2: Do you remember anything about detecting cycles, like sort of putting a linked card inside itself and dealing with that as being part of the initial technical challenge as well? 00:33:37 - Speaker 3: Yeah, so detecting cycles actually has always been a big challenge for M and linked cards actually was a big relief for that because now instead of having to be really careful to prevent cycles, we can kind of allow them and embrace them. So in the pre-link cards were, there were. A few weird edge cases, for example, when you had two windows of muse open, so like split screen on the iPad or two actual windows on the Mac. And let’s say you have board A, B, C, where A is your root board and B is the board in between and then C is deeply nested, and you have board A in the one window and have board B open in the other window. And then you pick up board B, the card for board B in the window of board A, and then drag it into the other window and drop it into board B. Then you just drop B into B. So now B is contained in itself and you’ve effectively detached it from the view hierarchy. This is now also something that we can nicely detect with the corpus graph. And previously we had to really make sure to prevent these accidental operations. So basically disallow you from dropping the card there because that could very easily lead to not technically data loss, but data loss in the sense of you can’t get to that content anymore and we didn’t have any UI of kind of surfacing these detached cycles. So now when you do this instead of disallowing the operation, it’ll just drop a linked card of itself into B. And keep card B and A, but then also put a link card of B into B. And so now you have an endless loop of B and B, and you could try it out. I think you could basically go indefinitely navigate and probably at some point the app will crash because you have put hundreds of view controllers onto the navigation stack. I’m not actually sure what happens, but it does work well for quite some time and I guess technically if you’re 10 levels deep into B and you’re still on B. When you then quit and relaunch the app, we should also build the stack 10 levels deep, although I guess in this case, the card is actually the same, so I’m not quite sure how that would work, but yeah, there’s definitely lots of fun little edge cases like this. 00:35:52 - Speaker 2: And I think almost always if someone does one of those things you described, it’s an error essentially or they’re just doing it to see what happens. So it’s not so much that we need to make it make perfect sense, but more that just we need to not yet have the app crash or screw up your data or get you into a state that you can’t get out of. Yeah, exactly. Well, my head’s spinning a little bit with all the complexities here. I’m glad I get to just be a user and not need to load all of that into my brain. So thanks for taking us through it, and we’ll let you get back to your ex code. 00:36:26 - Speaker 3: Yeah, my pleasure. Have a good one. 00:36:29 - Speaker 2: Bye bye. Bye. Few, I actually didn’t fully know what was there. I had a sense of it because we actually have one of our earliest boards that we have in our Muse for Teams shared workspace is one of the kind of scribblings that Wulf and Julia did together when they were thinking through this whole, what she was calling the corpus graph, this kind of relationship index. So, I had a sense there was something there, but I didn’t know quite how deep that rabbit hole went. Now another area to talk about is the design considerations that went into this. I think Yullia mentioned some of those in the sense of what happens when you do particular edge cases in the sense of the user’s mental model about this. I think you also mentioned briefly in passing the idea of having cards which were more of a reference, more like that file system shortcut. was one of our first prototypes. So if I remember correctly, they implemented prototypes of what we ended up with, which is this kind of each card is a mirror of each other and essentially any change you make to one happens to the other and there is no kind of source or original, but they had also mocked up something where there was a link card that was very similar to our web links, which of course are a reference, not a mirror. But that had a little richer of a preview, and we basically tried that out, and that actually felt pretty good. We liked that in a lot of ways, but somehow I think the mirror felt just more of the kind of embodied or physical or spatial style that fits with Muse. And actually that fed into the the name of it as well. When I was chatting with Leonard about this, he mentioned or he pointed out that we call them linked cards linked ending with an ED, not link cards, right? Link cards, which we have for web links, for example, where you can put deep links to other iOS apps. It’s really clear that that thing is not in use. It’s someplace else. This is a reference that will take you there. We’ll open it in a browser, that sort of thing. But the idea with the linked cards, which are usually boards, but can also be a PDF or a video or something else, they really are like the same thing and they are linked together and the content will always stay the same. 00:38:38 - Speaker 1: Yeah, and if you think about it from first principles, I think it makes sense that we ended up here, because when you’re dealing with external content, you don’t really have a choice. It has to be a link without an ED object, because it’s not something that you control. But when it’s internal, why not? You have full control over this, including the magical ability to make it appear in multiple locations. 00:38:58 - Speaker 2: Another design consideration here is what you do with things that are untitled. So this is something we consider a key feature. It was part of the Muse white paper that we published from the research lab a few years back, which is the ability to create something and not have to give it a name. Which I’m a fan of generally, I don’t necessarily want to have to name a project before I’ve decided what’s gonna go into it, but usually, of course, you end up with something that’s called Untitled, and then you end up with untitled parentheses 234, and so forth. That’s a really common thing you see in, I don’t know, classic word processors or whatever. But in Muse, you can put all kinds of items. In fact, most of your items don’t have names necessarily. You may only title a board or an image or something later, once you kind of know what it is or what it’s about. But of course, what that also means, the location switcher is showing you a text representation, so then we need to show you basically, this is an untitled board in the case, or an untitled card of some kind. I think that’s not fully solved. I think Leonard is still kind of chewing on that a little bit in the best way to manage that, but certainly as we get into more and more things that are not pure spatial and visual, things like search, for example, that’s gonna come up more and more. So I think this untitled boards design or untitled cards design challenge. That’s a key feature of the app. We want to keep that, that’s desirable, but at the same time, how do we handle that in a more of a text or list kind of setting like this. 00:40:26 - Speaker 1: Yeah, we’ll continue to noodle on that. I think in practice it hasn’t been too bad because the places that you tend to put linked cards are relatively important and therefore tend to have titles. It has been my experience. So, more often than not, you have a suitable title in place, but yeah, I agree that as we get into more non-spatial content types, as I’ve been calling them, it’s gonna become more important. 00:40:47 - Speaker 2: Yeah, well, maybe that brings us nicely to just talking about linked cards in practice, the use cases we’ve seen from users and customers as well as what we’ve experienced ourselves on the team, and definitely going into it, we didn’t necessarily know what all the use cases would be or what the best use cases would be, which is sort of a funny thing. I think you even raised the flag on this a little bit, which is you want to have a lot of clarity usually about what your use cases are before developing a feature. And we had a list of them, but it was sort of more driven by where we started the podcast, which was linking is just really useful, and probably if we add it, things will emerge that we wouldn’t have even predicted necessarily and I think that’s kind of how it panned out. Many and most of the use cases that we had in mind initially did come to light, but basically immediately once we released this in beta and then we had some lively discussion on our Discord and the beta’s channel where folks were trying this out and sharing what they were using it for, and we were almost immediately surprised by some of the interesting stuff that folks were doing with it. So maybe we could start with how we are using it personally or on the team. How have you found linked cards that fit into your new workflow, or have they? 00:42:01 - Speaker 1: Yeah, for me a little bit. So in both my personal corpus and on the team’s corpus, I’ve seen us use them for what I might call workflow purposes, where you have a board, it’s usually a board that you find that you want to access from a few different contexts. It might be, for example, you have a technical design for something that you want. On the one hand, in the context of your larger technical board and also in the context of your weekly planning, say, that sort of thing I find happens pretty frequently, and I do some stuff like that for personal projects where I want it on some maybe more temporal board versus more subject matter board, and it’s helpful to see the thing in both places. I also use it a little bit as a sort of bookmark feature where there’s some topic that you know is referenced in a few different places in your corpus, and you can create a board for that notion and then make a linked instance of that board in those handful of other places and you have a sort of bookmark access portal network, you know, underground tunnels to your different boards. Now, what I don’t use it for is the really high cardinality. Super dense reified web that you sometimes see with knowledge graph tools where like, each page has 10 links and you’re trying to form this really explicit graph of concepts. I’ve argued that I mean, I think there’s something to that, but the in fact network of concepts is so massively dense. It’s like the branching factor is thousands or more that I think you’re kind of fooling yourself if you think you’re gonna fully reify that in the tool. There’s still some uses to it, right, but in my mind, that stuff happens in my head, and where I find myself using the links is more for workflow purposes where I know I’m gonna want to traverse these networks of boards and non-hierarchical ways. 00:43:52 - Speaker 2: Yeah, well, I was surprised how useful it turned out to be. I guess I didn’t feel quite the burning desire for it, but again, we heard this just so often from users and customers and a few folks on our team also were really, really driven about it. And of course this reflects, yeah, a very flexible and general purpose tool like Muse. People use it in lots of different ways. Everyone has their own approach, not everyone uses every feature and so forth, but I was surprised how much I did find myself using it. Certainly a good bit in my personal muse, but where I’ve really been surprised about how useful it is is the team setting, and I guess I shouldn’t be so surprised from this because, you know, using something like Notion or even Google Docs back in the day when that was when we used more of our internal memos and project documentation. Yes, it’s just really, really useful. You’re going to build up this network collection of projects and concepts and processes and so forth, and it’s just very good to be able to reference them to each other. A really simple version of that that comes up basically every week in our planning is we’re having a discussion about, OK, these 3 people are working on this task this week, and they’re doing this and this and this, and by the way, they had previously had. You know, a whole design sketching section and talked through exactly what they’re going to do next. Here’s the board for that. And so kind of in the call, what will happen is someone will go and grab a linked card for that and drop it in the planning document right alongside. There’s the explicit list of tasks and assignments of what we’re doing for the week, but here’s the reference to and as these projects get more complex, particularly as our team is growing and so forth, sometimes it’s, you have 3 lines. Of tasks for the team that just describe what they’re doing for the week, but then you double click or you pinch to navigate into that subboard and you see this huge world of things whether it’s technical or design or whatever it is, and you either get a glimpse of it or maybe you think, OK, I’m going to sort of make a note to go review this later because I think it touches on my work or maybe you just go, Oh man, I’m glad those people are working on that and not me because it’s a whole huge world and I’m not going to load the context into my brain. But just that ability to just drop that reference there, and very casually, I think it’s just a really nice way to offer the depth if you want it, but you don’t necessarily need to go into it right there in the meeting. 00:46:10 - Speaker 1: Right. Another way to describe this might be different views into the same data. So I think it’s very common that you want 3 views. You want a view which is temporal, what is the team working on this week? You want a view that’s personal, what is Mark thinking about right now? What does he want to have at hand. And then there’s a view which is subject base. What is the design of our sync system? And what link cards allow you to do is to have any given thing, boards say appear. And each of those. And really importantly from you, as you alluded to this, it’s all symmetric because often the way this stuff happens in practice is someone is off noodling in their own world and, you know, how to do graph indexing for linked cards as he was describing. And it would really be a shame if You either disallowed or made it look weird if that was to get promoted into the weekly work and then into the sort of canonical subject matter board for sync or the client and what have you. But with linked cards, these things get promoted and they’re really peers among each other, so it’s very natural for stuff to Flow in organically versus you can imagine a world where there are 2 class links and then the subject board, for example, is this weird mix of like boards versus second class link boards, it just be kind of weird. Whereas here you get this very nice minor link icon to indicate that this board appears in other places, but otherwise it’s all symmetrical. 00:47:34 - Speaker 2: Another thing I’ve noticed is that the number of links, the number of other locations, I guess number of linked cards that is in that Droptown serves as a sort of measure of importance. So as one example here, you wrote a description of the roadmap essentially for multiplayer or multiplayer features in terms of technical capabilities we needed to build as well as some of the user facing stuff, and you wrote that pretty early in our process, and that’s been An important reference point for a lot of project planning and design work and so on. And so now there’s a pretty good list of stuff there and almost an interesting parallel there with, I think citation count in scientific papers where you can measure the influence of a paper by how often it’s cited some. Similar for boards. Our most important boards tend to get referenced a lot, and notably, I don’t think you necessarily know ahead of time which you’re going to turn out to be that, and maybe that’s to your point about the canonical location, which is something that might start in a board that I call Adam’s weird ideas in November. And it turns out that one of them is useful or interesting enough that it keeps coming up and gets referenced a lot, and the fact that it started life there isn’t important for its longer influence that it’s going to have on what our team is up to. 00:48:56 - Speaker 1: And speaking of personal workspaces and then promoting content into team spaces, I think the elegant transition from single instance to multiple linked instances is going to work really well because, so right now in our use for teams, basically everything is visible to everyone. Each of us has our own little workspace that’s carved out and some of it a little like pseudos screens over it so people don’t, I don’t know, annoy us too much or, you know, look in before stuff is ready. But ultimately, if you, Adam, have something in your personal workspace and then link to it from the team’s weekly planning board, for example, that backlink is gonna appear to everyone in the current views for Teams space. But you can imagine a world where the backlink calculation is done per user. So, in a world of more granular sharing that we’ll have in the future, it could be that when you do that promotion and you go to the weekly team planning board, you see the backlink to your personal space. But when I go, I don’t see that backlink. And in fact, it might just look like a regular board to me because that’s the only place that appears for me. And then perhaps if I want to link it from my scratch board, then I see the two ends. Says it’s on the weekly planning board and it’s on my personal space. So that’s, I think an important example of how the linkedness is a property that emerges of how many times a given document is visible to you. And right now that’s all the same because we’re all sharing the same team space, but eventually it’ll be more granular. 00:50:21 - Speaker 2: Right, right now you got your personal muse where it is by definition only visible to you, and then you’ve got teamwork spaces, which in our current data are essentially everyone on the team can see everything. But in the future world, we have in mind is one of much more granular sharing, as you said, the ability to share individual boards, as well as even within a team space having a private office, private workspace where you can get stuff ready, even though it is intended to be in that bucket of There’s something I’m doing for work or for this particular team or project, and it may be something that has some kind of a privacy screen over it, but you can relatively seamlessly move it into the shared space when you are ready to work on it. So yeah, it definitely opens up or it fits really cleanly into that paradigm. Well, maybe as a place to end, we’re gonna reference Ted Nelson again, I mentioned earlier, he invented the term for hyperlinks, but he also invented this term transclusion, and the muse take on transclusion so far is that you can grab what we call an excerpt from a PDF or an image, or even a frame from a video, and have a source link and indeed a little portal that takes you back to that place. But in some ways, linked cards have some of the same transclusion quality to them, and indeed, I think something we would like to see in the future is essentially a called a linked section or a linked portion of a board or other card, and actually at that point, then you start to see it as a sort of transclusion, right, a portal to that source, something you could potentially not only see but potentially change, you can obviously navigate into it. And the fact that it is this one specific subset, I think is also part of the potentially usefulness. Now, what the interface for that would look like, I think would be quite a design challenge, but I think the value of that would be fairly obvious and hopefully would make Ted Nelson proud. 00:52:24 - Speaker 1: Yeah, I think that would be very powerful. I’ve definitely found myself wanting something like that and have received several support requests looking for that kind of capability. And just reasoning by analogy, this is super useful on the web. You have vanilla URL links, and then you have so-called anchor links where you have the URL, the pound sign, and then some anchor tag, which typically corresponds to some heading or some other section of the web page. And when you click on that link, it takes you to the web page and scrolls right to the point. And sometimes with jobs you can even make it highlight the particular thing that you scrolled right to. Super valuable. And importantly with web links, the former is sort of a special instance of the latter. It’s like you’re basically link into the whole thing, and I kind of wonder if we can make that same thing work in Muse where instead of having separate linked card and excerpt slash transclusion features, there’s sort of a continuum. So you can think of a linked card as you have underlying content. You make an excerpt, but the excerpt is like the whole thing. If the window is the size of the entire document. And there’s another thing you can do, which is make an excerpt where the window is smaller than the entire document. But you can see how those are on a continuum, and then things like the back linking, for example, would be unified. I don’t know if that’s gonna work out. We need to think about it more, but I think that’d be pretty powerful if we can get to work. I also think both linked cards and excerpts could be relevant for maybe you call them computed views or derived views. The example that I constantly go to is search. So there’s one way to do search, which is like search is a totally separate thing with a totally separate interface, just kind of its own world. And then you click on links and it brings you back into the main app. The vision that I have for search is more like there’s some content type that you’re programmatically. Computing. So in the current muse, you can imagine you type some search terms and it computes a board that has a bunch of linked boards on it, which correspond to your search results, which would be a little bit weird, but you can imagine if a muse eventually has a non-spatial content type, basically a set type, which is more comparable to like a Maciner, and there. When you do a search, you compute a set of results in order to set maybe or a list and you present that in the same way that if you want to make a manual list, it would be, you know, very comparable how the set is built. And then furthermore, you can imagine. If you’re searching for text, for example, and it’s searching within PDF, it actually computes an excerpt object so that you can, you know, see where in the PDF the result is popping up and when you click on the excerpt in the same way that you animate a manually create excerpt, it goes to the PDF source. So I think these are pretty cool building blocks for eventual computed types like search results. 00:54:59 - Speaker 2: Yeah, I know something I always find myself wanting with search, generally, Google does a version of this, but I’m also thinking of Unix text search tools like Grap has a command line option to essentially give yourself a couple lines of context around the search term, maybe log search tools like Splunk. And when they don’t have that, you’re struggling to see, OK, like I found the error I searched for, but I really want to know what happened in the few lines before it. That context is really important, but sometimes there’s not even a way to get to that. So the idea of the excerpt where you can easily see the context or even go completely to the source, is something that’s generally very powerful in computing. Well, then maybe I’ll just encourage our listeners, if you haven’t given linked cards a try yet, to go check that out and use. You can basically use the right click contexts menu on your Mac or the context menu on the iPad and make yourself a little linked card and fool around and see if you like the metaphor we landed on there and tell us if you have any feedback, and we can wrap it there. Thanks everyone for listening. Join us on Discord to discuss the episode with me, Mark, and our community. I’ll put the link in the show notes. You can also follow us on Twitter at mAppHQ. And Mark, I think the 1st 50 or so years of linking and computing have been pretty good. I’m looking forward to seeing what the future holds. 00:56:28 - Speaker 1: Great I.