Firebase steps into the Studio

Issue #419.August 26, 2025.2 Minute read.
Bytes

Today’s issue: K Pop Demon Angular, using Expo to remember how to cry, and the societal power of proper lint rules.

Welcome to #419.


Eyeballs logo

The Main Thing

Emoji with Guy Fieri hairstyle doing a chef's kiss

Vibe coders learning that Google will write their app for them

Firebase steps into the Studio

A few months ago, we wrote about how The-artist-formerly-known-as-Project-IDX changed its name to Firebase Studio and went all in on the Google-maxxed version of vibe coding – highly structured, built on top of a bunch of other Google services, and geared towards professional developers instead of those broccoli-haired App Mafia kids.

And they’ve continued to double down on that approach all summer by rolling out a steady stream of features designed to help you build “real” software faster and better Googlier.

Here are a few highlights:

  • Gemini hits the terminal – Gemini CLI is now built right into Firebase Studio, so you can drop into the terminal and summon AI for debugging, refactoring, or spitting out docs without leaving your flow.

  • Tighter Firebase integrations – Instead of just scaffolding your UI, Firebase Studio can now wire up authentication, Firestore, and cloud storage from a single prompt so you can actually deploy and use the features it builds for you.

  • MCP support – You can now extend Gemini and Firebase Studio with external tools and data sources by creating a .idx/mcp.json file in your project and adding an MCP server’s config.

  • Show and sharePublic ports let you expose a backend or preview running in Firebase Studio with a temporary public URL, so teammates (or clients) can click around without a deploy.

Bottom Line: When this project first launched, lots of developers were quick to dismiss it as another hobbyist toy. But with Gemini getting baked deeper into the stack and more features for collaboration and extensibility being added, Google is clearly serious about trying to bring vibe coding to the enterprise. May the quarterly earnings be ever in their favor.


Convex logo

Our Friends
(With Benefits)

Animated lady hugging her two alligators

I love all my AI agents equally

@convex-dev/agent is the easiest way to build AI agents

It’s an open-source Agent component that gives you simple building blocks for creating persistent, intelligent agents using just TypeScript.

Here are the highlights

  • Persistent threads that remember context across conversations and are shareable between users and agents

  • Hybrid vector/text search for fast, relevant lookups over your data (see YouTube tutorial)

  • Durable workflows that stream updates live to every connected client

Check out the docs to see how easy it is to build your own AI agents from scratch.


Pop Quiz logo

Pop Quiz

Sponsored by Datadog

They created an Infrastructure Core Platform solution brief that shows you how to efficiently scale systems with best practices for security and governance.

What gets logged?

function getPort(url) {
  const { port } = new URL(url);

  if(port === '80') {
    console.log("You're using the default port");
  }

  if(port === '443') {
    console.log("You're using the default secure port");
  }

  console.log(`You are running on port "${port}"`);
}

getPort(`http://example.com:80`)
getPort(`http://example.com:8080`)
getPort(`https://example.com:443`)
getPort(`https://example.com:3000`)

Cool Bits logo

Cool Bits

  1. Cassidoo Williams wrote about building Ductts, a React Native + Expo app for tracking how often you cry. If you’re looking for a quick way to pump your numbers, I suggest watching the last 5 minutes of Ratatouille or thinking about how that one dude from your high school who wouldn’t shut up about crypto and ICOs back in 2017 is probably rich now.

  2. Rspack v1.5 comes with barrel file optimization, a faster file system watcher, improved browser support, and lots more.

  3. QA Wolf is hosting a free webinar on How they built a real iPhone device farm for iOS mobile testing this Thursday. You’ll learn why simulators fail at e2e mobile testing and the crazy lengths they went to in order to achieve 80% coverage for iOS apps. [sponsored]

  4. Sam Who wrote this fun, interactive post about Big O notation, and he’s not talking about Oscar Robertson’s triple doubles.

  5. Oxlint now has type-aware linting and supports 40 long-awaited rules. Because lint rules are the only thing that separates us from the animals.

  6. A new React Aria release comes with origin-aware animations, GridList section support, and more.

  7. Stuart Dotson wrote about how his team at Calm migrated their Rush.js monorepo to Node type stripping – right after they completed their team sleep meditation with LeBron James.

  8. Firefox 142 introduces URLPattern, the Prioritized Task Scheduling API, and more.

  9. Minko Gechev filmed this first-look demo of AngularAI, a browser-first agent that provides “hyper-contextual” debugging and prototyping. Because context is everything – which is a lesson I learned the hard way after trying to jump into K Pop Demon Hunters with my nieces and nephews after they were already 45 minutes into it.


Pop Quiz logo

Pop Quiz: Answer

Sponsored by Datadog

What gets logged?

function getPort(url) {
  const { port } = new URL(url);

  if(port === '80') {
    console.log("You're using the default port");
  }

  if(port === '443') {
    console.log("You're using the default secure port");
  }

  console.log(`You are running on port "${port}"`);
}

getPort(`http://example.com:80`) // You are running on port ""
getPort(`http://example.com:8080`) // You are running on port "8080"
getPort(`https://example.com:443`) // You are running on port ""
getPort(`https://example.com:3000`) // You are running on port "3000"

The URL constructor function in JavaScript strips the default port even if it’s explicitly provided. Since port 80 is the default for http and port 443 is the default for https, the port is stripped from the URL resulting in an empty string. File this one away under JavaScript quirks that you probably don’t need to know, but could save future you hours of debugging.