How we got 60,000 users with SEO
For basically $0, we got our initial users and built a durable acquisition channel that still brings us a ton of users.
tl;dr
How we did SEO:
Identified our target users/readers
Figured out what they are searching for
Targeted long-tail keywords
Produced the best content
Gave it 6 months
Intro
About a year ago, I started investing a lot of time into writing SEO content for our startup, Arno. It has been a huge success. As of March 2024, we have published 60 pieces and gotten 4.71m impressions and 243,000 clicks. (I will explain what those numbers mean later on.)
As a bootstrapped company, we didn’t have any money to spend on paid marketing. SEO allowed us to acquire users at a $0 CAC and, after we wrote the articles, spend 0 time managing it. Before SEO, we were acquiring users via cold messages (lots and lots of cold messages 😬). So it felt amazing to be able to just sit back and watch new sign ups come in every day from the articles we had written!
Another benefit was that it allowed us to become deeply knowledgeable about our space — English proficiency tests, in particular the Duolingo English Test — which also helped us develop the product.
In this piece, I share what we learned along the way. I hope it will be helpful to you!
The Essential Question of SEO
Given a search term, what does the user want?
This is the question that anyone doing SEO should ask themselves constantly. This is the question that armies of engineers and product managers at Google are paid a lot of money to answer. So, it’s no surprise that Google is very good at answering this question. That is why we all use Google. We know that no matter what we search for, odds are that Google will surface relevant, helpful content to us.
Figuring out what users want is also the core challenge of a startup. This is one reason that SEO is so great: It forces you to understand your users better, which helps you build better product and find product/market fit.
A lot of SEO advice consists of quick growth hacks that exploit some weird facet of Google’s algorithm. Even if these things work (and they often don’t), they won’t work forever. When you’re trying to “hack” Google, you’re not only competing against Google but also SEO hackers around the world using the same techniques. I don’t like those odds.
Plus, in my experience, the growth hacks aren’t necessary. The strategy that worked for us, and many others, is to create content that people love, because this is the kind of content that Google wants to rank highly. In other words, we found SEO to be meritocratic: We outranked our competitors because we had the best content.
Search Volume v. Ranking Difficulty
Let’s say you have made a new kind of dog bed that never gets smelly and you want to use SEO to get customers.
What do you think your customers are searching for in Google? The search “best dog beds” would be a good guess. When you punch that into Google, what you get is very much expected. You’ll see some comparison articles (things like ”10 Best Dogs Right Now”) as well as links to places where you can buy dog beds.
You conclude: “I just need to get some page to rank for ‘best dog beds,’ and I’ll get a ton of customers!” And you would be correct. But, you won’t rank for that search term (or, as is its called in SEO, a “keyword”) for a very long time.
Why? Look at the websites you’re competing against. The New York Times. Forbes. Consumer Reports. Casper. NBC News. These are all names that are recognized and trusted. Why would Google rank you above those sites? If Google did rank you — some unheard of dog mattress company — ahead of the New York Times or Consumer Reports, don’t you think that searchers would notice that and maybe think that Google search wasn’t working properly?
In SEO, the more search volume a keyword gets, the harder it is to rank for. If you are just starting to do SEO, you will have to find keywords that have low search volume (and therefore low ranking difficulty) and try to rank for those. These keywords are called “long-tail keywords.” Their names comes from this chart:
Long-tail keywords are more specific. Instead of ranking for “best dog beds”, you could try to rank for “best dogs that don’t smell.” But even that may be too difficult to rank for at the beginning!
How do you know? You will need to use a tool that gives you access to this data.
How to find long-tail keywords
We used Ahrefs. I started using them because they have the best educational content on how to do SEO in which they cleverly also educate you on how to use Ahrefs itself. They also claim to have the best data.
Ahefs offers a free tool called Keyword Generator that you can use to find a bunch of long-tail keywords. This is what I used to come up with ideas for most of our articles. Here’s what I did exactly:
Arno helps people prepare for the Duolingo English Test (DET), so I just put in “Duolingo English Test.” The one annoying thing about the Keyword Generator, and Ahrefs’ tools in general, is that you have to look at data by specific countries. In our case, everyone interested in the DET largely search for the same things, so we ended up just looking at the data for our largest market, India.
I got a list of keywords like this:
The first column shows a bunch of keywords related to “duolingo english test”. Then, you have KD, which stands for “keyword difficulty.” After that, you have the number of times that keyword is searched for each month.
In general, you want to look for pages that have the highest volume and the lowest KD. These will be keywords that you can rank for and that will bring you a lot of traffic. If you’re just starting SEO, I would recommend targeting keywords that have a KD less than 20. But, don’t just blindly follow the numbers because they aren’t completely accurate.
KD is a number that Ahrefs calculates according to some proprietary formula. I learned to view it as a suggestion. Despite what the data in that screenshot show, I know for a fact that “duolingo english test” is harder to rank for than “duolingo english test practice.” Also, “duolingo english test” has 40 times more traffic than “duolingo english test practice”. It just seems highly unlikely that it would be half as difficult to rank for it 🤔
The point is: Take the data with a grain of salt and don’t be afraid to disregard what the data is telling you if it doesn’t make sense. Ahrefs is trying to collect data for as many websites, pages, and search terms as they can. That’s a massive amount of data, so it doesn’t surprise me that it’s spotty, especially for long-tail keywords.
Don’t be afraid to trust your instincts and write something that you know will be valuable to your users/readers. For many months our best-performing article was the first one that I wrote, before I did any keyword research. I wrote it because I saw that people preparing for the DET were asking for tips on how to raise their Production subscore in a large Facebook group.
Next, create a spreadsheet with 4 columns:
Keyword
KD
Volume
Notes
As you identify keywords that genuinely seem to have high volume and low KD, copy them over to your spreadsheet. You can keep entering “seed” search terms into Keyword Generator to get more long-tail keywords: Type in a search term and then see what long-tail words are related to it. Rinse and repeat.
After you have 30 or 40 long-tail keywords in your spreadsheet, now it is time to prune your list down to the keywords that you are actually going to target with blog posts. Each article should target one keyword. I’ll explain more about this means in practice later on.
To do this, you need to determine search intent for each keyword. This just means: What are searchers looking for when they type that keyword into Google?
For example, when I saw the keyword, “duolingo english test price,” it was immediately obvious what someone wanted to know when they searched for that: How much does the test cost? So, we wrote that article and it is now ranks in the top 5. When it’s obvious what a killer article would be for a keyword, highlight it or put something in the Notes column so that you know it’s one to prioritize.
For other terms, it may take a bit more work to figure out the search intent. Depending on your product, niche, and market, search intent may be more or less nuanced. Ahrefs recommends thinking about the “3 C’s of search intent”, and I’d recommend watching that video just to cover your bases.
In our case, search intent was straightforward: People wanted information about different aspects of the Duolingo English Test. We just wrote one type of content: informative blog posts.
How to write SEO articles
One reason that content on the internet can be terrible is that people do things like try to stuff in a bunch of keywords or make the content a certain length or use a bunch of bulleted lists because, apparently, these things will help their content rank higher.
In my opinion, people concentrate on this stuff too much. It results in articles that are difficult to read. When you click on an article that was over-optimized for SEO and is difficult to read, what do you do? You leave the page and find another article. That has to be bad in the eyes of Google. In contrast, if you click on an article and read it for several minutes, that is a super strong signal to Google that the content is relevant for whatever you searched for.
In a nutshell, our approach to writing SEO articles was to simply write the best article for a given keyword.
To determine what the best article would be, you have to put yourself in the shoes of your reader. Why would they click on your article? What problem are they having? What do they need to learn? Again, this is a great thing about SEO: It puts your users/readers at the center of your work, which is what you should do in general at a startup.
Here are some principles for high-quality content:
Know your audience. In our case, people taking the Duolingo English Test are not native English speakers. This meant that we had to write content that would be especially easy to understand. Duolingo English Test takers are also generally younger people, so we knew that we could have some personality and use emojis and such. But if you’re writing content that is targeted at VPs of Sales, you would maybe want to write in a more formal tone. (That said, perhaps you could try to stand out by writing in a more informal tone!)
Be authoritative. If you can provide a definitive answer, do it and cite the source. If you have access to proprietary data, use that to generate insights that no one else can. But don’t pretend like you have a definitive answer when one doesn’t exist. That will lose you, and your brand, trust very quickly.
Write simply. People have short attention spans, especially when reading. Short sentences are better than long sentences. Don’t try to sound smart. Don’t use a bunch of jargon. The best writing is the easiest to understand. No one complains about something being too easy to read, but we all complain about something being too difficult to read. Also, don’t underestimate how many non-native English speakers will read your posts, even if you’re not targeting them. The internet is a global place.
Answer the user’s question as fast as possible. Yes, you want people to stay on your article for a long time, but I wouldn’t recommend trying to trap them there. In my opinion, it is more effective to answer their question fast and earn their trust. They will then be more inclined to listen to what else you have to say. This leads in to the next principle.
Anticipate related questions. If a reader wants to know how much the Duolingo English Test costs, they also probably want to know if they can get a discount. Answer that question too. This is how you keep readers on the page longer. It also helps you to rank for more keywords. One page will not rank for just one keyword but dozens or even hundreds.
Use descriptive section headers. This makes it easier for your readers to find what they’re looking for. Google also looks at your section headers to figure out what your article is about.
Add a table of contents. This makes it even easier for readers to find what they are looking for. Readers are more patient when they know where they are and what comes next.
Here are some SEO-specific things that you should also do:
Target one keyword per article. This will allow you to write the best article for that keyword and rank highly for it. If you try to target several keywords with one article, Google can struggle to understand the content and rank it for the correct keywords. For example, I wrote a FAQ article in which I tried to target a bunch of keywords. This article gets less traffic then much smaller articles targeting a specific keyword.
Write a great title. Your title will be the #1 factor in determining whether someone clicks on your article or not. The higher your clickthrough rate, the more relevant it is to users, and therefore the higher you will rank. It should be between 51 and 60 characters (source). Include your keyword in the title. It doesn’t have to be exact. For example, for the keyword “duolingo speaking topics with answers,” our top-ranking article is: 50 Duolingo English Test Speaking Topics with Answers. If the content in the article is time sensitive, including the year at the end will help convey to the reader (and Google) that your content is up to date.
Write a great meta description. Users also read this to decide whether to click on your article or not. The limit is 120 characters for mobile and 160 for desktop, so you should aim for around 120. Know that most of the time Google rewrites the meta description, so I wouldn’t spend much time on this. I just try to write something that would entice a user to click through.
Write a strong slug. You will have to determine the URL at which your piece lives. Google uses the slug as a ranking signal, so you want to use your keyword in there. Your slug will be permanent, so don’t include dates. Otherwise, you’ll have to do a bunch of redirects each year and it becomes a mess (I learned this one the hard way 🤦)
Use header tags correctly. Your H1 tag should be the title of your piece. Your H2 tags should be your section headers. Subsections should be H3 and so on. Google relies upon your header tags to figure out what your article is about and rank you for the appropriate keywords, so they should be well-structured. If you don’t understand what header tags are, this article will explain.
Link to your other content. This will help readers get the information they need. It will help drive traffic to your other posts. Internal links also help Google discover your content and figure out what the content is about, which will help with ranking.
To sum up, we found that if we wrote our articles well, they didn’t only do well with humans, but also with Google. Here is a specific demonstration of that. We earned the coveted “featured snippet” spot for a really popular search just because of our content:
This happened a few months after we published the piece, before we had any meaningful domain authority. I didn’t do anything to get that feature snippet — no code changes, no hacky content stuff. I wasn’t even trying to get this. I just wrote great content that aimed to answer our users’ question. I did this so well that Google decided to feature my answer 😊
(By the way, have you ever wondered why Google pours billions into AI like natural language processing? Here is a use case.)
How to turn readers into customers
The whole point of SEO is to get customers. It is easy to be heavy-handed about this and turn your articles into thinly disguised ads for your product. This kind of content is terrible to read.
I think of it this way: With our content, I want to earn the trust of our reader by answering their question clearly and directly. Then, I want to use that trust I’ve earned to inform them about Arno.
The best advertising does not feel like advertising. It feels like you are being presented with a solution to your exact problem. When someone wants to learn about a particular aspect of the Duolingo English Test, it is very likely that they are actively preparing for the test. Their problem is that need to get a score that they can’t get currently. Arno is a solution to that problem.
Whenever I plug Arno in a piece of our content, it works organically. For example, if someone reads our popular article 9 Best Tips for Picture Description on the Duolingo English Test and then I tell them how Arno gives them unlimited practice questions for picture description questions, along with instant scoring and feedback on their responses, the reader will likely respond, “Oh amazing! This is really going to help me.” So, they click through and sign up.
Not all articles allow for such an organic product plug, however. For example, in our article How Much Does the Duolingo English Test Cost?, we have to settle for just a brief mention of Arno at the end. I’m comfortable doing that because the rest of the article answers the reader’s question. By the time they get to the end, I have hopefully earned their trust, so they will be more receptive to my little sales pitch.
I would argue that it should be easy to plug your product in most of your blog posts. Otherwise, you’re not writing the right kind of content for your product. For example, at Arno, we could write content that appeals to English learners in general; let’s say about the present perfect verb tense. First, it’s going to be hard to rank for this keyword because a lot of other sites with a lot more authority already rank for it. Second, not many readers of that article will be interested in the Duolingo English Test. They may not even know what it is. A plug for Arno will not be relevant to them, so it will make the reading experience worse.
By really zeroing in on a specific user with a specific problem and specific questions, we were able to write highly relevant content in which it was easy to plug our product.
One small note: I would recommended creating some nicely-designed “call to action” cards that you can include in your blog posts. The rest of your content is going to be text, so these can really stand out. (Any of our posts linked to previously contain examples.)
We ended up paying around $35 USD to hire a freelance designer to get some help. (I would highly recommend Waseem). Make sure you get the Figma file so that you can tweak them as needed in the future. We’ve reused these designs for all kinds of things, so it’s worth investing to get some good ones. You may also just be able to use Canva. I’ve used it for other design tasks with some success.
Why we stopped trying to do attribution
I started my career in ad tech, so I was quite keen on closely measuring how many people signed up from each blog post and having granular conversion rates.
But we eventually realized that attribution is really hard because the data isn’t clean. For example, we realized that a lot of people would be reading one of our articles and then would search for something like “arno duolingo” in a new tab and sign up that way. This would make it impossible to attribute that sign up to the blog post that caused the person to sign up. I found that behavior annoying, until I realized that I did the same thing 😅
Now, we just keep things simple and look at impressions and clicks.
How long does it take?
Here is the graph of our impressions and clicks since we published our first post:
3 months in (in August), we had close to 0 impressions and clicks. (An impression means one of our articles appeared in Google search results for a real person. A click is when a person clicks on an article).
6 months in (in November), we were up to about to 15K impressions and 750 clicks per day.
9 months in (in February), we started to plateau at around 35K impressions and 1.5K clicks per day.
We published 90% of our articles before November, so most of our SEO growth was “passive” in the sense that we didn’t do anything to make that growth happen apart from sit back, be patient, and allow the Google algorithm to do its thing.
Why does it take so long?
First, it takes Google time to figure out what’s in your article. I saw the same pattern play out over and over for a new post. Google would slowly show the post (registering a few impressions in the data) for different keywords, trying to see which ones were relevant to the post. If those impressions led to clicks, then Google would rank it a little higher and for other related keywords. Maddeningly, Google would also un-rank the article for some keywords and then re-rank them! I suppose to make sure that the article was actually relevant for those keywords. The result is that early on, the data for our posts almost all look like this:
This “auditioning” process can take a few weeks. (But it did get faster. More on this later.)
Second, Google generally only lets you climb the search results ranking over the course of a few months:
This new orange line is the average position in search results across all the keywords this article is ranking for. (Position #1 would mean your article appears before all others for a specific keyword).
You can see that average position steadily decreased (i.e. this post appeared higher and higher in search results) and therefore impressions and clicks steadily increased over the course of several months. That just seems to be the pace that Google operates at.
By the way, you may notice how noisy the data is. There is a lot of day-to-day variation in the numbers, and it can be quite extreme — just look at that massive dip at the end of January. This is just how it goes with the Google algorithms, it seems. (In case you’re wondering, I still don’t know what happened at the end of January…)
It gets faster the more you publish
The “auditioning” process for a new piece of content will get faster as you publish more posts.
Google not only looks at the content of your posts, but it also looks at your site as a whole. What kinds of topics is your content about? How much do readers trust you to get the information they need? This is called “domain authority.” It’s why you can’t outrank well-known sites.
As we published more and more articles, we did gain domain authority in Google’s eyes. This meant that Google would start our articles at higher positions, which accelerated the auditioning process.
Also, this domain authority increases the average position of all of your posts, assuming they are all related to the same topic that Google considers your domain an authority on.
This is yet another example of how SEO complements other parts of your business. Finding a specific niche is a tried-and-true strategy for new startups. If you do this with your content, you can benefit from a powerful flywheel: More content leads to more domain authority which helps all of your content rank higher.
Start a mailing list
One reason we went with Ghost to host our blog is that it’s easy to maintain a mailing list. You should 100% build out your mailing list. Like many companies, we automatically add all users to ours.
When we were starting out, we sent out one of our newer posts each week. We still send out one email a week, whether a blog post, or a new YouTube video, or some announcement like a product update.
This is a great way to keep your product on your users’ minds and do it in a way that helps you earn their trust. If your articles are high-quality and relevant, then they will appreciate getting an email from you. If not, no big deal, they can always unsubscribe. (Although very few users actually unsubscribe — in our case less 0.5% — make sure you provide some way to do this. A link to a form is fine.)
This also helps with SEO because more people will read your posts, which indicates to Google that it contains valuable content.
Can you outsource the writing of your content?
After we wrote a few dozen articles ourselves and we were confident that we had the right approach to SEO, we ended up hiring 2 freelancers to help us write more content. We did this because we could provide them with specific instructions for each article they wrote, and they could easily do the research required for each one. Plus, they could use all the articles we had written ourselves to learn about the DET and guide them in terms of style.
Some companies do have success publishing mediocre content written by freelance writers who aren’t experts in what they’re writing about. But, I think that this is getting harder and harder as more and more content is published on the internet and there is more and more competition. If you do outsource it, I would recommend still maintaining a high bar of quality.
This may actually mean that you want to find a subject matter expert who is open to writing content as opposed to an SEO content writer. It’s easier to teach someone how to write SEO articles than it is to make them knowledge about some niche topic. Just send them this article 😉
Also, you don’t need to outsource entirely. You may be able to find someone internally who would be open to writing. You would be surprised who likes to write and is good at it. I think it could be a great project for a new hire.
Before outsourcing or delegating it, though, I would recommend writing articles yourself. A big reason is that it helps you better understand your target user, which is immensely valuable in general.
Our articles have a power law distribution
Here is a graph of how many clicks our top 100 or so articles have gotten:
Our top 5 articles make up 59% of all our clicks! 😲 The flip side of this is that we have a lot of articles that get very little traffic. I did not know which articles would perform the best before writing them. Looking at the topics and contents of our top pieces, it makes sense that they are performing well. However, there are lots of other articles that could also be performing as well but are not.
I don’t know why some articles do so much better than others. From my point of view, there just does seem to be a good deal of luck at play. But, writing this blog post also gave me ideas about how we could maybe optimize under-performing posts. I’ll be sure to publish a blog post about that project. If you have any insights or advice for me, I would love to hear it 🙂 My email is: otto.nagengast [at] gmail.com.
My (provisional) conclusion is that you just need to be prepared to consistently produce content over several months, so that a few of your posts can hit it big.
Do you need backlinks?
We didn’t.
A “backlink” is when some other site links to a piece of your content. They are one of the primary ranking signals for Google.
(By the way, this concept of backlinks was Sergey Brin’s and Larry Page’s key innovation when they created Google back in the 90s. They were inspired by academic publications, where the number of citations is used to gauge the importance of a paper. I think it’s pretty cool that even after all this time, Google still works this way!)
A lot is written about how to get backlinks for your content. Rightfully so — backlinks are certainly powerful. But, we did not need them to be successful. We were able to establish our authoritativeness in other ways. Namely, by writing great content that people clicked on and read! Also, the best way to get links is to create content that is linkable because it is useful and authoritative, which your content should be anyway.
You can be a bit strategic and try to write content that aims to be linked to. Apparently little tools, e.g. a mortgage calculator, do well.
Can you use ChatGPT to write articles for you?
I’m sure that some people are having success with this. But, we didn’t do it because we prioritized quality, not quantity.
I have found ChatGPT to be a helpful brainstorming partner. You can ask it for titles or content ideas, and it can give you a bunch of ideas that make it easier for you to identify the truly great ones.
Also, some people are worried that LLMs are going to kill SEO. Here’s my response: If you need an answer to an important question, would you trust ChatGPT more than an article written by a human expert? I’ll rely on the human expert — and I think so will anyone who uses ChatGPT for more than 5 minutes and sees that it‘s a confident bullshitter and can’t be completely trusted.
Besides, Google is already taking steps to weed out low-quality, automatically-generated content.
Subdomain or subfolder?
We ended up going with the subfolder (goarno.io/blog) structure so that we could accrue domain authority on our main domain (goarno.io). But, it apparently doesn’t matter much anymore.
If you don’t know what I’m talking about, here is quick walkthrough.
How to set up your site and analytics
We use Ghost to host our blog. The main reason was that we had used it in the past, so it was one less thing to figure out. We were able to do some workarounds to use the free version — running on a Digital Ocean droplet — and host it on the subdomain goarno.io/blog.
Ghost’s main advantage is that it is easy to create posts and their themes keep your content looking pretty. However, there are some annoying quirks (or just flat out bugs) about Ghost that we’ve had to navigate. Wordpress is another popular option, but I’ve never used it.
These platforms are built to make sure your site is performant and checks all the boxes that Google cares about in this regard. That said, we still had to fix things here and there. I don’t think any solution is perfect.
I would recommend making sure that whatever platform you go with generates a sitemap for you automatically. A sitemap is literally a map of your site that the Google crawler (called Googlebot) can use to traverse your site and discover all of your content so that it can index it. Maintaining it manually is too much of a pain.
However, if your site is small, a sitemap is not so important because you can use Google Search Console to ask Google to index (and re-index) any of your content manually. Every time we published a new post, I manually requested Google index it via GSC.
GSC is essential for SEO. It’s free. It gives you access to your SEO data. All the charts I shared in this post are all taken from GSC. GSC will also inform you about any errors on your site.
Finally, I would recommend setting up your free Ahrefs account. Much like GSC, they will surface some helpful data for you and let you know about any issues with your site that could be impacting your SEO performance. This issue reporting in Ahrefs is especially valuable. It is extremely thorough, but they give you an overall health score of your site to simplify things. This checklist is helpful to make sure you cover your bases as far as the more technical aspects of SEO.
Going further with SEO
My hope is that this blog post will be enough to get you up and running with SEO. If you want to go further, there is plenty out there to dive into. Much of the more advanced stuff is related to technical aspects of SEO, which is not relevant to most people. As long as your site isn’t broken in some big way, you don’t need to worry. In my opinion, your time is better spent figuring out how to write high-quality content. To make this point a final time: Writing high-quality won’t only help with SEO, it will help you understand your users better, which will help with your business as a whole 😁
You should also be sure to pay closer attention to the content marketing that you consume. Note when a company’s blog resonates with you or not. What can you learn from it that you can apply to your own content?
Here is some further reading and resources that I recommend:
Lenny’s Podcast: The ultimate guide to SEO | Ethan Smith (Graphite)
The most comprehensive guide to SEO I’ve come across.
Ahrefs YouTube channel and blog
Whenever I want to learn about an SEO topic, I check these 2 places first.
Ahefs paid tools
Ahrefs paid tools start at $99 a month, which is steep. But, if you run out of keywords to target, they can be helpful. I used it for about 2 months before we simply ran out of keywords worth targeting.
What’s next for us
Our SEO performance has plateaued. We are the #1 site for keywords related to “Duolingo English Test” (after Duolingo themselves). Whenever I need to look something up for the DET, I just search in Google and look for our blog post on the topic! But, this is a small market and there is just isn’t endless search volume. We were expecting this to happen eventually.
We’ve started translating our top-performing blog posts into other languages to hopefully reignite our SEO. The early signs are looking quite promising! We’ve also started making YouTube content. We’ve known for a long time that YouTube was where most of our users went to get help with the Duolingo English Test. But, making video content is a lot more work than writing blog posts, so we started with SEO and I’m glad that we did.
One of my New Year’s Resolutions is to publish one article a month like this that documents our learnings. (I already have some catching up to do 😅). I think that the next one will be about how we decided upon a freemium business model and why we’ve come to love it. If you want to get future posts, be sure to subscribe!
Also, if you have any questions, feedback, suggestions for future posts, or just want to say hi, don’t hesitate to get in touch. Really, it would be cool to hear from you 🙂 My email is: otto.nagengast [at] gmail.com.
whattffff!!!! I can't can't can't believe that such a high-quality post has zero likes.
Thanks for sharing bro. It's really really helpful.