Hacker News new | past | comments | ask | show | jobs | submit login
An app can be a home-cooked meal (2020) (robinsloan.com)
1051 points by distcs on Jan 5, 2024 | hide | past | favorite | 288 comments



This is poetry. I have been working on a personal project for the last 10 years that replaces every other app I used to use - E-mail, calendar, and all the others we all use on a daily basis - and every time someone sees me using it they ask "Wow, this is amazing, how do I download it!?", and the answer is always the same: you don't.

There's a beauty to engineering something having yourself as the target user, and no one else. I'm 100% convinced this project single-handedly keep my mental wellbeing in check, and it provides me with a constant source of hopefulness and happiness to the future - that no company/salary could ever offer me. My exclusive, differential, unique characteristic against the world, my joker card.


> There's a beauty to engineering something having yourself as the target user, and no one else.

100%, I'm following a similar approach to you with yet another notes app solely for my own use.

Have you written more about your personal project anywhere?

One thing I only realised once I started building my own tools, is that you become - from day one - an unmatched world-class expert in using that tool. This seems obvious and inconsequential on the face of it, but how many pieces of software do you use where you can say with 100% certainty that you know every single thing about it?

Every feature, every shortcut, how it all works internally...

It's only when you use something self-crafted that you realise what this actually means. If it's a tool that you use for work or productivity - you can become exceptionally productive with it due to this from-day-one "total mastery".

This compounds if you iterate. Using the tool daily and feeding back in little fixes and optimisations as you go. The tool grows with you and molds to your use of it over time.

It's obvious that the tool is going to be well suited to your needs if you built it - but it was less obvious to me ahead of time what benefits the side effect of "total mastery" would also bring.

For me, my notes app is now used as my personal knowledge base, project management tool, todo list, daily planning tool and for journalling. Because I built it, I'm extremely effective at using it - and it's lean and fast - only with the features that I know I need.

In addition to being a very fulfilling project - it has created a degree of leverage and efficiency that I didn't expect!

My conclusion is that we should all experiment more with creating our own tools.


> Have you written more about your personal project anywhere?

No, I've had plans to create a blog to write about it or make a YouTube video, but haven't come to it yet.

> One thing I only realised once I started building my own tools, is that you become - from day one - an unmatched world-class expert in using that tool

This is something that I've also realized - a lot of times when we interact with software we kinda just fly by its UI to accomplish a goal, not paying much attention to its secondary features, options, quirks, etc - But when you write your own software, you have a map of everything in your head, and you don't have to guess what exactly a button does, how it does it or where you need to go to do that.


> But when you write your own software, you have a map of everything in your head, and you don't have to guess what exactly a button does, how it does it or where you need to go to do that.

Absolutely! It's quite a unique experience. When I started out it felt like I might just be wasting time and reinventing the wheel but in retrospect it was absolutely a good time investment!


Honestly, a stream of thoughts 1.5hr video about it all would be a cool listen. Not that it has to be 1.5hr but I’m sure your unedited thoughts will have some great insights


Count me as another who would be interested in this youtube/blog post. I'm currently at the beginning of a similar project.


One of the worst things in the world is explaining how it works to someone else, then watching them use it poorly.

I have a convenience tool I made for myself, but shared with my coworkers. I deeply regret sharing it because nobody knows how to use it effectively


What is even worse for me - I myself make a tool then stop using it and later I cannot come back.

Like with the spreadsheets I did to manage stuff. If I don’t use it at least weekly it quickly becomes less and less useful.

But also they mostly served their purpose and it is time to use new one. Not everything has to be used forever.


I remember recommending a non-iPod MP3 player that had a ton of customization options directly on the device. I regretted it because the person that bought it expected it to work exactly like an iPod plus the bells and whistles I recommended.


> For me, my notes app is now used as my personal knowledge base, project management tool, todo list, daily planning tool and for journalling. Because I built it, I'm extremely effective at using it - and it's lean and fast - only with the features that I know I need.

Hey same!

What inspired you? Anything you would be willing to share about it?

For me, I used a different notes app which I liked, and wanted to learn a new language/framework so I wrote a new backend for mine, and it just kinda spiraled.

The next thing I wanna do is add a CalDav interface so I can store events in it, and interact with them constantly with everything else I do.


Evernote originally inspired me (back in the day) as to the value of having some sort of personal knowledge management tool.

More recently Obsidian inspired me in terms of showing me what a non-enshittified, open/portable format note-taking experience could be like. And the beauty of simple Markdown notes!

Through the Obsidian community I discovered the concepts of Zettelkasten / Second Brain etc. and was further convinced of the usefulness of regular note taking and storing/synthesising of reference knowledge.

But I found Obsidian slightly mismatched with my requirements. Primarily because there was certain functionality I needed which can only be achieved with plugins, but I didn't consider their plugin security model to be sufficient enough for storing my most confidential data - even with everything being local files. (That and the lack of open source was enough to make me nervous).

My app is written in pure Javascript, heavy use of web components, running in Electron. No Node.js (apart from what Electron is precompiled with) - so no third-party dependencies as part of my code, and Electron is heavily locked down. I have a lightweight build step using Esbuild (a single rust binary).

Being 100% native JS - no frameworks - and quite lightweight, the app is indistinguishable from a native macOS app in terms of responsiveness! Knowing that may not always be the case, I'm also eyeing up Tauri as a potential alternative GUI "wrapper".

As a .NET developer by day I would have liked to have built it in MAUI but found that to be quite lacking for my purposes.

I've started to write a blog article about it with some screenshots - I"ll eventually get around to publishing it!!

How about you? What did you write your backend in and did that escalate into the front-end too?

The CalDav idea is very interesting... you've got me thinking about that.


Ah obsidian... I feel it's a very common tool. There's a whole pile of clones/related projects too (LogSeq, Roam, etc).

What kind of functionality were you looking for? I've found that once I controlled my notes, the amount of things I wanted to dump into it kept growing.

> How about you? What did you write your backend in and did that escalate into the front-end too?

I started using TiddlyWiki, and really like their approach to content (small notes, composable content, the "river" of notes as you click through links). You can add metadata (KV style) to the notes, which you can use in the markdown, which is quite powerful. The tool is meant to be "in browser" and you're supposed to save the whole HTML source when you make an edit. For me, I wanted a traditional CRUD interface to a server. They support that, but the developer isn't really focusing on it. So I wrote my own because I had a few weeks and wanted to play more with Golang.

My only gripe, and the reason I'm considering writing a new front end (which will be a big learning activity for me), is that TW doesn't support 'lazy loading'. very well, so if you have a massive amount of notes, it gets a little wonky. I discovered the issues with this when on plane WiFi and getting issues with overwriting instead of editing notes.

But once I had a CRUD API for my notes... I started going crazy. I can import photos, and link to them (pretty basic) but I can also push emails, calendar events, etc. I set up a browser plugin that lets me automatically take notes on any webpage, and adds tags/metadata to the note. The limit is now the front-end which is where I'll probably spend 2024...

I also had the idea of integrating with HomeAssistant, so the device's history was viewable in a 'note' about the device (dynamically generated from a template instead of static text from DB). Possibly with camera events as their own entry... Lots of things are possible once you control where the data comes from.


If I recall correctly, this approach was what led to Apollo’s success before Reddit murdered it.


I’ve made a poll/group decision making app for my family and friends, and i’m this close to starting some sort of collaborative note/list making app because apple notes causes us so many headaches


Do it!!


I did two yet another notes apps, one including a custom P2P sync backend, All abandoned for Google Keep, but it was definitely interesting.

Ever so often I think about trying again, which I might in fact do if Keep ever becomes paid or stops working well or anything like that, or battery-free Bluetooth gets cheap and common and I decide to integrate inventory tracking features.


The P2P sync sounds cool.

> Ever so often I think about trying again,

I think if you enjoy the process and the result is useful to you, then it's definitely worth trying again!

I don't know about you, but I always learn a hell of a lot through my personal projects too. They've almost always been a good investment of time for me.


The trouble is, making a useful app takes so much work, that it feels more like a second full time job than an enjoyable process...

Especially getting things to both sync across devices and load instantly on Android is definitely not trivial.


I wish more people would take stuff like this, oss it, and disable PR requests and issues. Let others use it / learn / build on it with the clear expectation that feedback and contributions are unwanted.


To be fair, when you do that you would approach coding the application differently, which adds to development time. Also, it can change the whole mentality of developing it. Probably why more people don’t do that, though I agree it would be nice.


You can ossify it (ha!) after you have done all the work and it is mostly complete.

    git remote add origin …
    git push


Time to coin a new word - enossification - like enshittification - which I came across here recently, but without the negative connotation of the latter.


Can you elaborate on what you would need to do different in terms of dev? The only thing I would do differently in this scenario would be to ensure no secrets or anything gets into the code which is a minor lift but also probably for the best.


In python I do horrible things like the following when nobody else is going to see it:

  [[[foo(x) for x in y] for y in bar_vec if baz(y)] for bar_vec in bar_mat if bar_vec != []]


Side note, you don't need `if bar_vec != []`. Trying to loop over an empty iterable (e.g. a list) just doesn't loop, since there's nothing there.

Also, another way to write this (which results in a flattened list) is:

  [foo(x) for bar_vec in bar_mat for y in bar_vec if baz(y) for x in y]


I have my secret perversions as well, so I've got no judgement for you, but I do have to wonder how our editing styles differ if you find that easier to navigate than the equivalent nested for loop.


  for bar_vec in bar_mat:
      if bar_vec != []:
          for y in bar_vec:
              if baz(y):
                  for x in y:
                      foo(x)
Seeing it written out here, the example looks nice. In real code with more complexity, it takes longer for me to write it, and it usually takes up a lot more space than this. It bugs me how much space it takes up for something that is one idea in my head (Foo all the baz things in bar_vec).

But if there is anyone coming after me, I would write it in this style for their sake, because this style is easier to change.


At least in my code, these nested loop thingies are rarely unique. If I have to do it once I probably have to do it many times. If I'm being mindful, I stop repeating myself and just write a generator so that I can invoke it like:

  [foo(x) for x in nonempty(bar_mat)]
Mostly this is because I live in fear of ruff's complexity warning, C901.


I dunno, that seems to be just shame instilled by the toxicity of certain programmer culture.

I mean, it's not the clearest thing to read but labeling it horrible seems to be a judgement call that's unwarranted. And as software developers, we should create an environment that's less hostile to people who write things in ways we wouldn't.

And honestly, that set of list comprehensions has a bit of a lispy functional vibe, which could quite frankly be applauded in certain contexts.


Maybe I'm telling on myself but this doesn't seem that bad at all.


This is fine. I make all of my stuff open source, but I'll be honest with people about being the only user that matters to my development work.


I assume the issue is you self-censor more and have to do things exactly by the book.

I've never been particularly interested in "software for one person" but I've shared lots of working but not great code(years old from before type annotations that hasn't been touched much since, written a hurry, etc), and faced some embarrassment.

If I was actually attached to specific details of the style, like "Yeah it crashes on some JSON input, but I don't care, it's only meant to handle stuff from this other thing I made" I might not really like sharing it as much.


I disagree with this. If you are truly building for yourself there is no criticism, no prying eyes, it is well and truly yours. Even with PR and issues closed people read it, maybe comment about it on social media or hackernews. There is beauty in a creation that is complete private.


> I have been working on a personal project for the last 10 years that replaces every other app I used to use - E-mail, calendar, and all the others we all use on a daily basis

Would you be willing to describe how it works / record a video of how you use it? But maybe that goes against your last sentence:

> My exclusive, differential, unique characteristic against the world, my joker card.

?

I guess the idea is that you integrated all the apps with each other, such that you can create an event from a text message, forward an email to a Signal contact, this kind of things?

I quickly write scripts to automate things I do several times, but I didn't go as far as integrating all my scripts into a single one. Having things decoupled reduces the maintenance burden, such that I'm not sure I'd want to go that way either.


> Would you be willing to describe how it works / record a video of how you use it?

I'll definitely do it in the near future and post it here on HN.

> My exclusive, differential, unique characteristic against the world, my joker card.

In the sense that, if one day money becomes short, I could extract a few SAAS out of it and make some money or even sell it.

> I guess the idea is that you integrated all the apps with each other, such that you can create an event from a text message, forward an email to a Signal contact, this kind of things?

Yes, the main app has standalone apps, where each app integrates with each other whenever possible, like listing contacts in the email app, and one of the apps is "Flow", where you can create IFTTTs between apps.


I'd love to read a post about this. I started making something similar actually before I got my most recent job. But it was with less pure intentions. I did have various personal requirements that I wanted to see if I could impliment in a singular organisation system, since I am chronically disorganised. However, I started actually doing it just so I could practice my java and have a complicated java project on my github since I was applying for jobs. That's really why it's died a bit afterwards.


I assume you choose the services you depend on wisely, to make sure it's possible to integrate with them? E.g. thinking of common apps like Facebook, WhatsApp, some email providers: they don't necessarily provide an API that you can call into, and sometimes you rely on a library a 3rd-party developed but which breaks regularly.

Looking forward to your post on HN!


I write programs mainly for myself but also usually (not always) make them available for other people to use too in case they find it useful (or want to modify it, use a part of the code, criticize it, make backup copies, or anything else they might want to do with it). If I am annoyed by something someone else writes about it, I can just ignore it; it doesn't affect how I will use it for myself, and other people can still do what they want. (And, if someone does not want to allow others to criticize it and submit patches and bug reports and stuff like that, then you can still make the file available without allowing comments to be written about it, without discussion forums, without issues and pull requests in GitHub or similar, etc.)


Similarly, albeit with much less effort, I configured (neomutt) into the most beautiful and best, rapid UX mail client ever. I use it at work and for private purposes.

People are impressed when looking at it. A handful of them asked for the config. Don't think any one ever got used to it.


How did you configure neomutt? I mostly have the default configuration, with some other tweaks I've forgotten about (like changing mailboxes using a function key). What am I missing out?


I will take a screenshot once I'm on my laptop (in a day or two)


What about SSO? Sadly, none of the terminal-based email clients I tried supported this, but since you said you use this at work, maybe it supports SSO login to your work email?


It's a bit of a trek to get there, but here's how to work around SSO...

1. Go to the Microsoft/Google developer console with your work account and create an "internal app" for personal use 2. Generate a set of oauth2 creds under the app 3. Use a program like mbsync or offlineimap to sync your mail down to a maildir. Iirc mbsync was more reliable but required a shim script to convert oauth2 creds to an api token. 4. Point your email client to the mail-dir.

I had this set up when I used gmail at work, but AIUI outlook should work roughly the same.

There's a ton of blog posts out there of people setting this up, unfortunately too many variations to have "one true" guide, so sorta have to pull from several places.


How would SSO work for a terminal? What would it do?


In this case it's easier to bypass SSO with a set of oauth2 creds, but the aws and azure clis support SSO login by opening a browser to authenticate and generate a short-lived api token that gets passed back to the cli. So it's definitely possible for terminal apps to support SSO.


So far I only use IMAP


please share this, I'd like to check it out


https://github.com/kmARC/dotfiles

It's already shown on the screenshot, but I'll get a better one soon.


Its like your own self built cottage in the woods.


I like this parallel, it connects to other metaphors like "digital gardening", aka cultivating information and cross-pollinating (adding links) to related pages.


Would you be open to sharing screenshots? I'm curious about the mental-sanity claim, do you not have your email + calendar setup on your phone?


Not OP, but how often do you have an app that is exactly how you want it? You might just shrug off the small annoyances, but you could fix them and make the app something that becomes second nature. The UI won't suddenly change, so you won't have to relearn how to use the app, just like you don't have to relearn physical interfaces.


The above are all reasons I use emacs.


for REAL. when I started using Emacs, everyone told me Emacs was old and I should use Sublime Text II or Atom. Now they all tell me Emacs is old and I should use VS Code. I wonder what they'll tell me to use instead of Emacs in ten years :)


This is (largely) why I do all my coding work in an editor of my own creation. It suits me perfectly, and it never changes unless I want it to.


It is only very rarely exactly how I want it. Often, I cannot even find software that is half of how I want it (and is sometimes difficult to change). So, sometimes I will write them by myself to work differently. But, other times another program can be modified as needed, but that is less common, to me.


I've used some horrendous software in the past and it's nice that - even though I can't fix that software - I can write my own software and make it behave exactly how I want it to.


I love it. I have a couple similar projects I've worked on in the past (a couple of which were what got me into engineering in the first place) and the clarity of vision you can achieve when you're really truly building something just for yourself is unparalleled. What follows is also a very unique sense of fulfillment; as you've eliminated all the societal contributors to the sense of fulfillment (which are of course fickle), what you're left with is something that by definition had to be made to make you and only you happy, and it lasts over time in a way that is durable and pure.

My greatest regret these days is how often it feels like I lack the time to do such projects -- but that of course is a cop out on my end! The hard part is only getting started and being consistent; you don't need to do that much on a week to week basis to get to somewhere really meaningful after a few years.


Tell us more about your project! Did you start it from scratch? Or did you use another opensource app as starting point and developed it further for yourself? What language is your app written in? Where do you run it? In CLI? or desktop GUI? The more you can share about it the merrier. I am sure others want to learn more about this too.


It's basically like the Google suite of apps or Next Cloud, I have the main app where you can manage your account, backups, etc, and it links to a bunch of other apps, each one living in a subdomain. The apps that already exists are:

- Password manager - Finances - Contacts - Account (Backup, Restore, private keys, etc) - Authenticator (OTP, TOTP) - Email - Photos - Movies (2 parts, one is an IMDB like manager and the other is a Netflix homepage look alike for viewing content) - Flashcards - Link tracker

And I have the following apps in the development pipeline:

- Calendar - Drive - Notes - URL Shortener - RSS Reader - Tasks - Books - Musics & Podcasts - Timelines

It started just as an MySQL database that I used to track my expenses and budget, later I started also storing passwords in it, quickly I realized that I needed a user interface, then I slapped a bootstrap theme on it (this was back when Angular 1 was all the rage), then it went through many iterations as across the years and the current one started back in 2020, it uses VueJS 3 and used to use ant design, but I had to create my own UI library to accommodate the sheer complexity of the custom UI needed. It runs on a raspberry pi with docker.


“Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.” - Zawinski’s Law

:)


I like that law! My law for the past few years has been every app expands until it is beyond bloat, which is recognizable when it has the feature du jour, which can be found across every popular and unrelated app. At the time, that feature was stories, which could be found in Snapchat, instagram, Facebook, WhatsApp, Uber eats, and I think even Venmo at one point.

Once you got away from social apps, it was clearly feature creep. That was my indicator for when there was probably a better alternative app for accomplishing the app’s original purpose, but it was often too late to switch due to the network effect.


And now it's microblogging, sadly (well, it very nearly was a digital wallet.) I think an AI chatbot's only a matter of time...


There ought to be a law (or n ...) about JavaScript frameworks.


In 2007, Jeff Atwood made the quote that was popularly referred to as Atwood’s Law:[5]

“Any application that can be written in JavaScript, will eventually be written in JavaScript.”

From: https://en.wikipedia.org/wiki/Jeff_Atwood


Ha! Now we need a similar law for Electron, and for Slack, and for LLMs ...

Here's a stab (pun intended) at one for LLMs:

"Any application that can be written by an LLM, will eventually be written by an LLM."


Unfortunately you almost have to do this in secrecy with a homemade scraping app lest its popularity causes the site owner to take action


For my job, I've created a python ask and CLI that meets the exact needs of how I need to communicate with our API. It's leaps and bounds better than any postman collection my employees use

The code is a mess so I haven't shared, but it is something that makes me more productive every day.


Why would you want to combine it all into one app? Having seperate apps for those things (maybe besides having calendar and email together) sounds proper to me. Seems odd to put it all together into one.


Proper so that people who only want to use part of it don't have to use all of it. But if your user base is one person then why not go seamless? If you dislike that part of the app, just delete it.


Not an app, but this is how I customize my OS and workflow in general, and think Linux for making it possible and even easy at times.


I've been using i3wm for years and have recently started doing deeper dives into the sorts of things that you can do with what's either already installed or easy to add (e.g. rofi for input, conky for display) [edit to complete the thought:] I really love how flexible and relatively straightforward it is to script up simple applications that have a fairly significant impact on my "quality of life"!


I switched from i3 to bspwm a few years ago and I have basically a "complete" setup.

I do occasionally make scripts like you mention, they're super fun, handy, and almost impossible to share unless someone else has the same niche knowledge and requirements.


Thanks--I've been looking into AwesomeWM as an alternative but I'll check out bspwm too!


> I have been working on a personal project for the last 10 years that replaces every other app I used to use

Elon, is it you? ;)


Curious, how deep does the DIY go? I am curious what tools you currently leverage to support your tool? For example, instead of using ripgrep, did you create your own easy-grep program? Or anything in that similar vein? Just curious of anything you’d like to share :)


I have often thought about creating an everything app for myself. Do you have it as a desktop app, or is it a web app you host somewhere? Would love to read a blog post about it if you have one or would like to write one.


same here would love to hear what is the uique twist yours has or see a screenshot. for me its people centrism.


Great read! This reminds me of a macOS app I made for my wife a few years back. It keeps track of the opening hours of all her favorite shops, and she can click a menu bar icon to see how long until each one closes today. It also warns if it's currently peak/rush hour for the shop, since she prefers to go when it's less crowded.

It's a simple Qt app that uses a text file for data storage. I wrote it after noticing that she had trouble remembering which shops are open when. I asked her what to call it, and she said "Gladiolus, like the flower" so I named it Gladiolus.

I can say for sure I've never had a more appreciative client as a programmer than the one user of Gladiolus :^)


This is incredible, thank you for sharing.


What if a store’s hours change?


Talk to the Manager and tell them their change has broken your application.


You change the file. Simple!


I like it. I of course was running through all kinds of scraping scenarios… which is why you got the app done and I didn’t,


Just to let you know, that wasn't the original commentor, so it could stil involve scrpaing (which is what I expected, too).


I would guess using Google's Places API. They have busy time reports and hours that are most likely updated by the business owner. No scraping needed


Busy Time is actually not available to the places API. It’s one of the top request features though. There’s a legal/PII dimension to the issue.

Open Hours though are easy to read from the json response.


Not a Googler but I would expect busy hours graph being generated by Android Location Services data.


This resonates with me...


> In our actual world, I built it in about a week, and roughly half of that time was spent wrestling with different flavors of code-signing and identity provisioning and I don’t even know what. I burned some incense and threw some stones and the gods of Xcode allowed me to pass.

This resonated with me.

This is a major source of friction to "scratching your own itch" in modern software development. Makes it extremely painful to get started. And runs against an engineering mindset, as it's not understanding principles of computing or composing components in a sensible way to build a useful new thing. It's just banging your head spamming incantations found through Google until something finally works.


Indeed. The #1 thing I need from my platforms is that I don't need to get anyone else's permission to develop and install any programs on it that I wish. That basically rules out Apple and Microsoft.


I say this as a Linux user

What do you mean by ruling out Microsoft? You can install and run your own software on Windows?


I've run into lots of issues running my programs on Windows. Sometimes it will even delete the executables outright if it decides they are dangerous. This was mostly with networked and virtualization apps.



Unless it's a driver. Windows wants those signed by Microsoft. There are ways to get around that, but they're not wonderful.

This bit me a month or so ago at work. I don't use Windows at home.


I've made several home-brewed apps for ios. I just make them webpages, host them for free with Github Pages, and on my phone I make that url into a home screen app and voila. No app store interaction needed.


> It's just banging your head spamming incantations found through Google until something finally works.

Yea, all the while hoping you don't mess up something even worse!

I feel like Apple has made some strides in this area - having Xcode manage a bunch of profiles + key signing and whatever else it does when I click "Yes, make it easier for me". But it also randomly forgets settings and breaks etc. which is fun to re-troubleshoot.


It's spectacular how awful Apple's signing/certs/profiles dev UX is.


This is where a pi web server along with cloudflare tunnel and a website really shine. You don't need to ask anyone to run that service. I'm running a custom todo app off my pi without exposing my router. It's incredibly freeing.


Another way could be host it on a Tailscale network, then it can only be accessed by your own devices.


We need something that goes one level beyond Tailscale. It should be built on a simple open OAuth2 protocol for establishing tunnels/VPNs so you can choose different providers. Then developers can implement tunneled networking directly into their apps.


Do you want to share publicly (via a URL for anyone) or privately (accessible only with an endpoint and identity)?

For the former, zrok frontdoor (by https://docs.zrok.io/docs/guides/frontdoor/) protected by OAuth could be the solution. Further, if you want to embed directly in your app, use the SDK - https://blog.openziti.io/the-zrok-sdk. Today we only have for Golang; Python and NodeJS/Javascript coming soon. More in the pipeline.

For the latter, use OpenZiti (which zrok is built on - https://github.com/openziti). We have SDKs in Go, C, Java, NodeJS, Python, and many more.

It's all FOSS under Apache 2.0. I work on the project.


I'm aware of zrok/openziti, but I'm looking for something with a protocol-first design. Does zrok have a well-specified protocol that can easily be implemented by others? If not, since you're running a company, you aren't incentivized to make zrok easy to self-host. You can also relicense at any point. Doesn't mean this will happen, but incentives aren't aligned.


Whats your definition of 'protocol-first design'? Incentives definitely exist for the company I work for, which develops OpenZiti and zrok, and we do have a SaaS offering for both, but fundamentally we lead with the open source and make it as simple as possible (always a work in progress) to self-host, or else you wouldn't have people adopt the open source.

FOSS, as a GTM strategy, mandates reducing the initial barrier to entry, with the majority consuming your products for free, and only a small subset (usually with large, complex, production-scale deployments) wanting the SaaS version or some sort of paid support.

I can only speak for myself, I am not that technical when it comes to a command line, and I have deployed zrok locally.

And you are right, technically we could relicense. But we will not. Our goal is to turn Ziti into the equivalent to Linux for secure-by-default, distributed networking. This is why we permissively OSS under Apache 2.0. This is why we help others to build their own hosted versions of Ziti/zrok. This is why I expect, in the future, we will create an open governance model. We all know how badly is goes when you create a popular tool and try to pull the rub (cough, Hashicorp).


> Whats your definition of 'protocol-first design'?

Developing an open protocol at the same time you develop the first implementation. This has a few effects. First, it tends to simplify the protocol, since you have to justify your design decisions much more. More importantly, it makes it easier for competitors to make implementations, which forces you to compete on quality of service, rather than depending on a technical moat.

> And you are right, technically we could relicense. But we will not.

But this is depending on the goodness of your hearts, rather than incentive alignment.

> Our goal is to turn Ziti into the equivalent to Linux for secure-by-default, distributed networking. This is why we permissively OSS under Apache 2.0

If this is your goal, why not use a copyleft license as Linux does?

> We all know how badly is goes when you create a popular tool and try to pull the rub

Again, you've done nothing to align incentives better than Hashicorp did. What reason do we have to believe you won't eventually do exactly what they have?


Zrok might be the closest?


This post significantly influenced me back when it was first on HN, and helped me articulate what I was already doing subconsciously.

I started a homelab years ago like a lot of folks here, and slowly that’s changed to being a hobby of building and selfhosting applications for my “users” of 5-15 of my family and closest friends.

I’ve written so many little apps for them (e.g movie night scheduler) and integrations into our group chat for whatever someone can think of. It’s really blossomed into something that has made us all talk and hang out so much more.

Even distant friend groups that don’t know each other have now met in person (without me!) and gone to baby showers, weddings, etc.

If anyone has a group of friends like that, consider making something for them!


I love writing little tools - but I tend to do so for others, than myself.

My GF and her Sister kept a running tab (Beans) between them - and always were having issues reconciling who owes what for when etc...

These are smart and capable women, but for some reason their personal tab between eachother was a headache - so an "app" I made was just a smarter spreadsheet in google docs they share and they enter their info each month and it tallies who owes what.

I forgot about it for over a year or so - and so I asked my GF is they were still using it

"We use it all the time - its been such a lifesaver."

Its literally just how one would use any spreadsheet... these are high-paid, highly successful people, and were struggling to just get a 'tab' thing going.

One of the things I did, was have it load pics of their shared dog on each new tab (a tab per month) and they loved that.

Silly, stupid, took me 15 minutes and they have been using it for the last couple of years and love it.

But yeah - build little tools for a small circle.


I love all the comments that I'm reading here, but for most of the cases that are being presented, I'm having a hard time imagining myself needing to do the same, because for the most part there is always an app that already covers that need.

For example, your use case sounds like the ideal scenario for Settle Up. Me and my 2 closest friends have a running group where we annotate expenses and there's always a clear picture of who owes what amount and for what reasons.

Of course, tiny customizations like a dog's picture per month, are not possible to do with a 3rd party app :-)


It wasnt more about solving a $ issue as to morphing their interpersonal behavior over a tab between sisters... (and my personal friction) ((have you met any sisters who are both close and highly successful in different fields)) - sometimes, you just need to leave the room... this was my method of exiting the room of financial "settle up" types of comments - and I had the mortar of dog pics.

So, yeah - but micro tools are a thing.


> For example, your use case sounds like the ideal scenario for <XYZ>

That’s till some product manager decides they want metrics to go up, and the app starts spamming you notifications multiple times a day, or tries to shove in your face unnecessary financial products, and starts selling your transaction data with the hope of increasing monetization to keep their overstaffed teams…

A home-cooked app from someone you know/trust seems much nicer than that.


Ironically, this is a great way to build actual products (if you’re open to letting them grow).

Three years ago I created a simple app for my family and friends to share recipes together. I kept adding features they requested, and after about two years, the app was apparently good enough that people started sharing it by word of mouth.

By October, the app had grown big enough that I had to start charging new users to cover server costs. I’m now contemplating a future where I work on it full-time.




LOVELY.

I have a boatload of feature creep ideas for you to reject... Shall I post them here, or DM you?

-

This is an app logic that works for more than just cooking - but a big thing is OCR a hand written recipe from familial cookbooks...

I still have my mothers, as well as hand written recipes from my grandmother, their friends, etc.

Take a pic of a recipe, OCR if can - else host the pic?

--

However, an interesting aspect of the "recipe" app logic is that it can apply to, say, mechanics

"Here is a recipe for replacing this part/working on this thing"


> I have a boatload of feature creep ideas for you to reject... Shall I post them here, or DM you?

Ha! Either, or feel free to email me at jeff@umami.recipes.

> Take a pic of a recipe, OCR if can

The app actually has an OCR recipe importer (tap "Add Recipe" > "Scan Recipe"). It uses Apple's native iOS OCR library, which inserts text directly from the camera.

It doesn't support importing from an existing photo yet though -- that's high up on my list to build (after Android).

> else host the pic?

You can upload photos for recipes!

> However, an interesting aspect of the "recipe" app logic is that it can apply to, say, mechanics

That's a really good point. I bet much of the underlying functionality could be re-used in a completely different app focused on something like mechanics. Another example I've thought about is a separate app specific to cocktail recipes, with features tailored around mixology and bar management.


At the same time, I feel the gap is widening between these and professional apps. It's easier to write apps, and it's harder to write "real" apps (for the masses).

I'm writing a book (https://opinionatedlaunch.com) over the course of 3+ years and I have to keep updating the "Mobile" chapters. Not because of some fancy new framework, but because both Apple and Google keep adding "requirements."

Sure, they're for the better (e.g. more strict access to phone GPS, etc) but if you don't keep up, eventually you'll find your apps removed by the platform at some point in time. In this sense, there's no "done".

You probably can still distribute that little program you wrote in 1990 in Pascal. I don't know the equivalent for mobile apps. (Distribute, not run. You can run it easily on your old phones).


I've been thinking about this a lot, and I have two solutions:

* distribute on Testflight and never actually do a real release

* make an HTML app that works well on mobile, and can be cached for offline

Gradually I think I'm coming to prefer doing the HTML version


This happened to me. I wrote an Android app many years ago for my own need and after a month or two it was done. I have nothing to change, it works exactly as I want. But at some point Google decided that it didn't keep up and needed to be removed from the store. I'm not complaining, I can still install it with `adb` but nobody else can anymore. I'm not sure I can still build the binary though, probably not.


> I can still install it with `adb` but nobody else can anymore.

You don't need adb to sideload applications. If you enable sideloading, you can copy it onto the phone and run it that way.


As of Android 14 you cannot install apks if the sdk target version is too old. You must use adb with a special flag.


Considerations like these have lead me to Nim. I don't have it working yet, but the vision is that if I constrain myself to a simple enough UI then I can then compile the same code to Objective C for iStuff, C++ for Android and desktop, and Javascript for web. Those apps can each then evaluate arbitrary nimscript in a platform agnostic way. I've log ago forgotten what the app I wanted to build was, but if I remember it, nobody will be able to stop me from running it anywhere. I hope.


Loved your comment. Sometimes we can get lost in the technology but that can be fun in itself.


> there's no "done"

I'm totally with you re: Android and Apple being walled-garden ecosystems with ever-changing rules. But, don't you feel like this is true of most software (that it's never "done")? In my experience, there aren't many categories of software that can be truly feature-complete unless they are fully decoupled from popular culture. Maybe GNU units or grep can be called "done", but most apps have to change with the world around them.


> don't you feel like this is true of most software (that it's never "done")?

The problem is that "done" is a subjective term. Most of the software I use on a regular basis is "done" as far as I'm concerned. If it didn't meet my needs, I wouldn't be using it on a regular basis.

This ignores security issues, of course, but most of the software I use on the regular doesn't have a networking component, so that's not as much of an issue.


Depends on your audience. In my field all the cutting edge tooling is used in script or interactive command line. Writing for that sort of interface is so much faster and easier than making a gui even with modern libraries. You can still get plenty of users writing for a command line audience. There are like 40 million conda users for example.


This post changed my mind about sideloading on iPhones. Before I read it I was firmly in the camp of “lock it down, so grandma doesn’t get hacked.” But now I just think it stops people from making home cooked meal apps like this.

I also think it propagates the notion that computers are magic and should only be programmed by magicians. But no software developer I have ever met has felt this way. I don’t feel this way.


I think grandma-mode should still be the default, but with some arcane startup ritual to enable sideloading that you only have to do once, with said process being replete with "HERE BE DRAGONS" warnings. Basically make it more like a mac or a typical chromebook. Pixel phones still let you root them, don't they?


Not only does Google let you root Pixels, but they don't appear to be interested in interfering with GrapheneOS, which is specifically for Pixels and lets you run all of the google stuff in userspace so that it has to ask your permission before doing things.

Google is plenty evil in their own ways, but they're at least not anti-tinkering.


Probably because they know FOSS is not at all a threat to their business. I love the idea that if I wanted to I could put some other OS... But Android is very reliable and Graphene OS might not support some feature or other, which I might not notice till I actually need it, so I'm not gonna risk the most expensive thing I own with tinkerer tech.

Companies really overestimate end users tolerance for tinkering.


> I'm not gonna risk the most expensive thing I own with tinkerer tech

Different strokes I guess. Until I've put the vendor in a box, I don't consider it "my" phone, and I'm not gonna pay more than $300 for a phone that serves some other master. Yesteryear's refurb pixels are doing just fine.


Yes, I don’t know exactly what it’d entail but enabling sideloading really does need to be something that’s sufficiently scary to the non-technical to help curb social engineering by fake “Microsoft support” and such.

It’s somewhat painful and inconvenient but the old desktop OS model where arbitrary code can not only be run at a whim, but also gets free reign to do whatever it pleases simply doesn’t scale to the masses. It was a problem even prior to smartphones but has only gotten worse as larger swathes of the population have come aboard.


You should check out the arguments in Epic vs Google, where an arcane process to sideload apps was used as a data point against Google. By disallowing any exceptions, Apple can make the case that this is simply not a supported feature of their product.

The EU DMA and the resulting competition may cause Apple to release a lower priced tier for apps with a smaller distribution, and I look forward to that.


> By disallowing any exceptions, Apple can make the case that this is simply not a supported feature of their product.

I know that's what the ruling essentially implies, but that doesn't sound like a reality we should be encouraging or even entertaining, IMO. It's a failure of the US legal and antitrust enforcement system if this line of reasoning is accepted, blatantly so in this case.

I, for one, hope that Apple is eventually forced to open up their platforms to sideloading worldwide.


The only reason they lock it down is the 30% take from the app store. Grandma is more likely to lose her savings over the landline with good old fashioned social engineering over anything with that phone. If they actually cared about security and spam beyond profiting from app store or the repair situation, they’d have at least lifted a finger with imessage spam by now.


I think that's where the TestFlight "external beta" is genius. If there was a route for me to be treated like an enterprise for my friends and family, I would have years ago, but with TestFlight being so easy and the audience size so large, there's no barrier for me anymore. I just wish that was a route I'd have realized a while ago. And even though there's a cost barrier, I don't think it's that high given the tax to have a Mac in the first place.

You're right about the notion that computers are magic, but distribution isn't the cause of that. I think it's a shame people don't seem to want to do more with their computers. I remember my parents using pretty barebones database apps and stuff on a 386 back in the day, and somewhere since then the machines have become bigger and scarier, and they're less inquisitive. Maybe age, but maybe we've made the machines less friendly to new code.


Oddly I think sideloading should be allowed to prevent grandma from getting scammed. It's just a matter of who's doing the scamming. The criminals might make a big score, but the phone vendors act on a much wider front and are much more costly.


Your writeup, the idea of the app, and how you executed it is a breath of fresh air. The idea of building for a TAM (total addressable market) that is in single digits is a nice contrast to pretty much everything that's out there. Such an app is one step higher than a learning project, with oodles of utility, albeit for one or a few people. But those are the most important people in your life, so its much more fulfilling!

Comparing it to cooking a meal at home for your family is a perfect analogy.


TAM-driven development is at odds with the spirit of the minicomputer era, where it was expected that people would be making applications for themselves first.


Lovely idea. I’ve been thinking of “small scale web things” a lot recently, as I’ve been growing more and more tired of the planet scale web. I live in a small village in Canada and it would be nice to have something “village scale” that is only of interest, and as such perfectly adapted to only our village. Because it’s so small scale (we’re only a couple thousand), it can run on something in my closet. If it goes down for some reason, there’s no being angry with some large corporation behind it because it’s just me, and we mostly all know (of) each other here. If it’s temporarily down because or a power outage (which happens quite regularly here, especially during snow storms), even that will feel local: there’s a good chance users will have the same power outage. I’m probably being idealist and I’ll never do anything like this. Part of me also knows that most people will just continue using Facebook groups etc anyway.


While I am very much aligned with you that the “planet scale” stuff is tiring, I think you’re falling into a trap I myself often find myself in of “I want to create something. What can I create?”

It doesn’t actually make any sense for anyone except you, because fundamentally you’ve not actually got a product, you’ve only got a market.

Bear in mind that it’s perfectly legitimate to scratch your own itch and just build something for the sake of building it, and that’s a home-cooked meal too.


I'm trying to get as many people I know onto Meshtastic as possible. $25 hardware, no central server(I quite like not having home servers to maintain!), no ham licence, phone-based control.

Eventually, of course, I'd like to do Some Really Cool Project with it beyond the default functionality, but I have no idea what.


I never heard of Meshtastic. Looks very interesting. Going to read up on it for sure, thanks for sharing!


> I burned some incense and threw some stones and the gods of Xcode allowed me to pass.

Gave an audible chuckle at this one. I've done many a battle with those gods; they be beasts.


The author of the article, Robin Sloan, is an author that's written a couple of novels and a bunch of short stories (as well a great monthly-ish newsletter). I highly recommend giving his first novel, "Mr Penumbra's 24 Hour Bookstore", a read if you liked that line.


Lovely article but this made me sad/mad. How did we get to the point where this is acceptable? MAGA (Microsoft Apple Google Amazon) have a stultifying effect in our software sharing lives now.


>How did we get to the point where this is acceptable?

IMO, bad actors.

40 years ago we didn't need much in the name of cyber security, restrictions, controls, etc. You most likely personally knew the vast majority of other people that had any kind of access to your systems, or that you exchanged any kind of electronic data with.

As the aperture of users and developers has opened, risks have increased. There is probably some analogy here similar to how the value of network increases exponentially with the number of connected devices, the risk factor increases exponentially with the number of users and potential software developers for an ecosystem.


Exactly. Even major “trusted” third parties like Adobe can’t actually be trusted to keep their fingers out of parts of the system they have no business poking around in. Time and time again it’s been proven prudent to treat third party devs as hostile parties by default, with trust being hard-earned.


Agreed. Devs are somewhat of an isolated segment of society and so there are few politicians thinking about the stultifying effects of App Store distribution or the fact that even the devices themselves are hostile to shared personal projects.


I'm curious if Apple actually uses they software they write. Surely they must right? And if so, then how do they not improve it. Or if they don't ... perhaps they don't use other software so they don't understand how things could be different?


Yeah, I’ve said in many interviews that I know a lot about signing Apple products, all learned entirely against my will.


This is great.

I have a little internal app for my company. Just an isolated Rails app. It touches no internal business systems, but whenever I need somewhere to put a little code - it goes there. It has my growth chart, a little search engine for some internal data, a couple scripts to remind me about recurring actions, and some random integration tools like an RSS->Email script for the blog.

I recommend everybody just have a "miscellaneous" app separate from customer data for non-core code. Having a low barrier to building fun things liberates the mind. Not all code has to be high-stakes business work.


This is sweet. I'm learning RoR now and am curious how this is deployed. Is it a webapp?


I love writing bespoke software! My little bonus Christmas gift to my parents this year was a kind of Jeopardy clone that uses a dataset of questions from thousands of shows.

Watching Jeopardy is a new nightly tradition, but they always complained that they wish they could see the category when the clue is on screen, which is what inspired the project. It’s a full screen PWA and my mom likes to mirror her phone screen to their smart TV to play. There’s no score tracking or sound effects or “multiplayer” because it’s made for the way they like to play.

Of course, I can’t distribute it publicly either for copyright reasons, but I wouldn’t want to anyway.


A lot of the time, the hardest part for these things is finding the dataset (and the hardest part of personal projects in general). How did you curate yours?


You’re spot-on. I may not have started the project if I didn’t know there was a specific decent dataset available. I already knew of a dataset of Jeopardy questions that is somewhat popular in ML circles so I just used that. I believe it’s based primarily on the excellent fan-maintained j-archive website. It’s unclear if the dataset was created with the permission of the j-archive maintainers.

I don’t do any real “curation”, I just cache the entire dataset with a web manifest file and do some simple processing on it to find a game with a full set of questions.


This reminds me of my app "Delayed" which I started writing when Android phones were new, and I was commuting by train in Stockholm, Sweden. I worked about a 2 minute walk from the train platform, but I still wanted to know if they were delayed, also I wanted to avoid the proprietary platforms' slowness. I wanted to be able keep working until I knew the train was about to leave.

The mobile networks at the times were abysmally slow and unreliable, the API I was using was slow, basically loading times were unacceptable, I needed the info without delay. No, actually pre-fetched even so that it was working even when offline. I ended up scheduling my app using Tasker so that when I was likely commuting it started updating the timetable in the background. Now I always had instant info available, as good as I could at least.

Plan was to release the app but I eventually realized I would never polish the app to a releasable state, but it still worked 100% for my exact usecase. So I never did get further than a beta test on the Play Store.


When I first read this post, it helped me decide not to try to adjust my home automation app for the masses.

I have a single JavaScript file that runs all the automations in my house. Everything runs on Mqtt and this file handles all timers and temperature adjustments and turning everything off in the house when the right button is pushed and checking that the doors are locked and keeping the front porch lit when the sun is going down and dimming as the sun comes up, and heats my office when I'm in it and it's colder than the rest of my house, but not otherwise, and notifies us when the washer or dryer are done or when it's time to change the automated cat litter.

Adding a device takes about 5 minutes. Changing a timer takes less. I've ssh'd in and changed things from my phone when lazy on the couch.

The commit history is practically useless. The code isn't ideal for a team. It could use a UI. But I love it. And my family is happy with how it all seems to work without much hassle.


That's fantastic. Sounds so much simpler than using Node-RED or something. How do you monitor the laundry? Like is your washer/dryer "smart"? or do you have some sort of vibration/current/noise sensor to determine when they finish?


I'm using the power monitoring feature on a "heavy duty" z-wave power switch (zooz zen-15) to track the power usage. When it jumps over a threshold for at least a couple seconds, I assume the appliance is on, and then when it drops to zero for at least a couple seconds, I assume it's "done".

Same goes for the kitty litter box, although that's just a standard z-wave power switch, not a "heavy-duty" one. That one gets some false positives, so our counter gets a bit higher than the real one, but the discrepancy isn't a huge deal. Looking forward to debugging this one eventually.


This is why I feel really uneasy about LLM/AI stuff. It feels like cooking now requires commercial quality equipment only available to the Michelin star restaurants.

It used to be possible like showHN posts go on to become smashing success. But Dropbox like posts seem like an impossibility now.

I've been having serious mental crisis from this realization.


> It feels like cooking now requires commercial quality equipment only available to the Michelin star restaurants.

Why does AI make you feel this way? It feels the opposite to me — like meals that formerly required a master chef to make, but soon anyone can make for themselves at an acceptable level of quality with meal prep kits


A few months ago there was a post on HN about catching up to the current state of LLM dev and learning how to use it. In it there were recommendations for hardware - the lowest tier being a 3090/4090. When looking at the decision tree for even cheaper options, it basically said to find another hobby.

Not sure if that's changed but ever since seeing that line, I've been put off of that world. I still occasionally click on HN links advertising new methods which can be run on "consumer" cards and every time it's just a 3090/4090...

I don't have that much money.


For training or inference?

The p40 was on the inference side of the tree and you can get one on eBay for $200 or less.


If we're still entertaining the above analogy, a home kitchen costs more than a PC with a 3090/4090.

But when I got into software in the 90s, it was about $4000 for just a run of the mill desktop PC, which is about $8000 in today's money. And it didn't even have 3d acceleration.

In the grand scheme of things, a 3090/4090 is not expensive.


A gas camping stove is like $50. A toaster oven is another $50-100. The best reviewed chefs knife on the market for commercial kitchens is $30.

You don’t need thousands of dollars to start cooking.

I have friends in the who cook on this stuff at home all the time. We in the west have elevated our kitchens into something luxurious. Nothing wrong with that, but it’s overkill for many people.


You can get started with cooking on a gas camping stove like you can get started with AI projects on a Coral Edge TPU accelerator.


My feeling is that only big tech can now create any good apps since they all require massive compute now.

Yes writing a todo list app is now faster with copilot and stuff but thats now what i meant.


Please don't be discouraged by whatever "Big Tech" is doing.

Products that we build today represent many millions of decisions and trade-offs.

If you believe something should exist, please build it and don't worry about what anyone else is doing or saying.

I was working on an application in the early 2000's and learned that Gigantic Inc. launched something to solve the same problem. I immediately bowed out, and they immediately let that first-launched beta languish for more than 10 years with less staff than we had.

In the intervening years, another startup built a similar competitor and sold for hundreds of millions of dollars.

As another example, I eventually worked at Gigantic Inc, and the org that I was part of had been failing to deliver a useful product to the public for about 7 years, and continued to fail for many more. This was an organization with hundreds of people and many hundreds of millions of dollars of budget, and they were being absolutely clobbered by a combination of their own unbelievable incompetence and the brutality of the market around them.

One of the biggest lessons I've learned in my career, is to never assume that just because Big Tech has some budget, that they also have attention or competence.


> since they all require massive compute now.

They do? How so? I can only think of a small subset of applications that require large amounts of compute.


Interesting, I actually feel the opposite. The scale at which big tech apps have to operate leads to a lot of bad UX and more bugs due to complexity. For example you can typically get much lower latency hosting a web app at or near your home than Google can provide.


And yet, the vast majority of cooking is still done at home on relatively cheap equipment. Go build things that interest you using the tech stack you have and ignore the hype.

Try to satisfy yourself, and maybe that will lead you to a commercial kitchen with a Michelin star. I know nothing else will.


Don't fall for the apocalyptic doomsday narrative. It is in the interests /of/ the 900 lb gorillas in the space to make it seem like it requires so much investment that you may as well not bother.

But there's a thriving community on HuggingFace and Reddit showing what you can do with the lo-fi versions. In particular, the evolution of lower bit inference (and I believe training as well even) has reduced memory requirements and because of that hardware requirements considerably. There is a lot you can do with your own local gen AI model running on your personal machine.


For me it's the opposite. Taking on a personal project like this one would be incredibly frustrating, because some relatively small steps would be huge time sinks. Now with LLM's, I am much faster, I just focus on the aspects I want or that I am good at.


Same for me. I just launched my first full stack side project (I'm a mobile dev by day.) I was always technically capable of it...but using LLM's I basically was able to skip the "how do I do X in node" steps and significantly speed up the backend side of things, while I still learned a ton in the process.

Now it feels like I have these incredible capabilities to apply LLMs in novel ways. I've had a personal project (an expense tracking app) where now I can see a path to easily do things like scanning receipts accurately, automatically categorizing CSV imports, etc. They were always within the realm of possibility - but would have taken so much more time to build as a one man shop. And we are just at the tip of the iceberg right now.


It is kind of amusing to see this presented as a novel concept. This is how all software development worked once upon a time. Computers used to ship with BASIC interpreters, not app stores or package managers.


It’s not novel so much as an invitation to do the same.


Discussed at the time:

An app can be a home-cooked meal - https://news.ycombinator.com/item?id=22332629 - Feb 2020 (130 comments)

Also:

An app can be a home-cooked meal (2020) - https://news.ycombinator.com/item?id=38856985 - Jan 2024 (1 comment)

An app can be a home-cooked meal (2020) - https://news.ycombinator.com/item?id=32800518 - Sept 2022 (51 comments)


I enjoyed the "Colophon" page almost as much as the article

https://www.robinsloan.com/colophon/

I love the built-in style guide. I'm totally stealing some ideas from that...


If you liked that, check out also his newsletter and his fiction writing - both are stellar (his is the only newsletter I read, even though I pay for other ones!)


> But let’s substi­tute a different phrase: “learn to cook”. People don’t only learn to cook so they can become chefs. Some do! But many more people learn to cook so they can eat better, or more affordably. Because they want to carry on a tradition. Sometimes they learn because they’re bored! Or even because they enjoy spending time with the person who’s teaching them.

This is actually why I think more people should learn some coding (and why there should be more HyperCard-like environments for non-professionals). It makes the computer or phone a tool to do the things they want, not just what some programmer in SF wanted to write and try to market.


> When you liberate programming from the requirement to be professional and scalable, it becomes a different activity altogether, just as cooking at home is really nothing like cooking in a commercial kitchen.

What if you have never cooked at home but all the time in a commercial kitchen? That's the reality for most of us here so it is a bit difficult to relate to this article.


Some easy answers:

1. Not all articles will be relatable to everyone, and that's perfectly fine.

2. Your "what if" scenario is trivially surmountable: write some code at home, for yourself, for something you enjoy, or for someone you care about.

I don't understand how someone could read this and not only have the takeaway that you did, but come here to mention it.


Well, try it. Use an awful language you like, break conventions. If you don't like it, just scrap the project. After all, noone is waiting for you. It runs like crap and looks awful? As long as you like it, your whole userbase is fine with it


> What if you have never cooked at home but all the time in a commercial kitchen? That's the reality for most of us here so it is a bit difficult to relate to this article.

Really? I'd hazard a guess that the majority here (> 50%) have never worked at a commercial kitchen!

I'm honestly curious to understand why you think most people here must have worked at commercial kitchen and never cooked at home?


The poster is speaking through the analogy: they mean most people here have coded professionally but not at home. I'm not sure I agree with that, I think a lot of programmers have done hobby projects, even if only when they were starting out.


> they mean most people here have coded professionally but not at home

The idea that there are devs who did not do fairly extensive home coding is so alien to me! I don't personally know a single dev like that, and it would never have occurred to me that they exist.

TIL


Thanks for clearing up my confusion! That comment makes total sense now and not as baffling as it first looked.


I think you are incorrectly extrapolating to the entire community based on your personal experience. You are assuming that most of the readers at this site are working in a similar professional context that you do. You are also assuming, but all of those people who work in a professional context, do not also “cook at home.”

It’s OK if you did not relate to the article. But I certainly did!


For what it's worth, I think HN audience by nature of spending their free time learning about interesting techy things is more likely to be doing their own "home cooking".

I agree with the sentiment of the poster above if applied to the majority of professional software devs though.


I would recommend trying home cooking if only for the reason that, in a commercial kitchen, you have a role, but cooking at home means you will have/get to do everything yourself: from ingredient sourcing to dishwashing (and even front-of-house stuff like table service).

Carver Mead, in a hardware context, described the "tall, thin person" as someone comfortable at all layers: with their feet on the (rubylith!) layout and their heads in the architecture.

(I have read that in the days before email, it was customary to let the owners' kids sneakernet those manila "interdepartmental mail" envelopes as a summer job, because it brought them into contact with all the facets of an enterprise)

> Making the landlord and the tenant the same person has certain advantages, as that the tenant pays no rent, while the landlord does a little work. — GKC


I like that you shared this post. I imagine for someone who has only done corporate programming that making a home-cooked meal (in programming terms) would be very refreshing and liberating!


It's never too late. You can start coding after work even right now. You can serve a well-cooked app to your friends and family instead of shipping a feature you don't care about to an amorphous mass of users (that you don't care about) - it's an experience worth knowing.

Fun fact: that experience will likely change you, and your commercial kitchen co-chefs will also appreciate you more afterward.


i recently had to split a lot of transactions among friends. I realized that all the commerical apps out there(splitwise etc) weren't gonna split the taxes evenly. So I made my own bill splitting app and have been using it ever since!

Another recent app I made happened when I moved into a new apartment. I realized tha the doors were very soundproof so if someone knocked at the main door, there was a good chance I wasn't gonna hear it. So I put up a QR Code at the door, pointed it to a webapp and that basically functioned as virtual bell. Where I would get a notification on my iphone and apple watch everytime someone "knocked"!


This feels very related to the larger research project of “malleable software” that lets everyday people modify and author the software they use for their own needs: https://malleable.systems/

My friend Geoffrey Litt is heading the malleable software group at Ink and Switch: https://www.geoffreylitt.com/


Never heard of this concept but got would it be great if things were more maleable. There are a lot of services that I would be way happier to use if it was possible to remove or change features.


I do this too, I write scripts, and one-file apps that solve issues that only I think I have. Like I've been running an InternetReachable.swift [1] manually at the CLI for months to have a nice visualization of when my internet connection is not actually working. I travel a lot by train, and some regions have spotty 3G. I got tired of looking at `ping 1.1.1.1` output lines until the connection came back.

But for whatever reason I get the urge to polish the thing, make a pretty icon for it and publish it in the hope that others might also have the same weird specific need as me. That script above just turned into an app called IsThereNet : https://lowtechguys.com/istherenet

I'm not sure why, but I get a little dopamine hit when I see people learning a thing or two from my experiments. I guess that's why we still do the kind of open source that doesn't ask for money.

[1] https://gist.github.com/alin23/e15b6ffc62a85790096f0228c54fd...


Thank you very much. A few times I've been out on site and someone will told me that "the internet has gone down." I can easily spend hours offline programming, so this app is perfect for me to keep an eye on it.


> In a better world, I would have built this in a day, using some kind of modern, flexible HyperCard for iOS.

How much we have lost.


Once a while we get a post where everyone has an excuse to gush about Delphi/Lazarus/Free Pascal etc. in the comments, but no one's quite sure about the iOS story and no one really has the time to check up on it...


To be fair: this app would not have existed on the desktop. Our families don't like to sit at a desk for hours, fighting with imaginary concepts, like we do.

The mobile world brought the masses to computing in a way that desktop never could. Unfortunately, the company with the best intuitions in the space also happened to be the most closed, paranoid, and sociopathic entity in the market.


I love seeing whenever this is (re)posted.

This article had such a huge impact on my life and led to me creating many pieces of software[1][2][3] that were hyper-specific to myself and my needs at the time, which also later found an audience in others who think and work in ways similar to me.

[1]: https://notado.app - a "content-first" internet bookmarking and highlighting service which has been my second brain since 2020 after growing frustrated with Instapaper, Pinboard and Readwise. Eventually I expanded this to allow for RSS feed publishing on specific topics in an attempt to solve the "firehose" problem when following other peoples' bookmarks/shares, and at the end of last year I added what is now my most used feature of image generation from highlights for sharing on image-first/text-hostile social media platforms.

[2]: https://github.com/LGUG2Z/komorebi - tiling window manager for Windows. There wasn't really anything fit for purpose on Windows when I started, and I was too spoiled by bspwm and yabai on Linux and macOS that I just had to write something before I could become a truly productive Windows user. I'm astonished that this now has 50k+ downloads.

[3]: https://kulli.sh - I use this to aggregate comments from HN/Reddit/Lemmy/Lobsters on an article I'm interested in in one place to read. This has helped me find some interesting niche communities on Reddit and Lemmy who share and discuss things I'm interested in that I otherwise wouldn't have found.


Thanks for sharing about your projects (especially notado and kuli.sh), I would never have heard about it if it weren't for this comment.


I love this sentiment. I built a beer inventory app exclusively for myself + guests picking a drink to try when when they’re over at my house. I’m up to 26 “users” over the past few years, but most of them just browse on my phone when they need another drink.

When I talk about the app, some people immediately jump to other inventory problems in their own lives: Can you make it work for my wine fridge? Could I keep track of my kids’ ever-changing wardrobe? I’d love to manage my Warhammer collection this way! It certainly seems like there could be a consumer product to help tackle those problems, but it’s not gonna be my app.

Edit: In more of a work context, I think internal tooling for specific users or teams can feel similarly empowering. When you have an intentionally-constrained set of users, finding product-market fit and making sure the solution actually works for their needs becomes the only goal. And with so few users, it’s easy to keep tabs on what is and isn’t working for them.


Is your app open source? If not, have you considered that? You could just say in the readme, "fork it if you want it to do something specific". Sounds like it could be a good starting point for a bunch of things. :)


> In more of a work context, I think internal tooling for specific users or teams can feel similarly empowering. When you have an intentionally-constrained set of users, finding product-market fit and making sure the solution actually works for their needs becomes the only goal. And with so few users, it’s easy to keep tabs on what is and isn’t working for them.

I've seen a few of these and they always fall into (non-)maintenance hell once the dev (it's always just one, because the business can't spare a whole team for something like this) leaves, or until the next re-org (read: almost certainly less than two years from any random point in time) when the responsibilities of the team it was built for are divided among other teams, or outsourced to a body shop like CapGemini that won't use it (because they can replace the functionality with an army of managers with spreadsheets, all of which they can bill for).

In short, I think it's largely a fantasy to develop custom software for small userbases on economic grounds (at least for nontechnical users using typical "real" stacks -- spreadsheets and "programmer tools" are a different story), which is kind of the point of this piece.


> Update, February 2022: Two years later, my family still uses BoopSnoop every day. I have added one (1) feature, at my mother’s request.

What is that one feature I wonder? Robin, you around to answer?


Nice article and lovely concept. I'm not a professional dev, but use programming to enrich my quality of life, and it's nice to see some of those thoughts put into words.


On the truly lightweight end, I find Apple's Shortcuts to be effective for ad-hoc personalized creations. I wanted a simple journaling app which allowed me to just talk, transcribed what I said, and stored it with a timestamp in a text file. Realized I could do all of that quite easily with Shortcuts: I trigger it, talk as long as I want, tap the screen, transcribes (I call an API for better quality), then appends the result to a note with a timestamp. Fast, easy, and it's been reliable. No in-app purchases or ads, either.


Nice write up. I like building small apps like this as well, like gigtablet.com which I made for my band to use. It has us 7 users and we’re happy with it so that’s all that matters.


Related 'Ask HN' that I posted about 3 weeks ago, and that got over 780 comments, with many apps mentioned, which was quite unexpected, but fun:

Ask HN: What apps have you created for your own use?

https://news.ycombinator.com/item?id=38623695

Still haven't checked all the replies with links to their apps, which many gave, but plan to.


Do you still need to pay Apple's extortionate $99/year developer fee if you're only developing apps for private/personal use?


Yes.

And it's explicitly not allowed to publish in the app store for such a small audience.


Technically you dont need it to develop and app for yourself. Practically the cert expires every 7 days without a dev license so its very annoying without one, vs being able to distribute to people you care about on test flight


Always relevant, always worth reading, but for the two main past discussions here:

2020: 556pts, 132 comments <https://news.ycombinator.com/item?id=22332629>

2022: 186pts, 51 comments <https://news.ycombinator.com/item?id=32800518>


In order to help unblock everyone from sharing their “home-cooked meal” apps, I’ve submitted an Ask HN to make space for sharing stacks: https://news.ycombinator.com/item?id=38878837

The idea is to allow people to “share ingredients” of internals of projects without the requirement of sharing the code


This is super interesting. Took me until nearly the end, when he started talking about how he wouldn't last as a professional software engineer, to find out he isn't one.

Great way of looking at programming. It really is just another way to create, akin to drawing or writing, and it feels as if we almost desecrate it by treating it the way we do. Inspiring article.


Beautiful! I feel this post is more relevant now than ever with the presence of Chatgpt and its like. Almost anyone who is fluent in English, can articulate what they want and is willing to spend a bit of time configuring development environments can churn out personal projects (falling within state of the art) over a weekend. So lucky to be alive right now.


Love this topic, thanks OP! Many years ago I created an iOS bread dough calculator that basically hard-coded the ingredients in percentage form. I used it personally for years to make pizza crusts, etc. all in a scalable format. Once, my wife and I hosted a big "make your own" pizza party and I used the app to create enough dough for 30 or so personal pizzas.

Eventually I pushed it forward (thanks to the Unity Engine at the time) and made it a "real" app on the App Store. As others have noted, there's a large gap between bespoke, home-cooked software and commercial choices. As a full-time developer this was a side-project and still suffers, imho, as an under-invested commercial app. The app has had very modest success (pays about the equivalent of one espresso a week) but I still love it.

When an app is "just yours" there's an aura of fun about the project that can get stripped away when the trajectory becomes more commercial.


Wow, thanks! I read it a long time ago, and later wanted to find this exact article, but couldn't.

I also have quite a few tools like this, although on another platform (Emacs). I love the whole concept of "home-cooked apps".

And btw, the first project like this I made - for myself and my family - was a database-like app on a Commodore 64 over three decades ago...


I self-host a number of things that I've cobbled together in similar fashion for my kids. A while ago I had a bunch of minecraft servers running, when the kids were more into minecraft. There's Vaultwarden, a musescore downloader for my piano-minded kid, a spidered mirror of imgur user ngugi's middle-earth lore posts, an Emby instance populated by both random funny videos I find and also by a cron job that mirrors certain youtube (and other) channels locally so that my kids can watch them without being classified by an algorithm...

I don't publish these things for the most part, each of them took between a few hours and a few days' worth of spare time to put together, they're all made without pretension for an audience of 3-4 people only.


This is an amazingly refreshing view of programming. I am envious of anyone who can apply first hand their programming skills to the world around them. I can program, but real life and programming just seem to occupy entirely different realms of my brain, unable to cross over.


Fascinating. Sometimes I think I might lean too far in the other direction.

I can't help but imagine-architect software solutions to my meatspace problems and nonproblems if I let my mind wander. I have to remember to ask myself, sure I want to build it but would I really want to use it?

By the time someone has finished telling me the awkward thing they had to do today I've got an idle loop in my brain spinning (silently) on finding a "better" way.

Admittedly, not many of these get built because time is limited, all software takes ongoing care and many cures are worse than their associated disease.

Some do, though. Particularly internal tooling for work which can be measured in $ and some projects which scratch a community itch which can be measured in positive interactions.



I think this kind taste towards developing your own tools forshadow how programming will look like near future. There won't be dozens of abstraction to develop application and there won't be a playstore to hold millions of apps, there would be just a declarative language or Ai that takes human natural language and convert it to it and a black box that takes that declarative recipe and create the precise app according to user need. Instead Programmers there would be just a logicans and blackbox(AI system) that created most optimal way to accomplish the requirements. Creating application will be a end to end experience.


This article has been such an inspiration for us at Hatch (https://hatch.one/)! We founded the company as “Personal Software” and we’re working hard to lower the barriers for this kind of creation. The opportunity shouldn't be limited to people who know how to code. Several pieces of the puzzle are in place with more in the pipleine. Here's quick video of getting started creating a web app in 60 seconds: https://www.youtube.com/watch?v=HQMFFkCHrdo


Really happy to see that!

One thing I'm always worried about when I develop one-offs myself is what happens if I'm not there to service/update/maintain the thing. For some apps (like family photo archives) this matters a lot.


Really cool. I love that this is a modern rejection of threaded posts, or things that gluttonously try to steal your attention. The choices (irreversibility, privacy, lack of mediation) are the same as what you get if you actually sit in a room with someone and talk.

I was quite sure I'd set it up for myself and family before I read it required AWS .. I wish instead of buckets and lambda functions... well... perhaps it's worth replicating the whole thing in Nodejs and sqlite which would be the highest praise of all ;P

[edit yeah yeah there'd have to be a bucket-like storage blob somewhere.// or would there?]


If I were doing something like this now I would probably try to use https://val.town It lets you just write and deploy typescript lambdas by typing into a text box :) The easiest way I know of to deploy an endpoint. It also has SQLite or blob storage access.


Pretty sure you could slap that change in in like a couple of hours. There is no high availability or traffic requirement. Then run it from your NAS.


I’ve been wanting to make something along this spirit.

A personal social network. No influencers. No ads.

It rides on existing messaging rails (email, SMS, IM…) for distribution.

You just post stuff to your feed, and your contacts get a notification when appropriate.


That’s a WhatsApp group.

Which is exactly what various factions of my family use for shared messaging.

It’s the purest social network….. people and messages.

Ironically owned by Facebook.


IMO the technical part of this is easier than the social part. I've been hosting a Matrix server for years, and use it to talk to my wife and one friend.

One relative tried it but would ignore messages (iOS notification system design is bad, but their home screen is disorganized too), and would constantly revert to iMessage/SMS/MMS. Two other relatives who are in a WhatsApp group with me pretty much refused with "But I can talk to you on WhatsApp just fine?", or "Who am I going to talk to on there?". Ironically does not stop them from downloading Viber, Instagram etc. Thankfully, the WhatsApp bridge + Matrix client works for 95% of the use cases.

Thus, I am happy that the author's efforts found good use and were appreciated.



Not very home cooked, but once I was working on a project/startup of mine that involved tracking degrees of freedom/trajectories and it was very manual/empirical testing, so I made a second app that would plot everything for me in real time, receiving data via socket. This was before iOS had any AR frameworks and just as Metal was released. Nothing existed to test AR, so I made it myself, with my data format, exactly like I wanted it and it was such a quality of life feature.


Robin Sloan is a treasure. His newsletter is also top notch content.


As are his short stories, books, and olive oil.


Lovely article and loved the analogy of home cook to making an app. Being a professional programmer who loves programming, I never thought about programming like this. But there is a catch here, I would wager that trying cooking at home is far easier and accessible as compared to making simplest of apps. Most of the no code low-code tools are focused on helping companies make software for their use and not focused on individuals making apps for themselves.


A friend and I recently created an app to track realtime scores for a high school reunion fantasy draft (we drafted teams with a few friends and you get points if the person shows up).

With AI helping it really lowers the barrier to personal or one-off apps you wouldn't otherwise have time for. We did the app in the framework he was comfortable with, which I hadn't used, and I wrote all my code with AI.

I got smoked in the game though.


Dated WBM link to the Clay Shirky blog post in the article: https://web.archive.org/web/20051129091414/http://www.shirky...

Must have been taken down from shirky.com since so WBM's last capture is a 404.


Some time ago I took a sudoku app and added some features that I wanted. It was a great learning experience, my code introduced some bugs and it's not perfect but the whole thing felt really good.

Wish android development was a bit more straightforward, I always find it kind of difficult just because of the amount of things that might go wrong. Kinda like coding videogames I guess.


I always wondered if there would be a market for smaller scale apps. I'm thinking something sold through an app "farmer's market". This could be a Patreon/Etsy style platform where maybe app devs would do streamed live coding or Q/A sessions every Saturday morning, ideally wearing denim overalls.


How would a "smaller scale apps farmer's market" be different from random freelancing?


I'd rather home-cook and take regular walks around the district, than having to spend even more time w/ tech after for work. Work is already kind of fulfilling, even as a manager, when you still can dabble with lower-level things and tools work. But spending your pasttime on more tech? Thats so sad, seriously.


I can't help feeling this is incredibly prescient.

Not everyone could be a home cook developer in 2020 .. but in the future, my bet is they will be able to thanks to AI/LLM advances.

Maybe we should expect (and are due) a total paradigm shift in terms of digital product consumption?


On a much smaller scale:

This was my exact sentiment some time ago after remapping a bunch of keys, along with "why didn’t I think of this sooner".

It still feels magical to this day and removes 90% of annoyances when typing.

Using standard keyboard layouts is like riding a toy sized tricycle now.


What are some of your favorite remaps?


I may have made a very simple app for someone to get around their filter on their laptop....


This is the way, for those of us who have the ability and inclination. Software you create for your own use, and the use of your friends and family, is software that is customized for your particular needs and software that you can trust.


Love this. I recently started working on two apps with this same mindset: I just want to create an app for myself (todo with limits, group chats with content limits). It feels great and is enjoyable even if it doesnt get a million users.


Looking for a software job now, I'm wondering if I'm more of a home chef than a commercial cook...But when commercial cooking is fully remote and pays well...what to do...


I know it's probably in rough shape but I'd like to use this myself, even if it takes a lot of code to modify. I guess I'd need an android app too tho


He writes that there is no login system and "It already knows exactly who’s using it."

Is there a way to get back a user ID from TestFlight?


From what I gathered, he means the app doesn't have any user authentication period because only 3-4 people can even download the app to begin with since it's restricted with TestFlight.


Is this iPhone? How did you distribute said app?


In the text it says: "I distributed the app to my family using TestFlight, and in TestFlight it shall remain forever: a cozy, eternal beta."


I had the same question. He says TestFlight, but he's handwaving some of the headaches of that. TF builds expire every 90 days.

The other option would be an adhoc certificate, but then you have to collect everyone's apple id.

Apple makes this kind of app distribution process more painful than it needs to be.


It should hopefully be easier in the future when side loading is possible on iOS.


Sideloading is still blocked in the US in their new releases. Only allowed where mandated (EU)


With four users that’s not as onerous as it sounds.


TestFlight is mention in the article so I guess yes, iPhone.


I'm actually surprised that TestFlight was available for this, since I recently worked on a private app and did a bit of research into how to distribute it - everything I read implied that TestFlight apps will be reviewed by Apple employees and must be apps that intend to eventually be distributed more widely (e.g. beta versions). I got the impression that an app for family or friends that wasn't set up with a plan for release at some point would be rejected.


Hopefully legislation will fix this.

People are able to do things in their own home without asking Amana or GE permission and having their recipes examined and reviewed.


You can distribute to "internal" testers (people you add to your developer account) without any review process. The app is only reviewed if you want to distribute to external testers.


Based on the blog post, it was created February 2020 where the rules you mentioned was not enforced yet. But around that time I believe you can also export an ipa file so anyone can install but you have to include your target’s UUID in the app signature.


It’s a more cursory review, and missing features are fine. Would be easy to slip through.


I made a couple apps that only I use and is very niche because probably only I would use it but very helpful.


My biggest sadness is wishing that it was easier and more accessible to build stuff like this on iOS. Making things and distributing to the App Store is an absolute nightmare. Of course that’s also what makes it so much better than almost every other App Store. But they still let trash in.

I’m not sure what the right balance is, and maybe this is the right balance.


Awesome stuff. This is the type of thing that got me started with programming.


Does anyone have a tip for "some kind of modern, flexible HyperCard"?



For a small group messaging each other, at what point is simple SMS superior?


Once SMS itself becomes a more modern way of communicating. Currently every 160 (IIRC) characters costs, sending images (and god forbid videos) is barely worth it, not to mention the lack of security. Comparing to food, I would say this is as good as saying “Why not just buy a bag of chips instead of cooking a meal”


Most people don't actually use SMS though, despite thinking that they use SMS. My mom still thinks she uses SMS, despite it just being iMessage in the end. Messages can be long, video, images etc are easy and we have about 4-5 different group conversations going at any given time in my family.


"Most people" do not own an iPhone or use iMessages, maybe in your bubble, but not in the real world.


My family does... also, like 9 out of 10 teenagers in some places like the US, do.


The people that don't use iMessage probably use RCS, not SMS.


Yes, which was rolled out recently, and when these talk to each other it falls back to SMS, there's Messenger/WhatsApp/or whatever people are using today.

That's not the point I'm disagreeing with though, it's just a reminder that the claim that "most people" own an iPhone is delusional. It's just as ridiculous as someone only hanging out with billionaires claiming "most people fly private jets", and it can be healthy to consider the rest of the world from time to time.

I live in Europe and while iPhones aren't uncommon they don't have the status they (seem to) have in the US and most people use Android.


I can see two main objections:

1. SMS do not support group messaging. An SMS with multiple receivers is just multiple copies of a 1-to-1 message. The other recipients don't know about each other.

2. SMS do not support images or videos.

Maybe you're talking about MMS, but I've always found that clunky. I'm not sure why. Part of it is that it goes over a seldomly-used separate type of connection (at least with 3G and earlier technology) which isn't as reliable as plain TCP.


I love this idea! Yes an app can be small and used by a few people! :)


I maintain a whole set of services for my family I either implemented myself completely or glued from other sources.

We have our own no nonsense chat desktop, web and mobile apps for ios and android. Our own calendar for family events as well as to coordinate daily operations. Our own forum. Our own pages with resources and even our own documentation bot that you can ask pretty ambiguous questions and it can point you to the past posts/documents/chat threads that are relevant (when you don't remember where it was mentioned but you can describe what you are looking for).

Even a wall mounted ipad with couple tools that we find useful. Shopping list where you can add stuff for the next shopping run. Voting for meals. Calendar which is especially useful to kids because they can book our time when they need something or they can see when I plan to do my training sessions or when I am or I am not available (I work remotely and don't have set day plan).

Recently started spending time with my eldest son to add more features -- any way to get kids hooked up to programming is a win IMO.


I love this. Insight, warmth, humanity....


What a fantastic blog post!


(2020)


> I know I ought to pay it forward and publish the code for my app. Even if it doesn’t work for anyone else as-is, it might provide a helpful guide — one I would have been grateful to have. But the code is marbled with application-specific values, well-salted with authentication keys.

Meh. Pretty disappointing excuse. Wouldn't take long at all to separate secrets and would make the app inherently more secure anyway.


Wowzers I loved that.


(2020)


[flagged]


You say that, but the page is nothing but a form asking for name and work email with a "request access" button. Literally no other information is provided beyond "The end to end developer tool for TypeScript developers".

I assume this is some poorly executed self-promotion on your part. Maybe start with making your site say something about what the product actually is, can do, etc.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: