polotek ,
@polotek@social.polotek.net avatar

I've been thinking about "personal software" a lot lately. My background is mostly in Multi-tenant SaaS software. You try to reach economies of scale by serving more and more users with the same single system.

Personal software is mean to be used by one person. Or at most a small group of people who share the same context. I think there are a lot of problems it he solved in that context. It's just difficult to support from an economic perspective.

BenCurranDev ,
@BenCurranDev@hachyderm.io avatar

@polotek @hazelweakly I kind of like @obsidian for this reason, it’s widely used and well featured but I’ve never met another person who uses it the same way I do and have sat down at another persons Obsidian and been completely lost. The customisation is so personal. Also like @kepano philosophy on it - data is my own and can be read by anything, app independent.

justinmwhitaker ,
@justinmwhitaker@mastodon.social avatar

@polotek you have to break away from the VC Capital driven model of economics.

There are perfectly good revenue streams for single user or small context software apps.

raven667 ,
@raven667@hachyderm.io avatar

@justinmwhitaker @polotek I've been comfortably employed and have lost touch with the marketplace, there used to be a large undercurrent of local 1-person software shops and small businesses with custom systems, when they wanted something more focused than Excel, but couldn't afford the Enterprise software way.

I think a lot of the effort in SaaS has been to strangle those devs out of the market, so I don't know what is left

raven667 ,
@raven667@hachyderm.io avatar

@justinmwhitaker @polotek for example the small consultancy who ran Sec. Clinton's personal MS Exchange server, how do places like that survive in competition with M365? How do local web devs compete with Squarespace/Wix? Who is doing the small jobs the build relationships and keep devs solvent outside VC funded SaaS projects?

polotek OP ,
@polotek@social.polotek.net avatar

@raven667 @justinmwhitaker I'm a little confused. You started by saying these revenue streams work. Then you ended by explaining how they've been destroyed by big companies.

polotek OP ,
@polotek@social.polotek.net avatar

@raven667 @justinmwhitaker Oh sorry. I didn't realize that Justin was the one talking about alternative revenue streams. Don't mind me.

raven667 ,
@raven667@hachyderm.io avatar

@polotek @justinmwhitaker i honestly don't know what small businesses are doing, i used to have a broader social group, which included several devs making a living supporting local businesses, but i dont get out much so I don't know if VC SaaS has dried up their business, but I suspect its had an impact

RavenLuni ,
@RavenLuni@furry.engineer avatar

@polotek I write all my own tools always intending to share them at some point in their development but it rarely works out that way

polotek OP ,
@polotek@social.polotek.net avatar

@RavenLuni what keeps you from sharing them?

RavenLuni ,
@RavenLuni@furry.engineer avatar

@polotek The awful undocumented or incomplete state of them. I did release a version of my z80 assembler years ago

otfrom ,
@otfrom@functional.cafe avatar

@polotek personal software like this is what I use Emacs for.

polotek OP ,
@polotek@social.polotek.net avatar

The idle thought I'm having today is about complexity. I've taken some stabs at building something for myself recently. Setting aside the reality that I'm kinda scatterbrained and easily distracted, it still feels incredibly difficult to *finish" software. I mean to get it to a level of polish where I would actually use it. I've been trying to get to some clear thoughts about what makes it difficult.

polotek OP ,
@polotek@social.polotek.net avatar

Part of this is that I'm hampered by my own experience. I'm used to building enterprise-focused SaaS products. Complexity sort of comes with the territory. It has been harder for me to ditch a bunch of things I'm used to doing because they're not as important for personal software. Basically "yagni" has to be a core commitment.

becomingwisest ,
@becomingwisest@hachyderm.io avatar

@polotek this is hitting home for me. For years I’ve wanted a new photo app that uses something like git for the library. The purpose being syncing two devices out where there is poor cloud/internet connectivity.

I learned programming, and use scripting. Dealing with GUI was maybe a few courses so many years ago.

So it stays a dream.

polotek OP ,
@polotek@social.polotek.net avatar

For example, I really like putting things in s3. It's easily one of the best things that has ever happened to app development. It's great.

But for personal software? You don't need s3. Just use the file system. It'll be fine. And you skip the whole rabbit hole of remembering how to configure and secure s3 buckets.

polotek OP ,
@polotek@social.polotek.net avatar

I'm thinking specifically about the complexity that comes with designing for multi-tenancy. I'm realizing that I'm not as confident in how to design other kinds of software. Multi-tenancy is my specialization. It's sort of engrained. I think that means I need to treat building personal software like learning a new skill set. Try to unlearn some things and develop a different set of practices that are suited to this space.

Cowthulu ,
@Cowthulu@mastodon.social avatar

@polotek I have/had similar problems. One thing that helped me was to create the spaces where I could add support for more complex solutions, without actually adding the solutions. For example, making the data storage interfaces as though I was going to eventually switch to a cloud-storage metaphor, even though I’m actually storing everything in a local json file.

I found it also helped to create a stub file with detailed comments about how it would be set up. Tricked my guilt!

polotek OP ,
@polotek@social.polotek.net avatar

@Cowthulu yeah these are good tactics.

andrewt ,
@andrewt@mathstodon.xyz avatar

@polotek @Cowthulu I 100% do this in production professionally — some feature would be more elegant if it was built in this clever generalised way, but we don't actually need any of that, so instead I'll kind of reserve a space for the cleverness and usually it never gets built but it kind of helps push the design of everything else around it into shape. You don't have to choose between the nice design and only building what you need, as long as you're comfortable with a few well placed gaps

ratfactor ,
@ratfactor@mastodon.art avatar

@polotek
I do the big multi-tenant SaaS stuff for pay and tiny one-person software for utility and fun.

It is absolutely a different way of building with totally different challenges...and a source of great joy.

The skill becomes: simplify and simplify and chop off features until you're making something so small you can build it in a couple evenings. Lots of shower thoughts: how can I make this even simpler?

Personal software that does exactly what YOU need it to do is just the best. ❤️

polotek OP ,
@polotek@social.polotek.net avatar

@ratfactor can you share an example of something you've built for yourself?

ilikepi ,
@ilikepi@hachyderm.io avatar

@polotek This definitely resonates for me. At one point a while back I spent several hours over multiple days trying to build a proof-of-concept data model in a spreadsheet. I could have spent that time building the actual thing, and then I'd be on my way to having the thing!

It's frustrating to feel like you're standing at the base of a mountain that has to be fully surveyed from the ground before you can even start climbing.

tmr232 ,
@tmr232@mastodon.social avatar

@polotek
There are 2 articles that really helped my mindset regarding personal software:

getalifemike ,
@getalifemike@urbanists.social avatar

@polotek Matches my experience. I spent months trying to build a single binary mastodon clone in Go w/ only SQLite and the file system. It was just too much work to get something usable. https://github.com/contribsys/sparq?tab=readme-ov-file#internals

polotek OP ,
@polotek@social.polotek.net avatar

@getalifemike any thoughts on what feels different about it?

getalifemike ,
@getalifemike@urbanists.social avatar

@polotek I think the biggest issue was social, I didn’t have any collaborators so it felt like an endless mountain of work. The Amish do it right with their barn raisings: many hands make light work.

polotek OP ,
@polotek@social.polotek.net avatar

@getalifemike we really need to get together Mike. I came to the exact same conclusion. Let's try again to set up a chat.

esparta ,
@esparta@ruby.social avatar

@polotek

re:

> But for personal software? You don't need s3. Just use the file system

I did that and now I regreat putting my files on S3. It was cool having my files "backed up" so I wouldn't be worry about losing files when reconstructing my website or even cooler to have the CDN with CloudFront, it was a good learning exercise but yeah, I did realize that too: I don't need the Amazon AWS thing in the middle.

mathaetaes ,
@mathaetaes@infosec.exchange avatar

@polotek treat the software like a house: you get it good enough to start using it, but accept that you’re going to spend the rest of your life fixing, maintaining, adding, and fiddling with it and it’ll never reach a point where you call it “complete”

polotek OP ,
@polotek@social.polotek.net avatar

@mathaetaes the post above speaks specifically about the gap between starting it and getting to usability.

tetron ,
@tetron@hachyderm.io avatar

@polotek
I think it requires a strong vision of the problem you are trying to solve, there should be one thing that is interesting or unique about a project that you are highly motivated to work on solving first (the essential complexity), and then you do the absolute hacked-together bare minimum for everything else. If the vision is for a big sprawling application with tons of features, that's going to be way harder to sustain, and it might be better to try and modify some that already exists.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • kamenrider
  • Rutgers
  • WarhammerFantasy
  • Lexington
  • cragsand
  • mead
  • RetroGamingNetwork
  • itdept
  • MidnightClan
  • xyz
  • PowerRangers
  • AnarchoCapitalism
  • WatchParties
  • Teensy
  • Mordhau
  • neondivide
  • loren
  • mauerstrassenwetten
  • AgeRegression
  • steinbach
  • learnviet
  • bjj
  • electropalaeography
  • space_engine
  • khanate
  • jeremy
  • supersentai
  • fandic
  • All magazines