By Juilette L on Unsplash

The Secret: Focus on Docs, Problems, and Packages

When we began building our SaaS product Ayrshare, an API that connects to social networks for posting, we strongly felt that we would not be able to tap into our core target market if we only focused on the traditional marketing and engagement route. You know, the same Google ads, general SEO, and blog posts.

Ads, SEO, and “Top 10” posts* have a place in every marketing strategy, but we are developers ourselves. We know how important it is for a developer to research and evaluate a new product. …


Understand the promising function with an exciting use case

Heart-shaped lockets tied to a fence
Heart-shaped lockets tied to a fence
Photo by Artem Beliaikin on Unsplash.

This article is not about promises, async/await, or the single-threaded nature of Javascript. It is about the Promise.all() function and how you can bring your independently running functions or tasks together into a beautiful result.

As is often the case, an example or use case will prove useful.

Use Case: Post to Multiple Social Media Networks

Our app Ayrshare’s primary purpose is to provide one API to post across multiple social media networks, such as Twitter, Instagram, Facebook, and LinkedIn.

A user will make an API call (RESTful or via a client package) with the post text, image, and the list of networks to send the post. …


Twitter Fleets are here! They are new. They are exciting. They are innovative. They are…well, kind of a copy of other social networks.

Twitter has entered the ephemeral posting game that players like Snapchat or Instagram stories have been in for a while. They offer a create space to post text, images, videos, or emojis that only stay around for 24 hours. After that, poof, gone.

Why did Twitter create Fleets? Twitter wants to have “healthy conversations” without harassment or nastiness that sometimes happens on Twitter. Hence, Fleets don’t get Retweets, likes, and are not open to public replies. …


Unsplash — Yannik Mika

If you have a blog or newsletter, you probably have an RSS feed, which simply is the blog’s content in a machine-readable format. You probably also have social media accounts, like Twitter, Facebook, or LinkedIn. With a few simple steps, you can automate the entire process so every time you update your blog a post will go to all your social media accounts.

The RSS Feed

Here is a snippet of our RSS feed.

<description><![CDATA[
<p>How we used Firebase to build Ayrshare</p>
<p>The post <a rel="nofollow" href="https://www.ayrshare.com/our-firebase-tech-stack/">Our Firebase Tech Stack</a> appeared first on <a rel="nofollow" href="https://www.ayrshare.com">Ayrshare - Automate Your Social Media Posts</a>. …


Unsplash — radek-grzybowski

When we started Ayrshare we were keen on using an infrastructure as a service platform and avoid server setup, SSL certs, opening ports, etc. Time to market, right. Amongst the many platforms out there we choose Firebase. It was an easy decision for us since we are very comfortable with Firebase having built, and even sold, apps built upon it. If not Firebase our second choice would have been Netlify.

Today and Tomorrow Requirements

The first question we asked was, “What we need today?” If came down to a few criteria:

  • Authentication, ideally having SSO with the major networks
  • Hosting a static single page…


Israel Palacio Unsplash

When you manage your social media presence there are two distinct types of posts: manual and automated.

Manual posting and scheduling is when you type up a post and choose a time for it to be published, usually via a scheduling tool (there are some great ones out there).

Automated posting and scheduling is when system generated data automatically posts to your social media networks via your back-end system using an API.

For example, a game company might auto-post when a gamer enters the top-ten leaderboard. Or a news company’ back-end system sees a new breaking headline and automatically schedules…


The Guide to Social Media APIs

Here is the scenario: you’ve been tasked with sending event-driven posts to various social media networks like Facebook, Twitter, LinkedIn, or even newer ones like Telegram, Discord, or Reddit. Building the front-end functionality to share to these networks is easy, and there are a dozen packages/plugins for WordPress, React, or Javascript. However, if you need to dynamically share content from your back-end system, well, that means you need to register, be approved, and integrate with each social network.

Building Ayrshare wasn’t easy and we found it took a lot of leg-work to find details on the various social media network…


Notify your users via email and Firebase

Photo by NeONBRAND on Unsplash

We’ve all done it 1,000 times: you build a new app and need to add dynamic email functionality. But it seems like every time you’re reinventing the wheel; set up a new email provider, install Handlebars (if you’re not using Handlebars, you really should be), logging, etc.

The Firebase team has recently introduced a slightly simpler email process that I found removes about 20% of the pain: Trigger Email extension. It’s part of the extensions suite of pre-built functions. Note: the extension is officially in Beta, but we’ve been using it at fireRun.io successfully without issue

The Good, the Not-So-Good

Before we get into…


There are three good reasons you should consider putting a CDN like Cloudflare in front of Firebase?

Firebase is an amazing comprehensive platform that takes care of a lot of your infrastructure needs without you needing to lift a finger. It even comes with its own CDN (content delivery network) that servers up your static content from edge servers. This means your content will theoretically load nice and fast for your users since it is on servers closer to them.

However, I’m a big fan of putting Cloudflare (or another CDN provider of your choice like Fastly) in front of Firebase, especially because most the functionality you need is free.

Note: I have no association with Cloudflare…


Use different configs for each of your Firebase environments

Google’s Firebase is a great system and environment to quickly build web apps. However, there are a few tricky things to work around, such as deploying to different environments.

You can use Firebase’s env config variables, but I find them difficult to manage. More than once I used prod variables in dev!

dotenv to the rescue

Here is what I do to create a staging and production environments with different configurations in Firebase.

1. Setup a unique Firebase project for each environment, e.g. Production, Staging, and Development.

2. At a command prompt, assign an alias for each project with:

firebase use --add

3. Create…

Geoffrey Bourne

Co-Founder of ayrshare.com — an API-first platform to automate your social media posts with a few lines of code.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store