19 ms·
Ask HN: PG's 'Do Things That Don't Scale' manual examples?
In PG's essay he talks about manually doing what you later plan to automate and gives the example of stripe manually onboarding startups. Does anyone else have other examples?
- it_citizen 3y agoIn B2B, don't build user preferences UI. Configure things for your user directly in the DB.
- winrid 3y agoYou should have an internal UI around it. This should take all of a couple minutes... if this takes longer than that then you have other problems and adding any features at all is probably taking forever.
- xp84 3y agoA simple graphical DB client is often a perfectly fine UI. Everything depends on the details, of course. If this saves a month of defining and building a bunch of admin preference screens, letting you focus your one developer on things that matter, that can mean everything for a small startup.
- winrid 3y agowhat??? a month??? for an internal preferences/flags UI? See, this is what I mean. You've already failed. You cannot execute. Also now you're gonna make customer support folks edit the DB? - With Django, this is generated for you. It's literally free. - With DotNet Core, also can be generated. - Pretty sure Spring MVC has something similar. - With Rails - can also be generated, or built very quickly with Hotwire. - With React, this takes a couple minutes. Just have a generic "flags" list you can toggle etc. There are like a million form generation libraries. At the end of the day if it takes you a week to get a UI with a list of buttons and checkboxes out, you need to rethink the technologies and process you're using if you're trying to move fast. You should probably do away with the process, too, for this early of an organization.
- cinntaile 3y ago> Also now you're gonna make customer support folks edit the DB? The founders aren't regular customer support folks.
- winrid 3y agoYeah probably. If it's just one guy then... maybe. Personally I found putting 5mins into a little UI with text inputs useful when a customer in another timezone reaches out at 11pm and I just have my phone - can get that five star review by just making the adjustment right then.
- sisve 3y agoI like your vibe. Execution > Idea. It's def true for so many startups that they are really really slow in execution. You need to find developes that execute and not talk about 2 hours in a retrospective about clean code.
- folmar 3y agoFor Spring I find https://bootify.io https://bootify.io does a great job of generating DB, models, CRUD frontend+backend. Not open source but the basic variant is free (and I mean really free to use, no registration, just use it) and the code generated is reasonable for further development.
- notatoad 3y agonot having a preferences UI isn't just about the time to build the UI, it's about control, QA, and feedback. If your customer has to communicate with you to get a feature enabled, it gives you a chance to talk to your customer and get a sense of what they need the feature for, if it will work for their use case or the data they're working with, or if there's better features to offer them instead to solve their problem. it avoids the issue where customers randomly click buttons to see what happens, and then get disappointed when the thing they imagined might happen isn't what actually happens. And it makes them feel special because you've turned something on just for them. by all means, build a UI. but click the checkboxes yourself.
- winrid 3y agoYes - it should be an internal thing for people on the front line, because you're likely going to be turning on features and stuff.
- zeroCalories 3y agoDB? More like a JSON file. If you wanna get fancy make it a remote file so the server doesn't need to be restarted.
- xp84 3y agoJSON documents can easily live in the DB ;)
- zeroCalories 3y agoYou're not looking at it right. The JSON document is your DB. Wanna add another client config? Your client manager makes a PR with the changes and your CI deploys it with the server binary. Easy peasy no-code solution.
- spencerchubb 3y agoIf you have CI, that's still over-engineered for a pre-mvp product. Just kidding... partially
- maccard 3y agoI think CI is actually one that you should do when you write your first few lines of code. GitHub actions is free, comes with one click templates, so use it.
- hamandcheese 3y agoJSON file? More like hard coded conditionals in the code.
- floodle 3y agoCode? I hand-craft every HTTP response myself
- blackbear_ 3y ago
- yellowstuff 3y agoDropbox didn’t have horizontal scaling and ran off one database for a long time.
- yawnxyz 3y agoReminds me of how Notion ran on a single database for a very very long time, and everything started breaking.
- dumbfounder 3y agoI think they figured it out!
- willsmith72 3y agorunning everything on 1 db is way underrated
- quickthrower2 3y agoas is: provision isolated resources for each customer
- AussieWog93 3y agoI'm in a pretty low tech industry but that mindset basically describes every system I've built. The original sin of Software Engineering is building a really well architected system that solves the wrong problem.
- morisy 3y agoIf you're interested in this area, Lean Startup (book or general resources from that area) might be helpful. One example from the [Wikipedia Page](https://en.wikipedia.org/wiki/Lean_startup https://en.wikipedia.org/wiki/Lean_startup): > As an example, Ries noted that Zappos founder Nick Swinmurn wanted to test the hypothesis that customers were ready and willing to buy shoes online. Instead of building a website and a large database of footwear, Swinmurn approached local shoe stores, took pictures of their inventory, posted the pictures online, bought the shoes from the stores at full price after he'd made a sale, and then shipped them directly to customers. Swinmurn deduced that customer demand was present, and Zappos would eventually grow into a billion dollar business based on the model of selling shoes online. It also is very common for "AI" startups to have the AI just be manual work, though this can be controversial: https://www.404media.co/kaedim-ai-startup-2d-to-3d-used-cheap-human-labor/ https://www.404media.co/kaedim-ai-startup-2d-to-3d-used-chea... We also definitely did it in the early days of my non-profit — we wanted to build a very optimized public records submission platform that handled mail, fax, etc., but in our early days I literally hand delivered records requests, which was super helpful from learning but at $2 per request was a huge money-not-maker.
- ChrisMarshallNY 3y ago> We also definitely did it in the early days of my non-profit We are in Phase One testing of our NPO flagship. It has been designed as a native Swift iOS-only app (but the backend will feed anything). It also has a few design "tricks" that probably won't scale to millions, but has been tested with tens of thousands (of fake users). They make it lightning fast, and it will be a sad day, if I have to sideline them, in the future. We sign up users manually, one at a time. I'm developing a dashboard, to lubricate that process, but it will still be manual. Fortunately (for us, but many for-profits would hate it), I think it will be a long time, before we get to the point where matters of scale become an issue. We Serve a small, demanding, demographic. Also, we don't collect PID. Extreme privacy and security are a big part of our model. I deliberately avoid a lot of the dependencies that could introduce issues.
- ekanes 3y agoIf I had to guess, you're being dinged because this is your only contribution to the conversation about doing things that don't scale is: "We sign up users manually, one at a time."
- joshxyz 3y agoto me its marketing, sales, and support. things that i avoid learning and doing when thinking that "if i build the product the users will come".
- sisve 3y agoIs that not the biggest problems for software developers? Believing that users come if they have the right product? You need feedback to create the product and you get feedback by having customers - so go out and sell your product (Its prop not right for all cases but in general )
- quickthrower2 3y agoFor my next project I prefer: 1. Create MVP (0-100hrs work max) without talking to customers (too much) avoids paralysis. Avoids mum-test type issues too. Have some basis that it is a good idea (e.g. competitors, solving your own pain, a pain you see mentioned alot online) 2. Get MVP in front of people then talk to users. 3. Iterate based on that information: talking to people who are taking time to use your service. It is a nice filter to talk to people who use your service (proof of work!) vs. just interviewing a bunch of people who look like they might be in your persona.
- koeng 3y agoI build synthetic DNA. In the beginning (and still) I do a ton of steps by hand that I’ve slowly been moving to robots. Hours and hours at a bench picking colonies, designing sequences by-hand for customers instead of using software, writing robotic scripts for one particular customer’s needs, that kinda of thing
- zffr 3y agoThe DoorDash founders started out by delivering all of the food orders themselves
- hiAndrewQuinn 3y agoI have a small side project where I scrape a Finnish news site and generate high quality flashcards from its content for fellow language learners in the form of a daily email. I sell bulk access to the back catalogue for more serious learners. I don't want to pay any cloud costs, so all the scraping, flashcard creation, etc are just shell scripts on cronjobs that runs every hour or so on my personal laptop. The back catalogue is persisted to my other devices via Syncthing, instead of living in S3. I give the deck a manual review every day before I send it off, which I guess also counts as dogfooding.
- Doches 3y ago"Do Thinks That Don't Scale" is probably the absolute heart of my (bootstrapped, two-founder) company. Off the top of my head, we: * Manually create pre-configured accounts for potential customers, sometimes with up to an hour of entering in their existing data so things look familiar right from first login. * Investigate problems and repair live data, usually just by logging in as a user and using the tools in the product. Can they do this themselves? Sure. Do they appreciate our doing it instead? Oh, hell yes. * Have screen-sharing calls where we walk customers through the process of linking our product with third parties (e.g. OAuth pairing with Square so they can process payments). * Call customers who are want help or advice with _other parts of their business_ that aren't related to our product, but about which we know something. Don't know what you should put in your vendor contracts or what % you should charge for sales commissions? Give us a call; we'll help you out. ...plus probably dozens more that aren't fresh on my mind. We work flat-out to onboard every single customer, no matter how small, because word-of-mouth is our only growth channel and delivering a surprisingly human onboarding/support experience is the best way I know to generate great referrals. It doesn't scale, but it's also probably our main growth driver. It'll work until it doesn't, I guess, but so far doing things that don't scale is how we scale.
- dclowd9901 3y agoWhat you’re describing here is _good customer service_, which basically doesn’t scale at all ever (at least in any automated way). You provide more tools to expand the capability of CS, but at some point, you simply just have to hire more and more CS people. This isn’t a knock by the way. Good customer service makes a customer feel like there’s someone just waiting at the company to help them. Kudos to you for providing that experience. So while these aren’t great examples of “doing something that doesn’t scale (with the eventual goal of scaling)”, it’s a great example of “doing something that doesn’t scale (to provide a better product)”.
- supportengineer 3y agoYou can also give the tools directly to the customers, and you can bundle/package the tools into future versions of the product. A common pattern is to have a public git repo and the customers can git pull to get the latest versions of the support tools.
- tomhoward 3y agoI'm building a new product for farm monitoring (IoT device that monitors soil moisture and other enviro/climate conditions). I spent a whole lot of time in the past few weeks hand-soldering circuit boards using prototype boards (one step up from breadboards), then drove ~10 hours to a remote town to install them on farms and stayed around for a few days to get/keep them working. By doing that I not only ensured they were up and running in good shape, but I learned what it's like to be the person installing and maintaining them. We have an installer in town who made the intro to that customer, but for this new product it was a big learning experience to be there, doing it myself.
- boredemployee 3y agoI'm genuinely curious if you could elaborate a little bit more, thanks. I always thought about a product like that in my area but the "features" you mentioned (soil/climate conditions monitoring) are pretty simple, so I wonder if you're still able of finding a market (fit) for products like that, that "anyone" could build. Are you able to find customers, which I assume is B2B?
- HeyLaughingBoy 3y agoMarkets exist for just about anything. The hard part is finding them. For example: one of the simplest things I've built this year is a device that reads an input and then turns on an LED and sends a message to a connected app (I didn't write the app) when the input changes state. After I shipped the first one, the customer came back and asked for 10 more and they expect that over time they may need about 100 or so. I can do stuff like this all day long: it's technologically trivial, but world-altering to the people who need it. My main problem is getting people who need these little machines to know how to find me.
- cdelsolar 3y agoWow.. what kind of an input? I sometimes want to get back into hardware.
- setgree 3y agoI was an early hire at a computational reproducibility startup for scientists [0]; the platform was basically an online frontend wrapped around a Docker container hosted on AWS, and the idea was that you'd put your code and data on the platform and have it be online-executable indefinitely, so you wouldn't have to worry about package updates, functions breaking, etc., because it was containerized. The long-term goal was that scientists would describe their native software environments at a high level, and then the machine would build a Docker container that matched. In practice, your typical academic has no experience with containers/Linux/system-level dependencies. To prevent their walking away, I basically set up their software environments for them on an individualized basis when they reached out to us through intercom. As PG says elsewhere, one of the main advantages of an early-stage startup is they can devote an insane level of attention to early users. [0] https://codeocean.com/ https://codeocean.com/
- henning 3y agoThe Y Combinator YouTube channel has videos with specific examples. https://www.youtube.com/watch?v=TCPjk8Tpb5c https://www.youtube.com/watch?v=TCPjk8Tpb5c
- gnicholas 3y agoFor a time, I emailed every B2C customer who signed up. I welcomed them, asked where they heard about BeeLine, and told them if they ever had any questions they could email me directly. Most people didn't engage, but some did. I was able to nip some onboarding issues in the bud, and develop some evangelists as well. Some bigger companies automate this, but I always found it feels weird coming from a big company. I was always careful to put "founder" in my email signature, so the recipient knew it was coming from me. And I never sent the email right after they signed up, which might make it seem automated — even though it wasn't.
- smcin 3y agoKayak Founder Steve Hafner used to do that. I was very impressed.
- gnicholas 3y agoI got the idea from the Caviar app (since acquired by DoorDash).
- rrr_oh_man 3y agoI used to do that while at BrainLuxury. Also tried to put "I am not a robot " into the subject line, with mixed results. Around 5-10% of customers replied, which is probably not amazing, but not horrible either.
- kawhah 3y agoWhat were you hoping to get from the customer replying? It seems perfectly plausible that 95% of the customers of an app or online don't want to enter into an email conversation about the service - they just want it to be usable without need for further communication, and they aren't interested in getting involved in your wider sales strategy either.
- akg_67 3y agoActually, I received direct email from founder of eBay when I posted on a message board that I was looking to buy a second-hand laptop, with a listing for laptop on eBay. It was very early days of eBay. I wish I had kept the email and my reply expressing uncertainty about buying on eBay and not receiving the product.
- ignoramous 3y agoSome examples: - The Airbnb founders took photographs for listings themselves. - ProductHunt started out as a newsletter, with the founders themselves hunting and curating products. - Reddit founders submitted links (wrote comments?) everyday using different usernames, to get the community going. - Dropbox launched with a video demonstration and an email signup page to gauge viability. The product wouldn't be ready for another year, iirc. - Doordash was a single webpage with a phone number (and 5 students?), serving just Palo Alto. - Meesho was a WhatsApp group (one of the few teams in the batch that failed to raise money on Demo Day, afaik). - Segment was a single javascript file viz. analytics.js.
- giarc 3y agoFurther to your doordash example, I believe many of delivery sites simply took the online order, then called the restaurant themself to order the food. This however lead to some issues where restaurants were getting from complaints from customers they didn't know they had. They also had different pricing from the online companies.
- throwawaysleep 3y agoDoesn’t DoorDash still do that?
- giancarlostoro 3y agoNot sure if they still do, but they definitely integrate more directly now.
- flir 3y agoBack in the stone age, lastminute.com would fax individual customer's details through to the theatre so they could pick up their tickets at the box office.
- giancarlostoro 3y ago> - ProductHunt started out as a newsletter, with the founders themselves hunting and curating products. I can't remember if it was product hunt or not, but there was one such site that actually started as a way for the developer to feed attention to their other startup. Turned out producthunt (or whatever one I'm thinking of) became successful instead.
- jedberg 3y agoWhen reddit first started, all merch was hand packed by Alexis with a note in it. At one point he sent us a stack of 1000 postcards and made all of us sign them, and then used those to pack the merch.
- asadm 3y agoWho was it sent to?
- deleted 3y ago[deleted]
- WendyTheWillow 3y agoI got a snoo car sticker back in like '08 or '09 in a regular envelope type thingy, IIRC. I think I just asked for one? Maybe it was a form, IDK.
- jedberg 3y agoI'm unclear what you are asking. What does "it" refer to here? The postcards went in with the merch and that package was sent to the person who bought the merch.
- user_7832 3y agoOff-topic but I was curious and checked your profile and wow... you've got a lot of karma on reddit and hackernews. (Also your blog mentions you still working at Netflix, while your HN profile page suggests that was in the past.)
- jedberg 3y agoI used to work at reddit so I've been using the site for 18.5 years, which is a long time to rack up karma (and I got a bunch posting reddit blogs and doing AMAs). And I just spend too much time here. :) Yeah I haven't updated my site in a long time. I left Netflix nine years ago.
- Zaheer 3y agoWe used Google Sheets as our primary DB for a long time: https://www.levels.fyi/blog/scaling-to-millions-with-google-sheets.html https://www.levels.fyi/blog/scaling-to-millions-with-google-... We still use it for some off cases but have Postgres now.
- picklebarrel 3y agoThere was an online car sales startup years ago where they put up the web page and ordering stuff before getting any buying or delivery stuff in place. When they got their first order, the boss said "well, go buy the car!"
- deleted 3y ago[deleted]
- sullivanmatt 3y agoMy first employer is now a decently well known B2B SaaS and we didn't build user interfaces to manage various settings for a very long time. For example, we supported custom fonts, but we would have to jack into production to upload them and manually configure the database to make them available to a given customer. That ability didn't become customer-facing for a decade, simply because it was easier to file a ticket and make an SRE do it. This is a little tangential but another good piece of advice is to avoid over optimization of the engineering stack. A giant monolith running on the largest RDS instance AWS provides a lot more runway than people realize.
- zubairq 3y agoTotally agree with the “do things that don’t scale mindset”!
- marginalia_nu 3y agoI manually review the ~3000 or so domains in Marginalia Search's random exploration mode every once in a blue moon. Takes like a solid afternoon but I'll be damned if it doesn't improve the experience quite a lot.
- danenania 3y agoWhen looking for early users for a new product, it’s usually better to reach out directly to people one at a time or post in small communities like niche subreddits rather than trying to do a big launch on HN or ProductHunt with the hope of getting a lot of users all at once. Ditto for more “scalable” marketing like ads or PR. It’s (usually) best to save those until after you have a core group of happy engaged users that you cultivated by hand. There are exceptions where people do the big launch or large-scale marketing right away and it works, but the risk of failure with that strategy is high.
- cj 3y agoWhen I founded my bootstrapped startup, I would go as far as opening PR's within the customer's codebase to integrate our dev tool on their behalf. But most common one is probably pricing. Start out with cheap (or free) pricing to capture early adopters, even if it's not economical long-term. If/when you gain traction and momentum, gradually increase prices until the unit economics make sense.
- segh 3y agoOne problem with cheap or free is that when you are trying to validate your product, a user paying you good money is far more validation that a free user.
- eightturn 3y agowhen we started the vidalia onions project, nothing was automated. We'd accept order w/ stripe integration. We'd manually type in shipping info into UPS shipping terminal & print shipping label at packing shed. We'd then package & ship the Vidalias. Nowadays we've somewhat automated that through shopify & shipstation integrations. (ie. this project: https://www.deepsouthventures.com/i-sell-onions-on-the-internet/ https://www.deepsouthventures.com/i-sell-onions-on-the-inter... )
- guybedo 3y agobasically you can do manually everything that could be automated, and should be automated if high volume. - Manually send user welcome email, trial expiration email, etc... - Manually fix some errors although the process could be automated. - Manually cleanup logs, db tables, etc... - Manually check every service, db, website, etc... is up
- winddude 3y agoI honestly feel like this advise was applicable 10 years ago when it was written. Especially int he age of AI, but it's really going to depend on the business you're in, if you're business is automated business intelligence, vs mail order bbq sauce or something. Not to mention the greater number of tools opensource and paid available to automate most of the stuff that would take a dev a little longer to do. But also from a technical standpoint, if it's a 1 or 2 time task, and it's quicker to do manually, don't bother automating it.
- Havoc 3y agoI had understood it more as an abstract lesson than an instruction. ie avoid a mindset of everything must scale or we don’t do it.
- renewiltord 3y agoHere is an example of a successful business bootstrapped that way: https://twitter.com/levelsio/status/1717183107529576672 https://twitter.com/levelsio/status/1717183107529576672 Quoted here: First version was an index.html + @Stripe link + @Typeform to upload photos, then I manually dl'd the photos and uploaded them to the GPU Pic 2 is current version as a web app after 1Y: 100% automated, 1850 customers @ $79K MRR, renamed to http://photoai.com http://photoai.com
- dang 3y agoThe Hacker News email inbox.
- SushiHippie 3y agoAnd it's one of the best things of HN, thank you
- calimoro78 3y agoIf you read the other essays he also says you do things manually as the founder first to learn the specifics that matter but then you scale it (typically by hiring someone, or via code) when you have learned very well how it should scale.
- fareesh 3y agoHere's one I saw today on X https://x.com/levelsio/status/1717183107529576672 https://x.com/levelsio/status/1717183107529576672
- bigsassy 3y agoI had a product to help political campaigns canvas neighborhoods door to door. In the early days there was a "smart walk sheet" feature, which would magically pick the optimal doors to knock given how much time you had (e.g. 2 hours after work). While I was building out this feature, I'd stay up late in the night manually selecting clusters of houses and setting them for the customer, so the next morning they'd be greeted with what looked like our backend systems auto-magically picking the perfect cluster of houses. The bonus of doing it manually for a while is that I found a lot of edge cases I would have missed otherwise. The initial release of the finished feature was rock solid thanks to what I learned.
- D_R_Farrell 3y agoWhat ended up happening with this product? Super cool way to hack it together and props for putting in the effort
- auto 3y agoI feel like this is a fantastic example, as it’s one of those things a computer should be able to do perfect toy at scale, but for a quick and dirty solution on a smaller subset it’s something humans are really good at.
- kqr 3y ago> The bonus of doing it manually for a while is that I found a lot of edge cases I would have missed otherwise. The initial release of the finished feature was rock solid thanks to what I learned. This is one of the great benefits of doing things that don't scale. Reality has a surprising amount of detail, so to write code for a process you need to be an expert at that process. How do you become an expert at anything? You have to do it for yourself.
- spiffytech 3y agoZeroCater started as a guy with a spreadsheet managing orders by hand: https://techcrunch.com/2013/04/06/how-i-started-zerocater/?query=4664 https://techcrunch.com/2013/04/06/how-i-started-zerocater/?q...
- dtran 3y agoTL;DR: my co-founder and I hosted hundreds of 1-hour co-working sessions ourselves. In the early days of what is now Flow Club, my co-founder and I had built several apps to try to help us stay in touch with busy 30+-year-old friends. It was tough to get any friends to even install the apps we made on Testflight, much less use them. They were busy with work or family (and the apps just weren't compelling enough). We started asking friends to come work together on Zoom (during the pandemic) like we used to do at coffee shops. We wanted to add some structure to these, so we made them 1-hour co-working sprints with a screen-shared pomodoro clock and agenda (5 minutes to share goals, 50 minutes of working, 5 minutes to check in), sent out the Zoom links to friends, and then started pre-committing to times at the beginning of each week and sending that out to an email list. Within a month, we had hosted a couple hundred of these sessions between the two of us and couldn't keep up with the demand or requests for more times of day as it spread to friends of friends. When an early user who we didn't know IRL and then my partner each separately asked if they could also host sessions, we were blown away. We didn't think anyone else would want to volunteer to host. Then when we realized both of them were actually better "hosts" than we were, a lightbulb came on for us that we could stop doing the unscalable thing we had been doing and build for hosts.
- nbened 3y agoSomeone may have said it, but the DoorDash guys acted as their first drivers until they couldn't anymore
- canucker2016 3y agoJust remember to automate the manual process at some point. from https://allenpike.com/2023/dialup-world-isp https://allenpike.com/2023/dialup-world-isp: "1. When a customer submitted their signup form to Dialup World, they would add a row for that new customer to their 20,000-row Excel spreadsheet. 2.Then, they would put that signup form in a pile with all the other signup forms of customers who had signed up on that day of the month. [billing steps removed] 5. When a customer called to cancel their service, they would stop that customer from being billed further by simply – I shit you not – finding that customer’s signup form and trashing it. No signup form in the pile, no more bills going out. You gotta hand it to these people. The seminal startup essay “Do Things that Don’t Scale” didn’t come out until 2013, and these legends were doing things that didn’t scale way back in the late 90s. They got 20,000 signups billed with the process equivalent of a shoelace and a discarded sauce packet." Assuming they distributed the signup forms evenly amongst the 20 working days of a month, that would mean the billing group would have 1,000 bills to handle each day. Slogging day in, day out, forever. Might as well have named the group/department Sisyphus.
- physicles 3y agoThere is indeed a fine line between “do things that don’t scale” and “keep your terrible process in place far longer than you should.”
- HPsquared 3y agoIronic that it's an IT company doing this.
- tonyedgecombe 3y agoI was once given the advice to never buy a car from a car mechanic because they never give their own cars much attention.
- JohnMakin 3y agoI violate DRY all the time in terraform. My process is roughly to write something that resembles a module, and when I need it again, I copy all the code and just change relevant variable values and see how it behaves. if I need to copy again a 3rd or 4th time, usually by that point I will have learned things that allow me to make a much better module/library than if I had relentlessly and mindlessly followed DRY.
- robertlagrant 3y agoDRY is normally invoked when you've got the same thing for a third time.
- bitslayer 3y agoIn ETL work I often come across a nightly job that is harder to implement than most for some snowflakey reason, and I just start my day doing it manually, which might just take a minute. At some point I will get so annoyed that I will take the time to figure it out properly.
- dools 3y agoI run BenkoPhone which is the only business mobile number app in Australia that supports voice, txt and picture messages, currently 211 paid users in 50 different companies and $100k ARR. The very first version was an old Android phone sitting on my desk that I connected to Trello for messaging and Bria for voice calls, for a handful of clients. We later launched an app, but we didn't build the app ourselves we licensed it from a 3rd party vendor who does white labelling, and we used their demo version to sell the first corporate customer, who's setup costs paid for the white label one-off licensing costs. Then we developed a proprietary, scalable hardware platform to manage the connections so we don't have to use Android phones anymore, but we still don't have our own VoIP stack, so when customers express interest in a free trial, we have to firstly contact each one to make sure they're genuine (almost all free trial requests are from scammers). Once they have tried the product, they put their details into DIFFERENT TypeForm, then we have to manually enter those details into our VoIP reseller platform and create the users and devices in the PBX, then we have to email our mobile carrier to provision the numbers because we don't have a direct wholesale connection yet. That whole process can be automated once we have a different VoIP platform and have wholesale carrier connections.
- Chris_Newton 3y agoI once sent a snail mail letter from my little company to one of our subscribers in another country who was having trouble and emailed us about it several times but was apparently not receiving our email replies. It worked. :-)
- altdataseller 3y agoSome examples: 1. Manually copying and pasting data that can’t be easily programmatically extracted from PDFs/web pages and manually compiling a valuable dataset instead of scraping it, or using some scalable way to gather it such as getting it from users. 2. Finding users on Twitter who mention a specific pain/problem you’re solving and messaging them and having a conversation with each and every one of them. 3. Keep track of the news pertaining to your industry and manually finding journalists and sending them each a custom pitch related to your startup when a news headline or topic becomes popular
- obeattie 3y agoAt Monzo we stuffed cards into envelopes by hand, printed mailing labels on thermal printers using slapped-together Python scripts, and filled up mailboxes in the local area every night. We kept doing it pretty much like this until we were sending out several thousand cards per day. https://monzo.com/blog/2017/06/09/journey-of-a-card/ https://monzo.com/blog/2017/06/09/journey-of-a-card/
- pierrefermat1 3y agoThis sounds entirely scalable?
- harrisonjackson 3y agoCounter examples might be useful. Many startups implode under the weight/pressure of doing the wrong things that don't scale. It should lead to growth/revenue/whatever your north star is.
- throw_nbvc1234 3y agoAmazon same day delivery was supposedly bootstrapped by ordering ubers via burner phones. Bill Gurley (uber investor) happened to find out during an uber ride talking to his driver. https://youtu.be/HSVFZ2Qbv3I?t=5681 https://youtu.be/HSVFZ2Qbv3I?t=5681
- kreutz 3y agoAt Lugg (https://lugg.com https://lugg.com) we did a few things that would not scale. - My co-founder and I did all the Luggs ourselves in trucks we rented through GetAround for the first 4 months - My co-founder and I's names, pictures, and phone numbers were hard coded into the app as the crew to fulfill the Lugg before we had crews or proper dispatching - We launched without payments and would charge customers with a Square reader at the door - Most mornings we would camp out in the IKEA parking lot in Emeryville, CA and approach their customers that were struggling to get their purchases in their cars and pitched them that we would deliver their items if they downloaded the app and made a request - In the early days we didn't have operating ours and anyone could request a Lugg at anytime and my co-founder and I would hop in our rented truck and do it A few months in we did a Lugg for someone that knew Sam Altman and made an intro to him for us. We met him for coffee, shortly after had a YC interview, and was later accepted in the S15 batch
- sincerely 3y ago[flagged]
- Frivolous9421 3y agoOh yes I love having to move huge furniture myself or pay someone an exorbitant unfair price
- kreutz 3y agoThank you!
- dtran 3y agoThis luggs the cake! Did y'all ever debate buying a truck vs. renting on GetAround?
- kreutz 3y agoWe thought about it but ultimately decided that owning a truck would detract from what we really needed to be doing which was getting truck owners to do the luggs
- bigcat12345678 3y agoI debugged our ML container and wrote yamls for initial version of demo Also met customers and talked to them one by one travelling across the country, each time having a detailed game plan for what we wanted to learn and what we wanted to get back from the customer
- imrokas 3y agoWe are manually building decks for things that new users are requesting during our new user interviews for our flashcard app www.munkle.it
- bdefore 3y agoProtonDB started with a lunchtime reddit post and a public Google Sheets link I seeded with three of my own tests. Came back from work with a thousand rows in it. In a few weeks I built a frontend around it. The 30k row data migration was brutal but in hindsight was absolutely worth it. AMA.
- jchanimal 3y agoMy database technology startup, Fireproof, recently hung out a shingle for custom app development, primarily as an adoption tactic. If we really do have the most productive tools for front-end devs to build data-driven apps, we should showcase them by writing code for real-world customers. Over time we expect services revenue to be a smaller slice of the pie, but if we can make creating the first round of social proof into a financially sustainable practice, we can scale with more confidence because we know we built what customers want. We just launched this today, so you'll have to follow up if you want to know how it goes: https://fireproof.storage/service-and-support/ https://fireproof.storage/service-and-support/
- justswim 3y agoOne of the things that we did at Kapwing (https://www.kapwing.com https://www.kapwing.com) was manually edit videos using our own platform and sharing these videos with bloggers to try to convince them to use Kapwing. We could create a relevant video from an article that they wrote, and then share them the link to the project so that they could edit it directly with our tool. Another random thing we did was try to make chalk posters on the streets of SF. We chalked our logo out in front of the 4th and King Caltrain station so that tech people would see it when coming out of the station. Unfortunately, that only worked for a day though, because the SF crews are very good at powerwashing the sidewalks.
- jollyjerry 3y agoI’m manually importing stock portfolio holdings for users in https://jch.app https://jch.app so they can export from their brokerage without conforming to a specific format.
- destraynor 3y agoI wrote about how we did it at Intercom here: https://www.intercom.com/blog/how-intercom-got-our-first-customers/ https://www.intercom.com/blog/how-intercom-got-our-first-cus... In short it was a combination of individual customer outreach our CTO jumped on Skype (yes Skype) to help with installing, I did handholding through onboarding, I ran "webinars" to like 4 people, or less. Everything was just tiny tiny steps.
- veesahni 3y agoAt Enchant (https://enchant.com https://enchant.com): - We launched without billing. Early customers used the product for free until we eventually built out billing - In the early days, the "mailing list" was just a loop that would send an email to signed up customers using our cloud email service provider. - We manually verify all new accounts before they can do certain things. Abuse prevention. - We offer data imports from competitors. It's a semi-automated process - sometimes there's existing working code, sometimes it needs tweaking, sometimes it gets written as part of the process. Either way, it's a win if it helps someone make a purchase decision. - We manually reach out to customers when a feature they voted for is released. This is also a great opportunity to gather further feedback.
- thisismytest 3y agoThere's a whole class of problems I call "small data" - under about 100 things (note: often your sample set is a year lookback, so for example new customers might be > 100 but only 100 for this year, still small data). Anything that looks like that is often able to be handled manually and probably should be until it's sufficiently useful to automate...things that look like this often are: customers, employees, infrastructure. In general, put off automation for anything that's not every day or month that you can't just do in a few hours , e.g.: * Parts of performance assessment & compensation tooling * Sophisticated recruitment analytics (especially important because with small data it's often not precise or accurate/needs manual attention) * Provisioning new stuff that doesn't happen often: databases, clusters..etc. * Maybe the biggest bucket of stuff in general is analytics. Often times people try to get whiz-bang end result numbers with data sets of like 100. It's almost always the wrong move to have crazy analytics abstraction layers and automation when the numbers are small. A potential simple heuristic might be something like: if it take a day or longer to automate, you need to save at least 5 days of time in the next 6 months for it to be worth it.
- m3kw9 3y agoManually curating content by hand instead of using algos
- Joel_Mckay 3y agoBuild on modular frameworks to localize accountability, automate edge-case testing to save time later, and automate deployment as needed. Poor design planning casts a long shadow, it is a relatively interesting career cleaning up defunct projects in addition to training staff you don't fire for being malicious and or stupid. Sometimes one can't fire problems or fix a poorly thought out design within the resource budgets... at that point one walks away if they are smart. Sometimes companies survive arsed IT, but many do not... For example, a 73% LLM written article wouldn't necessarily get you fired, but likely a 73% pay cut due to sub-optimal market utilization. Remember to have fun, =)
- modeless 3y agoAndrej Karpathy manually classifying ImageNet. https://karpathy.github.io/2014/09/02/what-i-learned-from-competing-against-a-convnet-on-imagenet/ https://karpathy.github.io/2014/09/02/what-i-learned-from-co... Manually doing the task yourself is a tremendously helpful exercise anytime you are doing machine learning, and often overlooked. It is hard work, especially since to do it right you'll often have to build custom labeling tools before you can even start. But you will discover all sorts of issues and come up with much better ideas for improving the system.
- nmfisher 3y agoHah, I didn't know Silicon Valley's "hot dog, not hot dog" app had IRL roots!
- bawolff 3y agoThis is in a different direction than most people, but i think the "SoftSecurity" approach of early wiki sites fits. http://meatballwiki.org/wiki/SoftSecurity http://meatballwiki.org/wiki/SoftSecurity The idea being instead of blocking malicious people or doing automated detection, you should spend human labour to just undo them until they go away. Early wikipedia from what i understand didn't even have a block function - instead if someone was too overwhelmingly problematic you had to find someone with server access to block the IP on the webserver level.
- austin-cheney 3y agoOriginal test automation application. I wrote a new test automation application because in my primary personal application I need to run test automation in the browser, I needed it to be faster than prior existing solutions, and I needed it to be distributed to browsers on different machines of the same local network. The test samples for this new test automation application are just JSON data structures defined against a TypeScript interface, so the code editor literally tells you what properties are missing to complete a test and what the allowed values are. Its faster than other test automation tools for the browser because it does not make use of CDP. Instead a test receiver is required to be embedded in the given page(s) which evaluates the tests and transmits the results. Its also faster because it only uses WebSockets and not HTTP. I was executing 89 tests comprising a total of 284 points of evaluation against event execution in the browser at 6.22 seconds from Node start to test completion. This took tremendous trial and error to get correct, but now I have experience writing and executing test automation at a depth that almost nobody else has and can do it faster than all the popular test automation applications. It also required that I rewrite large portions of my primary personal application to make everything WebSocket based for faster execution across the board and also to greatly simplify the service/transmission architecture on both the browser and the Node layer. This experience is winning me employment at higher rates when many senior developers are challenged to find new employment. Writing this new test automation did not scale at all and took tremendous time to get correct and stable, but now it allows scale and rapid execution of colossal refactors I could never do before. Since the test automation executes on the local machine only in less than 10 seconds I find that I was running it dozens of times a day for large feature enhancements.
- alexbezhan 3y agoI manually signup users. They leave their email on the website, I then go and create user in Auth0 and send them invitation. Planning to change this flow now before going public.
- saucymew 3y agoDuring the pivot to Caviar (www.trycaviar.com), we were very cash-strapped and had to do most of the deliveries, customer service, and restaurant ops ourselves. We did this growing from 50 orders a month to over 150+ orders a day, non-stop. If there was a mess-up, to save the cash bleed, I or one of the co-founders would hand-deliver the follow-up delivery ourselves, and apologize in-person. I would like to think our customers thought we literally went the extra-mile to ensure their satisfaction. And because a lot of restaurants were set in their ways, if we had to send them a fax for a $1,000 order or call them by hand and manually speak to them the order item-by-item, we would. There are many delivery companies, but only a handful of institutional, famous restaurateurs.
- wrsh07 3y agoImagine each task you might possibly do for a customer (the responses to your post suggest many). At some point, 0% of the task is automated. You can do it for customers 100% manually. If you do this for all of the tasks people will pay you to do, you can get a sense of "which ones are slow, time sensitive, easy to automate, or frequent" Once you have that, you can now prioritize work that will make those tasks more efficient. If you just thought about tasks in a vacuum, you wouldn't have any empirical data that tells you what is worth doing. By doing things that don't scale - by doing things completely manually - you've also figured out a roadmap for the next few days/weeks.
- 0xbadcafebee 3y agoDon't put in a database what will work in an Excel spreadsheet.
- charlierguo 3y agoSome stories that I've heard personally: - Tony Xu (DoorDash) figured out that many early users were moms, and he would go and knock on their doors to ask them why they would use the product, and where other moms would hang out so they could get more signups. All of the founders also took shifts to drive for the app so they had to use it themselves. - Tom Preston-Werner (formerly GitHub) emailed tons of OSS maintainers, including John Resig of jQuery, to try and convince them to migrate over to GitHub. He admits that it wasn't a great strategy though - project maintainers have to convince themselves to switch VCS systems. - Jessica Mah (formerly inDinero) became a CPA in order to do accounting services for her startup. She would talk to customers and make sales during the day, and study for the certification at night. - Ricky Yean (formerly Crowdbooster) struck a deal with an early customer/cafe owner to get paid in food, so they worked from the cafe all the time. They ended up building the cafe owner custom dashboards which later become their product. - Nikki Durkin (formerly 99dresses) spent $10,000 at a time on Nordstrom, listed the clothes on her clothing marketplace, and then returned anything that wasn't sold or traded to users within the 30-day return window. - Jake Jolis (formerly Verbling) would act as an English speaker trying to learn other languages at all hours of the night in order to improve the matchmaking on his language learning app. Most people were their to learn English rather than the other way around. - Rujul Zaparde (formerly FlightCar) stood in front of a major airport parking lot for nearly 12 hours with a sign that said "ask us about free airport parking". He had the cops called on him three times that day. - James Richards (formerly Teleborder) paid people from Craigslist $20 to sit and use their app in front of them. It led to a lot of valuable feedback, and they ended up hiring many of them later on. - Walker Williams (formerly Teespring) drove an hour and a half to Petaluma in order to pack and ship bobbleheads for a long-term client that wanted to sell something other than t-shirts, despite the fact that the company... only sold t-shirts. A while back I had this same question - and I ended up writing a book on it: https://www.amazon.com/Unscalable-Charlie-Guo-ebook/dp/B019EGX6WO/ https://www.amazon.com/Unscalable-Charlie-Guo-ebook/dp/B019E... There's a bunch more in the book - I was lucky enough to also talk to the founders of Codecademy, General Assembly, and Zenefits. But those were some of the ones that I still remember pretty well.
- marcelfahle 3y agoI love this. Ordered!
- semireg 3y agoI bought a hundred different label printers off eBay/amazon so I could reverse engineer and test all the different protocols. Now my app works with most label printers on the market and manufacturer’s send new models to me without even asking. I personally answer every support email. My wife once asked me how many customers I had. Then she asked how many email support emails I’ve handled over the same time period. They were about equal (5 figures over 5 years)! https://label.live/ https://label.live/ Edit: on second thought, maybe I did things that DID scale. Hmm…
- throwawaysleep 3y agoHow long did each reverse engineering take you? This seems like something that would require scale, so well done.
- semireg 3y agoAn hour to a few days. Sometimes a week of back and forth to 1) make it work, 2) make it work right, and 3) make it work fast. Many times there’s a PDF for the printer “language.” Think ZPL or TSPL. But even then, each printer has quirks (two incompatible settings) or a setting that’s unitless (dots? mm?) and the best way to nail it down is by using a USB sniffer, capturing the commands, and then implementing similar custom controls and logic in the app.
- fbdab103 3y agoDo you have a hilarious test suite that physically prints 30 complex designs to ensure things are ostensibly working? Do you have a room with dozens of the printers live at a given time?
- semireg 3y agoYes, I have a room with 100 label printers. They aren’t powered on. If I make changes to the built-in driver then yes, I take out the printers and make sure they function as expected. The way my app works is by sending raster images to the printers (vs explicit commands for text, barcode, line, etc). Because of this, much of the pixel-perfect testing can happen via PDF generation, which is the other core feature of Label LIVE - submitting PDFs to operating system printers (drivers), or generating and saving PNGs/PDFs to the file system.
- amitmathew 3y agoAt my last startup, our product required information that didn't exist in the digital world - the table of contents of hundreds of medical books. So I used to spend nights and weekends visiting local Barnes & Nobles and university bookstores pulling down books and manually typing out the table of contents with chapter titles, pages numbers, etc. Quite possibly the most boring job ever! Most bookstores didn't mind my presence, but I did get kicked out of one (thanks Harvard Medical School!). I tried to use OCR and other techniques and it just wasn't accurate enough (this was a decade ago so the tech wasn't quite as advanced as it is now). Eventually the company got big enough where I could have dedicated staff to handle the process, but for a long time it was how I spent my free time.
- jcgr 3y agoAt my company we were B2B2C so a lot of features had to be built for the B2B side and also the B2C side. B2B side asked for an analytics dashboard, we manually sent them Retool apps segmented with their data hardcoding ids in the query.
- yafbum 3y agoIn the early stages of product dev I tend to do direct customer interaction (user research, customer troubleshooting, frontline support), instead of farming it out to junior team members the way I do with more mature products. This gives me a deeper sense of what users think about our product.
- ereyes01 3y agoIn 2014, I built some tools to make it easier to automate AWS and Google Cloud deployments. I did the following: - Applied to devops jobs on Angelfish, target companies with 10-20 employees - Passed their phone screen, learned about the particular automation problems they had - Offered them a SaaS subscription with a promise to set up a working solution in my product for their problems. - Explained that subscribing to my service would be much cheaper than hiring me. Most declined, a few were offended at my bait and switch, but 3 of them became my early customers and used my service for years, eventually taking over and maintaining their own solutions. I think identifying the right customers- other startups with VC cash that were too small to have too much red tape and had big problems without tools and staff- made this work in the early days. It was a blast working on this stuff back then.
- saaspirant 3y agoWhat's Angelfish? I have used Angellist..
- dostick 3y agoObviously it’s Algellist for sleazy fishing purposes like this
- asah 3y agolol, that's rich of employers to get offended by a recruiting bait-and-switch !
- dboreham 3y agoIsn't it "pg"? (PG is PostgreSQL).
- ikanade 3y agoDidn't know a database could write essays.
- chazeon 3y agoWhile building physical simulation workflows, the input for calculation steps was intentionally not autogenerated from some config file but retained a template that require users to check. This way, it is easier for scientists to have a good idea so that they know they are doing the "right" calculations.
- lgkk 3y agoI'm working on my first startup building a technical product (no customers yet - still developing). No idea if I'm doing this right, so let me know what you think. I'm building a bunch of templates based on my own professional experience as well as from talking to experts and random business owners who could be potential pilot customers. This helps me get both product validation and research gaps. Hopefully when I do start reaching out to my pilot customers things will be set up for them on day one. I have a few who are interested and if they decide not to use it I can at least go after others in the same sectors and set them up easily.
- koonsolo 3y agoI have an example before this became a thing, and was actually framed as "that's a problem I would love to have". We were developing software for MS PocketPC, and at one point implemented some registration system that a colleague wanted to approve manually for each user. (Was kind of like a new test or something, can't remember the exact details anymore). Anyway, me as an developer said: "You care crazy, this needs to be automated, what are you going to do when we get 100 registrations a day?". Business guy responded: "That's a problem I would love to have! I would happily validate 100 registrations per day, because that means we'll have the funds to automate it!". Long story short, that specific system never took off and automating it would have indeed be a total waste of time. Since then, I sometimes fall back to the question "is this a problem I would love to have?"
- withinboredom 3y ago> "is this a problem I would love to have?" It's actually something I use all the time when on a small team. My argument goes something like this though: "lets work on it when we have an actual problem to solve, right now, we're just making one up." Basically, once manually doing something becomes a part-time job, then it is worth automating. Before then, it is simply an invented problem.
- inemesitaffia 3y agoStarlink customer service.
- welzel 3y agoAt my startup (https://polifinity.com https://polifinity.com) we do allmost everything manually first and only build when we have "proof" that an idea works. Examples: - we do not have onboarding automation, instead a simple make.com trigger is send and then we do onboarding from a team member - we have not build all parts of the product, but instead use very simple manual processes to simulate a LOT of the more expensive features - only after feedback we actually invest development time - we have an intelligent reminder feature, that is done using a google sheet + make.com and manual mail; building the feature is not cost efficient anytime soon - the core of our product is about product strategy. Instead of building a complex interface in the app, we offer (free) workshops that are more effective, but absolutely do not scale at all... In my past startups we sometimes did even more extreme "do things that don´t scale" stuff: - giving you personalized recommendations generated within 30 min. from a human - B2B matching from a web-page, where actually a mail was send and we generated the matches dynamically from different sources => this worked out AMAZINGLY well - complex reporting from a huge database -> report was generated by a data scientist within 2-3 business days and then based on feedback the feature was never implemented, as every report was different and lots of time required data not actually in the database
- physicsguy 3y ago' Do Things That Don't Scale' is a good approach when you have very few customers, but you have to start investing time in stopping it once you reach a large number. What is manageable when you've got 5 employees and 1 customer isn't manageable when you've got 10 employees and 10 customers, because that support load is inevitably becoming more and more of each person's day.
- Silasdev 3y agoI was in an online fashion market place company that wanted to test 60-minute delivery in the same city. We bought a few bikes and had employees ride out to customers, just to check if there was an actual demand. Turned out there was not and the idea was dropped with a low investment.
- shafyy 3y agoWhen we started Chimpy in 2014 (power bank rental company in Switzerland, later more EU countries) we got suitcases and hauled the charged power banks to the convenience stores and hauled back the returned ones. Not using cars, but using trains and buses. This was not efficient nor fun, but doing this got us through the pilot phase successfully until we had enough volume to work with a proper logistics company to do this for us. It also allowed us to speak to the people working at the stores and get direct feedback.
- AlexeyMK 3y agoThere's a pretty good book dedicated to this exact question: https://unscalablebook.com/ https://unscalablebook.com/
- withinboredom 3y agoA couple of things: 1. Your first environment is production. Any other environment exists to protect production from yourself. I worked somewhere where the first environment was staging, then they built production. It was a disaster and staging eventually became production and the original production became staging. 2. If you've been giving away your product for free. Reach out to ALL your free customers before implementing pricing. There are probably edge cases / markets you haven't considered. A good example here, was reading a reddit comment about some k8s management startup. So we decided to give them a try. The software was absolutely amazing for our bare-metal cluster! So, we went all-in. Then, we went to setup a new cluster a couple of years later to discover that it was no longer free. They never even told us we were grandfathered into an old free plan. Now, we probably would have paid them for a long time ... and told them their pricing was insane, a per-seat pricing would have been better. Our cluster has hundreds and hundreds of cores for less than $500 per month. They want to charge per-core, and would cost >$2k. They were aiming for the "cloud market" where if you're paying them, you're paying them a small percentage of what the cloud costs. This is sensible, but unrealistic for our kinds of deployment, where simply launching a new server would increase our costs by hundreds of dollars instead of $50. We reached out to them to make a deal, and they were unwilling to make a deal and treated us as though they did us a favor by grandfathering us in to a free plan all these years. Maybe they did us a favor, but they never communicated that so now we're dealing with sticker-shock and trying to figure out a way to move forward. Needless to say, we left them with a bad taste in our mouth, and found a better tool. So, yeah, communicate to your free customers that pricing is coming but they'll be grandfathered in; and they can support you by upgrading to a paid plan. That would have (A), triggered us to evaluate whether the tool is worth it from the get-go, (B), probably would have resulted in us purchasing a license, and (C), we would have been able to tell them much earlier in their journey that they're missing out on an entire market-segment with their pricing.
- Atreiden 3y agoCan I ask what the new, better tool is? Very interested in simplifying on-prem K8s at the moment.
- 3y ago
- NiklasBegley 3y agoFor us at Doctave (https://www.doctave.com https://www.doctave.com), migrating customers from existing solutions manually ourselves has proved very effective. The product is a technical documentation platform, and most customers are coming from an existing solution - be it an open source static site generator or CMS of some sort. The pain of migrating is usually a big factor keeping teams in their existing setup, and doing the migration for them eliminates a common objection. We'll likely keep doing this even as we grow, but right now we tend to offer this service regardless of the size of the customer. The combination of great customer service and everything we learn while migrating the existing content makes it worthwhile.
- 3np 3y agoif (user.orgID === 'importantCustomer') { bespokeFunctionality(); } I guess everyone will encounter this one at some point?
- Marijanass 3y ago[flagged]