[HN Gopher] 20 years working on the same software product
       ___________________________________________________________________
        
       20 years working on the same software product
        
       Author : hermitcrab
       Score  : 465 points
       Date   : 2025-02-21 21:22 UTC (1 days ago)
        
 (HTM) web link (successfulsoftware.net)
 (TXT) w3m dump (successfulsoftware.net)
        
       | piker wrote:
       | Great read. This was particularly funny.
       | 
       | > A mock-up of PerfectTablePlan, including icons I did myself,
       | was used without our permission by Sony in their 'Big day' TV
       | comedy series. I threated them with legal action. Years later, I
       | am still awaiting a reply.
        
         | piker wrote:
         | Also worth noting that a more detailed write up of the business
         | elements would likely go down very well here!
        
           | gwbas1c wrote:
           | Yeah, I'm really curious how the author was able to get the
           | kind of sales needed to support a family.
        
             | hermitcrab wrote:
             | https://successfulsoftware.net/category/marketing/
        
               | gwbas1c wrote:
               | The first post is a rant about SPAM, not "how the author
               | was able to get the kind of sales needed to support a
               | family"
        
               | hermitcrab wrote:
               | There are 147 articles tagged 'marketing'. Some of them
               | might be the sort of thing you are looking for. Some
               | might not.
               | 
               | If you are looking for articles about starting a software
               | business, see: https://successfulsoftware.net/starting-a-
               | microisv/
        
           | hermitcrab wrote:
           | Author here. Since you asked. This TV comedy included a plot
           | point where some wedding planning software was shown to lose
           | the seating plan. The wedding planning software was clearly a
           | mockup (probably done in Powerpoint), but was clearly based
           | on my software - even including icons I had created. I
           | thought I could get some free publicity from it. I talked to
           | a lawyer friend of my father's and he told me it would cost
           | hundreds of pounds to do the research to even send them a
           | legal letter. It was the early days for PerfectTablePlan and
           | I didn't have that sort of money. So I just wrote my own
           | letter demanding a public apology. I'm still awaiting a
           | reply, nearly 20 years later.
        
             | kevindamm wrote:
             | The JD in the signature of that kind of letter usually
             | amounts to more weight than the content, regardless of
             | whether the wording was perfect and the research duly
             | diligent.
        
               | aqueueaqueue wrote:
               | What is JD?
        
               | realityfactchex wrote:
               | Juris Doctor or Doctor of Jurisprudence [0], a kind of
               | law degree
               | 
               | In this case, it refers to the literal letters written in
               | the signature of a letter, which presumably indicate that
               | whoever wrote it studied a bunch to get into school, paid
               | a bunch to go to school, graduated with that degree, and
               | should be respected, because they may have the knowledge,
               | willingness, and resources to take the words in the
               | letter further, if they want to, given that they have
               | already somewhat attached themselves to the cause in the
               | form of the letter.
               | 
               | [0] https://law.stanford.edu/office-of-student-
               | affairs/the-docto...
        
               | aqueueaqueue wrote:
               | Damn. I am familiar with that term but hit a cache miss.
        
               | thfuran wrote:
               | And the legal right. The constitutional right to self-
               | representation applies only to criminal proceedings and
               | not all civil courts permit it.
        
               | dmoy wrote:
               | Juris Doctor, aka a lawyer
        
               | tiledjinn wrote:
               | Juris Doctor. A lawyer.
        
             | ryandrake wrote:
             | Funny but kind of sad. If it were the reverse, and The
             | Little Guy used Sony's IP without permission, 20 Sony
             | lawyers would come down on him with the ferocity of a
             | thousand gods and destroy his business. It sucks how much
             | the legal industry serves the rich and is effectively only
             | accessible to the rich.
        
               | sidewndr46 wrote:
               | Only 20?
        
             | bitwize wrote:
             | Big media production companies care a lot about copyright,
             | but only when it's _their_ copyrights being threatened.
             | 
             | Jonathan Coulton released a cover of "Baby Got Back" with a
             | melody he composed himself. The entire song, melody and
             | lyrics, was appropriated without permission by Fox and
             | performed on an episode of _Glee_ by the cast. (I say
             | "lyrics" because even the change of "Mix-a-Lot's in
             | trouble" to "Jonny C's in trouble", referring to Coulton
             | himself, was preserved in the _Glee_ version.) When Coulton
             | wrote a letter demanding at least acknowledgement of the
             | original elements he contributed to the cover song, Fox
             | insisted that their asses were covered because they paid
             | the ASCAP fees and did not have to seek permission for, nor
             | acknowledge, the use of a cover of a song they licensed.
             | 
             | If you understand laws as weapons with which the rich
             | protect themselves from the poor, a whole lot of shit
             | starts making sense...
        
         | thfuran wrote:
         | So they called his bluff.
        
       | antithesis-nl wrote:
       | Very cool! Yet:                   I found out that CDs are edible
       | 
       | PSA: CDs are not, in fact, edible, nor are DVDs or Blu-ray media.
       | Sure, if you click through, you'll see that the CD was not
       | actually damaged and that it was only the printed license key
       | that got mauled, but still: CDs are mostly polycarbonates, and
       | not, in any way shape or form, part of a healthy diet, no matter
       | what your local party liaison tells you.
        
         | dylan604 wrote:
         | You're clearly not preparing them correctly. You have to ground
         | them down to a fine micro-plastics powder.
        
           | cluckindan wrote:
           | A quick and easy way to do this is with an angle grinder.
           | Replace cutting disc with compact disc and fire 'er up!
           | 
           | Disclaimer: don't
        
             | aqueueaqueue wrote:
             | Or just live normal life. You get free microplastics.
        
           | Etheryte wrote:
           | A spoonful of microplastic in your brain [0]? That's rookie
           | numbers.
           | 
           | [0] https://www.smithsonianmag.com/smart-news/the-human-
           | brain-ma...
        
           | kmoser wrote:
           | I prefer the softer, warmer flavors of ground-down vinyl.
        
         | aiauthoritydev wrote:
         | Wrong advice. My Uncle did eat few of them. Some thought it was
         | some trick but later the doctor in charge of autopsy did
         | confirm he ate them.
        
           | aqueueaqueue wrote:
           | Edible doesn't mean eatable lol
        
         | chrisweekly wrote:
         | For the non-native English readers here, "edible" means "can be
         | eaten", vs the obvious typo "editable", ie "can be edited".
         | (OP: Sorry if I killed the humor, it was at least grin-worthy.)
        
           | robocat wrote:
           | Follow the link - the CD was chewed by a dog
        
       | 7thaccount wrote:
       | Does it still use a genetic algorithm and is this necessary? I'd
       | guess there is some kind of MIP or IP solver solution that you
       | can just call out to, but that could be extremely wrong for all I
       | know.
        
         | hermitcrab wrote:
         | Yes, it still uses a genetic algorithm which is capable of
         | producing decent solutions for thousands of seats in the time
         | you can drink a coffee. Also it is highly specialized for the
         | nuances of seating plans (do you want your partner sitting to
         | the left of right, which tables are near each other, do you
         | want to alternate genders).
        
           | 7thaccount wrote:
           | Yeah, that's cool, but I'm curious if an algorithm exists for
           | that problem that is actually globally optimal. My
           | understanding is that genetic algorithms can get stuck in
           | local minimums. I guess it doesn't really matter though if
           | you can just do a simple check at the end to see if all the
           | rules have been met.
        
             | hermitcrab wrote:
             | Pretty much any optimization algorithm (apart from brute
             | force) can get stuck at a local optima.
             | 
             | Often with seating plans it isn't possible to satisfy all
             | criteria. Generally you can only sit next to 2 other
             | people.
             | 
             | Combinatorial optimization problems are hard.
        
       | NKosmatos wrote:
       | Nice one! I would expect more versions of PerfectTablePlan all
       | these years, going from v1 to v7 is roughly 3 years per major
       | release ;-)
        
         | zoover2020 wrote:
         | I find it wonderful. As the author mentions in the original
         | post, his code does not have a lot of bugs and is mostly
         | feature complete as well.
         | 
         | I think most people never get to work with such software as we
         | need to launch $NEXT_PROJECT
        
       | 101008 wrote:
       | Excellent read. I was happy for the author while I was reading
       | it, looks like it was and still is an amazing journey.
       | 
       | By the way, some engineers are dream with working at FAANG,
       | others to create a million dollars startup. My dreams was always
       | something like this: work on a niche piece of software that
       | solves a problem for a subset of people. Give them a something
       | that avoids a headache for them, deliver value, and get paid. You
       | aren't going tonbe millionaire, but it's going to be a nice ride.
        
         | eikenberry wrote:
         | I wish there was a job site for people like us. I'd love to be
         | able to find a job at a small, niche company like this.
        
           | jwr wrote:
           | Thing is, many of those niche companies are single-founder
           | businesses, where founders do not want to hire employees.
           | Many reasons, not necessarily financial: in my case, I just
           | got tired of dealing with people and their issues and decided
           | I want to depend only on myself.
           | 
           | So, jobs of this kind are rather scarce.
           | 
           | Also, in a tiny business, the founder will usually be super-
           | efficient and productive. Most employees are not. There is an
           | impedance mismatch: a hired programmer will talk about the
           | latest and greatest JavaScript framework and the need to
           | rewrite everything in YaddaOfYadda, because that's what the
           | World is doing these days, while the founder will think about
           | the benefit for the users (usually none) and the immense
           | costs (in terms of money, bugs, and time wasted).
           | 
           | Because of all this, it's not very probable that you'll find
           | a job at a niche company like this.
        
             | eikenberry wrote:
             | It doesn't have to be as tiny as in the article, but more
             | just a small, bootstrapped company with a good niche to
             | serve. These sorts of company should be very common and
             | jobs at them should be plentiful (due to number of shops,
             | even though each would be small), yet they are nearly
             | impossible to find. I bet they have an equally poor time of
             | finding people. Seems like an under served market.
        
               | tonyedgecombe wrote:
               | I think there used to be a lot more small software
               | companies about but as the industry has matured the trend
               | is towards consolidation.
        
         | palata wrote:
         | Some niches can be very big, too! It's perfect when it's small
         | enough to not be interesting for BigTech, but big enough to pay
         | a few up to a few hundred employees!
        
           | hermitcrab wrote:
           | Indeed. Software is mostly written by young white men for
           | other young white men. Consequently there are loads of under
           | exploited niches, while all the 'sexy' niches are incredibly
           | competitive.
        
             | fph wrote:
             | I don't understand where gender, age, and ethnicity come
             | into play in this.
        
               | hermitcrab wrote:
               | Not trying to make a poltical point.
               | 
               | Pick an interest that young white men have. You'll
               | probably find loads of software that caters to it. Pick
               | an interest that an equal number of retired women have.
               | You will almost certainly find a lot less software that
               | caters to it. It is simply because people write software
               | for markets they understand. Most programmers (in my
               | experience) are young white men. A lot less retired women
               | have the skills or motivation to write software.
        
               | otterley wrote:
               | Sounds like an underserved market waiting to be tapped.
               | How do we address it?
        
               | hermitcrab wrote:
               | Talk to your older relatives and female friends.
        
               | nikau wrote:
               | The market isn't there since the petticoat 5 covered all
               | bases
        
               | hermitcrab wrote:
               | LOL. I hadn't seen that before.
               | 
               | https://www.reddit.com/r/vintagecomputing/comments/8nzz23
               | /pe...
        
               | crackez wrote:
               | It sounds like the view of some person with zero
               | experience in the real world of professional software
               | engineering. My experience is the opposite. The USA has a
               | very diverse software workforce.
        
             | palata wrote:
             | I don't understand the downvotes... I think it is true that
             | there are under exploited niches, probably in fields that
             | most developers aren't familiar with.
        
         | jebarker wrote:
         | +1 this is the dream career!
        
         | achillesheels wrote:
         | Emphasis on ride.
         | 
         | El camino es mejor que la posada.
        
         | losradio wrote:
         | I accidentally many years ago fell into a job where I worked on
         | parking automation and fee computers for parking garages,
         | airports, cruise terminals and rental car agencies. It's a
         | niche but fledgling industry. Not many people know how much
         | software runs parking garages and the like. It didn't pay very
         | well but the firmware was written in Turbo C and the GUI
         | portion was written in Borland C++ Builder 5 with Delphi. There
         | is a surprising amount of sensor integration with inductive
         | loops and sensors from gates, etc
         | 
         | I tried to create some modernized software at that company with
         | a License Plate Inventory application product using C#, VB
         | .Net, SQL Server, SQLCE (for Windows XP Embedded) and
         | ActiveSync. We sold a hundred copies of it.
        
       | huevosabio wrote:
       | > I was getting married and I volunteered to do the seating plan
       | for our wedding reception. It sounded like a relatively
       | straightforward optimization problem, as we only had 60 guests
       | and no family feuds to worry about. But it was surprisingly
       | difficult to get right.
       | 
       | Man, this sounds way too familiar!
        
       | palata wrote:
       | Makes me nostalgic of desktop software. I hate that everything
       | today is a website and requires a ridiculously fast internet
       | connection. And what seems to be in fashion for "desktop
       | software" today is to ship a website together with a whole
       | browser and pretend it's not a website.
       | 
       | I wonder how the licensing works: do people pay for newer
       | versions? Or do people just buy one version but more people get
       | married every year, bringing new customers? I guess it is not a
       | subscription model, right?
        
         | hermitcrab wrote:
         | You buy a perpetual licence for version N. You can then
         | optionally upgrade to version N+1 later at a 60% discount.
        
           | lotsoweiners wrote:
           | The best business model.
        
             | beached_whale wrote:
             | I am also ok with one like Jetbrains where you subscribe
             | and after a year you can keep the last version you paid
             | for. They do a lot of updates, so the money is going into
             | the product but one isn't forced to stay in order to use
             | it.
        
               | DrBenCarson wrote:
               | Confusing IMO because they use years as the major
               | version. If I subscribe May 24 - May 25 and they don't
               | release 2025.1 until just after my sub ends...which
               | version do I get?
               | 
               | That said I'm a jetbrains fan and like their recent move
               | to include all features in community editions (need
               | licensing for commercial use obviously)
        
               | beached_whale wrote:
               | I didn't exactly know, but found
               | https://sales.jetbrains.com/hc/en-
               | gb/articles/207240845-What...
        
               | DrBenCarson wrote:
               | Sounds like the fallback license is for the version
               | available on the date the 12 mo subscription started
        
             | dehrmann wrote:
             | It's not actually that different from the subscription
             | model; the interval is just longer. At some point, you'll
             | upgrade your computer and find the old version of the app
             | no longer works, and you'll be forced to upgrade. Depending
             | on how quickly the app evolves, you might prefer the
             | subscription model so you can follow new how-tos, and it
             | can be more reliable since developers are only supporting a
             | few versions out in the wild.
             | 
             | I'm not saying you need to be on the bleeding edge, but if
             | any part of your personal tech stack is older than ~4
             | years, it'll start to have problems, and you're going to be
             | left behind.
        
               | ch33zer wrote:
               | Really? I'm still using sublime 2 from 10 years ago and
               | it still works great across Mac and windows.
        
               | antaviana wrote:
               | I believe it is in this interview from 1996 where I saw
               | Bill Gates saying the same thing about Microsoft
               | products, he saw them as subscriptions. It's a long but
               | interesting interview.
               | https://www.youtube.com/watch?v=VFFlO7yBIBM
        
               | hermitcrab wrote:
               | Microsoft is very good at backward compatibility. So 10+
               | year old versions of PerfectTablePlan probably work on
               | Windows 11.
               | 
               | Apple is much less good at backward compatibility. It is
               | a bit of a two edged sword. Customers have to upgrade,
               | you also have to keep updating libraries and releasing
               | new versions to keep up.
        
               | _kush wrote:
               | >At some point, you'll upgrade your computer and find the
               | old version of the app no longer works, and you'll be
               | forced to upgrade.
               | 
               | It comes down to the developers to make sure the older
               | versions are regularly updated and make sure they run on
               | newer operating systems and architectures.
        
               | dehrmann wrote:
               | This is why the model doesn't work. You can't support
               | shrinkwrap software indefinitely.
        
           | hiAndrewQuinn wrote:
           | I especially like this if the 60% multiplier becomes 60%2 at
           | N+2, 60%3 at N+3, and so on. Feels like you're getting
           | rewarded for hopping on early.
        
             | hermitcrab wrote:
             | Too complicated. I charge the same for v5 -> v7 and v6 ->
             | v7.
        
               | hiAndrewQuinn wrote:
               | Well, I like it anyway.
        
               | anthropodie wrote:
               | You mentioned you have been developing Indie products
               | since 2005 in your about section. Can I read about this
               | somewhere?
        
               | hermitcrab wrote:
               | Pretty much the entire https://www.successfulsoftware.net
               | blog is about that. Maybe start with:
               | 
               | https://successfulsoftware.net/starting-a-microisv/
        
           | palata wrote:
           | Do you have a lot of people buying upgrades? Still wondering
           | if this market is not full of people who buy it one time for
           | their wedding :-).
        
             | thinkcontext wrote:
             | Probably wedding planners are the biggest customers.
        
         | rvz wrote:
         | > Makes me nostalgic of desktop software. I hate that
         | everything today is a website and requires a ridiculously fast
         | internet connection. And what seems to be in fashion for
         | "desktop software" today is to ship a website together with a
         | whole browser and pretend it's not a website.
         | 
         | Funny isn't it? These days developers experienced with building
         | typical desktop software are being asked Leetcode hard puzzles
         | to find the most optimal solution on the first attempt.
         | 
         | Yet when they are hired most of them choose what I see as the
         | most inefficient (in both memory, disk space and runtime),
         | suboptimal and very low quality software as the "solution".
         | When I mean "the most" it really is _the_ worst solution
         | possible, which is all these Electron based  "desktop apps"
         | which is an entire browser rebranded as a "desktop app".
         | 
         | It is even laughable that those who believe using a faster
         | language when using Electron would make it more performant.
         | This has never been more further from the truth as the worst-
         | case performance still applies as long as you are using
         | Electron.
         | 
         | SWEs not being able to build (native) desktop apps or apps that
         | don't use a browser is a skill issue.
        
           | nobankai wrote:
           | > SWEs not being able to build (native) desktop apps or apps
           | that don't use a browser is a skill issue.
           | 
           | It's a runtime issue. If developing a native app requires an
           | expensive SDK, complex distribution agreement or
           | multiplatform codebase, any rational software engineer will
           | choose to ship once and run anywhere. Anything else is a
           | waste of time and money unless management dictates otherwise.
           | 
           | Electron will be king until shipping native interfaces is as
           | equally accessible as web development.
        
             | zoom6628 wrote:
             | This. And I live in hope that WASM runtimes can address
             | some or all of this one day.
        
               | xp84 wrote:
               | So then we can ship a binary on top of JavaScript in a
               | browser engine on top of the native platform! ;)
        
               | vram22 wrote:
               | Yeah!!!
               | 
               | Time for Greenspun's _eleventh_ rule: ;)
               | 
               | https://en.m.wikipedia.org/wiki/Greenspun%27s_tenth_rule
        
             | TeMPOraL wrote:
             | > _Anything else is a waste of time and money unless
             | management dictates otherwise._
             | 
             | Management won't say otherwise because management relies on
             | what software engineers tell them, as _it 's the job of the
             | engineer_ to consider quality, reliability and operational
             | efficiency, and advise management on the tradeoffs
             | involved. An engineer can _choose_ to not pick the cheapest
             | possible option.
             | 
             | Your "rational software engineer" instead sounds more like
             | someone that's happy to go with substandard solution that's
             | bad for the user _and bad for the entire field of software
             | engineering_ (the more it 's used, the more it's
             | normalized), and then hide behind greedy management and
             | penny-pinching beancounters.
             | 
             | People sometimes wonder if software wouldn't get better
             | (boy technologically and socially) if software engineering
             | was a licensed profession. Well, _we don 't deserve to be_
             | licensed professionals, because we've abandoned respect and
             | loyalty to our field, and became just "professionals" in
             | the cultural sense of doing cheapest stuff the fastest and
             | dumping all externalities on customers (on third parties).
        
               | sigseg1v wrote:
               | > People sometimes wonder if software wouldn't get better
               | (boy technologically and socially) if software
               | engineering was a licensed profession.
               | 
               | In some countries such as Canada, it is a licensed
               | profession and if you refer yourself as an engineer
               | without holding a PEng you can have legal action taken
               | against you.
               | 
               | However, all this has done is make it such that nobody
               | actually holds a software PEng. The only software PEng I
               | know works at the university nearby and I've never met a
               | colleague with designation. Everyone gets a SEng degree
               | but knows no PEng to do a mentorship under so never gets
               | designated. Lack of participation is likely a contributor
               | to being an underdeveloped field. General public
               | confusion from positions in the USA that wildly throw
               | around the title "software engineer" for non-PEng doesn't
               | help.
        
               | nobankai wrote:
               | Conflating fewer native interfaces with the loss of
               | respect software engineers have is like saying plumbers
               | all went soft at the invention of the plunger. Native
               | apps are a waste of time if you want to sell a successful
               | product. It really just is that simple, I'm sorry all the
               | success stories like Slack don't use the native interface
               | on your OS but that doesn't justify attacking the field
               | as a whole.
               | 
               | It's true; this is and will be an OEM issue until the end
               | of software engineering itself. Manufacturers will either
               | align their incentives or get thrown to the wayside by
               | everyone that makes money today.
        
               | bitwize wrote:
               | > Your "rational software engineer" instead sounds more
               | like someone that's happy to go with substandard solution
               | 
               | A grizzled software engineer was telling me about how we
               | were just moments away from AI that would pretty much do
               | almost all the coding for us, leaving software engineers
               | to make only the highest level decisions. My response
               | touched on the low quality of such software and of the
               | tendency of engineers who use AI assistance to develop
               | "skill issues" to the point that they cannot function
               | without the AI tool.
               | 
               | "Yes," he told me, "but what I care about is my PAYCHECK.
               | And AI helps me ship much faster."
               | 
               | A rational software engineer cares about their paycheck.
               | A rational software company cares about revenues vs.
               | expenses. If you can get a lot of revenue out of very
               | little effort investment by using solution X, you use
               | solution X. Period. End of statement.
        
             | tonyedgecombe wrote:
             | Native apps don't require an expensive SDK, it's free on
             | all the main desktop platforms.
             | 
             | They also don't require a distribution agreement (as long
             | as you aren't putting them in an App Store).
             | 
             | It's really not that hard, Fork is a great example of a
             | cross platform app with a rich UI developed by just two
             | people.
             | 
             | https://git-fork.com
        
               | nobankai wrote:
               | Wow, it's just like gitg except it costs an arm and a leg
               | instead of being free and open source!
        
               | hermitcrab wrote:
               | $59.99 = "arm and a leg"?
        
               | nobankai wrote:
               | For a git interface with multiple open source
               | alternatives? Yeah, this is a tax for people too stupid
               | to figure out commit -am.
        
         | fuzztester wrote:
         | >And what seems to be in fashion for "desktop software" today
         | is to ship a website together with a whole browser and pretend
         | it's not a website.
         | 
         | yeah! shipsters
         | 
         | /s
         | 
         | ugh
        
         | skinner927 wrote:
         | I am fully aware how much more performant native desktop
         | applications can be compared to the "let's ship a browser"
         | popular alternative.
         | 
         | That said, do you, or anyone else who often makes this (fair)
         | complaint, have any experience writing native desktop
         | applications? Have you ever tried to implement drag and drop,
         | animations (like accordions), modals, gradients, and custom
         | elements? Not to mention, GPU acceleration.
         | 
         | I can only speak for Windows and Linux, but the native APIs are
         | atrocious. The frameworks for these native APIs are cumbersome
         | and inflexible. Styling is, without a doubt, the most complex
         | part. It's all so complex that shipping a browser + an api to
         | talk to the host is easier.
        
           | jeremyjh wrote:
           | If you use Qt, like in TFA, then you don't have those issues.
           | You use a markup language for layout if you want, javascript
           | if you want, C++ if you want.
        
           | andrekandre wrote:
           | > Have you ever tried to implement drag and drop, animations
           | (like accordions), modals, gradients, and custom elements?
           | 
           | not to sound like a salesperson but its not too hard in
           | (apple) appkit [1] using cocoa and core animation [2]
           | 
           | (and all of this is even easier in swiftui especially
           | animation and styling [3])
           | 
           | [1] https://developer.apple.com/documentation/AppKit/drag-
           | and-dr...
           | 
           | [2] https://developer.apple.com/library/archive/documentation
           | /Co...
           | 
           | [3] https://swiftui-lab.com/custom-styling/
        
             | koakuma-chan wrote:
             | You have to own a MacBook though.
        
           | nikau wrote:
           | Call me a boomer, but I preferred old apps that had a
           | consistent interface instead of all the random wheel
           | inventing.
        
             | riffraff wrote:
             | I don't recall a single time I thought "gosh, I wish this
             | app used an accordion". But custom controls, e.g. the
             | table-and-chair view in TFA seems a sensible thing to have
             | in specific apps.
        
           | mixmastamyk wrote:
           | Don't style it, please. I chose my system theme for a reason.
        
           | gmueckl wrote:
           | You found the reason why Qt is popular.
        
           | lazypenguin wrote:
           | You are right, building a good UI for the desktop has become
           | exceedingly difficult. In my experience new UI toolkits try
           | to mimic the web experience (kivy, QML, Slint, Flutter, etc.)
           | and end up being threadbare with the simplest widgets
           | available. In my opinion, every new UI toolkit since
           | QtWidgets/WinForms/Delphi/WPF/Win32/Gtkmm era has missed the
           | point. The desktop is a power tool and requires powerful
           | widgets. Virtualized lists, data grid with complex
           | interactions, drag and drop, OS integration, modals,
           | background tasks, docking windows, etc. A toolkit that puts a
           | slider, some text and buttons on the screen doesn't solve the
           | harder problems and the web browser will run circles around
           | that workflow. Easier UX can be built in anything really.
           | Until there's a desktop app framework that solves the hard
           | problems in desktop UI dev then desktop will languish and
           | hard stuff will continue to be hard.
        
             | ogoffart wrote:
             | I'm developer of Slint and I'm glad to see Slint mentioned.
             | I want to clarify that we're not trying to mimic the web.
             | We have a great vision for the desktop integration, but we
             | unfortunately have limited resources. Our team is fairly
             | small and we are mainly working with paying customers to
             | pay the bills, which are mostly in embedded space at the
             | moment. I agree with your points, and while there's still a
             | lot to do, I hope Slint can become a strong option for
             | building powerful complex desktop applications.
        
               | lazypenguin wrote:
               | I like Slint, the technical work is extremely impressive.
               | I even contributed to the project! I hope you can realize
               | those goals, you would fill a massive vacuum in the wider
               | ecosystem.
        
         | codelion wrote:
         | That's a really good point about the complexity of native
         | desktop development. I've definitely felt that pain trying to
         | wrangle native APIs for even simple UI elements. It took me a
         | while to figure out how to get smooth animations working in one
         | project.
         | 
         | On the other hand, shipping a whole browser feels so wasteful,
         | especially for smaller apps. I've been experimenting with Tauri
         | recently, which uses the system's webview. It's a nice middle
         | ground, and the performance is noticeably better than Electron
         | from what I've seen.
        
         | hiAndrewQuinn wrote:
         | >I hate that everything today is a website and requires a
         | ridiculously fast internet connection. And what seems to be in
         | fashion for "desktop software" today is to ship a website
         | together with a whole browser and pretend it's not a website.
         | 
         | Earlier this week I cobbled together a tiny, totally self-
         | contained pocket dictionary between Finnish and English [1].
         | It's a TUI, but I tested it on Mac and Windows and the program
         | works perfectly fine there -- double clicking on it just pops
         | open a little terminal for tsk to do its thing in.
         | 
         | The first bit of advice I got when posting it online to my
         | usual places was "Why not make it a normal GUI program, or
         | better yet, use React?" While I did briefly consider it, it
         | really seemed like overkill for the very simple problem I was
         | trying to solve here, and it might balloon the ~30 MB exe to
         | >100. To be fair, I have negative interest in monetizing this
         | kind of thing.
         | 
         | [1]: https://github.com/hiAndrewQuinn/tsk
        
           | palata wrote:
           | > it really seemed like overkill for the very simple problem
           | I was trying to solve here
           | 
           | Usually people throw heavy frameworks at simple problems just
           | because it's easier, not because it's needed.
           | 
           | I like a lightweight TUI a lot better than a huge ElectronJS
           | app.
        
             | DrBenCarson wrote:
             | Yes and most engineers building GUIs professionally use
             | those frameworks day in and day out so they're just very
             | comfortable with using them
             | 
             | Independent of the implementation, people build GUIs to
             | make the functionality accessible to a LOT more users
        
         | _kush wrote:
         | The most common model I see these days is a lifetime license
         | and one/two year of free updates with it. Once your free
         | updates are over, you can keep using the last covered version
         | forever, or purchase another year of updates for a discount
         | (20% to 40% off of the original license price).
         | 
         | This has 2 advantages:
         | 
         | - You can buy the additional updates whenever you want in the
         | future so it's leaner than a subscription.
         | 
         | - It also makes sure you get at least 1 year of updates, as
         | opposed to unknown time period of updates when the licenses are
         | tied to a major version.
        
       | asim wrote:
       | Kudos to you. The only piece of software I wrote was open source
       | and could never find a way to monetize it beyond consulting and
       | VC funding. A sustainable long term business selling a piece of
       | software that just works is all we could ever hope for as
       | developers.
        
       | mezod wrote:
       | Living legend! Lifestyle biz bootstrappers ftw.
       | 
       | Since I cannot ask you your actual ARR, can you answer if you
       | believe it's feasible to reach high 7 figures/low 8 figures in
       | ARR as a solopreneur over a long period of time? I don't mean 1
       | year $10M ARR AI trendy apps, but a consistent $10M ARR business
       | year after year >20 years.
        
         | hermitcrab wrote:
         | I can think of 1 solo bootstrapped founder who says he is doing
         | ~$1 million dollars per year. But he is an outlier.
         | 
         | The more sales you make the more admin/sales/support overhead
         | there is. Eventually you reach a point where your sales plateau
         | or you take on staff to keep growing.
        
         | aqueueaqueue wrote:
         | Yes. Not me, but check out indiehackers as they show stripe-
         | verified revenues.
        
           | hermitcrab wrote:
           | But not their expenses? Revenue != Profit.
        
             | aqueueaqueue wrote:
             | Most of these businesses are software as a service so it is
             | mostly profit. There will be some hosting and marketing
             | costs sure.
             | 
             | Unlike startups they are solo operated and usually won't
             | hire people unless they can really afford it an need it.
        
               | hermitcrab wrote:
               | Advertising can be very expensive.
        
               | aqueueaqueue wrote:
               | 90%+ of those IH businesses must be making a profit. They
               | are bootstrapped by frugal people. They aren't likely to
               | blow all their profit on ads once they hit 1M arr.
        
         | jwr wrote:
         | >$300k ARR is definitely doable with a B2B product and it lets
         | you live comfortably in most places in the world without
         | worrying about money.
         | 
         | I think >$1M ARR is hard, you need an exceptional niche (high
         | margin, low support load, easy marketing) and luck.
         | 
         | I can't see a >$10M ARR happening for a solo-founder business.
         | At least not for my business niche.
         | 
         | Bear in mind that growing a SaaS takes time and it's a multi-
         | year project.
        
         | sgerenser wrote:
         | I'm sure its possible, but I'd be very surprised if this
         | particular product (due to being fairly niche, and one-time
         | purchase vs. subscription) was earning > $1M ARR, let alone
         | $10M. But I could be wrong!
        
       | henning wrote:
       | It's cool to see a product that apparently uses evolutionary
       | algorithms do so well.
        
       | pmkary wrote:
       | Makes me so happy to see people like this exist. All good
       | software, really all good software, is indie small ones made with
       | love and care whose authors also lived a good life outside of the
       | cubicle mess. (I know about the exaggeration, but really, 95% of
       | what I love is indie software, you don't find that kind of
       | creativity and love in any company)
        
         | emeril wrote:
         | yeah - I'm sure Everything by voidtools is precisely that
        
         | Tossrock wrote:
         | Spacemonger is this to a tee.
        
         | p3rls wrote:
         | it's true, you can always tell a product that is loved from a
         | product that grew up without it.
         | 
         | i'd add as a caveat that your users probably will not be able
         | to tell the difference and it will break your heart if you care
         | about these things too much.
        
         | bnastic wrote:
         | There are a lot of small companies / single devs working in
         | very technical, pro-oriented, industries. They still thrive in
         | the days of browsers and javascripts and what not, writing
         | super optimised, super inovative, native code.
         | 
         | Like all the 'audio plugins' people that essentially write
         | .so's that go into the big desktop audio workstations, doing
         | anything and everything with sound, while also experimenting
         | with various UI/UX paradigms, unrestricted by what's possible
         | in the DOM/CSS, integrating hardware into it all etc. (I
         | imagine similar in the video/rendering industry, but I'm not
         | too familiar with that side)
        
       | m463 wrote:
       | > The lowest point was the pandemic, when sales pretty much
       | dropped to zero.
       | 
       | Don't know why there wasn't a perfect table plan 6-foot edition.
       | 
       | I remember going to an event where someone took out one of those
       | segmented collapsing ruler things to put people a minimum
       | distance apart.
        
         | hermitcrab wrote:
         | There is a social distancing option, added due to the pandemic.
         | ;0)
        
           | LoftyHobbitMan wrote:
           | This cracks me up. Sounds like a good selling point though.
        
       | wvenable wrote:
       | This post makes me nostalgic for the old Joel on Software forums.
        
         | hermitcrab wrote:
         | I miss Joel's writing. Erik Sink as well.
        
           | wvenable wrote:
           | I'm glad you're still doing well. I envy your position; I've
           | always wanted to work on a single piece of software of my
           | own.
           | 
           | I built a few things while working for startups but nothing
           | stuck. Now I build lots of software in a nice secure
           | corporate environment. I mostly get to do what I want and how
           | I want it but ultimately it's not mine.
        
             | hermitcrab wrote:
             | Sounds like you have a reasonable mix of job security and
             | freedom. The grass is always greener on the other side!
        
               | wvenable wrote:
               | It is exactly that reasonable mix -- it's why I've stayed
               | for as long as I have. Previously I was a contractor and
               | so ran my own business I remember the negatives of that
               | sort of thing.
               | 
               | Some of the things I've built could be entire businesses
               | on their own and it feels like a lot of missed
               | opportunities.
        
               | hermitcrab wrote:
               | >Some of the things I've built could be entire businesses
               | on their own and it feels like a lot of missed
               | opportunities.
               | 
               | It is very hard to know what will succeed and what won't.
        
       | jwr wrote:
       | Now compare the longevity and sustainability of this software
       | product to VC-funded startups, which are more like blips on the
       | radar before they disappear by going bankrupt or getting
       | acquired.
       | 
       | Having multiple people in a company does not guarantee that it
       | will stick around. People saying "but it's a one-person business,
       | I can't trust it in the long term" are wrong.
        
         | louthy wrote:
         | > People saying "but it's a one-person business, I can't trust
         | it in the long term" are wrong.
         | 
         | The problem is: people aren't immortal. That one person could
         | be dead tomorrow. So, you can't trust any one person business
         | in the long term, by definition.
        
           | xp84 wrote:
           | Depends on what level of trust you need to have. Obviously
           | you can't even trust a multibillion-dollar public company
           | like Google to keep maintaining a product forever, or even
           | for a couple years.
           | 
           | On the other hand, someone selling a stable piece of desktop
           | software doesn't even require a tremendous amount of trust.
           | Just the trust not to ship malware or massive security holes.
           | Even if they fully retire and delete the source code, your
           | software will keep working. That's more than I can say for
           | Google reader, or the Humane AI Pin.
        
           | cfn wrote:
           | When he dies, if not before, he or his family can sell the
           | business. There's even websites/communities where you can
           | post this kind of business for sale.
        
             | chgs wrote:
             | The software will still work for years even if his who
             | family is wiped out in a plane crash.
             | 
             | A saas product will die when the credit card bounces a
             | couple of months later.
        
               | hermitcrab wrote:
               | >even if his who[le] family is wiped out in a plane
               | crash.
               | 
               | Thanks for that cheery thought.
        
           | tonyedgecombe wrote:
           | At age 59 there is a 5% chance he will die in the next year.
           | What's the chance that your enterprise SaaS is going to get
           | canned in that period?
        
         | fuzztester wrote:
         | y
         | 
         | see: our incredible journey
         | 
         | side note: after I typed "our incredible j", and then in this
         | very text box, mind you, not even in Google, the full word
         | "journey" popped up as a choice for me to select.
         | 
         | shows ...
        
           | fuzztester wrote:
           | here you go, downvoter dude (we can guess you're from one of
           | the types described below, or aspire to be, meaning the
           | startups that gets acqui-hired, and dumps their users ):
           | 
           | https://www.gyford.com/phil/writing/2013/02/27/our-
           | incredibl...
           | 
           | https://ourincrediblejourney.tumblr.com/post/89180616013/wha.
           | ..
           | 
           | https://ourincrediblejourney.tumblr.com/about/
        
             | raziel2p wrote:
             | nah I just don't like your writing style.
        
         | keepamovin wrote:
         | It's all just mindgames bullshit to get you to accept worse
         | terms, or ignorance. Your characterization is right. VC boosted
         | products are sometimes like shit crops sewn in bad soil but
         | laden with chemical fertilizer to force growth. They might have
         | no fundamental strength.
        
       | ozim wrote:
       | After 15+ year building stuff for others I would totally like to
       | have one app that earns money and I don't get requirements from
       | bunch of business people.
        
         | fragmede wrote:
         | you'd end up getting requirements from users yourself, instead
         | of business people
        
           | J_McQuade wrote:
           | Yeah, but I'd hope that I can understand my users.
        
           | ozim wrote:
           | At least someone who knows the system and cares about it with
           | ability to say no instead of promising BS to any stupid idea
           | to inflate quarterly results and then leave to a different
           | job.
        
       | robocat wrote:
       | > web. But I couldn't face rewriting PerfectTablePlan from
       | scratch for the web.
       | 
       | Someone will develop for the web. But perhaps you don't want to
       | make it easier to clone.
       | 
       | Building a business to sell for your retirement funds would need
       | much more work and would get more money if SaaS for Planners?
       | Unless you sell your engine to a wedding planner software
       | specialist.
       | 
       | The browser as a platform is daunting (touch support, small
       | screen support, CSS, HTML, DOM, connections, browser versions,
       | frameworks).
       | 
       | > Javascript. Ugh.
       | 
       | I personally never found JavaScript to be the problem - I think a
       | single developer can good engineering workarounds. Avoid the bad
       | parts.
       | 
       | I developed for the browser using JavaScript: without using
       | frameworks because my engineering was better than what was
       | available. I personally would still avoid a frameworks unless I
       | needed accessibility (which is crazy hard to support).
       | 
       | > Also PerfectTablePlan is quite compute intensive, using a
       | genetic algorithm to generate an automated seating plan and I
       | felt it was better running this on the customer's local computers
       | than my server. And some of my customers consider their seating
       | plans to be confidential
       | 
       | Sounds like a price point: standalone should be more expensive.
       | However likely difficult to hit that enterprise sale point (re
       | patio11?)? Ideally you want to charge expensive wedding planners
       | much more. Low end planners could still use your web version.
       | 
       | I assume you've had competitors that have sunk because you are
       | best value for money?
       | 
       | Loved the writeup.
       | 
       | I'm guessing I've written a bunch of ignorant stuff - I'm just
       | practicing my thinking by writing... Most important, I presume
       | you're looking forward to finishing up and not doing more work. I
       | was.
        
         | hermitcrab wrote:
         | >Someone will develop for the web.
         | 
         | A number of web based alternatives to PerfectTablePlan have
         | appeared over the years.
        
       | fragmede wrote:
       | What's not mentioned is marketing. I tried a couple of queries
       | into Google, and this software didn't come up. I wonder what a
       | couple k of marketing and ad spend a would do for revenue.
       | There's clearly a need for this kind of software, and little bit
       | of marketing could help others find it when they need it.
        
         | hermitcrab wrote:
         | If there was a way to spend $X and get $2X back and it didn't
         | require a lot of my time, I would be on it.
        
           | fragmede wrote:
           | The problem is we as engin-nerds don't want to pay for
           | something nebulous like marketing, with no proof that it pays
           | off. And back before the Internet, that was the world of
           | advertising. How do you track if that crazy expensive
           | billboard in Times Square was seen by people and resulted in
           | an uptick in sales? But thanks to tracking, it's easier to
           | quantifiy results.
           | 
           | Time is money so I'd suggest finding somewhere/someone and
           | giving them the money for their expertise, but it doesn't
           | takes much time, you could do it yourself. Create a Google
           | AdWords account and buy AdWords for "wedding planning seating
           | chart" or other combination, and see how many hits you get
           | for that, and judge for yourself if it's worth it. A
           | competitor (zola.com) already has the first result for that,
           | but that should be enough to for you started. My email's in
           | my bio if you want to chat more.
        
             | hermitcrab wrote:
             | I've been doing PPC for PerfectTablePlan since the days
             | before it was even called Google Adwords.
             | 
             | https://successfulsoftware.net/category/adwords/
             | 
             | PPC used to be very lucrative, but the bid prices have
             | inflated to the point that it is increasingly borderline.
             | I'm currently turning PPC on and off alternate weeks to try
             | and see if the ROI is positive. This is an off week.
        
               | fragmede wrote:
               | oh wow thank you for blogging about it too! sorry for
               | assuming you hadn't
        
       | kayo_20211030 wrote:
       | Love it. Keep on keepin' on.
        
       | mparnisari wrote:
       | Loved this post! It's my dream too to come up with an idea for
       | software that doesn't exist, that I can build, and that people
       | are willing to pay me for ;)
        
       | racl101 wrote:
       | Ok that Perfect table plan software looks amazing. I so wish I
       | could work on something like this. A standalone desktop app that
       | solves a need and that people keep coming back to year after
       | year, that people love, that people will buy.
       | 
       | You are living the dream!
        
       | 4rt wrote:
       | You're living the dream, great work.
       | 
       | Looks like an impressive bit of software and not some flash in
       | the plan disruption nonsense.
        
       | bsnnkv wrote:
       | Reading this gave me a lot of hope.
       | 
       | I started selling software licenses this year, and I would be
       | very happy if I were able to write a post like this about the
       | same software 20 years from now!
        
       | alberth wrote:
       | > It is about 145,000 lines of C++.
       | 
       | Huge respect for maintaining such a large codebase.
        
       | kylecazar wrote:
       | This is awesome and I love stories like this. I miss installable
       | software.
       | 
       | "It has seated royalty, celebrities and heads of state"
       | 
       | Reminded me that there really are more potential attack vectors
       | in software than one would think. Not immediately sure what a bad
       | actor could do with manipulating or stealing seating charts but
       | I'm sure thre's something.
        
         | hermitcrab wrote:
         | Google "supply chain attack". It is a worry.
        
       | tasuki wrote:
       | > A well known wedding magazine ran a promotion with a valid
       | licence key clearly visible in a photograph of a PerfectTablePlan
       | CD. I worked through the night to release a new version of
       | PerfectTablePlan that didn't work with this key.
       | 
       | This is weird to me on several levels.
       | 
       | - Why would it require "working through the night" to blacklist a
       | key? In large enterprise software, sure. But in a one-person
       | project?
       | 
       | - If past versions still work with the leaked license key, what
       | does this solve? If someone wanted to steal your software, they'd
       | find a key anyway, no?
       | 
       | [Edit]: But a very cool project and a nice writeup! I enjoyed!
       | Good luck!
        
         | tonyedgecombe wrote:
         | You would be surprised how sales are affected by piracy. Making
         | it just a little harder can have a noticeable impact.
         | 
         | All that stuff you read about piracy having no commercial
         | impact is bullshit used to make people feel better about what
         | they are doing.
        
         | lozenge wrote:
         | I'm guessing CICD isn't a priority on a desktop product that
         | doesn't need to be released all that often.
        
       | ChrisMarshallNY wrote:
       | I've used (and paid for) BBEdit, for more than 30 years.
       | 
       | https://www.barebones.com/products/bbedit/
        
       | ilamont wrote:
       | > but I preferred to keep it as a lifestyle business
       | 
       | Can we please retire this term? It's a business. Moreover, it's a
       | _real_ business, with profit and risk and product and customers,
       | which is a lot more than many investor-funded businesses can say.
       | 
       | The fact that it's flexible and even enjoyable? Wunderbar. And it
       | doesn't even require foosball tables or free snacks or an in-
       | house masseuse or an on-site gym.
        
         | hermitcrab wrote:
         | I think 'lifestyle business' is a useful term and plan to keep
         | using it, unless someone comes up with a better term.
         | 
         | I think it is hilarious that investors sometimes use it as an
         | insult.
        
       | guestbest wrote:
       | That's pretty incredible. The oldest software I still support as
       | a microisv is in the iOS App Store at 15 years old.
        
       | bennettnate5 wrote:
       | What sticks out to me is that the overarching UI design is
       | largely unchanged. OP didn't spend time jumping from hot new UX
       | framework to framework, instead they focused on keeping their
       | core customers happy. Seems like a recipe for success for small
       | software businesses
        
       ___________________________________________________________________
       (page generated 2025-02-22 23:02 UTC)