If you’re building a referral program, you must read this first.

Two of the best referral programs on the web are from Dropbox and Airbnb. Have you noticed that they look really similar?


The reason is that both growth teams that build them are constantly optimizing, and they’ve reached the same conclusion about what works well.

At YesGraph, we want to make it easy for anyone to have a world class referral program. Our API boosts performance by recommending exactly who a user should invite. But there is more to program than that — often a lot of product work to implement all these great features.

We want to make building a great referral program far easier. Today we’re announcing the YesGraph Javascript SDK — internally nicknamed the SuperWidget™?. On iOS and Android (launching soon!), we built similar SDKs to handle the whole invite flow.

We want one line of code to deliver the same performance as the Dropbox and Airbnb referral programs.

We need your feedback! We’ve put together a super short survey here or you can just email us at support@yesgraph.com.

There are lots of design decisions that will impact exactly how integration works. This is a great chance to get exactly what you want built, so we’d love to hear from you!

So go take the survey here: http://goo.gl/forms/JaAMftdDuv

Or just email us at support@yesgraph.com

We’re Launching a Class: The Complete Guide To Growth


UPDATE: WE’VE LAUNCHED THE CLASS! FIND IT HERE: http://learn.yesgraph.com/courses/complete-guide-to-growth


I learned from the inside how Facebook drives growth and then ran growth at Dropbox. YesGraph incorporates some of these powerful ideas, but not everything we’ve learned can turn into a product.

This is why we’re so active writing about growth. For example, we think setting a clear, singular goal is very important. That isn’t a product, but a process for your product team. The response to our writing has been strong, so we’re doubling down.

Today we’re announcing a comprehensive online class on how to run growth.

We’ll cover running a process around growth, analytics top to bottom, deep dives into virality, and more — with plenty of examples and war stories.

If you want to get the class as soon as it is available in a few weeks, add your email here. 

But I have a big request! Tell me what you’d like to learn. If you want to know more about a topic or struggled with an idea, we want to add it to the class.

All you need to do is email me: ivan@yesgraph.com

Now let’s get meta. The way to make high quality products is customer feedback loops. This is a crucial growth understanding that we cover in depth in the class. This blog post is doing just that! Before we’re ready to show what we’ve put together, we’re already asking for feedback. So we’d really like to hear from you!

YesGraph’s New Growth Community

Quick post! We’re running a community experiment at YesGraph! We’re inviting people to join a public slack channel to discuss growth.

Screenshot 2015-12-10 10.40.10

This can cover tactics, channels, metrics, and analytics.

There has already been some great discussion. My friend Fareed runs growth at Instacart and described how hard it is to keep the supply and demand side of Instacart in beautiful harmony. My friend Andrew is a founder at Esper, which just launched a cool new calendar audit tool.

I even just posted a referral to a contract growth marketer — a rare beast so your FOMO should be ringing right now.

Join the community here: http://community.yesgraph.com/

YesGraph’s New Pricing Model


We’re really excited to announce YesGraph’s new pricing model. To date, we’ve actually been free. The reason was actually only because we were focused on building our core systems over building any billing infrastructure.

We wanted to make pricing simple and easy to understand. We also wanted to make our pricing very close to the value that you get from using YesGraph. So we’ll charge a monthly fee based on the number of Address Books in YesGraph.

There is actually a strong network effect around the data your app sends in. When we learn about a user’s social graph, it helps us better understand who to recommend for more of your users.

I’m really excited to support a free tier for projects that are just getting started. This one is tricky because nothing is free: customers on a free tier typically incur support and scaling costs. What if we dilute the experience of paid customers? We decided to take that risk because many projects start small and will grow with YesGraph. Plus, any friction that requires support is an opportunity to make the product easier to use for everyone.

You can expect some experimentation here as we find the model that best fits our products. We’d love to hear your thoughts! Email me at ivan@yesgraph.com

Subscribe to future blog posts here.

5 Changes to YesGraph’s API: Faster, Stronger and More Flexible

We’ve made a few changes to YesGraph’s API that allow for new product features and better performance in your app.

hulkbuster tight

1. Recording Seen Suggestions

We’ve added the endpoint /suggested-seen.

This helps keep track of which contacts a given user has seen. When we rank contacts, we don’t know what end users see — for example the top 5 or 10 could be featured. With this endpoint, now we do.

This matters because users can be constantly shown new suggestions.

Besides the input of seen suggestions, you can filter them out of the ranked results. This is by default on, but you can control it with a filter_suggested_seen flag on the /address-book endpoint.

2. Get Ranked Contacts Immediately

Previously, contacts were input with POST /address-book and retrieved with GET /address-book. Now we’ve optimized ranking to the point where we’ll return the ranked results immediately on POST.

This is a big deal because of the time it takes to run two requests. Previously, the client would make an API request to input contacts, wait for the response, then make a request to get the contacts out, and wait for the response again. The network time between these two requests is a big part of the waiting that will impact end users. On a slow mobile connection it might be 500ms each way. Removing network steps makes this a far better user experience.

3. Removing Landlines from Mobile Contacts

We’ve recently enhanced our ranking to find contacts which belong to businesses and landlines. This is a powerful change because landlines can’t receive an SMS. They literally can’t be invited in many cases, even if the contact is a close connection.

This kind of enhancement is exciting because it highlights that better modeling on YesGraph’s end can dramatically increase invite performance — without your needing to worry about it. We’ll continue to add new signals to drive even better performance.

4. Dramatic Speed Boosts

We’ve made our primary ranking endpoint 4X faster. We now return on average in 200ms, and frequently less than 100ms. This doesn’t count network time from making the request, which can be highly variable based on the user’s connection. With our new iOS SDK, we’ll be tracking end user performance closely.

Beyond YesGraph’s ranking performance, we can now state with confidence that we’re faster than rolling your own systems.

How did we do it?  This isn’t one change, but the result of many small changes. We added caching layers for different data processes. We moved some processing to the background. We optimized our queries and models for the data. We still want to get faster, but considering the volume of data we process, it would be a challenge to replicate these results by doing it yourself.

5. Android On Its Way

We launched our iOS SDK and now have started work on our Android SDK. This is a big deal to help apps drive consistent performance across every platform.

Android has some differences, like how users request permissions and how Facebook and Twitter native flows work. This also varies by version of Android. But you don’t need to worry about that with our SDK. We’ll take care of it, on top of managing YesGraph’s API to recommend exactly who a user should invite.

If you want to dive into these changes, join our growth community on Slack here.

To get the latest news about YesGraph, subscribe to future posts right to your inbox here.

Grow Faster with YesGraph’s iOS SDK

We’re delighted to announce that YesGraph’s iOS SDK is now available. It’s the easiest way to use our API. Plus you’ll get a high performance invite flow for free.

We’ve built in the best the growth design patterns from the best apps. Our SDK will be as easy to integrate as the native share sheet — the difference is it will actually work and help you grow. The best part is that we’ll be continuously testing and improving the flow, so using our SDK means you can run more growth experiments for free.

YesGraph iOS SDK 100

Let’s walk through the user experience.

First a user triggers the flow with the click of a “share” button. Then we explain how sharing works and give a few options — Facebook, Twitter, your contacts, or a link to copy.

This is entirely customizable — the colors, the copy, the default text for the messages — everything.

If the user selects contacts, we prompt to get permission to access the contacts. Using a share splash and double native modal, we help the user understand why we’re requesting contacts. This way we maximize user trust and conversion rate to approve the sharing.

We manage using YesGraph’s API under the hood. We take care of network errors, local caching, and a bunch of other issues.

Finally, we show the user’s contacts, including YesGraph’s suggested contacts at the top. Under the hood, these suggestions are based on our machine learning and social graph analysis. These personalized recommendations improve the user experience and your app’s invite metrics. YesGraph gets smarter over time — all without your needing to worry about it.

Oh — and everything is open source. Check it out on Github here. Star the repo and share it! We also just opened up a community slack channel to chat growth and help with integration. Or just email us: support@yesgraph.com

Up next: an Android SDK. That’ll come with some awesome new features, so we’re working hard to get it done as soon as possible.

YesGraph’s Traffic and Conversion Numbers from TechCrunch, Product Hunt, and Hacker News

nuclear artillery

YesGraph is just getting started with our growth focused API. We announced our seed round on TechCrunch, then opened up our closed beta on Product Hunt. More recently, we had a few blog posts on front page of Hacker News.

Because we’re so young, it is really easy to differentiate traffic and impact. When you get a big spike, you know where it came from.

This means that we can compare the stats from those different sources, and also the downstream behavior.

When we announced on TechCrunch, we weren’t open for signup. So as a proxy, we are showing subscription to our waiting list. For Product Hunt and Hacker News, those are actual signups.

We’re showing total number of signups and visitors, not breaking out the source. So when we hit our mailing list that you could sign up, lots of conversions probably came from there.

We have a developer facing product. That means companies integrate our API into their products. As a result, it isn’t like a signup is what we really care about. We care about apps live in production. The eventual conversion rate isn’t obvious because that takes time to accumulate. So we’re not showing those numbers.


  • Story link
  • Date: February 27, 2015
  • Uniques: 2,281
  • Mailing list signups: 369
  • Conversion rate to mailing list: 16.2%

Product Hunt:

  • Post link
  • Date: March 25, 2015
  • Uniques to PH specific landing page: 4,767
  • Total uniques: 9,081
  • Votes: 376
  • Mailing list subscribers receiving announcement: 6,237
  • Opens on announcement email: 2,511 (40.3%)
  • Clicks on announcement email: 470 (7.5%)
  • Signups: 705
  • Conversion rate to signup: 7.8%

Hacker News:

  • Store your own analytics data:
  • The Math of YC Dilution,
  • What Changed at YC from W08 to W15,
  • Uniques to home page: 1,855
  • Signups: 44
  • Conversion rate: 2.8%

So what can we conclude from the numbers? The conversion numbers are a little off. It is easier to signup for a mailing list than for a service. Also my blog posts brought some traffic but it didn’t convert well. The post about analytics actually converted traffic to signup much better than the posts about Y Combinator.

We also see the relationship between Hacker News votes and traffic. The visits per vote go up with more votes.

The elephant in the room is that Product Hunt sends a hell of a lot more traffic than TechCrunch. I think the reason is that there are lots of TechCrunch stories that split attention, but we were in the top 5 on Product Hunt for the whole day. TechCrunch has a larger audience for now, but Product Hunt’s audience likes to get out and try things.

Overall, you should borrow these numbers if you’re trying to estimate impact of a press launch. Each of these bits are successful. It’s great to be featured in TechCrunch, we were at the top of Product Hunt, and we’ve had multiple front page of Hacker News blog posts.

I often see people have unreasonable expectations around what getting each of these produce. The best is to focus on building a great product and take a measured approach to getting publicity. It isn’t a silver bullet, because silver bullets don’t exist.


Subscribe to get future YesGraph posts here.


YesGraph’s Pricing

YesGraph is just getting started, and you can use it for free. We won’t always be free, so here is how we think about pricing.

You should only pay for the value you get from YesGraph. YesGraph helps your app grow faster. So we’re going to do performance based pricing, where you only pay for growth attributed to our recommendations. Different applications have different value per user, and we’ll try to represent that. We’re experts in performance marketing ourselves, so we know what you’re looking for.

We also want to support small developers. Small apps don’t have huge volumes of data and small teams tend to be more self serve in onboarding a product like ours. So we want a freemium model to make sure that small developers and bootstrapped companies have a place on our platform.

Once this gets more formalized, we’ll write about it right here on our blog. If you have any questions or feedback about pricing, please email support@yesgraph.com



Subscribe to get future YesGraph posts here.

Just Getting Started at YesGraph

We recently opened up our beta API to the public on ProductHunt. The response has been wonderful, and it is amazing to see and try all the apps people are making.

Here is a brief tour of what YesGraph does, how it works, and how you can use it. I’ll try to keep it brief so you can get back to work.

YesGraph recommends who users should invite to your app. Here is an example. You’re tracking your running with an app like RunKeeper, and you want to share your awesome 5K. If you want to send it to a friend, you have to pick from hundreds of contacts, but there are just a few people that should really get it. Maybe they are close friends that live in your town that also like running. YesGraph can recommend those contacts, making sharing easier.

This improves the user experience and also boosts the performance of your sharing and invite flows. This helps your app grow and helps with each of the top actionable metrics for viral flows. YesGraph can help with referral programs, share flows, and social onboarding.

How do you use YesGraph? We have an HTTP API and a Python SDK and we’re working on adding more SDKs. If you want to help as we open source more tools, email support@yesgraph.com. See all YesGraph’s documentation here.

You send user contacts via POST on /address-book. Then you get the ranked contacts out via GET on /address-book. Tell us about your existing users via POST on /users. And tell us which invites are actually sent via POST on /invite-sent and /invite-accepted.

The historic users and historic successful invites are part of how YesGraph works. We can optimize future invites to match the past successful invites. So don’t skip these! And if you don’t already track invites on a per-invite basis, you should! It is a key way to know how well you’re performing.

YesGraph takes user privacy very seriously. It’s important to stress that your users need to grant permission to share their contacts with your app. Then you store them securely in YesGraph. We don’t share contacts and we’re not a data broker. This means that we can’t give you the users contacts if the user hasn’t shared them with you. For example, if you have a waiting list for a new app and only have the user’s email, and not their contacts, you can’t use YesGraph yet.

If your app is a mobile app, you should be getting access to the mobile address book. If you’re a web app, I recommend accessing the user’s email address book using tools like Gmail’s Oauth flow.

To give you a sense of how YesGraph works, there are lots of signals in the data. For example, social apps might often have users invite family members — and we can detect this by matching last names. Collaborative business applications might have users invite coworkers — then we can match company email domains. These are just two examples, and there are literally hundreds of other signals. We use machine learning to train a filter to weight these signals to optimize our ranking just for your app.

If you need any help with integration, please get in touch! support@yesgraph.com



Subscribe to get future YesGraph posts here.

Radical Transparency: Here is YesGraph’s New Content Marketing Strategy

press room 2

YesGraph is embarking on a new direction, which changes our marketing audience and goals. I recently wrote up some notes on how we should use this blog and other marketing channels. Because YesGraph’s new product is all about helping companies grow, I thought the community would want to see how we think about part of our own growth.

Below is the internal doc I wrote, edited only for clarity for this blog’s audience. I’d love to hear what you think in the comments, on Twitter, on in email: ivan@yesgraph.com

Subscribe to get future YesGraph posts here.

This document lays out YesGraph’s new content marketing strategy. The goal here is to get a cohesive picture of what the next few months look like. We should also flesh out some of the challenges and ways to address them.

What Are Our goals?

This is not immediately a traffic and sales play. We don’t need to drive quantitative metrics. Part of that rationale is that our sales process is ill defined and we don’t have a launched product yet.

Instead, the goal is to impact a few different areas:

  • brand
  • pre-sales
  • recruiting
  • press

Brand. We want to establish YesGraph as the best place in the world to learn about how to grow your product. Our content should be world class and authoritative. We’ll do this by writing about what we know, and interviewing experts who know more than we do. When potential customers, employees, and investors do diligence on our company, this content will convince them we’re credible.

Pre-sales. People that want to learn about growth will be qualified leads for our product. Eventually, our content marketing will become part of our sales machine. At the start, I just want to talk to more people that might be customers. This is still an early customer development stage, and funnel optimization for sales isn’t as important as building an amazing product.

Recruiting. We only have a few customers that are live with our API. We don’t have a good demo to show. We also haven’t made any noise in the press. All of this combines to make recruiting harder because convincing people to join our company comes with no background on what we’re about. What we write will showcase what we’re all about. YesGraph can help your company grow. This is an incredibly high leverage position, helping multiple companies at once. It’s also a complex engineering challenge. We have everything we need to convince people to join, and this content is going to help get the word out.

Press. We’re telling an outlier story with YesGraph. We are experts building something every developer needs. It is core to their business, and doing it yourself is hard and won’t work as well. Part of telling this story is showing it. The content we create will help us tell our story to the press. The content itself might be a story too. Our product helps customers, but there is so much knowledge that can’t be productized that we’re writing about it as openly as possible. This fits a good narrative because we’ve already blogged successfully about growth and also about startup ideas.

What Is the Format of the Content?

There are three formats: blog posts about growth, interviews with people about growth, and office hours with companies.

Blog Posts will match others we’ve written on blog.kirigin.com and blog.yesgraph.com. Some examples:

Each of these are thoughtful posts of moderate length covering an aspect of growth. Some are more tactical, others are more strategy.

Interviews are ways of creating compelling content without the overhead of writing clearly. Plus people we interview have their own audiences which can help with the promotion. Most importantly, getting people in the trenches working on growth to tell their story will likely product some really compelling content. Some of the content might be expanded into blog posts.

The format for the interview could be a phone call that is recorded and whose transcript is published as a blog post. Video interviews have the most overhead of production costs but also can make really compelling content.

Office Hours are all about directly helping a startup. We’d cover their goals, what they’ve tried so far, and what they might be able to try going forward. They’ll be recorded phone calls and maybe video calls. The format, like interviews, is better with video but that comes at higher costs.

An issue here is transparency, where maybe companies won’t want to reveal some information. It is most important to get to the truth in office hours, so we’ll allow companies to redact some questions

At the start, our pilot customers make great candidates for interviews. I routinely respond to requests to chat about growth, so the logistics of setting up office hours is really just recording what I’m already doing.

[ed: if you want help with growth and like the idea of office hours, email me ivan@yesgraph.com]

Where To Start?

This outline might make a good blog post. Starting by writing more on our blog is the easiest. Then in parallel we can setup interviews and work through the format.

We should also setup www.yesgraph.com to say the right information about our company, and other such details about capturing an audience.

I have an Asana project with blog post ideas. We should flesh out a few posts to help triage which might be the best to get out soonest. We can double the project to include tasks to setup the blog. I probably won’t go so far as to develop a content schedule besides a frequency baseline: 2 posts per week.

For interviews, I should reach out to a few friends working in growth. For office hours, I should start with companies I already know.





That is it for our internal strategy. Since writing I’ve discussed it with a few others and have refined the plan.

One new addition is a metric to track. Subscriptions to our mailing list is the easiest to track, so go signup here if you like the post: http://eepurl.com/LdRFj

If you have any feedback, let me know in the comments, or get in touch: ivan@yesgraph.com