How to make your website more honest

technology companies tend to self-praise their innovation chops but fail to practice what they preach on their own G.D. (gosh darn) website.

here's our journey and recommendation to marketers everywhere.

exhibit A - 6,000+ customers

exhibit B - 5,000+ customers

this company trades on the NASDAQ.

they raised $130 million, have at least 1 junior developer, yet 2 high traffic pages on their website report a 20% difference in customers.

because public companies are required to report earnings, this is also worrisome; if a website doesn't know how many customers are using it, can its investors?

let him who is without sin...

i have no right to discuss lazy or dishonest websites unless my content is dynamic and honest, especially considering our business model is premised on trust.

here's how we made more honest and compelling with code.


for several months our homepage had a notification impressions counter and a static user metric:

this was a "lie" in that our numbers were actually higher (300 million+ notifications /month in 2017) but we lazily wrote JavaScript that added "7" every few milliseconds.

then Chris shared unique visitor metrics, which are far more interesting than mere impressions:

because 54+ million unique people see Fomo notifications every month, and reading data directly from a stats server is overkill, i updated the live counter to pro-rata...

how it works:

  • 54 million uniques /month
  • => 1.77 million /day
  • => 73,750 /hour
  • => 1,229 /minute
  • => 20.49 people /second

up-ticking our counter by "5" every 250 milliseconds accurately represents our scale of 20+ unique visitor impressions every second.

next, the default starting number 27,219,986 is exactly half of the last reported monthly count, demonstrated above as 54,439,973.

this number could be derived vs hard-coded with (54 million * (x/31)), where 'x' is the numerical day of the month, but i don't like JavaScript or math that much so let's move on dude.

case studies

we publish new case studies frequently, but reflecting success stories in code every 5-7 days is obnoxious.

luckily our blog is hosted on Ghost, so i checked out their API.

here's some JavaScript that fetches a live post count for our case study tag, 47 as of this writing. (correct, we didn't get credit for 7 case studies!)

if the API request fails, the link simply says:

(to see this in action, scroll to the bottom here)


sure, Fomo "eats the dogfood" and thus live activity is already streaming on our website.

but we wanted the signup experience to be more relevant to the context... signing up. this tweak, shown only during registration, is laser-focused on that behavior.

just like our case studies counter, fallback logic inserts "honest" instead of a live number if something breaks.


connecting with other apps is our bread & butter.

since we build new integrations in as little as a couple hours, this was another tedious pre-deployment housekeeping task.


now that we query our database for the latest figures, let's put this all together to give people what they really want to know - how many websites are doing what?

active websites

depicted above as 10,732, this metric is philosophically debatable and a point of contention for prospective customers.

after all, a "customer" is not necessarily a website, and a user is not necessarily a customer. if you're invited to a team by a paying customer, should you be counted as a customer? i don't think so.

active websites are similar... is a website with an embedded snippet, active? what if they haven't shown notifications in 24 hours? 30 days?

we're still figuring out the most accurate reading at Fomo, but for now an active website belongs to a customer on a standard plan (not a publisher) whose snippet has not been deactivated due to failed or cancelled billing.


testimonials are critical; we already upgraded our Reviews page to a live feed months ago and open-sourced that process.

but our homepage links to the Reviews page, so we added a bit more JavaScript to make even that internal link dynamic, too:

turning this...

into this...

... cast the first stone

the improvements above took just a few hours of work, and now every Fomo prospect knows our KPIs as well as we do.

going forward this will actually save developer hours as Fomo engineers won't have to manually update numbers across dozens of landing pages.

"What's good for our customers, is good for us."
-Marketers, rarely

if a few bootstrappers can make their website more honest, so can you.