{"id":28864,"date":"2020-05-06T14:31:39","date_gmt":"2020-05-06T18:31:39","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=28864"},"modified":"2025-10-11T12:18:31","modified_gmt":"2025-10-11T16:18:31","slug":"reviving-a-16-year-old-mac-app","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2020\/05\/06\/reviving-a-16-year-old-mac-app\/","title":{"rendered":"Reviving a 16-year-old Mac App"},"content":{"rendered":"<p><a href=\"https:\/\/blog.tumult.com\/2020\/05\/04\/reviving-a-16-year-old-mac-app\/\">Jonathan Deutsch<\/a> (<a href=\"https:\/\/news.ycombinator.com\/item?id=23085028\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/blog.tumult.com\/2020\/05\/04\/reviving-a-16-year-old-mac-app\/\"><p>Today we released <a href=\"https:\/\/tumult.com\/whisk\/\">Whisk 2.0<\/a>: a lightweight web page editor with a live preview that updates as you type. The name may be new, but the mac app&rsquo;s origins are in shareware called HyperEdit that I started while in college over 16 years ago. It is hard to believe I&rsquo;ve worked on an app old enough to get its driver&rsquo;s license!<\/p><p>[&#8230;]<\/p><p>From a developer perspective, distributing software is significantly harder. In 2003, you could switch the config to Release, hit build, zip the app, and then put on a web server. In 2020, distributing requires learning the intricacies of certificates, code signing, provisioning profiles, hardening, notarization, .dmg creation, gatekeeper, and paying a $99 per year fee. From a mac technology perspective, I don&rsquo;t think it is an exaggeration to say the amount required to learn to distribute software exceeds the amount I needed to know to write the first beta of HyperEdit! I wonder if it would have gotten off the ground if I started today.<\/p><\/blockquote>\n\n<p id=\"reviving-a-16-year-old-mac-app-update-2020-05-18\">Update (2020-05-18): <a href=\"https:\/\/twitter.com\/terhechte\/status\/1262095235909378049\">Benedikt Terhechte<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/terhechte\/status\/1262095235909378049\">\n<p>I spend the last 9 months working almost every spare minute on a new iPad \/ macOS app. It seems I&rsquo;m almost done, but this affected me really hard. It was so so so much work. Looking back I should never have started this. I&rsquo;m unbelievable proud, but also totally exhausted &#x1F614;<\/p>\n<p>[&#8230;]<\/p>\n<p>I think there were times when I was close to crying because it was all just too much. This also includes a plethora of UIKit bugs which more than once made things that seem trivial cost me weeks.<\/p>\n<p>There&rsquo;s just <em>so much complexity<\/em> going on, and my app doesn&rsquo;t even use the network, but there&rsquo;s so much tech you need to know, understand, incorporate, and then manoeuvre around all weird iOS behaviours<\/p>\n<p>SwiftUI, Cursor, UIDocument, iCloud, Spotlight, Unicode (two different strings), Drag and Drop, Splitscreen, Multi-Window, Keyboard, Objc Interop, Sharing, Undo, Dark Mode, Assets, and so on. Building an indie app is a suicide squad<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/OluseyiSonaiya\/status\/1262448064012455936\">Oluseyi Sonaiya<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/OluseyiSonaiya\/status\/1262448064012455936\">\n<p>This whole thread, amen.<\/p>\n<p>I&rsquo;ve paused my indie iOS app multiple times, because it&rsquo;s unclear that the return is worth the effort. I&rsquo;m finding peace treating it purely as a hobby.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Jonathan Deutsch (Hacker News): Today we released Whisk 2.0: a lightweight web page editor with a live preview that updates as you type. The name may be new, but the mac app&rsquo;s origins are in shareware called HyperEdit that I started while in college over 16 years ago. It is hard to believe I&rsquo;ve worked [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2020-05-06T18:31:42Z","apple_news_api_id":"7b045f2f-a639-457a-85bd-c12783013d25","apple_news_api_modified_at":"2025-10-11T16:18:33Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAQ==","apple_news_api_share_url":"https:\/\/apple.news\/AewRfL6Y5RXqFvcEngwE9JQ","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[466,465,295,30,32,1666,1842,71,2848,68,1943],"class_list":["post-28864","post","type-post","status-publish","format-standard","hentry","category-technology","tag-codesigning","tag-gatekeeper","tag-history","tag-mac","tag-macapp","tag-macos-10-15","tag-notarization","tag-programming","tag-provisioning-profiles","tag-texteditor","tag-whisk"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/28864","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=28864"}],"version-history":[{"count":2,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/28864\/revisions"}],"predecessor-version":[{"id":28962,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/28864\/revisions\/28962"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=28864"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=28864"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=28864"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}