Electron on the App Store, Post release.
Tags: electron, javascript, appstore, menubar
Published: 2021-02-09 21:41:19

This article is part of a 5 articles series about the publication of an Electron application into the Mac AppStore, [Fenêtre](https://fenêt.re).

> [Fenêtre,](https://fenêt.re/) `fənɛtʁ`, lets you better multitask on your mac. It enables a [picture-in-picture](https://en.wikipedia.org/wiki/Picture-in-picture) mode for any website/web-app, image, video or flat file.
> You can find the [free version](https://itunes.apple.com/us/app/fen%C3%AAtre-lite/id1288451627)and the [paid version](https://itunes.apple.com/us/app/fen%C3%AAtre/id1286743037) on the Mac App-Store.

---

Of course your app is perfect and has no bugs. But people need to be reassured, they need to be able to contact you, to congratulate you on your awesome work, on how you're a wonderful human being, and sometimes, tell you stuff about your mom.

# Contact & feedback

Having a line of communication with your customers is vital, a minimal setup involve having a very basic email redirection with your domain registrar. Having a [Twitter account](https://twitter.com/FenetreApp) for the app helped a lot as well and I'm currently testing a [Facebook page](https://www.facebook.com/FenetreApp), we'll see where it goes.

People tends to send valuable feedback, giving their take on the app and what would make their experience even better. It often opens up to great new ideas. When someone takes the time to give you feedback, it's constructive, most of the time. That's how I got to implement the setting to show/hide the dock icon, the size of the see-through mask, the context-menu, and more. Many, many, many bugs, that I never encountered before, were now reproducible with steps, and more importantly, fixed.

But, we're not snowflakes ❄️, negative feedback is inevitable, just don't take it too personally, people don't even know you anyway. A part of the negative comments I got felt like jealousy more than anything else. It was always in the form of "Meh, I wouldn't have done it this way... it's useless anyway...", your level of vulgarity may vary of course.

The other part was actually very constructive and helped me improve the app.

Anyway, I just know **for a fact** that I am a wonderful person, and so are you 🌷

# A Bug's life

It's never fun as a user to get an unexpected error pop up in your face. So the first thing to do in my opinion, when you're packaging your app is to deactivate them.

For this I've used the awesome [electron-unhandled](https://github.com/sindresorhus/electron-unhandled) which will intercept every exceptions of your app, both on the main process and the renderer process.

{% gist https://gist.github.com/yoannmoinet/8f127ab7fb36e34dc3eb68583a2b4c77 %}

> Block error popups in production.

It's really easy to setup, and you'll be able to handle all your errors in one place. Note the use of our `IS_PRODUCTION` global variable set in Webpack earlier, to completely remove any dialog related to errors.

The only thing that you need to do is execute this as early as you can in both processes, main and renderer. I usually put it at the start of my `app.js` and in the `<head>` of my views.

You still need to get a ping when that happen, don't you think? For this, you can easily setup a free account on [Mailgun](https://www.mailgun.com/) which will let you send up to 10000 emails per month. If you ever need more than that for your app, it means that you're more than able to pay for it.

Thanks to [mailgun-js](https://github.com/bojand/mailgun-js) and a very [thorough tutorial](http://blog.mailgun.com/how-to-send-transactional-emails-in-a-nodejs-app-using-the-mailgun-api/) written by Mailgun you'll be up and running in no time. Then, you can do something like that in your `unhandled` configuration:

{% gist https://gist.github.com/yoannmoinet/9e9a57d0cb48f2b1acffc83886602068 %}

> Send me an email instead of showing the error to the user.

---

# Conclusion

This whole experience was very enlightening and taught me so much on every aspects of the application's ecosystem and life cycle on Mac OS X. From the very beginning of the conceptualization to the publishing into the AppStore, even after that, marketing and doing support. It was a blast, and still is, I'm very glad I was able to stay motivated all along.

And it didn't even cost me that much (±130$) for a 10x return on investment after the first month. For which I'm very grateful, I never expected that.

There were very hard times, but the most painful it became, the more enjoyable the finality was.

I'd do it again anytime, and I'd still choose Electron for this job. But for a different app, less tied to a web-view, I'd definitely go with Swift, I'm not _that_ crazy.

Hope you enjoyed my writing, I don't do that often. But if this is well received, I might write some other stuffs.