[HN Gopher] Show HN: Yet another macOS ChatGPT app
       ___________________________________________________________________
        
       Show HN: Yet another macOS ChatGPT app
        
       What I thought would take me weeks in development, took me months,
       but it's finally out. When ChatGPT API came out in March, my first
       idea of what to build with it was a spotlight-like app for my mac.
       The product was ready in a matter of days, but making it useful and
       sellable to people via some kind of distribution platform was
       another challenge. Coming from web development, learning how to
       ship a native app was a trip, but here it is, ready to share with
       the world. Try it out with the free trial, and I'd appreciate any
       kind of feedback.
        
       Author : evindor
       Score  : 25 points
       Date   : 2023-07-03 20:30 UTC (2 hours ago)
        
 (HTM) web link (letsflyai.com)
 (TXT) w3m dump (letsflyai.com)
        
       | DanielKehoe wrote:
       | What's in the "Fly AI Pro" in-app purchase at $12.99? I'd like to
       | know before I download and install.
        
         | evindor wrote:
         | When you install the app you get a trial with 100,000 tokens. 1
         | token = 1 Open AI ChatGPT token, or 1/30 GPT-4 tokens (aligned
         | with Open AI pricing).
         | 
         | The in-app purchase grants you 4 million tokens per month, with
         | unused tokens rolling over to the next month.
         | 
         | My aim is to provide a sleek macOS ChatGPT/GPT-4 experience for
         | people who wouldn't bother signing up for Open AI developer
         | account and bringing their own API keys.
         | 
         | Alternatively, if there is demand, I was thinking of charging
         | just for the convenience of my app and allowing people to
         | "bring your own keys". Let me know if that would be a more
         | attractive option for you. Not sure how that would fly with
         | Apple in-app purchase policies, but could be worth a try if
         | that's what people want.
        
           | ghughes wrote:
           | You could evade Apple by allowing users to register their API
           | key on your website, not in your app.
        
       | w-m wrote:
       | Downloaded, saw "Sign in to start your free trial", which turned
       | me off immediately unfortunately. So I'm probably not the
       | intended audience - I'd like to have a fast, reliable Mac UI to
       | use with my OpenAI API key.
       | 
       | So far I've been using Machato
       | (https://untimelyunicorn.gumroad.com/l/machato), which has the
       | perfect feature set for me, but despite its claims of being a
       | native app, is just infuriatingly slow. You can't at all scroll
       | in the app while it's producing text, and switching between
       | conversations feels worse than using Slack.
       | 
       | So the search continues. What makes it so hard to produce a
       | responsive native app, that there are so few of them out there?
        
         | Terretta wrote:
         | Machato is the closest I've found as well, other than CLI /
         | console tools or "roll your own".
         | 
         | Ability to set (and save) system contexts is critical. It's
         | unclear to me why most apps don't enable this.
         | 
         | I can't get by without Machato's other innovation of
         | suppressing earlier parts of the history I no longer need later
         | in the conversation, making it straightforward to have 64k
         | interactions with the 8k model.
         | 
         | Ability to fork and file conversations, as well as the cost
         | monitoring, are gravy.
         | 
         | - https://untimelyunicorn.gumroad.com/l/machato
         | 
         | - https://github.com/sigoden/aichat
        
         | swyx wrote:
         | you might like mine! open source and compiling from source is
         | encouraged. https://github.com/smol-ai/menubar
        
           | w-m wrote:
           | I'd be interested to hear why your app will beat others in
           | performance. Looking at the repo, it seems to be electron-
           | based, so it's not obvious to me on why I should try it, if
           | I'm looking for responsiveness.
           | 
           | Edit: had a closer look, it's a multi-app for different AI
           | chatbots. Fun, but not at all what I'm looking for
           | (responsive Mac interface to OpenAI API).
        
       | boolean wrote:
       | > Coming from web development, learning how to ship a native app
       | was a trip
       | 
       | Can you share your learning experience and overall impressions?
        
         | evindor wrote:
         | Overall, I learned to appreciate the predictability and great
         | standards and documentation of the web platform. With Apple
         | tech, the moment you stray away from neatly designed WWDC demos
         | you find yourself more or less alone against not-so-well
         | documented platform and having to work with decades old APIs
         | and strange behaviours. It's much harder to find ready-made
         | answers, and if anything, ChatGPT itself was more help than the
         | Stack Overflow in dealing with weird bugs and strange
         | behaviours.
         | 
         | Coming to native development, you kinda expect that you'll be
         | writing beautiful code, in the spirit of Apple (beautiful
         | outside, beautiful on the inside), but you quickly realise that
         | the closeness of the platform works against it, and very often
         | you have to resort to hackity-hack solutions and your code is
         | anything but beautiful after all.
         | 
         | Nonetheless, I enjoyed building a native app, there is
         | something different to it, like you're building something
         | physical, something that you can feel and touch and experience.
         | And I've barely touched the surface of what's possible with it,
         | constrained by time being a solo dev. Swift itself is a
         | beautiful language and a pleasure to work with, and Swift UI is
         | very easy to pick up if you're familiar with React. Until you
         | have to make something non-standard and find hackity ways to do
         | it.
         | 
         | What surprised me the most is the ratio of product and around-
         | the-product work. The core app itself was ready within a couple
         | weeks, but it lacked payments, user quotas and trials.
         | Implementing these took me about 70% of time spent on the app.
         | It's incredibly hard to implement subscriptions as a solo
         | developer, with both Stripe or App store options presenting
         | their own challenges. To the point that for my next apps it
         | would be a major factor if the app is sellable as a one-time
         | purchase. For the sake of learning, I decided to go all-in with
         | Apple ecosystem and use Sign in with Apple and distribute over
         | the Mac App Store. Looking forward to seeing how it works out.
         | 
         | EDIT: grammar
        
           | kitsunesoba wrote:
           | I'm assuming this was built with AppKit?
           | 
           | If so, yeah AppKit has some warts, and it isn't all that well
           | documented. That's how it's been since I got started with it
           | back in the early-mid 2000s, where your best sources for
           | learning were random blog posts or books (the latter of which
           | I couldn't afford as a teenager).
           | 
           | If you ever do iOS dev, UIKit is a lot nicer to use in almost
           | every way. It's been polished and modernized a great deal in
           | comparison, and because iOS as a platform is so much more
           | popular/important it's throughly documented end to end.
           | 
           | Still, AppKit does have some advantages, like its batteries-
           | included nature which allows one to build complex apps with
           | few or no third party dependencies.
        
             | evindor wrote:
             | 100% SwiftUI! As a new Apple developer, I wanted to use
             | their latest and greatest. It does get restrictive
             | sometimes, but compared to having to dive into AppKit/UIKit
             | hackity-hack SwiftUI solutions here and there are a lesser
             | evil IMO.
        
               | kitsunesoba wrote:
               | Ahh yeah, SwiftUI isn't fully baked yet unfortunately,
               | particularly on macOS. I'm just now starting to use it in
               | significant capacities in iOS projects and haven't yet
               | started on Mac because of that.
        
       | DerJacques wrote:
       | Looks super clean! Great work. The idea of always having the Chat
       | GPT a shortcut away is very neat.
       | 
       | I have a similar toy-app called Chitty (https://chitty-app.com),
       | and recently decided to pull it from the App Store and offer
       | direct downloads instead, because Apple kept throwing wrenches my
       | way. Most notably, in a random app update review I was told that
       | I could no longer reference ChatGPT or OpenAI, and I was not
       | allowed users to "unlock" functionality by letting them provide
       | their OpenAI API key. Note that I don't monitize the app in any
       | way, so asking people to enter their OpenAI key is the only way
       | to make the app work without causing a major bill for me.
       | 
       | It seems like your app get's around the API key issue by offering
       | in-app purchases, which is good! I would recommend also making
       | sure not to reference ChatGPT and OpenAI too much in the app or
       | the App Store page, though the details may depend on the specific
       | app reviewer you're assigned :)
        
         | tacker2000 wrote:
         | It seems really like this Mac App Store is doing nobody good,
         | neither users nor app creators. Everytime some new app points
         | me to the store I get annoyed. It frequently hangs and just is
         | glitchy in gerenal. Just give me the damn DMG and let me go on
         | my way...
        
         | w-m wrote:
         | Downloaded Chitty, entered API key, clicked "Alan Turing",
         | crash. Do you want me to send the crash report somewhere?
        
           | DerJacques wrote:
           | Oh no, sorry to hear that. If you could send it to
           | manuel<at>manuelt.de, that would be lovely! Thanks.
        
         | evindor wrote:
         | I was also rejected for the app description, however I decided
         | to argue against their ruling. I changed the description
         | slightly, however when submitting a new build I pointed out
         | that all my materials are written in accordance with OpenAI
         | brand guidelines, and the app successfully passed the review.
        
         | woadwarrior01 wrote:
         | My offline LLM app (which does not use ChatGPT or any OpenAI
         | APIs) was rejected 3 times in review, also during a random app
         | update. With every rejection, they'd ask me to rename the app.
         | Ultimately, I appealed and they relented.
        
           | DerJacques wrote:
           | That sounds like a bad time! Glad you were able to resolve it
           | at the end.
           | 
           | I do feel that being in the App Store can give a lot of value
           | (and downloads), but it definitely comes at a cost (mainly
           | uncertainty).
        
       | thejohnconway wrote:
       | I don't understand how this is monetised, and I alway like to
       | know before I install or use an application. If it's there and I
       | missed it, maybe it should be more obvious?
        
         | evindor wrote:
         | Your data is yours, the app is designed to never record or log
         | your queries. The monetisation is simple - reselling Open AI
         | services in a convenient package. I hope that one day it would
         | be possible to ship a local model of a comparable quality, and
         | simply charge for the convenience of the app and allow
         | unlimited use. Until then, the plan is to offer various levels
         | of subscriptions and work out the reselling model which works
         | both for the users and the sustainability of my indie app dev
         | studio efforts.
        
         | theultdev wrote:
         | It seems it's rate limited for free and there's a paid plan
         | that allows you more usage with rollover tokens.
         | 
         | Same monetization strategy as many resellers.
        
       | mcint wrote:
       | Even just in this listing, I would advocate against titling it
       | "yet another...". It makes it harder to read past and understand
       | a unique selling proposition (USP).
       | 
       | It looks like you do capture something unique, the ease of using
       | "contexts" for the predefined prompts is component of user
       | experience. I've defined custom prompts in another desktop app,
       | but I never remember to use them.
       | 
       | - I would encourage you to walk through the workflow on the
       | homepage:                 - Hot-key summon (I'm assuming)       -
       | Context: translation, terminal help, web help, general assistant
       | ----select with tab       - Quick, desired reply with minimum of
       | typing.
       | 
       | - Crisp, shorter language: "Prompt fast", "$(printf '%s\n'
       | {have,keep}\ your\ {favorite,common,best}\
       | {contexts,prompts,tasks}\ ready)"
       | 
       | - It might be worth explaining, and explaining the unicode
       | symbols for the system prompt and prompt prefix at the top of
       | settings. Or having a descriptive prototype prompt.
       | [Context name / Prompt title]       [System prompt]       [Prefix
       | preset for task prompt]
       | 
       | It seems like user education is a net benefit.
       | 
       | - A workflow that coaches ("prompts") someone though adding
       | prompts could be a useful addition.
       | 
       | Unfortunately I'm on an older intel MBP and can't install macOS
       | 13 Ventura, and so I can't try out your app. Good luck!.
        
         | discreteevent wrote:
         | > I would advocate against titling it "yet another..."
         | 
         | But it's YMCA ..
        
       | mrobinsn wrote:
       | Does it still send everything you enter to OpenAI?
       | 
       | EDIT: I see on the site:
       | 
       | > We take your privacy seriously. Your data is never recorded,
       | and opted out of future model training according with OpenAI API
       | policies
        
         | evindor wrote:
         | I'm a big believer in local AI. Unfortunately, it's just not
         | there yet, but with the way things are going it surely seems
         | like we're going to have OpenAI level models locally soon. When
         | that happens, I'd love to be on the frontier of bringing it to
         | the public as consumer apps. Until then, I decide to pretend
         | it's private and work on user experience, so when the tech is
         | here it can be shipped fast.
        
           | jrk wrote:
           | I think you may have triggered some concern or
           | misunderstanding. What do you mean by "pretend it's private"?
        
             | evindor wrote:
             | I mean that as an app developer, I wish I could run models
             | as powerful as ChatGPT on consumer hardware. Unfortunately,
             | at the moment it's not possible, despite all the great
             | progress and projects like llama.cpp. However, I see that
             | this tech would become viable very soon. So, as a developer
             | focusing on consumer apps, but concerned about my own and
             | my users privacy, I decide that it's worth it to use Open
             | AI. For now, for the sake of exploring possible new user
             | experiences and interactions. The moment local tech is
             | viable, I would be the first to opt out of sending my data
             | to Open AI and use LLMs locally. Until then, we pretend
             | that one day it's gonna be fully private and local and
             | explore UX/UI with Open AI at the backend. Best I could do
             | at the moment is to respect user privacy myself, and this
             | app backend is designed to only handle your queries for a
             | short time in-memory, never logging or recording user
             | queries, only passing it to Open AI for streaming responses
             | and measuring usage for billing.
        
               | cmeacham98 wrote:
               | To be frank, this makes the website extremely deceptive.
               | That isn't "Private by design" - it's the opposite. You
               | choose to prioritize the better AI assistant _over_
               | privacy.
               | 
               | The claim that "Your data is never recorded" may even be
               | legally fraudulent. I'm glad that you don't record the
               | data, but OpenAI does - making the claim as written a
               | lie.
               | 
               | I understand why you made these decisions, but the
               | website should not contain borderline false advertising.
        
               | evindor wrote:
               | You're right, the website should contain a more explicit
               | note that user data is subject to OpenAI data retention
               | policies. (However, I do mention that "Your data is never
               | recorded, and opted out of future model training
               | according with OpenAI API policies"). OpenAI did change
               | their policies recently, and opted out any API data from
               | future model training and promised us they delete it
               | within 30 days. I wouldn't call it false advertising, but
               | note taken, users must be explicitly told that their data
               | is sent to OpenAI.
        
             | tyfon wrote:
             | Anything you send out over the internet is by definition
             | not private.
             | 
             | The only way to guarantee something is private is if it
             | never leaves your computer.
        
       | woadwarrior01 wrote:
       | Did you have to rename it from MacGPT because Apple's App Store
       | Review Guideline 2.3.7? :)
       | 
       | https://developer.apple.com/app-store/review/guidelines/#per...
        
         | evindor wrote:
         | Yes, they considered it a double whammy trademark violation,
         | Mac + GPT = total criminal. Nonetheless, I'm getting requests
         | to also bring the contexts thing to iOS, so maybe whatever
         | happens happens for a reason.
        
       | tentacleuno wrote:
       | Looks cool! Have you considered making that picture on the
       | homepage (the first one you see) a video? It'd make the site much
       | more immersive, while also giving a true-to-life representation
       | of the app.
        
         | evindor wrote:
         | Oh is it a still picture for you? Probably should include more
         | video formats for it to render properly on various browsers,
         | thanks for the tip!
        
           | mft_ wrote:
           | On Mac/Firefox 113 it doesn't autoplay; it works fine if I
           | right-click and select 'play'.
        
             | evindor wrote:
             | Thanks a lot for spotting this, fix incoming.
        
       ___________________________________________________________________
       (page generated 2023-07-03 23:01 UTC)