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?
hiAndrewQuinn 9 hours ago [-]
>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.
> 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 2 hours ago [-]
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
hermitcrab 18 hours ago [-]
You buy a perpetual licence for version N. You can then optionally upgrade to version N+1 later at a 60% discount.
lotsoweiners 18 hours ago [-]
The best business model.
beached_whale 18 hours ago [-]
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 1 hours ago [-]
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)
dehrmann 10 hours ago [-]
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.
hermitcrab 9 hours ago [-]
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.
antaviana 10 hours ago [-]
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
_kush 5 hours ago [-]
>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.
ch33zer 10 hours ago [-]
Really? I'm still using sublime 2 from 10 years ago and it still works great across Mac and windows.
18 hours ago [-]
hiAndrewQuinn 9 hours ago [-]
I especially like this if the 60% multiplier becomes 60%² at N+2, 60%³ at N+3, and so on. Feels like you're getting rewarded for hopping on early.
hermitcrab 9 hours ago [-]
Too complicated. I charge the same for v5 -> v7 and v6 -> v7.
anthropodie 8 hours ago [-]
You mentioned you have been developing Indie products since 2005 in your about section. Can I read about this somewhere?
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 2 hours ago [-]
Probably wedding planners are the biggest customers.
_kush 5 hours ago [-]
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.
skinner927 16 hours ago [-]
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.
andrekandre 15 hours ago [-]
> 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])
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 10 hours ago [-]
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 4 hours ago [-]
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.
gmueckl 15 hours ago [-]
You found the reason why Qt is popular.
nikau 15 hours ago [-]
Call me a boomer, but I preferred old apps that had a consistent interface instead of all the random wheel inventing.
riffraff 5 hours ago [-]
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.
jeremyjh 16 hours ago [-]
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.
mixmastamyk 15 hours ago [-]
Don't style it, please. I chose my system theme for a reason.
codelion 13 hours ago [-]
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.
rvz 17 hours ago [-]
> 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 14 hours ago [-]
> 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.
TeMPOraL 8 hours ago [-]
> 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 2 hours ago [-]
> 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 2 hours ago [-]
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.
tonyedgecombe 5 hours ago [-]
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.
>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
bennettnate5 10 minutes ago [-]
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
pmkary 18 hours ago [-]
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)
bnastic 4 hours ago [-]
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)
p3rls 7 hours ago [-]
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.
Tossrock 10 hours ago [-]
Spacemonger is this to a tee.
emeril 17 hours ago [-]
yeah - I'm sure Everything by voidtools is precisely that
huevosabio 19 hours ago [-]
> 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!
piker 19 hours ago [-]
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 19 hours ago [-]
Also worth noting that a more detailed write up of the business elements would likely go down very well here!
hermitcrab 19 hours ago [-]
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 19 hours ago [-]
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 18 hours ago [-]
What is JD?
realityfactchex 18 hours ago [-]
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.
And the legal right. The constitutional right to self-representation applies only to criminal proceedings and not all civil courts permit it.
aqueueaqueue 18 hours ago [-]
Damn. I am familiar with that term but hit a cache miss.
dmoy 18 hours ago [-]
Juris Doctor, aka a lawyer
tiledjinn 18 hours ago [-]
Juris Doctor. A lawyer.
ryandrake 18 hours ago [-]
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 18 hours ago [-]
Only 20?
gwbas1c 19 hours ago [-]
Yeah, I'm really curious how the author was able to get the kind of sales needed to support a family.
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 16 hours ago [-]
> 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 12 hours ago [-]
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.
tonyedgecombe 5 hours ago [-]
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?
cfn 9 hours ago [-]
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 8 hours ago [-]
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 8 hours ago [-]
>even if his who[le] family is wiped out in a plane crash.
Thanks for that cheery thought.
keepamovin 15 hours ago [-]
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.
fuzztester 16 hours ago [-]
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 10 hours ago [-]
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 ):
That’s pretty incredible. The oldest software I still support as a microisv is in the iOS App Store at 15 years old.
mezod 18 hours ago [-]
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 18 hours ago [-]
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.
jwr 18 hours ago [-]
>$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 18 hours ago [-]
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!
aqueueaqueue 18 hours ago [-]
Yes. Not me, but check out indiehackers as they show stripe-verified revenues.
hermitcrab 18 hours ago [-]
But not their expenses? Revenue != Profit.
aqueueaqueue 18 hours ago [-]
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 18 hours ago [-]
Advertising can be very expensive.
aqueueaqueue 17 hours ago [-]
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.
101008 19 hours ago [-]
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 18 hours ago [-]
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 18 hours ago [-]
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 17 hours ago [-]
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 4 hours ago [-]
I think there used to be a lot more small software companies about but as the industry has matured the trend is towards consolidation.
losradio 3 hours ago [-]
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.
palata 18 hours ago [-]
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 18 hours ago [-]
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 18 hours ago [-]
I don't understand where gender, age, and ethnicity come into play in this.
hermitcrab 18 hours ago [-]
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 15 hours ago [-]
Sounds like an underserved market waiting to be tapped. How do we address it?
hermitcrab 9 hours ago [-]
Talk to your older relatives and female friends.
nikau 15 hours ago [-]
The market isn't there since the petticoat 5 covered all bases
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 6 hours ago [-]
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.
achillesheels 17 hours ago [-]
Emphasis on ride.
El camino es mejor que la posada.
jebarker 18 hours ago [-]
+1 this is the dream career!
tasuki 7 hours ago [-]
> 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 5 hours ago [-]
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 3 hours ago [-]
I'm guessing CICD isn't a priority on a desktop product that doesn't need to be released all that often.
asim 18 hours ago [-]
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.
wvenable 18 hours ago [-]
This post makes me nostalgic for the old Joel on Software forums.
hermitcrab 18 hours ago [-]
I miss Joel's writing. Erik Sink as well.
wvenable 17 hours ago [-]
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 17 hours ago [-]
Sounds like you have a reasonable mix of job security and freedom. The grass is always greener on the other side!
wvenable 17 hours ago [-]
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 3 hours ago [-]
>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.
NKosmatos 19 hours ago [-]
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 18 hours ago [-]
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
racl101 16 hours ago [-]
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!
ChrisMarshallNY 7 hours ago [-]
I’ve used (and paid for) BBEdit, for more than 30 years.
> 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 18 hours ago [-]
There is a social distancing option, added due to the pandemic. ;0)
LoftyHobbitMan 15 hours ago [-]
This cracks me up. Sounds like a good selling point though.
kylecazar 15 hours ago [-]
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 9 hours ago [-]
Google "supply chain attack". It is a worry.
robocat 18 hours ago [-]
> 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 17 hours ago [-]
>Someone will develop for the web.
A number of web based alternatives to PerfectTablePlan have appeared over the years.
ilamont 3 hours ago [-]
> 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 3 hours ago [-]
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.
bsnnkv 15 hours ago [-]
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!
7thaccount 19 hours ago [-]
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 19 hours ago [-]
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).
mparnisari 17 hours ago [-]
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 ;)
ozim 18 hours ago [-]
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 17 hours ago [-]
you'd end up getting requirements from users yourself, instead of business people
ozim 10 hours ago [-]
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.
J_McQuade 17 hours ago [-]
Yeah, but I'd hope that I can understand my users.
4rt 16 hours ago [-]
You're living the dream, great work.
Looks like an impressive bit of software and not some flash in the plan disruption nonsense.
alberth 15 hours ago [-]
> It is about 145,000 lines of C++.
Huge respect for maintaining such a large codebase.
18 hours ago [-]
kayo_20211030 17 hours ago [-]
Love it. Keep on keepin' on.
fragmede 17 hours ago [-]
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 9 hours ago [-]
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 8 hours ago [-]
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 8 hours ago [-]
I've been doing PPC for PerfectTablePlan since the days before it was even called Google 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 8 hours ago [-]
oh wow thank you for blogging about it too! sorry for assuming you
hadn't
antithesis-nl 19 hours ago [-]
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.
aiauthoritydev 18 hours ago [-]
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 18 hours ago [-]
Edible doesn't mean eatable lol
dylan604 19 hours ago [-]
You're clearly not preparing them correctly. You have to ground them down to a fine micro-plastics powder.
kmoser 18 hours ago [-]
I prefer the softer, warmer flavors of ground-down vinyl.
Etheryte 18 hours ago [-]
A spoonful of microplastic in your brain [0]? That's rookie numbers.
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 18 hours ago [-]
Or just live normal life. You get free microplastics.
chrisweekly 18 hours ago [-]
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 9 hours ago [-]
Follow the link - the CD was chewed by a dog
henning 18 hours ago [-]
It's cool to see a product that apparently uses evolutionary algorithms do so well.
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?
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
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.
Independent of the implementation, people build GUIs to make the functionality accessible to a LOT more users
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)
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.
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.
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.
https://successfulsoftware.net/starting-a-microisv/
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.
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.
(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/
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.
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.
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.
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).
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.
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.
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
Time for Greenspun's eleventh rule: ;)
https://en.m.wikipedia.org/wiki/Greenspun%27s_tenth_rule
yeah! shipsters
/s
ugh
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)
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.
Man, this sounds way too familiar!
> 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.
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...
If you are looking for articles about starting a software business, see: https://successfulsoftware.net/starting-a-microisv/
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.
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.
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.
A saas product will die when the credit card bounces a couple of months later.
Thanks for that cheery thought.
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 ...
https://www.gyford.com/phil/writing/2013/02/27/our-incredibl...
https://ourincrediblejourney.tumblr.com/post/89180616013/wha...
https://ourincrediblejourney.tumblr.com/about/
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.
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.
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.
Unlike startups they are solo operated and usually won't hire people unless they can really afford it an need it.
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.
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.
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.
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.
https://www.reddit.com/r/vintagecomputing/comments/8nzz23/pe...
El camino es mejor que la posada.
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!
All that stuff you read about piracy having no commercial impact is bullshit used to make people feel better about what they are doing.
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.
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.
I think most people never get to work with such software as we need to launch $NEXT_PROJECT
You are living the dream!
https://www.barebones.com/products/bbedit/
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.
"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.
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.
A number of web based alternatives to PerfectTablePlan have appeared over the years.
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.
I think it is hilarious that investors sometimes use it as an insult.
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!
Looks like an impressive bit of software and not some flash in the plan disruption nonsense.
Huge respect for maintaining such a large codebase.
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.
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.
[0] https://www.smithsonianmag.com/smart-news/the-human-brain-ma...
Disclaimer: don’t