<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/why-we-migrated-to-firebase-and-gcp-smash-gg-ryj8htenr" -->

---
title: Why we migrated to Firebase and GCP: Smash.gg | daily.dev
description: Smash.gg, an esports tournament platform, describes migrating from an off-the-shelf chat service to Firebase Realtime Database and Firebase Cloud Messaging for...
canonical: https://daily.dev/posts/why-we-migrated-to-firebase-and-gcp-smash-gg-ryj8htenr
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Why we migrated to Firebase and GCP: Smash.gg | daily.dev
og:description: Smash.gg, an esports tournament platform, describes migrating from an off-the-shelf chat service to Firebase Realtime Database and Firebase Cloud Messaging for...
og:url: https://daily.dev/posts/why-we-migrated-to-firebase-and-gcp-smash-gg-ryj8htenr
og:image: https://api.daily.dev/og/posts/rYJ8htEnr.png
og:image:alt: Why we migrated to Firebase and GCP: Smash.gg
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Why we migrated to Firebase and GCP: Smash.gg

**[Firebase](https://daily.dev/sources/firebase-blog)** · 6 min read · 0 upvotes · 0 comments

## Summary

Smash.gg, an esports tournament platform, describes migrating from an off-the-shelf chat service to Firebase Realtime Database and Firebase Cloud Messaging for real-time match reporting, then later migrating its broader infrastructure to Google Cloud Platform including Container Engine, Kubernetes, Pub/Sub, Datastore, BigQuery, and Stackdriver. After a month running on GCP, the team reported roughly 10% lower costs, easier DevOps, and centralized logging, while noting they had to rebuild request-tracing functionality by combining Stackdriver log exports, Pub/Sub, and Cloud Functions because the PHP Trace SDK didn't yet support async traces.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://firebase.blog/posts/2017/09/why-we-migrated-to-firebase-and-gcp>

## Questions this post answers

### Why did Smash.gg choose Firebase over building a custom websocket chat service or using PubNub?

Smash.gg chose Firebase because it was widely used, backed by Google, and well-priced compared to rolling their own websocket-based solution or using PubNub. Starting in May 2016, they used the Firebase Realtime Database as a real-time cache to sync match data between players, and built a chat feature inspired by Firechat in about two days.

_See how other teams weigh managed real-time services against custom builds on daily.dev._

### How did Smash.gg work around missing async trace support in the PHP Stackdriver Trace SDK?

They built a custom pipeline: log traces as JSON, export them to a Pub/Sub topic via Stackdriver log exports, then use a Cloud Functions Pub/Sub subscriber to report the traces through the REST API. This stopgap worked because the Google Cloud PHP SDK did not yet support asynchronous traces at the time of their migration, though the SDK later added that support.

_Track PHP tooling gaps like this and their fixes by following backend infrastructure updates on daily.dev._

### What cost and operational benefits did Smash.gg see after migrating to Google Cloud Platform and Kubernetes?

After one month running production on GCP, Smash.gg saw overall costs about 10% lower than their previous provider, with spare capacity and no committed-use discounts applied. Centralized Stackdriver logging and Kubernetes on Container Engine also made DevOps tasks easier for the whole engineering team and sped up root-cause analysis across systems.

_Weigh real migration cost and ops outcomes like this when planning a cloud move, tracked on daily.dev._

## Similar posts on daily.dev

- [Vibe-coded AI Studio apps with Firestore, Firebase, Cloud SQL](https://daily.dev/posts/vibe-coded-ai-studio-apps-with-firestore-firebase-cloud-sql-5faawqfxm) · Google Cloud · 0 upvotes · 0 comments

---

Tags: [#kubernetes](https://daily.dev/tags/kubernetes), [#gcp](https://daily.dev/tags/gcp), [#firebase](https://daily.dev/tags/firebase)

[View this post on daily.dev](https://daily.dev/posts/why-we-migrated-to-firebase-and-gcp-smash-gg-ryj8htenr)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Why we migrated to Firebase and GCP: Smash.gg","url":"https://daily.dev/posts/why-we-migrated-to-firebase-and-gcp-smash-gg-ryj8htenr","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/why-we-migrated-to-firebase-and-gcp-smash-gg-ryj8htenr"},"datePublished":"2026-08-23T12:21:08.548Z","dateModified":"2026-08-23T12:36:05.254Z","description":"Smash.gg, an esports tournament platform, describes migrating from an off-the-shelf chat service to Firebase Realtime Database and Firebase Cloud Messaging for...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/7ed721de96163685d26ab7e314be3ebc?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/7ed721de96163685d26ab7e314be3ebc?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Firebase","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Firebase","logo":"https://media.daily.dev/image/upload/s--i395oqZH--/f_auto,q_auto/v1787487448/logos/firebase-blog?_a=BAMAMicg0","url":"https://daily.dev/sources/firebase-blog"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/why-we-migrated-to-firebase-and-gcp-smash-gg-ryj8htenr","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"kubernetes,gcp,firebase","timeRequired":"PT6M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Firebase","item":"https://daily.dev/sources/firebase-blog"},{"@type":"ListItem","position":3,"name":"Why we migrated to Firebase and GCP: Smash.gg"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/why-we-migrated-to-firebase-and-gcp-smash-gg-ryj8htenr#faq","mainEntity":[{"@type":"Question","name":"Why did Smash.gg choose Firebase over building a custom websocket chat service or using PubNub?","acceptedAnswer":{"@type":"Answer","text":"Smash.gg chose Firebase because it was widely used, backed by Google, and well-priced compared to rolling their own websocket-based solution or using PubNub. Starting in May 2016, they used the Firebase Realtime Database as a real-time cache to sync match data between players, and built a chat feature inspired by Firechat in about two days. See how other teams weigh managed real-time services against custom builds on daily.dev."}},{"@type":"Question","name":"How did Smash.gg work around missing async trace support in the PHP Stackdriver Trace SDK?","acceptedAnswer":{"@type":"Answer","text":"They built a custom pipeline: log traces as JSON, export them to a Pub/Sub topic via Stackdriver log exports, then use a Cloud Functions Pub/Sub subscriber to report the traces through the REST API. This stopgap worked because the Google Cloud PHP SDK did not yet support asynchronous traces at the time of their migration, though the SDK later added that support. Track PHP tooling gaps like this and their fixes by following backend infrastructure updates on daily.dev."}},{"@type":"Question","name":"What cost and operational benefits did Smash.gg see after migrating to Google Cloud Platform and Kubernetes?","acceptedAnswer":{"@type":"Answer","text":"After one month running production on GCP, Smash.gg saw overall costs about 10% lower than their previous provider, with spare capacity and no committed-use discounts applied. Centralized Stackdriver logging and Kubernetes on Container Engine also made DevOps tasks easier for the whole engineering team and sped up root-cause analysis across systems. Weigh real migration cost and ops outcomes like this when planning a cloud move, tracked on daily.dev."}}]}
```

