[HN Gopher] Ups and downs of a side project
___________________________________________________________________
Ups and downs of a side project
Author : jereze
Score : 131 points
Date : 2022-12-28 09:04 UTC (1 days ago)
(HTM) web link (jereze.com)
(TXT) w3m dump (jereze.com)
| nip wrote:
| It took me roughly 2 years to find "success" with my side-project
| / micro-saas: users using my product on a daily basis.
|
| I've found that the hardest part is the "post-launch" / "first-
| user" phase, where one needs to have the fire / resilience to
| keep building / marketing without (what it feels) anyone caring.
|
| Once the first users (and feedback) start coming in, it becomes
| much easier to keep shipping.
| sum1ren wrote:
| Thanks for sharing your experience. I definitely have given up
| on marketing/selling my projects after just a month or two of
| trying.
|
| Going to try a little longer this time.
| [deleted]
| sasha_fishter wrote:
| Exactly that. Well written. We all share the same situation, the
| winner is, tough, the one who can overcome all this issues, or at
| least be better at them than others.
| revel wrote:
| It's not mentioned here but one of the biggest mistake
| experienced hires make on side projects is throwing out all the
| project planning that would normally be done if it was anyone
| else's project. Honestly, if you can't draw a stick 'n' box flow
| of what you'll build, you are, to put it mildly, highly unlikely
| to build it.
| imhoguy wrote:
| I could explain this as I was there many times - planning is
| not fun for a creator in passion.
|
| The fun is to code some clever software solution and make it to
| work and show to friends or just keep for own pleasure, then
| boring stuff starts: user accounts, payments, maintenance,
| human contact, complaints, and here 99% of projects fail.
| cddotdotslash wrote:
| I've bootstrapped a side project before (in the B2B security
| space) which was later acquired. I had a _lot_ of ups and downs,
| but the "up" that consistently outweighed the downs was getting a
| new user and seeing them convert from free/trial to paid. There
| is something incredibly tangible and rewarding about seeing MRR
| increase.
|
| Because of this, I approach side projects from the perspective of
| getting to revenue as quickly as possible, as opposed to, for
| example, hacking away at something just for fun or learning
| something new. Those are entirely valid reasons to start side
| projects, but I personally don't get the same motivation from
| them and have found myself quickly getting bored.
|
| My personal preference is to focus on SMB/mid-size B2B SaaS with
| the goal of eventually replacing full-time job income. For me,
| consumer SaaS is too small - you're making $5-$20/month/user and
| therefore need 100s or 1000s of users to reach that goal.
| Enterprise SaaS is too difficult for a side project (sales cycles
| are too long/complex). Most mid-size companies are willing to pay
| a few hundred/month for a good service. As an example, if I can
| charge $300/month, I only need 50 customers to generate the
| equivalent income of a decent-paying tech job. The challenge, of
| course, is finding an idea that meets those requirements!
| [deleted]
| me_smith wrote:
| I appreciate many of the comments here. I don't feel alone.
|
| I've been working on something for a couple years (off and on)
| and some days/weeks/months my motivation takes a nose dive to the
| point where I stop work completely. Eventually I get back into it
| but one of these days, I might drop it completely.
| inezk wrote:
| I appreciate author sharing the learnings, that being said given
| product is not very successful I question the value of such
| learnings.
| rozenmd wrote:
| It's taken me about 4 years to find success (in my opinion, YMMV)
| in a side project, you rarely hear about the average case.
|
| OnlineOrNot was my 6th project, first to break even.
| marginalia_nu wrote:
| I've found perhaps the biggest obstacle to working on my side
| project is something like lacking vision. If I have an idea, it's
| never hard to implement. Usually it works, sometimes it doesn't
| but at least shit gets done. The larger the project has gotten,
| the more planning it needs, and that's I've historically
| struggled with. Sometimes I don't quite know what to do next, so
| I sort of fuss with the code and don't really make meaningful
| changes. Always gets me in a bit of a funk.
|
| I don't think it's so much about motivation as having a structure
| to your work that allows you to get shit done. I think motivation
| follows hard work and seeing results, it rarely precedes it.
| Attention from the press or social media or stuff like that can
| also briefly be motivating, but it wanes very quickly and is not
| very reliable.
|
| It's helped to make notes of my ideas as they come. I have
| literally a wall of post-its that say something like "LSH", or
| "middle platonism is processed weirdly", or "34 bit URL ids" or
| "refactor query variants ASAP". It's not prioritized like a
| backlog, but just a jumble of ideas I've had about what to do
| next while working on something. It's been pretty helpful to
| essentially have a work pool to pull tasks from.
|
| My project naturally has 2 month "iterations" because that's how
| often I do a new crawl and load crawl data, which permits
| breaking changes in the underlying data structure. So I'll just
| pull improvements from my wall and try to distribute the work
| evenly so it progresses in a meaningful sense.
| di456 wrote:
| > My project naturally has 2 month "iterations" because that's
| how often I do a new crawl and load crawl data
|
| I have a similar project type and timeline, and going through
| one of these iterations now. Could you share how you persist
| your data in between iterations?
|
| For mine, these were some of the bigger iterations that were
| spaced out over several months:
|
| 1. I started out by writing raw http API responses to python
| pickle files. Scraping via api.
|
| 2. Then wrote some analysis logic in python that read the
| pickle files, and outputted to a csv that I could use for
| analysis in spreadsheets.
|
| 3. Scaled up to a couple orders of magnitude more data size,
| and multiple datasets. Added logic to bulk output any dataset
| to flattened CSV, then bulk import the CSV's to sqlite tables.
|
| For each of those I had to rethink the code, simplify it, and
| make some parts generic where there was a common need.
|
| I think my next big push will be loading new data to SQLite
| incrementally, and figuring out how and where to persist the
| SQLite data cheaply. Right now it's local but too big to check
| into a GitHub repo.
| bob1029 wrote:
| The article touches on organizing code which has an interesting
| aside for me.
|
| When I work on side projects, I certainly encounter periods of
| boredom or disengagement. What can help is to say something like
| "you know what... I am just going to rewrite this and make it
| much cleaner". Only feature parity. Not trying to force anything
| new or trick myself into solving a hard problem right now.
|
| Sometimes this simple cleanup pass will turn into several hours
| of deep exploration and development. Sometimes not.
|
| I think of this similar to intense physical exercise. No one in
| their right mind goes to the gym and deadlifts their 1 rep max
| without at least a tiny amount of warmup beforehand.
|
| If you are on this path and trying to build a real thing that
| people might actually want to pay for (or is at least compelling
| enough to work on for free), you are dealing with a similar
| mental barrier. Warm yourself up on smaller, more approachable
| tasks if you are finding trouble with motivation. Rerun a
| successful prototype from last year to remember why you are still
| doing all of this in the first place.
|
| Also, if you aren't using source control for your side projects,
| you really need to get into the rythym. Every personal project I
| have worked on since ~2017 has a repository tracking it in
| Github. It takes me 10 seconds to find that clever chunk of code
| from a few years ago using their global search feature. Little
| tricks like this keep me from spiraling into distracted
| nothingness. If I had to manually browse through folders in my
| filesystem or dropbox, I'd never touch this stuff again.
| tta wrote:
| I feel this too, and I've learned to accept that this is just
| the way my brain works. Once I've lost my motivation for a
| certain project there's really no point trying to force it
| back, and besides, this isn't such a bad thing. The whole point
| of a side project is that I can work on what I want, even if
| that means doing something new every 4-6 weeks.
|
| I create a "project" in my to-do list app for each side
| project, and dump every little idea I have in there while I'm
| excited and switched on about the idea. When my motivation ebbs
| and eventually returns (months or years later), I have a low-
| friction starting point to jump back in, which makes all the
| difference.
|
| Jumping into a months-old codebase _and_ having to figure out
| what to build next usually means I feel a bit discouraged and
| never really get back to that project.
| bob1029 wrote:
| > I have a low-friction starting point to jump back in, which
| makes all the difference.
|
| This is potentially the most important idea raised so far.
|
| Making smaller, deliberate steps can many times take you a
| lot further than 2-3 gigantic, messy sprints.
|
| I don't beat myself up over "only 10 minutes" spent on the
| side project anymore. Even if no value-add occurs, as long as
| I didn't make things _worse_ , I see it as a good experience.
| throwaway4aday wrote:
| > I don't beat myself up over "only 10 minutes" spent on
| the side project anymore
|
| This is like the "1 pushup" rule for exercise. Stated
| briefly, you don't consider any day a loss where you have
| done even the smallest amount of deliberate work. This has
| many benefits, it makes for an easier on-ramp to doing the
| work since your goal for the day is the smallest possible
| amount of work. It builds the habit of doing something
| every day. It more often than not leads to doing a lot more
| work than the bare minimum. It builds a sense of
| achievement as you continue streaks of work and see
| progress. Most importantly, it actually does move you
| towards your big goals one tiny step at a time.
| bmitc wrote:
| I have several side projects. While I contribute to the ups and
| downs, the usual dagger that grinds things to a halt is hitting
| some bug in an open source library or language that I don't have
| the ability, expertise, what have you to fix. Inevitably, the
| library is maintained by one person who is minimally active,
| despite being used by tons of people, and so I just get stuck.
| Software is a very frustrating endeavor. Not complaining about
| people's time, just the fragility of the tower of stuff software
| stands upon.
| gdcbe wrote:
| You made the tower yourself, no? Not to sound snarky but by
| making sure that (1) you do not lock yourself into any
| dependency and (2) you keep the use of dependencies to a
| minimal you do prevent most of that pain? At least that is my
| opinion. As a temporary workaround (sometimes permanent) I opt
| for a fork, which when kept to the bare minimum is usually not
| more then a minor annoyance.
|
| That's at least my experience...
| [deleted]
| bmitc wrote:
| Well, the option is to rewrite the entire stack yourself. So
| sure, let me spend a lifetime doing that instead of things
| I'd like to be doing. I already opt for minimal dependencies.
| The problem is that every piece of software I have ever
| interacted with has had bugs that immediately surface, and
| nearly universally, there's only a handful of people that can
| fix them. I can't possibly be expected to reimplement or even
| fix projects that have taken decades to develop.
|
| You say don't lock yourself into dependencies. Well, to
| create a window on an OS, you have no choice but to have a
| dependency, because that's how the real world works. The only
| option is to write your own OS, but even that has
| dependencies.
| marginalia_nu wrote:
| That's what I typically do.
|
| I'll make sure that the libraries I rely on are either
| ridiculously well proven, or easily replaceable. If they
| are neither of those things I implement a new one myself
| from stuff that is, while no doubt just as buggy, it's at
| least code I can easily fix myself if it breaks.
|
| Usually it's not that much work. I'll just implement what I
| actually need. Many open source projects are hilariously
| over-designed and have significant feature creep. If you
| cut that out you can replace the critical components with
| not a lot of code and not a lot of hassle.
|
| If it can't be trivially re-implemented, I've been known to
| fork an existing project and take a grinder to it until it
| does what I want, usually axing away most of what I don't
| need to only expose the code I need.
| xnorswap wrote:
| That's a really bad attitude. I ran into a bug in NPM that
| prevented our CI builds running entirely.
|
| That NPM bug still isn't fixed (despite the bug having minor
| security implications), but there's no way I'm re-writing
| everything to not use NPM, it would be absurd, nor is it
| sensible to fork NPM and invest time into fixing the bug.
|
| I ended up putting in effort to work around the bug entirely,
| but it was only coincidence that we could go without the
| feature that triggered the bug because we were going to
| deprecate that module anyway.
|
| Are you really suggesting that developers don't "lock
| themselves in" to NPM? It's one of the most prolific projects
| that exists and it would be career limiting to avoid using a
| package manager or all dependencies entirely.
| sokoloff wrote:
| Was the same bug in yarn?
| prmph wrote:
| You could try pnpm or yarn?
| flippinburgers wrote:
| It sounds like you have informed npm about the issue? If it
| is a widely faced issue, chances are that the maintainers
| will fix the bug. On the other hand you might be using npm
| in a way that is rather fringe.
| creakingstairs wrote:
| You probably already know but I found patch-package [1] to
| be crucial when relying on minor npm packages. It's so
| freeing to be able to just fix it on your end and move on
| (and also raise a PR against the package)
|
| [1] https://www.npmjs.com/package/patch-package
| xnorswap wrote:
| Thanks, but this was a bug in _npm itself_.
| creakingstairs wrote:
| Ah my bad! Luckily I haven't ran into one of those yet
| and I'm hoping I never will :p
| shanebellone wrote:
| This x 1,000
| imhoguy wrote:
| I try to sort out the dependency issue with one of the
| following solution (order relevant)
|
| 1) fork and fix, submit PR and use my fork until PR is not
| merged, if ever;
|
| 2) find replacement;
|
| 3) remove it and find workaround to implement the user feature
| in other way;
|
| 4) just completely abandon the feature.
| flippinburgers wrote:
| What "stack" are you using for your personal projects that is
| both widely used but so poorly supported that a bug crops up
| that prevents you from forward progress? I am genuinely curious
| about this because I can say that I have never had that
| experience with something that is popular. Then again, I am an
| extreme minimalist when it comes to introducing 3rd party
| dependencies into the code that I write.
| vstollen wrote:
| I wonder how the operational burden for a side project is.
|
| One of my key worries is that if I sell my side project to real
| users, I have to patch it, I have to monitor it, I have to answer
| support messages and fix it if it breaks for whatever reason.
| vare2 wrote:
| I'm always curious as to how side projects that are so niche and
| targeted acquire users. I would like to ask the author how much
| time and effort he has dedicated to marketing and what he learnt
| from it.
| xyzzy4747 wrote:
| The easiest way is to build something for an existing community
| where you are not disallowed from promoting your own stuff.
| Ideally you need a way to talk to a lot of target users without
| having to pay money on advertising.
|
| As for ones that manage to gain users without latching onto an
| existing community, I'm wondering as well. Perhaps good SEO or
| searchable content generation?
| nov21b wrote:
| This may be the hardest part, especially for technical
| founders. I was able to bootstrap a profitable subscription
| based service. In hindsight most credit should go to my wife
| for getting in the first users by engaging family, social
| media, forum posts and what not. Another major factor were my
| subscribers, who write site content on a daily basis, this
| generated a ton of organic traffic to my site and made a big
| difference vs having to write a couple of static SEO optimized
| pages and hope for the best. Writing the actual code was
| probably the least important part (but the most fun for sure)
| samsquire wrote:
| I don't have any business side projects or anything that earns
| money but my motivation fluctuates like the author of this
| article.
|
| I am super grateful for Python, Java, JavaScript, C, Rust, Flask,
| Firefox, Google Chrome, the Java Virtual Machine, Google's V8
| engine, GCC, Postgresql, Clang and other open source projects.
| They allow me to write software and get paid money in jobs. And
| they're completely free. So good.
|
| People like choosing what they work on and what they spend their
| time on. But there's business necessity that means we often need
| to do tasks we secretly don't want to do. Or feel forced to work
| on technology we don't agree with.
|
| I think it is unfortunate that amazing products go the financial
| path and then lose their energy and become monetisation over
| quality or passion such as Heroku But I said that we cannot force
| people to work on things we want them to.
|
| I feel we need to determine the properties of a product that
| guarantee monetisation AND quality and passion of its developers.
|
| Are Jetbrains the example of this?
| idearoots wrote:
| I wish there was more content like this - "making hundreds (not
| thousands) of $ in MRR after y years".
|
| Give a dose of realism and pinpoint the second benefit -- the
| skillset that is truly unique and worth it.
|
| You no longer care about an isolated Jira ticket. You see a
| thread from vision to execution. As a dev, you start to value
| other parts of the company and build better bridges/interfaces
| between teams.
|
| As someone said, building something on your own feels like
| staring into the abyss and eating glass. Be aware, it's not for
| everyone and can cost you -- not only $$$ but relationships and
| health.
|
| And that is even if you are passionate about the thing.
|
| It reminds me of Steve Jobs's thoughts on this
| https://www.youtube.com/watch?v=PznJqxon4zE&ab_channel=coach...
|
| Having started a side project in 2018 myself (now in low $$$$
| MRR), I can attest that passion is key -- because it's what you
| would do in your free time anyway.
| thundergolfer wrote:
| > now in low $$$$ MRR
|
| Does this mean low thousands?
| idearoots wrote:
| sorry, yes
| sredevops wrote:
| Feel free to drop a link. This is HN!
| loobuz wrote:
| https://neuracache.com/
| chasd00 wrote:
| I know from lots of past experiences that I have about 6 weeks of
| attention before something else shows up and gets me excited. All
| my side projects get scoped to 6 weeks or I don't do them.
| TobTobXX wrote:
| This is my experience as well. Though, whenever I care about
| documentation and stuff like that, I'm usually able to return
| after half a year and can continue.
| verelo wrote:
| I really appreciate reading this, i lay in bed this morning
| feeling all the doubts the author is experiencing. I've spent
| about 3 months on a new product, i spent all day yesterday trying
| to figure out how to sell it effectively. I met with sales reps i
| worked with in the past, wrote really thoughtful messages to
| prospects...No one has bitten yet.
|
| I've been here before, this is certainly not my first startup,
| but man it hurts still. I feel like I'm missing something,
| despite all my efforts, I'm just not there yet and i need to step
| back and try figure out the missing pieces before i burn too much
| time.
|
| It'll be ok, but until it is ok, it's exhausting.
| moneywoes wrote:
| What market or niche? Is this a SaaS?
| verelo wrote:
| Real estate and yep SaaS, although I kind of want to offer a
| pay per use model along side it. Just feels complicated to do
| both, i'm personally a little exhausted by the number of
| subscriptions in my life.
| SuoDuanDao wrote:
| what are you working on if you don't mind me asking?
| verelo wrote:
| It's a tool (focused on the Toronto market only for now) that
| provides detailed reports on the history of a building / area
| for realtors and/or buyers (and i guess maybe renters or self
| sellers).
|
| Trying to bring together a lot of open data sources such a
| building permit history for the property in question and the
| neighbours, nearby proposed development activity, schools,
| hospital, police, fire service locations, lead pipe
| replacement status, legality of any on premise parking etc.
| Essentially all the "due diligence" related items that come
| up when you're trying to transact and typically take a fair
| while to get to the bottom of. A report takes about 1 minute
| to pull, planning to have the service be a yearly
| subscription for the customer of around $300/year
| pards wrote:
| This sounds similar to what Core Logic [0] provides to
| realtors in Australia. The majority of realtors use it, and
| I'm sure they pay a lot more than $300/year
|
| [0] https://www.corelogic.com.au
| didgetmaster wrote:
| >The thing is, as a coder, you will be more attracted by generic
| product. Generalizing is more elegant, and if, like me, you like
| to solve problems, you will want to try to figure out a bigger
| problem than your initial scope.
|
| This is a major issue with my side project
| (https://www.Didgets.com) which is a general-purpose data
| management system. It started off as a 'file system replacement'
| where you could use it to store tens or hundreds of millions of
| files; put tags on each of them; and then do lightning fast
| searches to find subsets of them.
|
| I discovered that the tags I invented could also be used as
| columns in a columnar database table. So I went off inventing a
| way to build fast relational tables that were good for both
| transactions and analytics. I also discovered that the system can
| be used to build logging frameworks, indexing services,
| configuration management, and backup mechanisms.
|
| The problem is that I don't have the resources to fully build out
| each feature set, so it does a dozen things (some of them really
| well) but none of them are a finely tuned, polished product yet.
| levmiseri wrote:
| The motivation behind my side projects has been mostly having an
| entertaining outlet for learning new things. One of these is
| https://yare.io that taught me plenty about building something
| end-to-end. From concept, design, front end, back end and failed
| marketing efforts. Despite 0 revenue, the experience itself is
| greatly rewarding.
___________________________________________________________________
(page generated 2022-12-29 23:01 UTC)