The user is a customer. So why doesn’t software treat them like one?

So this may sound obvious. You may be thinking, yes of course the user is a customer. We treat them like customers by providing them with support, pitching to them our value in our sales and marketing materials, and a host of other things. But what about in our software itself?

The fact is, our software tends to be designed as if it were going to be used by a computer interface. When an update is available for example, it may prompt the user with something like this:

“Acme Analytics v2.31 is now available, click here to install.”

Let’s draw a comparison to a real-world business. Let’s consider a gym whose modified it’s membership plan. Ultimately, the situation is similar. A change has taken place that (hopefully) improves the experience for customers. A gym may send out a letter or an email stating what’s new in the facility. For example:

“We’re proud to announce that we are now offering free Yoga classes with your membership. Classes will begin January 1, 2014, and take place every Monday at 8:30am.”

This announcement could be improved by reminding customers of other products, upselling additional services, or just thanking the customer for their continued support. But the important part of the message is that it clearly relays what has changed and demonstrates it’s value. Why would a gym naturally do this? Because it thinks of it’s subscribers as customers, and wants to keep their business. In our software example shown above, we are doing a similar thing, introducing new features. But, we are introducing the new features not as a new valuable service or product addition, but as a technical task that must be performed in order to receive the benefits. What if we instead thought about this in the context of value instead of the technical details? Our update message could be rephrased to sound more like this:

“We’re proud to announce that Acme Analytics now supports multiple users. The update is available immediately and can be installed by clicking here.”


This example communicates the value of our update much more clearly, but more than that it represents a shift in how we are thinking about the user. Instead of thinking of them as users who need to interface with our product, we are thinking of them as customers with whom we need to communicate value.

This is not limited to updates for our apps. Let’s take a look at a few more examples, and how we might modify them to both feel more human, and be sure we are treating our users as customers.

“You have 3 new followers! Click here to log in.”


“Three new people are interested in what you have to say!

Click here to find out who.”

“Download finished. Click here to open.”


“Your video is now ready, click here to watch.”


“Error: File Not Found”


“We couldn’t find the content you were looking for. You could try refreshing the page, or come back later, and see if that works. We apologize for the inconvenience.”


In all of these examples, because we are trying to be helpful to our customer, we deliver a better experience. We can use these opportunities to explain new benefits, apologize for problems (while suggesting solutions), or remind the customer they are appreciated.

If we can remember to treat all messaging in our software as if it were a personal phone call from our companies representative, or a mailer sent out to all customers, I think we gain a huge advantage in the sense of customer service our users perceive.
Source: Digital Software Products.

Related article: 5 things I wish I knew when I released my first iPhone app

Did this tutorial help you?

Support my Patreon

Your support on Patreon allows me to make better tutorials more often.

Subscribe via RSS

Microsoft wants to own the living room with the Xbox One

Today Microsoft announced their new console, the Xbox One. The demo relied on heavy integration with cable television, multi-tasking, mobile phones, kinect, and voice commands.



A demo of the product introduced “Snap mode”, a side-by-side multi-tasking type interface that allows the user to simultaneously watch television, play games, have a Skype call, use Internet Explorer, or even look at your fantasy football stats. They spent a lot of time talking about how easy it is to switch between apps, games, and live television. We’ve seen a push in this direction from Nintendo as well with the Wii U TV capabilities. It must all be part of the overall business objective, to own the entire living room. To replace your set-top boxes with one, all-inclusive Xbox One.

Xbox One


Every Xbox One has a new sensor that can respond to your voice, and understand who you are, and the Kinect has been improved to understand even finer inputs such as the movement of individual wrists. It can even read your heart beat for workout games, or so they say. All these things seem to be designed to be the “everything device”, similar to how the iPhone is the everything device for mobile. It’s clear Microsoft’s goal is to do the same for the living room.


There is also a big move towards a much more cloud-based gaming and app environment. Think Steam meets iCloud, except Microsoft is running the servers (which incidentally went down during their presentation)


We were talking to an IT support company in London about this recently and we agreed that It’ll be interesting to see how this affects console development, and how nice Microsoft is going to be treating indie developers with this new console. I certainly am eager to learn more and find out if it’s possible to publish my upcoming game Miree on the console.



Did this tutorial help you?

Support my Patreon

Your support on Patreon allows me to make better tutorials more often.

Subscribe via RSS

The next big thing is already available in your local toy aisle

I had this realization long ago that all new technologies seem to first surface as a lower-key version that exists mostly as a toy.
If you think about the great innovations of our recent history, you may think of things like the internet, computers, or smart phones. But, before you could buy an iPad, you could buy touchscreen toys made for kids. Sure, they were low resolution and didn’t have very sophisticated software, but it was still a portable computer with a touchscreen OS running various apps.

The personal computer itself was an innovation that sprung forth from the ashes of the Atari 2600 and Commodore 64, and those were just an evolution of pong. So in the beginning, the entire reason for the technology revolution, the modern personal computer, was born as a game.

I’m not saying that the invention of pong is what enabled the computer revolution to happen. I think it would’ve happened regardless. But what’s interesting is that this great technology we have today gave us a hint that it was coming with the growth of digital arcade games in the late 70s. Apple was releasing the first personal computers right around this time. Most people didn’t know what a computer was needed for. However, everyone seemed to know what the arcades were for. Gaming is fun! There was a ton of exposure to computer technology through digital arcades.

So when you’re sitting around thinking about what’s on the horizon in the technology field, consider looking at the new high-tech toys first. They may shed a shimmer of light on what someone else somewhere is using that same technology for.

Browsing amazon, I can quickly find a few toys that may be hinting at greater things to come:
Sifteo Cubes Intelligent Game System
Sphero iOS and Android controlled ball with 20+ Apps for gameplay

I leave you with this snippet from Paul Graham’s post about ideation:

“Just as trying to think up startup ideas tends to produce bad ones, working on things that could be dismissed as “toys” often produces good ones. When something is described as a toy, that means it has everything an idea needs except being important. It’s cool; users love it; it just doesn’t matter. But if you’re living in the future and you build something cool that users love, it may matter more than outsiders think. Microcomputers seemed like toys when Apple and Microsoft started working on them. I’m old enough to remember that era; the usual term for people with their own microcomputers was “hobbyists.” BackRub seemed like an inconsequential science project. The Facebook was just a way for undergrads to stalk one another.”

Did this tutorial help you?

Support my Patreon

Your support on Patreon allows me to make better tutorials more often.

Subscribe via RSS

Designing mobile apps for children

Mobile apps designed for children are becoming very popular as a result of the intuitive design of the iOS and Android touch screen operating systems. Never before has software been so accessible for pre schoolers, and elementary school students. However, there are some things that you should take careful consideration of when designing apps for this audience.

I want to share with you all a great resource put out by Sesame Street Workshop that details the best practices, and problems that crop in designing for children. You can find the original PDF by Sesame Street at the end of this post. I will summarize a few points here that I felt were important to discuss in the success of a children’s app.

Using Familiar Faces

The document points to using familiar faces to “guide” children to what it is they need to do. The guides are instructors, teaching the child to use the app in real time through audio narration. The use of familiar characters creates a stronger bond between the child and the app, and leads to increased comprehension of what to do.

It’s easy for Sesame Street to make use of familiar faces, they have a host of great characters to choose from. But, you don’t need to be a big company with lots of popular characters to present familiar faces to your audience. It’s not hard to find familiar faces in the world of public domain. Many of Disney’s best hits are based on public domain. Some examples include Aladdin, Beauty and the Beast, Snow White, and many other famous stories with characters we see time and again. It’s also very popular to hook in to famous cultural or mythological figures such as Hercules, Zeus, or even Saint Nicholas.

Experience Design

Start of with instructions from a voice over, and try to avoid text. Ultimately you want to assume that the child can not read, so make use of video and audio indicators of how to proceed in the app. If you are quizzing the user on some content, or presenting a game, you should be careful to not be too negative when wrong answer selections occur. You want to be motivating the child and give them hints as they continue to answer. Finally you want the app to proceed without a correct answer by simply instructing them exactly what they need to do.

It’s also important to children that they know they did the right thing. Go nuts with the rewards, maybe even as crazy as those guys over at Peggle. Seriously, these are some dramatic “Yeah! you did it!” effects and music here. There is nothing wrong with being extremely over the top with rewards in any app, and especially in a children’s app. Great in-game rewards is motivating and exciting.


The most intuitive input gesture for children is a simple tap. However, typically children rest their arms or hands on the edges of the screen. So, it is important to allow for taps to occur, even when they are touching other components of the screen. I would suggest creating “dead zones” where touches will be ignored around the bottom of the screen. Focus touch interactions for the top half of the iPad, and toward the center.

Children have trouble with most complicated gestures, such as “flicking” objects around the screen with momentum, using tilt or shake controls, double tapping, and anything involving multi-touch. Ideally you want to focus on the most intuitive input mechanisms, which is the tap, drawing, or dragging of objects around. Be careful with dragging though, children tend to lift their finger as they drag around the screen. For this reason it’s important to implement a dragging routine that allows for hiccups along the path where the user may lift their finger for a moment during a drag.

Visual Cues

It is important to provide visual clues for any goals in the app, at any given time. Touchable objects should be highlighted or glow, and actions should be delineated with a path or animation of what gestures to use. If a child should drag a character or object along a path, you could create an animation of the path while highlighting the object that needs to be moved to make it clear what they are to do.


Keep in mind that children will accidentally press on lower parts of the screen. So, when implementing features that make major changes to the state of the app, for example quitting, saving photos, and especially any social features, you want to take special care to make sure these actions can not be accidentally done by the child. Usually these interactions are going to be performed by a parents. This is a good opportunity to take advantage of the fact that children are not very good with certain types of gestures.

One way to do this is to have the parent’s controls be hidden away in a menu that requires a multi-touch gesture to open. For example, you could have a menu on the right side of the screen that can be dragged out on to the screen to be made visible, and then a ‘slide to unlock’ display could be used that times out if the gesture is not completed within a few seconds.

So there you have it, my thoughts on this great report by Sesame Street. I hope all of you out there working on children’s apps can make something a little better as a result of this information being available. If you need some help with your app, this kind of thing is right up my alley and I am available for hire, so get in touch!

Original PDF from Sesame Street:
Sesame Street – Best Practices: Designing Touch Tablet Experiences for Preschoolers


Did this tutorial help you?

Support my Patreon

Your support on Patreon allows me to make better tutorials more often.

Subscribe via RSS

Top 10 Lessons Learned from Launching iPhone Apps

Much has been written on the topic of launching iPhone apps, and software products in general. I have read a good bit of this info over the years and have tested many theories for how to successfully launch, and have come up with a list of what worked for me. So this is my personal checklist I go through every time I am getting prepared to launch a new product. This is the stuff that I’ve found works, so I hope it helps someone.

Warning: This list is long because there are a lot of things you should do, sorry about the verbosity, but all this stuff is important if you want your apps to have the best chance they can.

  1. Make the app itself as viral as possible
  2. Do speaking engagements
  3. Write a press release
  4. Write your own copy
  5. Create a dedicated launch page
  6. Submit your app to review sites, free and paid
  7. Advertise
  8. Have a dedicated Facebook and Twitter for the app
  9. Keep an e-mail list
  10. Cross-Promote your other apps


Make the app itself as viral as possible
So this may seem obvious, but you want your users to hook other new users in to your app, it’s in my opinion the single most important consideration when trying to launch a new product. Advertising dollars, press, and social media engagement can only get you what I’ll call “blips” of traffic, which is a large amount of traffic coming to your site/app all at once. What happens if those users don’t spread the app? You get a nice little asymptotic chart for your sales numbers that goes right back down to 0 the next day. Give users a reason to share things.In my photo manipulation app PhotoGoo, I started out with an app that let users just play with photos and save them to their library, and the app wasn’t really spreading very quickly. I saw spikes of sales followed by nothing. After learning the lesson of the importance of making viral features for apps, I added several sharing features. The first round was simply allowing users to share their edited photos on Facebook and Twitter. This served to smooth out the tail after spikes in usage occurred from PR, reviews, etc, but still ultimately didn’t spread that much. I realized that what really made Facebook photos spread faster was showing up on multiple user’s walls, which is easy to make happen if you allow users to tag their friends. Now for each shared photo, instead of showing up on the wall of 100 or so users, it shows up on the wall of 100 or so users for 2 different people, doubling the exposure from each shared picture.Finally, I added an in-app contest where users could submit their photos to become the “photo of the week.” This adds a little extra fun a social interaction to the app, but most importantly it influences users to share their photos more, in order to have their friends vote for their photo. With all these efforts combined, PhotoGoo now consistently pulls in new users regardless of if there is any press at that point in time.

Do speaking engagements
This is quite anecdotal, but I once did a speaking engagement to the PRSA in New York. It was partially to promote my products, but mostly to give me an excuse to go hang out in New York for a while with my business partner. I didn’t think much would come of it.During my presentation an influential PR professional was tweeting about one of my case studies for the app, iAugment. Within the next 24 hours almost every major news outlet in the country was talking about iAugment. That day the app received around 125,000 downloads and hit the top selling app for it’s category in almost every country, and remained there for over a month!I was able to repeat this success in public speaking on many of my other apps. People love sharing things they are hearing about at a conference, and there are a lot of tastemakers who attend these things.

Write a press release
Write a press release and send to prlog, prweb, prnewswire, and include a URL to your site in the release. If your app is a game, then you can also try Go ahead and make an account there now, because last I checked it takes a while. Press releases I’ve released in the past have been circulated around to major news outlets and sometimes driven some nice bumps in traffic, which leads to users, which leads to word of mouth, etc. It’s really easy to write a press release and can ultimately be done in about 10 minutes. There are companies that will do this sort of thing for you, but what you usually pay for with them is their network, and not their writing skills. I do not advise letting them write press releases for you, which leads me to my next point…

Write your own copy
You should write your own copy, or work directly with a writer if you think your writing is not so great. No one is more enthusiastic about your product than you, no one understands it’s value better than you, why should anyone else write the copy? Say in your own words what makes your app great, and if it’s all true, your passion will make its way through your potential customers. Never let a PR company to write copy for you, or if you do make sure you revise (rewrite) the entire thing to support your perspective and vision for the product.

Create a dedicated launch page.
This is important because the app store has basically no analytics, and what you’ll want to know is how people are finding you. Your dedicated website is not only a great way to see some basic analytics on your customers, but it is a great place to send anyone who may be interested in your app, and you can even get some basic SEO going on and get some organic traffic. Organic search traffic won’t make or break your app, but it doesn’t hurt. The only thing I would say is super important SEO-wise is that when someone searches for your product name, they get the site. This is important in the event that your app name is mentioned on television, in person via word of mouth, in a tweet, etc. People are going to want to find the app via a Google search, so make sure you rank for your own name! If it’s too hard to rank for your product name, the name might just suck.

Submit your app to review sites, free and paid.
Some people will scoff at the idea of paying for reviews, but the truth is you need to get your app in front of the eyes of your potential customers. And honestly, the reason these review sites charge is because other app developers are paying, and because they probably get so many submissions they need a filtering criteria in order to actually process the amount of submissions they receive. The prices are usually not unreasonable, ranging from $50 to $500 for video review sites, peanuts compared with the cost of developing a great iOS app.

You may have picked up by now on the fact that you are probably not going to be able to get by with a purely “word of mouth” campaign. Yes, to successfully market a new app, you’ll need a marketing budget. Yes, I know there was that one app that one time that made all that money with no marketing budget, but that’s probably not you. You should be buying up ads on all the major mobile advertising platforms for launch day. It doesn’t have to be an astronomical amount, but you need something to drive sales, and advertising works pretty well. In particular companies like Tapjoy and PlayHaven, etc are great for their pay-per-download campaigns.

Have a dedicated Facebook and Twitter for the app
Yes, it is a pain in the ass to keep making new Facebook and Twitter accounts, and to attempt to continue putting content on them and building a following. However, it is what people expect, and when your product blows up you are going to be kicking yourself if someone else has taken your ideal Twitter or Facebook page name. You should ideally set these up at the same time as you set up your domain, and you should do all these things after securing the name in the app store. If you don’t you’ll end up stuck paying like I did for the domain name, and unable to use @photogoo on twitter because some person is using it as a nickname.Creating a dedicated Facebook and Twitter page is important because it’s one of those critical-mass building components you can integrate in to your app, webpage, interviews, and speaking engagements. It’s always good to be thinking about how you are going to continue to build your audience. Don’t expect people to just remember the name of your app, or visit the website for updates. You need to get them to agree to be pushed content about your app, updates, new products, etc while they are still experiencing your product for the first time. You want to hook in to that initial excitement they have of finding something new and cool, which brings me to my next point…

Keep an e-mail list
Even if you don’t intend to keep up a regular newsletter, I highly recommend keeping ‘Signup for the mailing list’ buttons all over the place, just like your ‘Like’ and ‘Follow us on Twitter’ buttons. It goes back to the idea of building your audience. Capturing e-mails from the get-go is an important step if you ever want to release a version 2, or if you want to do a special promotion, etc. If possible, you should integrate all this stuff in to your app. You can see an example of this right on the start screen for a time tracking product I made a while back, called Finch. The e-mail field is pre-populated from the user’s address book, the subscribe button defaults to being checked, and the Like and Tweet buttons make a presence right off the bat. Most user’s sign up for the newsletter here, which has allowed us some great marketing opportunities long after our launch.Finch Mac App Start Screen

Cross-Promote your other apps.
How do publishers consistently succeed at selling new apps? I’ve talked to many people over the years who work with major publishers on the iOS app store, and they all pretty consistently point to cross-promotion as the number one thing driving users. All the things I’ve listed above are important, especially if you are working on your first app, but cross-promoting your new apps inside of your existing apps is the most cost-effective way to advertise. It also allows you to keep a mass of users, to grow your base and expand as a provider of apps.

Did this tutorial help you?

Support my Patreon

Your support on Patreon allows me to make better tutorials more often.

Subscribe via RSS

8 Great Open Source Projects to use in your next iPhone App

I’ve scoured the internet looking for great open source iOS apps, and what I determined is that what is really more interesting is the open source iOS components and frameworks. So here’s my list of the most useful open source iOS components.

8. PSCollectionView
PSCollectionView is a custom collection view that allows for the easy creation of Pinterest-style image collections in your iOS apps. Source on Github


7. GMGridView
This little grid view library allows for the simple creation of highly interaction view sets. You can see a nice video of an example result hereSource on Github


6. PRTween

PRTween is an extension of the core animation framework. It is an effort to take the power of core animation, and make it easier to use. The commands available may remind some of the stupid-simple jQuery animation commands like fade, hide, or show. Source on Github



5. iHasApp
I recently was asked by a client if we could detect their other apps installed on the device, and if the user didn’t own them if we could have the app present cross-promotional ads. I wasn’t sure what the answer to their question was, it seemed like something that might fall under the dreaded “private api” category. But here this project is an App Store friendly library to detect other apps installed on the user’s phone. Source on Github


4. NUI
NUI is a very interesting project that aims to make styling of iOS apps as easy as styling in CSS. Take a look at the syntax on the project’s github page and you’ll see what makes this such an interesting project. Source on Github


3. grabKit
If you are writing an iPhone app that involves the user’s photos, one thing that’s always a bit tricky is adding support for all the various social networks that the user might prefer to host their photos on. grabKit makes this easier with this drop-in library that let’s the user import photos from Facebook, Flickr, Instagram, Picasa, or the iOS device itself. Source on Github


2. MultistrokeGestureRecognizer
This library is great for anyone creating a very touch-centric game, or any app that uses lots of complex gestures. The library is based on the N Multistroke Recognizer which is a great algorithm for detecting very complex touch gestures. If you remember the gestures in the game Black & White, it’s kind of like that. Source on Github


1. Filepicker
Similar to grabKit, Filepicker allows for the importing of files from various social networks, but also includes many more services such as Dropbox, Gmail, and even Github. The library is also not limited to only photos but can be used for a range of content types. Source on Github


Honorable mention: cupertino
Cupertino is not an iOS library, but rather a ruby gem that allows for administration of your Apple Developer Account. This has been a missing piece of the formula for automating iOS development work for years, so I’m glad to see some hackers have decided to take up the challenge of making a CLI for the Apple Developer Account system.

Did this tutorial help you?

Support my Patreon

Your support on Patreon allows me to make better tutorials more often.

Subscribe via RSS

How I Defeated The Cybersquatters

So here is my valiant story of how I crushed cyber squatters and their ‘acquisition fees.’ Let’s start at the beginning.

In December of 2008 I attempted to register a domain for my company, which I had created a website for locally. The name of the company was JQ Software, and it was about time I made my company known outside of my local area, and broadcast my company across the internet. Clearly, the most logical domain would be So I went to and attempted to register the domain, only to find it was owned by someone who put a parking page on it. Nothing but ads.. maybe is available? Nope, same page.. Bingo! I now had a domain and I didn’t even resort to using a different company name and recreating my business identity from scratch, hooray!

My website has been up for a little while. is up and running, and already generating additional business for me. Everything is wonderful, although I still wonder why is taken. There is really nothing on it. On December 28th I get the following e-mail from “Zip Domains.”

So wait a minute… They bought this domain for $10 before I did, for some ungodly reason.. and then waited for someone to register so they could try to sell the domain to them, and for $199!? Honestly, $199 is not a major business expense.. I thought about it. I decided I would pay the fee to get my precious .com domain. But I would wait until I finished the job I was on before I started spending money and working more on my web presence. A few days pass and I get another e-mail, from Zip Domains again.. I guess they got impatient with me when I didn’t fork over the $199 dollars. Here is the second email:

December 28th to January 1st. That means they waited four days before contacting me again. There’s something different about this e-mail though. I can’t put my finger on it, but it is apparently worth 100 fewer dollars. The first e-mail said ‘if we are successful’, now this e-mail simply says the domain is available for a one-time fee.. so they already have the domain now? How curious, they tracked down the owner of the site and purchased it from them only to send me a new e-mail about how I could pay an extraordinary price for it.

8 days has passed and I’ve pretty much decided I don’t want to deal with these cybersquatters and encourage their unethical ways. I get a new e-mail, this time from someone named Dan Johnson. He works for, apparently. Interesting sidenote – this website DOES NOT EXIST!

It says in the e-mail that if I do not respond they will just auction the site off to the highest bidder. In the event that someone actually wants this domain, I am going to have a problem. Whoever chooses to buy this may pay a larger amount than $99, or even $199. After I contemplated this I came to the realization that I owned a trademark on JQ Software; and most likely there is noone out there who wants to start a website with that domain name. So when there is no demand for something at an auction, that means that noone will bid, right? If noone bids, Mr. Dan Johnson will realize he’s holding a “worthless” domain, it’s literally worth $0.00 because I’m unwilling to buy it, and noone else can use it because I hold the trademark on the name. So, it would appear the best course of action is to wait until the cybersquatter puts the domain on the auction, and then refuses to pay a renewal later. This works for me, I’ll just buy it when it expires in a year. Although, I did some reading and it turns out that registrars can actually reserve a name for extremely cheap prices, or even for free for 1 week. Is it possible these guys have been ‘reserving’ this domain for free on a weekly basis, and is that why I got 3 emails in 3 weeks? If that’s so, the resulting auction combined with the fact they have to keep this up means every week I could try to purchase the domain. Let’s analyze the dates on these e-mails:

12-28-08 [The Wednesday following a Christmas holiday Sunday]
1-1-09 [4 Days later, a Sunday]
1-9-09 [8 Days later, a Monday morning/Sunday night]

It seems like this thing is getting tossed back and forth on either Sundays, Mondays or Wednesdays.. So let’s just try to register it every Sunday, Monday, and Wednesday. One of these days must be the weekly time that it gets renewed for these registrars, and then the other is just a lag effect when they finally e-mail me about having it.

Every Sunday, Monday, and Wednesday since January 9th or so, I attempt to register my domain name. And well.. I think this one last e-mail speaks for itself. I’d just like to thank the cybersquatters for an exciting adventure. And I just wanted to write this post to let you know that I won. Now if you would, please get a real job and stop trying to take advantage of people.

Did this tutorial help you?

Support my Patreon

Your support on Patreon allows me to make better tutorials more often.

Subscribe via RSS

Welcome to my blog

Ah, the first blog post. It is a strong symbol of potential, but ultimately lacking in any useful or interesting information. However, I am a rebel; so here is a hamster playing an arcade game.

Interesting? Absolutely. Useful? Well, not so much. For those of you who don’t know, this is my style of humour and I apologize.

So who am I?
I am the founder of JQ Software. I am an experienced software developer, and I thoroughly enjoy all things IT. All the cool kids have blogs, so I guess I should have one too. I hope to describe to you all my experiences in the modern IT startup world. If you keep up with this blog, once again I apologize, and I hope that we can share the experience of founding a company. As always I’m up for any criticism and suggestions; and of course NEW CLIENTS! My company’s website is , pass it on 😉

Did this tutorial help you?

Support my Patreon

Your support on Patreon allows me to make better tutorials more often.

Subscribe via RSS