Building What You Need & Figuring Out Pricing (Or: Our CDNs Episode)

What to build when you don't know what to build? And how do you price it? Colleen and Michele workshop these two challenges this week.

MICHELE HANSEN: Welcome to the software social podcast where we invite you to join our weekly conversation about what's going on in our businesses. I'm Michele Hansen.

COLLEEN SCHNETTLER: And I'm Colleen Schnettler.

MICHELE HANSEN: So tell me, Colleen, what's going on with your consulting/transition-to -product business this week?

COLLEEN SCHNETTLER: So, I have been stuck in the idea generation phase of trying to start a small business for quite a while. And I've had a lot of different ideas that I've chased down and they really have not amounted to much. So I've decided instead of continually searching for something, I'm going to build something that I want that I know I will use with my clients and throw it out in the world and hope it sticks. Exactly.

MICHELE HANSEN: Dogfooding!

COLLEEN SCHNETTLER: This, really, for me like a lot of the literature, I read about startups -- and I read a lot of literature about startups -- says not to code before you have an established market. But the truth is, it's something I want, it's something I know my clients will use (because I am their developer!), and I'm sick of kind of spinning my wheels. I feel like I need to take more action.

MICHELE HANSEN: So, Colleen, what is this idea you're working on?

COLLEEN SCHNETTLER: So I am working on an image hosting platform, I hate to use the word term platform, it's not really a platform. Basically, what I'm trying what I'm building is something that's going to be a JavaScript widget that you install into your site that's going to provide you with a drop zone UI, and then your users can drop their images into your drop zone UI. It puts them -- it's going to create cloud storage for you, and it's going to save them to the cloud, and the cloud will be under my business. I don't know if I explained that well. Well, it'll be in the cloud. I'll put them in front of a CDN. Because I think the CDN part's really important. And it's just going to return the URL. So that's my plan. And there's a lot of image management software out there. Actually, there's a ton of image management software out there. But there's nothing that's just really easy. Like when you're working on a small SaaS app, in my opinion, you just want to move forward as quickly as possible and you want to make progress and the stuff out there isn't bad... but I just want to make it dead simple, especially for like newer developers or developers who don't want to deal with a lot of image management or they don't want to figure out how to use AWS. When you're a newer developer, you're just learning how to develop, you don't want to then have to go spend hours and hours figuring out AWS, in my opinion. So it's just gonna make the process simple. It's gonna be a five minute install. You just drop the snippet in, you put the button on, and it will provide your users their drop zone and all you have to do is save the URL of the image. So now you automatically have your image hosted on the cloud. So you don't have to worry about that. Like I said, I have not yet, but my goal is to put in front of the CDN so you don't have to worry about that. And then you can use the image, you know, like you would any cloud image.

MICHELE HANSEN: So have you talked to other developers who have talked about their frustrations with other image management platforms?

COLLEEN SCHNETTLER: No.

MICHELE HANSEN: Colleen!

COLLEEN SCHNETTLER: So here's the thing I know. So here's okay. I know but like, I have come every client I have, I have this freakin problem and it really irks me that there's not a better solution.

MICHELE HANSEN: That's worth something.

COLLEEN SCHNETTLER: That's worth something! And so when I do talk, okay, that's not fair when I first started to talk to people, and there is -- I did talk to other people.

MICHELE HANSEN: Before the pandemic, we talked to other people, right? In general...

COLLEEN SCHNETTLER: Yes, before when I could TALK to people. So I have talked to people about this. And a lot of them use big. So so the people I know like they use big powerful solutions like enterprise-level solutions because they work for enterprise-level clientele, right. So a lot of my friends work for big, you know, fancy companies. And so they have these big enterprise solutions. And so I have looked at those solutions. And they're not bad, but they're a pain to set up. It's way more like there's one that's really popular in the Rails community. And it's fine, but like, it's just way more overhead when you just want your user to be able to add a couple images, right? Like it's a huge overhead to import this third party library and configure it, it's a whole thing. You got to figure out how to use it. It's a whole thing. Like, it's just too hard for what you're trying to do. So I am trying to take this thing that almost every application needs, your user usually has some kind of avatar most applicant. Most applications use some kind of images. So I'm just trying to take this thing that everyone needs and make it really, really easy. Like, just simplify the heck out of it.

MICHELE HANSEN: It sounds like this is something that you experience frequently and is pretty annoying for you, which is a great place to be for a potential product is something that a user experiences frequently. And is something painful, you know, if you had if you had an idea, and it's something that isn't very painful for people and doesn't happen very often, that's usually kind of a red flag. But if you can find something that's pretty frequent and pretty painful, that can be promising.

COLLEEN SCHNETTLER: Yeah, so the first iteration of this I built was just for public images. So it was like for your static assets. And I built that because like images are just a pain point for me because they're just annoying, right? Users -- they take these like they have these huge files, your designers give you these huge files. And you have to, you know, compress them and resize them and all this stuff. But the first thing I kind of built, which is this, the building blocks to what I'm working on now, was just public image hosting amongst teams. And that was cool. And I like that. But like, no one was really interested in that because no one cares so much about web performance. Very few people care so much about web performance was my experience that they're actually going to, you know, resize all of their images that are just their static everyday images, or they're just going to throw them behind a CDN anyway, so they don't care. But this problem, I think the thing about this problem is, it's a common problem. And there's many, many, many different ways to solve it. And I have seen as a consultant, I work for a lot of different companies over the past years, and I have seen all these different kinds of ways to solve it. And there's just no, but it just doesn't feel like there's an easy, consistent way like you'll have one app that uses this gem then one app and you and then one app that does it this way. And I feel like we're taking this problem that doesn't have to be so hard and making it harder than it needs to be.

MICHELE HANSEN: And you know, as I hear you talk, what I what I think about is you were mentioning earlier how you consume a lot of startup literature and talks and advice on starting a business. And something that always comes across in those kinds of venues is how, you know, you should be passionate about it, you should be passionate about the business and you should be passionate about about what you're solving and whatnot. And, you know, I don't think there are any, you know, eight year old kids out there saying, "Mom and Dad when I grew up, I'm gonna solve image management software." But what does drive someone is experiencing a problem so often, that you are passionate about solving that feeling of pain, and I think this is something that really gets lost in that, you know, startup literature, hustle porn, whatever you want to call it -- is that the pain of something, and really the empathy you feel for yourself and for other people who are experiencing that same problem. It doesn't have to be the specific problem itself. But the idea of taking away some amount of pain, whether that's for you or for other people, that is a huge motivator. And I think that's one of the great things about dog fooding is that you're solving a problem for yourself, so you are motivated to fix it. And like worst case scenario, if nobody else uses it, you have solved a problem for yourself. And you have eliminated a frustration in your life and you just have more brainpower that you can focus on things that you would rather think about rather than this super annoying problem that you're facing all the time.

COLLEEN SCHNETTLER: Right. And I feel like this idea like, I think I said, I mentioned that I got, you know, I kind of was stuck in this Ferris Wheel of ideas without really getting anywhere. So the other thing that's nice about this idea is it's a it's a small thing. I don't see this becoming like a business like, you know, that grows into like a big thing

MICHELE HANSEN: It doesn't have to be!

COLLEEN SCHNETTLER: Who says, right? I mean, I mean, I'm at the point. Well, I guess no one gets, like, you know, and I'm at the point where I just wanted to put something out there because I feel like I've been, I've just been spinning my wheels for a while now. And I just need to kind of get back in the game. And yeah, you're right, this is a frequent problem I have I all I would like to just have a consistent way to solve it. So next time I come up with something, because I get a lot of these applications that are halfway done or almost done or need to be fixed in what I do. I'd like to just be able to like, Alright, I don't know what this architecture is, but I'm putting this little little widget in here and it's gonna solve all our problems. And I don't have to do the one of us dance again.

MICHELE HANSEN: One less problem you have to deal with in that specific area..

COLLEEN SCHNETTLER: And I really think to like, the beauty of, of a marketplace for rails developers like Heroku is, it helps people that are new to coding get get up to speed quickly. And I feel like image storage in the cloud can be a really challenging issue for people who are new to coding, because they just learned how to write a Rails app and deploy it. And now they have to figure out you know, cloud storage and how to manage that and how to resize their images and, and how to put them in front of a CDN, and it's just a lot. So I really do feel like this is a real problem. I don't know that it's a real problem that people will pay for. But it feels like a real problem to me. So my challenge now is twofold. Like, I'm gonna do it. I'm like, 90% done. And you remember what they say about like the last 10% takes 90% of the time or whatever. So, of course, I you know, I've just onboarded a new client that I'm really excited about, and they just announced that the kids aren't going back to school. So I have a lot on my plate right now. And so really my goal is to to prioritize this because this is really where I want to be like. When I look at my life, this is...

MICELE HANSEN: This is giving you satisfaction!

COLLEEN SCHNETTLER: This what I want to do! YES, so much satisfaction!

MICHELE HANSEN: Hope! Hope that you will solve this problem -- which is lacking in a lot of other elements right now.

COLEEEN SCHNETTLER: YES! I have hope! l I have hope. And so, my goal this week is my goal this week is really to prioritize getting this done. I'm so close. But of course, like everyone, like, I always want to add one more feature....

MICHELE HANSEN: Don't do it! Just get it out there. Bare minimum.  You know, the, as you said, like stuff like, you know, creating an account or creating an API key or all of the stuff that actually lets you launch something like that will probably take more time than you realize and we'll have more complications than you realize, but at that point, as you said, you're so close to being over the finish line that you can just bang it out.

COLLEEN SCHNETTLER: Yeah, and that's my goal. Like I really like it. Well, I do need to, I want to finish it right now my goal is just to finish it, right. And I know that again, and then I don't know if anyone's gonna buy it. But I'm so close to getting it done. I just really want to get something out there. So, like my goal for this upcoming week, and like, my priority is going to be to try and give myself the time. It's so hard as you know, a human that has children and a spouse and all these all these demands on your time. It's so hard to like, prioritize that time. And so my goal is to find a way to prioritize this time the next week because I'm so close to finishing it and I just want to get it done. So that's what's going on in my life. Let's talk about about what's going on with Geocodio.

MICHELE HANSEN: Yeah, so something I have been thinking a lot about this week is pricing.

COLLEEN SCHNETTLER: Ooo, pricing?

MICHELE HANSEN: Pricing is the hardest part of having a business like can, time and time again. It's the thing that we're banging our heads against the wall to figure out. And I think it's underappreciated as a difficult element. But it's every time you launch a product or doing something new, or get a unique request from a customer. Pricing is always the thing we spend the most time on.

COLLEEN SCHNETTLER: So what is so hard about pricing? Like, that's a serious question. I don't know. Can't you just be like...?

MICHELE HANSEN: So there's a lot of stuff that's tough about pricing. I mean, the the big thing is that, right, like from a very basic level, you want to not only cover your costs, but you want to make some money on top of that, right? So you have your costs and then you know off the bat, whatever the price is, you're going to lose, I always just ballpark 40% to taxes and other various expenses like that. So then just figuring out where your breakeven is alone, like, that's just the first step of it. But the hard thing about pricing is you need to price it for the value the customer is getting. And that may not always be clear to you. And the value that a customer gets from it may not be entirely apparent, it may be difficult to parse out. But also, you need to figure out how the customer perceives the problem, and what they understand like what they express as the problem and how they would want to solve that. And that has to be expressed through the pricing. So like a really basic example of this, for example, is Slack where they charge you per user if you're on a paid plan, which makes it easy to figure out, Okay, we have 20 people in our organization. And it's, I think it's like $5 a month or something like that, we'll just say that. And so we're going to be charged $100 a month, I have 20 people, I can very easily calculate what it's going to cost me to use this, right? This is a metric that I understand and I can see the value of having all of these 20 people be able to talk to one another on this platform -- ostensibly, even though Slack is, you know, a huge problem for my own productivity.

COLLEEN SCHNETTLER: Yeah, so um, and me too.

MICHELE HANSEN: So you know, so I was struggling with pricing a lot this past week, because a customer came to us with a, a problem that's adjacent to what we do, and it's something we actually have an internal tool for, but we've never productized but we've considered it and they asked us to productize it because they were really frustrated with their existing options and due to some limitations and the pricing of their current vendors for it, they weren't able to use those tools with as many customers as they wanted to. And they wanted to really expand that and they were like, you know, we really love your terms of service and your pricing and how you guys do things. Like is there any way that you guys can help us with this? So, you know, we're kind of looking at it and and as we... One of the first steps looking at pricing is always like looking at competitors. So how are the competitors pricing. What kind of structure are they using? You know, very often you see the kind of starter/professional/enterprise like tiered pricing, right? That's, that's pretty common. And so I just find it helpful just you know how how to competitors. frame the pricing, because that helps you see how they understand the customers problem and the kinds of features that they are launching for specific customer problems. So for example, with Slack, you only get compliance reporting at their highest paid plan because the people who need compliance reporting are able to pay for it. Those are banks, those are, you know, regulated organizations that have to report on it. Right. So it's only at the very highest tier, they're capturing that value there for that feature. But something else I was looking at was, you know, how, how do they perceive the customer's perception of the problem?

COLLEEN SCHNETTLER: How do your competitors perceive the customer's perception?

MICHELE HANSEN: Yes. How do they understand the customer's frame of reference, like I have just heard myself on the phone from the customer, how they understand the problem? How is this being then expressed by the competitors and what I noticed which is really strange, actually, was that all the companies out there for this specific service, were pricing it basically based on their costs. So all of the pricing was based on their own bandwidth costs and then effectively a markup on top of that. And so this is for for map tiling, which is you need in order to load a map on a website, whether you get it from, from Google or from from somebody else. And most companies charge based on the number of interactions that a particular user has with the map. And so that's basically the number of tiles that have to be sent from the CDN. Since our CDNs episode, I guess. From the CDN to load, load the all those little squares on the map, which is why when you're like zooming in really far in a map, sometimes you like see, like squares loadings, it's literally squares of the map loading. Right? And so how they charge for it is the number of tiles that load and so how much the person interacts with it. The problem with that: do you know how many map tiles you required to load last time you were looking for a dentist or trying to locate the nearest grocery store, right? So somebody can go, you know, they do their analytics, they can see how many users they have. But they don't know whether one person is going to be 15 map tile loads, or 50 map tile loads, right? But the way these things are charged is based on the map tile loads. And I was trying to ask our customer, you know, are you even able to tell me like, like, how many users you have, or, or you know, what you're currently paying for anything, and they weren't even able to, like translate those numbers very well, because these companies made it so hard for them to figure out even what they're being charged and why.

COLLEEN SCHNETTLER: Ah, much like AWS!

MICHELE HANSEN: So the hard thing about that was like, wow, we know the customer is frustrated by the fact that they can't even predict right? It's not like that. We have 20 people and that's gonna be $5 a month and those are terms that I understand. This is like we have 10,000 users, and if they have 10 maps, higher loads, or they have 50, map tile loads, and we actually have no idea, companies don't like when their pricing is unpredictable. They really like stability. And so it was taking that and figuring, okay, we know the customer likes away for stable pricing. So technically, how can we figure out what a stable, consistent monthly price is? But then how can we figure out a way to price this that is, in terms of the user understands, that is not charging them for this metric that they don't use in any other scenario, that we're basically marking up bandwidth costs on top of it. How do we how do we frame it as something that they understand? And so that's something we're thinking about a lot this week and, but just keeps reminding you that pricing is so so hard, and it's so easy to get to get wrong. It's also easy to change it and test it...

COLLEEN SCHNETTLER:
So what do you guys do now for pricing?

MICHELE HANSEN: We have a couple of different pricing options. So this product I'm talking about here, we haven't launched it yet. And we're...

COLLEEN SCHNETTLER: oh yeah, this would be for a new product

MICHELE HANSEN: For Geocodio, in general, we have, we have a freemium model, which actually people describe, it's not a pricing model it's a marketing model, which is totally true. So we have a free tier, which is actually something we basically inherited from Google, when we launched, they had 2,500 free lookups per day, free address lookups. And so we're like, if that's the industry standard, we have to do that. So we did that. But then what really frustrated us was that you couldn't just pay for whatever you needed on top of that. It was either 2500 free per day, or like 100,000 a day for a like $10,000 a year enterprise contract. And we're like, that's not us. Like we just need 5,000 addresses per day. And actually, so pricing was something that that encouraged us to start Geocodio. And so we have, we have the free tier and then we have pay-as-you-go on top of that for people who have lower volume usage, then we have an unlimited tier, which is for people who have much higher usage, usually about 5 million per day. And then we have all sorts of customizations on top of that. So we have people that we're running custom clusters for, because they need to process 20 million a day. We have on-premise customers -- like we kind of have a, a wide mix. And then we also have our Geocodio Maps product, which is monthly subscription only, but we're probably going to change that in the future and merge it in with the main product. And then we're gonna have this map tiling product and that that's also maps and so what are the names of things -- naming and pricing? Honestly, like, we like the pricing we we, we suck at naming. I think everybody thinks they suck at naming.

COLLEEN SCHNETTLER:   Yeah, naming and pricing. There are hard.

MICHELE HANSEN: Sometimes harder than anything technical, quite frankly.

COLLEEN SCHNETTLER:
So have you come to anything -- Are you still like working it out? Have you come up with an idea?

MICHELE HANSEN: For the most part? Yeah, I mean, we sent the customer proposal, we spent the whole weekend talking about it, which our daughter loved. And...

COLLEEN SCHNETTLER:
she's gonna be so business savvy now ---

MICHELE HANSEN: or she's gonna rebel and be like a communist artist who doesn't believe that business should exist. Because, you know. Yeah, so, we send them a proposal. Actually, I need to get back to them. It's, you know, you were talking on the last episode, or no, was it this one about how you feel like you're 90% of the way there and it's just like some polishing touches, like, have you figured out the pricing for your product yet?

COLLEEN SCHNETTLER: Oh, gosh, no. But mine will be like, like, I haven't even thought about that. But mine will be Cloud Storage. So I mean, I was just gonna go with mark up whatever cloud storage cost you are using.

MICHELE HANSEN: I mean, and that works. I would almost consider you to be like, Is there a -- We can charge for like the number of images someone has, even though you're going to be paying by the storage size, yeah. Which is, you know, measured in gigabytes, right, right. Like if you can somehow charge for a metric that the customer understands, like 10 images. Yeah, they understand that they may not understand how their images translate into size into Yeah, into bytes. They may not get that.

COLLEEN SCHNETTLER: No, you're totally right. And I hadn't given it any thought. But now that you say that, it makes way more sense to be like, you have this many users, each user gets to upload five images, that's your fee based on you know, the number of images because the customer understands that

MICHELE HANSEN: and if they need more, like, always be like, yeah, email us.

COLLEEN SCHNETTLER: That's a great idea.

MICHELE HANSEN: And then you'll you'll probably have some customers who, you know, if you like mentally decide, okay, I'm going to, you know, I have this many, you know, gigs on my plan. So this is how many each customer gets, you will have some customers who will go over that, but you'll probably have some who are below it. And as long as it all averages out, and you've calibrated that, then it'll be okay. And you can just have tier and be like, then, you know, here's the tier where you are.

COLLEEN SCHNETTLER: That's a great idea. Because you're right, like, like pricing something in a way they understand is that makes so much more sense.

MICHELE HANSEN: And make it easy for them to explain it to their boss to write, like, I always try to picture it, like how would my customer go to their boss and explain, you should pay for this service, we've determined this is necessary, you know, it's better than what we're using right now or the other competition. And you know, we've got this many page views per month or this many users or this many, like transactions we're processing or whatever that metric is that your customer is using internally, that they would talk about with their boss to sell their boss on buying your software. Try to figure out what that term is. Talk to your customer. And try to find a way to price it in a way that matches the language that they're using. And but not only the language, the mental model they're using of why they need to use the service in the first place.

COLLEEN SCHNETTLER: Yeah, that makes great sense.

MICHELE HANSEN: And it's hard. Like I will not undersell it, that it is difficult to crawl inside other people's heads and other people's you know, sort of organizations and try to figure out how they think about things. That's very difficult. But if you can get it right, it's it's very powerful and and you don't have to get it right the first time you know, you can keep iterating it you know, companies change their product, their pricing models all the time. You know, Amy Hoy has some some great content on that. It's possible but it deserves a lot of time.

COLLEEN SCHNETTLER:
So for your, your new product, I don't know if you can, you can share, but did you decide to charge based -- did you find a metric? That set you apart?

MICHELE HANSEN: I think what we're gonna do is, we are going to we are going to charge by bandwidth. But it seems like pretty much all of the companies out there right now are only charging as paid as you go even on like enterprise tiers. So you might end up paying Google like $6,000 a month. Yeah, but on a pay as you go model, so it's going to be variable. So we're gonna do it tiered and we're going to start out with just one tier. And then we've set it you know, we've set a price for if you need more, here's a, here's an additional cost, and we'll just kind of see how that goes. And, and we're, we want it to be clear with the customer: it's like we may change this in the future, but we'll make sure that whatever we change it to you're not going to pay more. Like if those tiers end up making it so that the the amount you're getting right now is more expensive, you know, we'll keep you at the current cost, okay, which is always a good thing to do always, always let people keep legacy pricing.

COLLEEN SCHNETTLER:
Well, thank you for sharing that. That was really illuminating pricing. Very hard.

MICHELE HANSEN: And by the way, I want to mention that Stripe has a good guide to pricing as well. And Patrick McKenzie wrote it in the in the Stripe Atlas guides and that's something that I consult often on, like thinking about pricing, and he kind of dissects a couple of, of different pricing scenarios for some companies so you can see real life examples of pricing critiques. 

Well that covers this week's software social podcast. We hope you enjoyed sitting at our table at the virtual coffee shop this week, and we hope you'll join us next week.

Won't you join us?

Get an email when new episodes post. No spam, we promise!

Got it. You're on the list!
2020 Software Social