Explorer
Content
videos
firebase-after-hours-14-live-vibe-coding-with-firebase-studio.md
videos firebase-studio firebase-after-hours-14-live-vibe-coding-with-firebase-studio.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
import SocialEmbed from "../../../../components/SocialEmbed.astro";


# Firebase After Hours #14: Live Vibe Coding with Firebase Studio

<SocialEmbed platform="youtube" id="wbrI2egh7bQ" />

## Description

Join @PeterFriese and @NoheDev  on Firebase After Hours as they vibe code an app (or two) using Firebase Studio. @RodyDavis (Developer Relations Engineer on Firebase Studio) will be their guest. Bring your questions about Firebase Studio, and they'll answer them live!

Resources:
From vibe to reality: Integrating Firebase in Firebase Studio → https://goo.gle/4lWAXf8 
Forum: → https://community.firebasestudio.dev/

#Firebase #FirebaseAfterHours #FirebaseStudio #Streaming #GoogleCloud #LiveStream #DeveloperCommunity

## Transcript

**0:00** · \[MUSIC PLAYING\]

**0:59** · PETER FRIESE: Hello, everybody and welcome to "Firebase After Hours," number 14.

**1:06** · Can you believe it?

**1:07** · Number 14.

**1:08** · When we started doing this, I had no idea that we would end up at a number like that.

**1:14** · And we have no intention of stopping there.

**1:17** · So welcome to the stream.

**1:20** · We've got something really exciting for you today.

**1:22** · But before we can get started, let's do the housekeeping.

**1:27** · So I want to remind everybody to be nice to each other.

**1:31** · We have a live stream going and a live chat.

**1:34** · So you can use the live chat to communicate with us.

**1:37** · We want you to send us your questions.

**1:40** · So please send questions that you want us to answer.

**1:43** · And we will take the ones that make sense in the context of this live stream, which will be about Firebase Studio.

**1:51** · And if there are any other ones that we can also answer and which we think might be interesting for folks on stream.

**1:59** · But in the interest of everybody, let's be polite.

**2:05** · And if you hate something, then maybe not say it here, but say it into your pillow or into a bucket and say the nice things to us and be constructive.

**2:19** · With that out of the way-- oh, and I also see people are using the emojis.

**2:25** · So please use the emojis if you like something.

**2:27** · Press the heart emoji or the party popper.

**2:31** · That's always great.

**2:32** · All right, so with that out of the way, let me bring on my most favorite co-host, Nohe.

**2:41** · Here he is.

**2:42** · Nohe, how's it going?

**2:43** · ALEXANDER NOHE: It's good.

**2:44** · I'm glad I made it to the most favorite ranking.

**2:47** · PETER FRIESE: \[LAUGHS\] You are my most favorite.

**2:49** · ALEXANDER NOHE: Well, you have so many to pick from.

**2:51** · PETER FRIESE: \[LAUGHS\] Man, I haven't seen you for such a long time.

**2:56** · What's happening?

**2:58** · ALEXANDER NOHE: Have you?

**3:00** · PETER FRIESE: Have you-- I mean, I saw you five minutes ago.

**3:04** · ALEXANDER NOHE: OK.

**3:05** · Well, I mean-- well, weren't you also on vacation?

**3:08** · I did a vacation last year.

**3:10** · PETER FRIESE: Yeah, but we were on different vacations, so I was on an island in the north of Germany.

**3:16** · And you probably-- I didn't see you there.

**3:18** · So I assumed you were somewhere else.

**3:18** · ALEXANDER NOHE: That's the most details you gave me.

**3:20** · So I think I went to a different island.

**3:22** · PETER FRIESE: Yeah.

**3:23** · That's why I think.

**3:24** · \[LAUGHS\] Which island did you go to?

**3:28** · ALEXANDER NOHE: No, I went to Wyoming.

**3:33** · I went to Yellowstone.

**3:35** · It's one of the national parks.

**3:36** · Do you know why they call it Yellowstone?

**3:40** · PETER FRIESE: I haven't been there, but I hear great things.

**3:42** · So next time I come, maybe we can go together.

**3:46** · ALEXANDER NOHE: Yeah, yeah, we'll take a little road trip.

**3:49** · I saw a bear, some moose, some elk.

**3:53** · PETER FRIESE: OK, wow.

**3:53** · That sounds exciting.

**3:55** · How far away were you from the bear?

**3:58** · ALEXANDER NOHE: So the bear was the closest.

**4:00** · I got maybe 10 feet away.

**4:02** · It was a brown baby bear.

**4:05** · PETER FRIESE: Oh, OK.

**4:06** · ALEXANDER NOHE: It was not-- the bear walked up to me.

**4:09** · I didn't walk up to it.

**4:11** · Yeah.

**4:13** · But we were just hiking along.

**4:14** · PETER FRIESE: Now it sounds a little bit more scary.

**4:17** · 10 feet, that's not very far.

**4:18** · ALEXANDER NOHE: Yeah.

**4:19** · And then we had to climb over rocks.

**4:21** · I dropped a camera lens that I was borrowing.

**4:23** · So I actually broke the lens.

**4:25** · PETER FRIESE: Oh, no.

**4:26** · That sounds like an expensive vacation.

**4:28** · ALEXANDER NOHE: Yeah.

**4:29** · Well, it turned out to be one.

**4:32** · Yeah, but it was good.

**4:34** · How about-- how was your island vacation in the north of Germany?

**4:37** · PETER FRIESE: Yeah, it was really good.

**4:38** · So we were on an island called Used, and it was absolutely fantastic weather.

**4:45** · So we had sunshine.

**4:46** · We were hanging around on the beach, doing bicycle rides.

**4:52** · So yeah, it was a great time.

**4:55** · Very relaxing.

**4:57** · No bears, but we had a seagull.

**4:59** · So the seagulls.

**5:01** · Man, I tell you, we only had a jar of marmalade on our balcony.

**5:06** · And then, next thing you know, this giant seagull lands on the balcony, trying to peck on the marmalade.

**5:14** · \[LAUGHTER\] Well-- all right, so we're not here to talk about vacation.

**5:22** · We're here to talk about Firebase Studio.

**5:26** · And we have a guest that knows everything about Firebase Studio, at least I hope.

**5:34** · So here he is.

**5:36** · RODY DAVIS: Hey.

**5:36** · PETER FRIESE: Rody, hey.

**5:38** · How is it going?

**5:39** · RODY DAVIS: Going good.

**5:40** · Yeah, super excited to come and code with y'all.

**5:43** · And I feel like this will be a really fun stream.

**5:46** · PETER FRIESE: Yeah, absolutely.

**5:48** · So maybe we can start, and you can tell us what you do, what's your role, and maybe a fun fact about you that you're happy to share.

**5:58** · RODY DAVIS: Yeah, so-- yeah.

**6:01** · My name is Rody.

**6:02** · I am a DevRel on Firebase Studio, so helping people get access to our huge selection of templates, but also working across teams to make sure that everybody has a good experience there.

**6:17** · And it's been interesting with the advent of vibe coding, where now the audience is changing, too.

**6:24** · You have people that have no experience with coding at all, all the way up to super experienced devs.

**6:30** · And, more recently, I feel like I've been seeing a lot of people come back into coding later in their career.

**6:36** · And now you have people that, oh, I used to do it, like, 15, 20 years ago, and I'm getting back into building.

**6:42** · So yeah.

**6:43** · And then a fun fact, I used to be an audio engineer before I was a software engineer.

**6:48** · PETER FRIESE: Oh, is that why your audio signal sounds so good?

**6:53** · RODY DAVIS: Yes, that's why I have a proper mixing board to the left of me.

**6:57** · PETER FRIESE: Nice, nice.

**6:58** · I feel I need to spend some quality time with you so you can help me fix the audio on my stream.

**7:04** · RODY DAVIS: Yeah, yeah.

**7:05** · For sure.

**7:07** · PETER FRIESE: All right, cool.

**7:08** · So usually we do a game of what is your favorite indentation method, but before we started the stream, we were talking about food or vacation.

**7:20** · So how about we take a new question, and instead of doing tabs versus spaces, how about we do, what is your favorite food?

**7:30** · And why is it pasta?

**7:31** · No, sorry.

**7:32** · So what's your favorite food?

**7:33** · \[LAUGHS\] RODY DAVIS: Yeah, I think one of my favorite ones is sushi.

**7:39** · But if I had to pick a specific thing inside there, probably, like, takoyaki from Japan, like the little octopus balls they fry.

**7:46** · Those are pretty good.

**7:48** · PETER FRIESE: Nice.

**7:49** · Nohe, what about you?

**7:51** · ALEXANDER NOHE: I really like Chicken Chesapeake.

**7:54** · PETER FRIESE: What's the second part?

**7:56** · Chesapeake?

**7:57** · ALEXANDER NOHE: Yeah, Chesapeake.

**7:58** · It's like a giant bay in North America.

**8:02** · There's like crabs that come out of the bay.

**8:04** · RODY DAVIS: Nice.

**8:04** · ALEXANDER NOHE: Then we eat the crabs.

**8:06** · So Chicken Chesapeake is chicken, and it's layered on top with a crab dip or other crab meat items.

**8:17** · It's pretty good.

**8:18** · PETER FRIESE: Nice.

**8:18** · RODY DAVIS: Is it a full on boil, like a normal seafood boil?

**8:22** · ALEXANDER NOHE: You're thinking of like a low country boil.

**8:24** · That's something different.

**8:26** · Well, I assume you're thinking of a low country boil, where you have the giant thing.

**8:30** · You throw in the crawfish and the corn and the potatoes.

**8:33** · RODY DAVIS: Yeah.

**8:34** · So you just cook the crabs and get them out.

**8:37** · ALEXANDER NOHE: Well, yeah.

**8:38** · So you make the crab dip first, where it's-- it's not really crab dip.

**8:43** · It's like a little bit of a crab cake blended with chicken on top.

**8:48** · So you get the very filling chicken and then however much crab you picked off-- RODY DAVIS: That's nice.

**8:55** · ALEXANDER NOHE: --or gotten from the jar or your cousin that runs the crab shack.

**9:01** · Yeah.

**9:02** · RODY DAVIS: Nice.

**9:03** · How about you, Peter?

**9:04** · PETER FRIESE: So if you've watched our last, most recent video, you might know that one of my favorite dishes is parmigiana.

**9:15** · And usually you make it with aubergine.

**9:18** · But my favorite is zucchini.

**9:20** · So that would be my go-to.

**9:23** · And anything that has tomato sauce in it, you can't go wrong with it, I think.

**9:28** · It just is perfect.

**9:30** · RODY DAVIS: That's awesome.

**9:31** · PETER FRIESE: So everybody on the stream, tell us what you think.

**9:35** · What's your favorite dish?

**9:36** · I already saw that people mentioned chimichurri and stuff.

**9:41** · So feel free to let us know what you like.

**9:45** · So let's talk about Firebase Studio.

**9:49** · So one of the first questions that we should probably talk about is, what is it?

**9:56** · And how is it different from Firebase?

**10:01** · RODY DAVIS: Yeah, that's a good question.

**10:04** · Yeah, and also people may be wondering, well, how is this different than just VS Code on my computer too?

**10:10** · So Firebase Studio is, at its core, a computing platform that we enable and unlock people to use in the browser.

**10:19** · So we're built on top of NixOS, which is a VM that has a huge amount of packages in the Linux ecosystem.

**10:27** · And because of that, we are able to support full server side, client side stacks, all running together.

**10:36** · You can run Kubernetes or full Docker containers, all the way down to just a simple Go server.

**10:44** · Really, it's about-- as long as you can configure it in Nix, you can usually get the template running.

**10:49** · So Firebase Studio, which was previously Project IDX, wraps up all of that into a nice feature suite.

**10:57** · But then, now part of Firebase, we are able to deeper integrate into creating Firebase services, like projects and API keys for Firebase AI Logic, and have deep relationships across Google to try to make that development experience better.

**11:16** · And then, of course, at Google Cloud Next, when we launched, we also supported this new kind of natural language prompting.

**11:24** · And that is kind of a new way for us to get into the space of helping people get past that blank canvas problem.

**11:32** · So I have something I want to build.

**11:34** · I'm not sure where to start.

**11:35** · There's a lot of templates.

**11:37** · Might as well just throw it into the prompt to see what you can get.

**11:40** · And one of the cool things about that is, even if you're a really experienced dev and maybe mobile is like your wheelhouse, we still offer this prototyper because you could use it for your marketing site.

**11:53** · You could use it for the things that you don't want to build, but then focus your development time on something else.

**11:59** · And because we run on top of these VMs, unlike a lot of the other tools, we have that experience wherever you go into any browser.

**12:09** · And so I think that's been fun.

**12:11** · One of the things I like to show off at the booth is running Firebase Studio on my Google Pixel Fold.

**12:18** · PETER FRIESE: Yeah, how is the development experience on a small device like that?

**12:21** · RODY DAVIS: It's interesting, especially if you have a keyboard and stuff like that.

**12:25** · But, I mean, I think it's just really awesome to be able to-- oh, I just need to get access to that.

**12:30** · I just need to make this one change.

**12:32** · And one of my favorite things that we can do in Firebase Studio is-- everybody likes to joke on Twitter and other places that, oh, here's my new startup.

**12:43** · It's localhost blah blah blah.

**12:46** · But with Firebase Studio, we launch public ports, so you can actually share localhost on Twitter, which is fun.

**12:51** · PETER FRIESE: Yeah, yeah.

**12:52** · Yeah, it's really good fun.

**12:54** · And what I really like is that you have this feature where you can display QR code and then show it on your phone.

**13:01** · And that's pretty cool.

**13:03** · RODY DAVIS: And it's getting into your actual VM too.

**13:05** · Yeah.

**13:06** · PETER FRIESE: Yeah, yeah.

**13:06** · Exactly.

**13:06** · So why don't we take a look at how it works, and then we can look into some of the features, and maybe you can show us some of the stuff that you're particularly excited about.

**13:18** · And then maybe we can take some audience questions as well.

**13:22** · And maybe-- I don't know-- you have an idea what we can vibe code or the audience wants to come up with something.

**13:29** · So I will bring on your screen, and then we can take it from there.

**13:35** · RODY DAVIS: Awesome.

**13:35** · So when you are first brought into Firebase Studio, you won't have any projects yet.

**13:43** · So this is going to be the screen that you have.

**13:45** · It's very similar to any other of the AI tools, but we offer a way to easily get started.

**13:53** · One of the cool things that we launched recently is when you add a prompt, we can now suggest an improvement to that prompt.

**14:01** · So it'll already start to normalize the type of input that people are bringing, which is pretty cool in itself.

**14:10** · And then, of course, if you want, you can click on Full Dashboard and get access to our templates.

**14:17** · We have a huge variety of templates.

**14:19** · There's almost certainly a framework or a stack that you're using that we have here.

**14:26** · We have both mobile, web, and front end.

**14:30** · Mobile is especially really popular.

**14:33** · Our AI templates-- people actually really like our databases inside of Firebase Studio because, notoriously, Postgres and these other ones can be tricky to get installed.

**14:42** · And so now you can have a running Postgres instance running in the browser that you can connect to by public port.

**14:49** · So you can kind of-- what I like to do is create really nice staging environments and then connect to them from other places.

**14:56** · And then we also have this new What's New section that we launched just last week.

**15:01** · And these are updates to these five templates that support our new agentive AI layout.

**15:09** · And it kind of makes-- one, we've updated the base system instructions, so you can have a more prototyper-esque type of experience, where you can just jump into the chat and say, change this, do this, do whatever.

**15:23** · PETER FRIESE: OK.

**15:25** · All right.

**15:25** · That's really interesting because when-- that sounds a little bit like on \[INAUDIBLE\]-- so we've got the prototyper that you showed in the beginning, where you have this box that you can use to kickstart your application from zero, essentially.

**15:40** · And what you just said sounds a little bit like you would be in the IDE part of the IDE, and then you'd have another window that you could use to continue prototyping in there.

**15:51** · Is that about correct?

**15:52** · RODY DAVIS: Yeah, and we're also just starting with these.

**15:55** · But the goal is to try to bring this to more that makes sense.

**15:57** · And so if there's a popular framework, and you're like, oh, I have to use Laravel for my-- let's see, where is it-- for my entire application.

**16:08** · That's the only thing I use.

**16:10** · Well, you could take what we're doing here and apply that to your favorite template and already start to have this more agentive experience.

**16:19** · PETER FRIESE: OK, that's cool.

**16:20** · So what I think we should be doing-- so when I was at Cloud Summit in London, I had 15 minutes to vibe code an application.

**16:31** · And because I know that it takes a while for the prototyper to do its work, I vibe coded two applications at the same time.

**16:39** · One was a "Flappy Bird" clone.

**16:43** · And the other one was an expense tracker.

**16:46** · So it sounds like we might want to do the same.

**16:50** · So I'm thinking one of the things that we should do is demonstrate how the initial prototyper works, like where you can put your prompt.

**16:58** · And then I am super curious about the agentic experience in those templates here.

**17:03** · So I want to see those two things.

**17:06** · Can you make that work?

**17:08** · RODY DAVIS: Sure, and what template do you prefer we start with?

**17:11** · Because this would also be a-- PETER FRIESE: I don't know.

**17:14** · Nohe, do you have any preference?

**17:16** · ALEXANDER NOHE: Let's go Flutter.

**17:18** · RODY DAVIS: Nice.

**17:18** · OK, cool.

**17:19** · PETER FRIESE: Let's do it.

**17:21** · Oh, yeah, and then the other app should be a bird-themed app as well.

**17:26** · \[LAUGHTER\] RODY DAVIS: Let's see.

**17:34** · And I will have you hide my screen in a second when I paste in an API key.

**17:40** · PETER FRIESE: OK.

**17:41** · Fair enough.

**17:47** · ALEXANDER NOHE: Building environment.

**17:48** · RODY DAVIS: Yeah, no, this is pretty exciting.

**17:51** · I've been really pumped for this new type of experience that we've launched.

**17:57** · One, it kind of just really highlights how flexible and powerful our templates are because the prototyper is great if you're using Next.js and Tailwind and all the things that we've set up for you.

**18:11** · But a lot of people have been asking, I wanted to use my favorite framework, Vue or Svelte.

**18:16** · And it's always giving me Next.js.

**18:18** · So this is kind of like a step in that direction.

**18:21** · PETER FRIESE: Yeah, absolutely.

**18:25** · RODY DAVIS: So yeah, this is the new template layout.

**18:28** · As you can see, by default, the chat's on the right, and the previews are on the left.

**18:34** · And then, of course, you still have access to all the code here too.

**18:38** · And we also launched this new feature recently called Auto-Run, where it essentially-- except for terminal commands, it will automatically add all the files without having to have you approve each one.

**18:49** · PETER FRIESE: Nice RODY DAVIS: OK, let me go ahead and grab that API key real quick.

**18:58** · ALEXANDER NOHE: I think this might be where we want to turn off Rody's screen?

**19:00** · RODY DAVIS: Yeah, go ahead.

**19:01** · PETER FRIESE: OK, so I'll target just you.

**19:05** · RODY DAVIS: Just in case.

**19:09** · I'm sure there's eager viewers that are ready to screenshot.

**19:12** · PETER FRIESE: Oh, yeah, yeah.

**19:13** · So I had one video where I had an API key visible for literally two frames.

**19:18** · And then somebody posted a comment in the video that pointed exactly to that thing.

**19:24** · So we had to swap it out.

**19:27** · RODY DAVIS: Amazing.

**19:29** · OK, almost there.

**19:32** · Sweet.

**19:34** · Let me just put this.

**19:37** · ALEXANDER NOHE: So while we wait for Rody to fetch the API key, can we see if he can pat his head and rub his belly at the same time?

**19:45** · \[LAUGHTER\] RODY DAVIS: All right, now we're good.

**19:49** · ALEXANDER NOHE: Oh, we're all good?

**19:51** · All right.

**19:52** · PETER FRIESE: \[LAUGHS\] RODY DAVIS: OK, so one of the cool things when you enter into this Auto-Run is, obviously, it's very destructive in terms of it's going to be just adding a bunch of files.

**20:04** · So we will commit all of your changes to a local Git repo.

**20:07** · So right here, you can see we generate a commit message.

**20:11** · And we do that.

**20:12** · And so if you do a whole session, and you really hate it, you can always right-click and restore.

**20:19** · The other thing that you can do is built into the core Code OSS.

**20:24** · You can also use your timeline and restore there as well, so already kind of nice ways to get around that.

**20:32** · PETER FRIESE: Nice.

**20:33** · RODY DAVIS: Awesome.

**20:34** · And let's see.

**20:35** · Another fun thing we could do, too, is we recently launched support for Firebase MCP.

**20:42** · So we can also add that as well.

**20:45** · I can go ahead and log in.

**20:50** · PETER FRIESE: So that would enable you to have the IDE remotely control your Firebase project and do things like create a project in the first place or create new accounts, list what's in the database, and stuff like that?

**21:08** · RODY DAVIS: Yeah.

**21:09** · Go ahead and hide my screen one more time, too.

**21:11** · PETER FRIESE: Yep, sure.

**21:12** · RODY DAVIS: Thanks.

**21:15** · Just realized it'd show the authorization code.

**21:22** · OK.

**21:22** · ALEXANDER NOHE: So a few questions came in on chat.

**21:28** · And I'm trying to find them so that we can show them on the screen.

**21:31** · But one of them was, are we planning to make it easy to integrate auth, database, storage, and other Firebase services easily with Studio projects?

**21:42** · RODY DAVIS: Yeah, that's a good question.

**21:44** · And you can share my screen again.

**21:46** · The goal is to make all the integrations as seamless as possible.

**21:51** · I think you can already, right now, go to the Firebase Console and set up the authorized domains and some of the other redirects to get that working.

**22:02** · One of the cool things about the Firebase MCP server-- and you guys can fact check me if I'm wrong on this.

**22:07** · But it can already do a lot of things like create Firebase projects and databases and configure a lot of the settings for you.

**22:17** · ALEXANDER NOHE: Cool.

**22:18** · RODY DAVIS: And then, so one of the cool things is we have this MCP JSON file that is blank.

**22:24** · We have a code lab, where I'm just going to paste in the code snippet.

**22:27** · And this enables the Firebase MCP server.

**22:32** · And the way that you'll know it's running is, if you go into your logs-- ALEXANDER NOHE: Hey, Rody, just to interrupt you, I think it's about time I say my catchphrase.

**22:43** · And I know you can read the screen, but I cannot read the screen.

**22:48** · Could you make it just a little bit bigger?

**22:50** · RODY DAVIS: Yeah, you got it.

**22:51** · Let's see.

**22:57** · ALEXANDER NOHE: Thank you.

**22:58** · Yeah, it should be uncomfortably large for you.

**23:01** · RODY DAVIS: Yeah.

**23:03** · Let's see.

**23:03** · OK.

**23:04** · So when I went to the Gemini logs here in the output console, you'll see that it'll show all the tools that it has available.

**23:13** · Sometimes it'll take a second.

**23:15** · And then as you make changes to the MCP JSON, it'll also change what's available there too.

**23:20** · Like, for example, Flutter and Dart has an MCP server that you can also use on the beta channel, I believe.

**23:27** · And so you could have multiple MCPs here, and they'd all be available in chat.

**23:32** · PETER FRIESE: I love the fact that it adds 42 tools, but it also means we can't add any more tools.

**23:38** · RODY DAVIS: That's right.

**23:39** · Yeah, it's the meaning of life.

**23:41** · ALEXANDER NOHE: I did see one tool in there called Consult Assistant.

**23:44** · Have you tried that tool yet?

**23:46** · RODY DAVIS: I have not.

**23:51** · ALEXANDER NOHE: It's like third line, maybe.

**23:54** · Oh, no, no, second line.

**23:55** · You literally just highlighted it.

**23:58** · That way, to the right.

**23:59** · Yeah, that one.

**24:00** · RODY DAVIS: Yeah, so any idea what we should prompt there to try to get it?

**24:04** · We can also switch it to Ask mode, by the way.

**24:06** · This is so you can interact but not make changes.

**24:11** · ALEXANDER NOHE: Can you ask the Firebase Assistant, how do I add FlutterFire to this app?

**24:26** · RODY DAVIS: OK, let's see if it'll come back.

**24:28** · I'm also using Gemini 2.5 Pro here.

**24:36** · Beginning Firebase setup.

**24:37** · It's just like it's thinking, mapping out Firebase tasks.

**24:44** · ALEXANDER NOHE: And then while we wait for this to respond, somebody mentioned that they are designing a web app.

**24:51** · And is it always going to be slow?

**24:55** · Or when they go live, will it be faster?

**24:58** · RODY DAVIS: Slow as in building?

**25:03** · ALEXANDER NOHE: This is the text that I have, my friend.

**25:06** · PETER FRIESE: It runs very slowly.

**25:09** · RODY DAVIS: It might be debug mode that's slowing it down for the app.

**25:12** · ALEXANDER NOHE: Ah, OK.

**25:17** · RODY DAVIS: Let's see if we can-- I'm not sure if it actually used the tool or not.

**25:21** · Let's see if we can use the tool.

**25:25** · It did give a correct set of instructions, though.

**25:29** · ALEXANDER NOHE: How do you know when a tool is run in Ask mode?

**25:31** · RODY DAVIS: It should prompt or show a little thing that says, using X tool.

**25:38** · So it also might not work in Ask mode.

**25:46** · Let me try it again in Agent.

**25:51** · And you can always start a new chat, which is nice because you can actually have multiple histories of various chats going.

**25:57** · So let's try it again.

**26:00** · Yeah, it totally could have just not worked in Ask mode.

**26:10** · Let's try my terminal command, but yeah.

**26:11** · PETER FRIESE: But that's a little bit more straightforward, right?

**26:14** · RODY DAVIS: Yeah, let's see.

**26:17** · Just try one more before giving up.

**26:21** · ALEXANDER NOHE: Maybe like, when should I use Firestore versus Firebase Data Connect?

**26:29** · RODY DAVIS: Yeah, I think the issue is it's trying to just use the raw model stuff.

**26:43** · Let's see.

**26:45** · Here we go.

**26:45** · Clarifying.

**26:46** · OK.

**26:46** · That's what you're supposed to see, though.

**26:48** · That's it actually talking to the tool.

**26:53** · No active project was found.

**26:55** · So that one, that may need a set for that.

**27:00** · That's good.

**27:01** · I haven't heard that before.

**27:02** · PETER FRIESE: Can you ask the MCP server to give you the tool definition so that you can understand what the tool is good for?

**27:10** · RODY DAVIS: Yeah.

**27:19** · Let's see.

**27:28** · There we go.

**27:34** · Pretty cool.

**27:35** · PETER FRIESE: OK, so the Firebase AI-- Firebase Assistant is basically Gemini in Firebase, right?

**27:43** · RODY DAVIS: Yeah, is that the-- nice, yeah.

**27:46** · That's cool.

**27:48** · PETER FRIESE: Yeah, that's pretty cool.

**27:50** · RODY DAVIS: Right on.

**27:52** · PETER FRIESE: All right.

**27:53** · So what should we do with this application here?

**27:55** · So it's a basic application.

**27:58** · But can we add a feature?

**28:03** · RODY DAVIS: Let's see if we can first switch to Agent Auto-Run.

**28:09** · Let's build a fun-- here we go.

**28:13** · Let's do, build a-- this is always one I like to try, just because it requires state, logic, and layout.

**28:23** · And I usually like to do, build me a retro-themed calculator because it usually-- depending on the luck of the draw, it'll have a nice segmented display with the nice green.

**28:36** · PETER FRIESE: Nice.

**28:38** · ALEXANDER NOHE: Are these solar powered too?

**28:40** · RODY DAVIS: Yeah.

**28:40** · \[LAUGHTER\] That would be awesome.

**28:45** · It'd be cool if you could have the effects of motion on it too.

**28:50** · ALEXANDER NOHE: Oh, yeah.

**28:56** · RODY DAVIS: Let's see.

**28:57** · Yeah, let's just start with that.

**28:58** · So I want to start with a prompt that someone might put into the normal prototyper that's just asking for something, but not really specific on the type of change.

**29:10** · If you go into our IDX/AI rules, these are the new rules that we launched.

**29:16** · And so you can see that there's a lot of opinions in here.

**29:19** · But that's the best part about rules is they are opinionated.

**29:22** · You can go and change these.

**29:24** · And it will have your opinions baked into those rules.

**29:27** · PETER FRIESE: Oh, so they're in your project?

**29:29** · RODY DAVIS: Yes, yeah.

**29:30** · So if you completely hate what we put together, please change it.

**29:35** · And then just restart the chat.

**29:36** · And you will have it use your favorite state management, your favorite routing framework, your database, you name it.

**29:42** · PETER FRIESE: Nice.

**29:43** · Yeah, good stuff.

**29:43** · ALEXANDER NOHE: Could we have it for every text string that it shows prefix it with a Z?

**29:51** · RODY DAVIS: I guess.

**29:52** · Yeah, you could.

**29:53** · I mean, I think, obviously, the longer the rules, the less it may pay attention to any specific rule.

**30:01** · ALEXANDER NOHE: Oh.

**30:02** · RODY DAVIS: And so-- yeah, yeah.

**30:03** · So one of the first steps it's supposed to do is come up with a blueprint and a plan, but we'll see if it actually does that here.

**30:11** · PETER FRIESE: Yeah.

**30:12** · So that was actually a question from someone on the chat who said, quick question, Rody, I noticed the more messages and prompts sent in the chat directly affects the responsiveness of the model.

**30:24** · Perhaps Firebase Studio can develop a way to clear workspace data.

**30:28** · RODY DAVIS: So you can do slash clear to remove all the chats in a session.

**30:34** · And that's a way to really speed it up already.

**30:38** · And then there's some other techniques we can do.

**30:41** · Like, if it's really slow, you can go to your workspace list and click Restart.

**30:45** · And that will provision a new one for you as well.

**30:48** · PETER FRIESE: Is there also a way to summarize the previous conversation and roll it down.

**30:54** · RODY DAVIS: You can with Gemini CLI, which we have pre-installed now.

**30:58** · You can just go to terminal and type Gemini and have all those features.

**31:02** · PETER FRIESE: OK.

**31:03** · RODY DAVIS: Also, here's the blueprint that it generated, which is cool.

**31:05** · It's similar to the prototyper.

**31:07** · Like, it describes the UI, the design features, and the structure.

**31:11** · And let's do a restart to make sure.

**31:17** · It did not set it up in the-- let me do a full restart.

**31:23** · PETER FRIESE: Maybe it's on the Plus button.

**31:28** · RODY DAVIS: I think it needs to be fully reloaded.

**31:30** · Let's see.

**31:34** · ALEXANDER NOHE: Yeah, hot reload is not-- no, that did just come out to the web, right, because I saw something-- RODY DAVIS: For Flutter, it came out for Chrome, but not web server, which is what we use.

**31:44** · ALEXANDER NOHE: Oh, OK.

**31:45** · RODY DAVIS: Yeah, there's plans to support it in the future.

**31:46** · ALEXANDER NOHE: Can we get to the Android preview?

**31:48** · RODY DAVIS: Yeah, it's also restarting.

**31:50** · ALEXANDER NOHE: Ah.

**31:52** · RODY DAVIS: It just installed Google Fonts, so it's probably installing that package.

**31:56** · ALEXANDER NOHE: While we wait for a hot reload, there was a question about the Attachment button.

**32:02** · And clicking on the Attachment button-- ooh, look at that.

**32:06** · RODY DAVIS: Yeah.

**32:07** · ALEXANDER NOHE: It allows you to upload images, but not-- RODY DAVIS: Yeah, you can-- ALEXANDER NOHE: --not files.

**32:12** · RODY DAVIS: --upload drawings, images, or even files from the workspace.

**32:17** · ALEXANDER NOHE: Sorry, it looks like the question was in the overview in the base window.

**32:25** · Do you know what I'm talking about, where you launch Studio, the prompting?

**32:28** · RODY DAVIS: Oh, that one only supports images, I believe, or only-- yeah, only images, yeah.

**32:34** · ALEXANDER NOHE: Yeah, so I think there's a feature request to support markdown there.

**32:39** · RODY DAVIS: Yep.

**32:40** · I also have that feature request out.

**32:42** · PETER FRIESE: Oh, to input markdown right in the initial prompt?

**32:46** · RODY DAVIS: Yeah.

**32:47** · I will say that we support-- if you go to the open in Firebase Studio docs for a button, it supports sending stuff to the prototyper, which I have not found a limit to the amount of text you can provide there.

**33:01** · So I have submitted full docs created with Gemini Deep Research to there.

**33:05** · And it'll just-- like, you can add it as context inside of there.

**33:08** · PETER FRIESE: Yeah.

**33:09** · What I did found is that once you have the blueprint, you can say, let me edit the blueprint, and that's a markdown file as well, and then do whatever you want.

**33:19** · But yeah, obviously, you'd want to also start out from a markdown file.

**33:24** · RODY DAVIS: I was just about to code like a normal person.

**33:27** · So let me use AI to make that \[INAUDIBLE\].

**33:30** · PETER FRIESE: Like a savage.

**33:31** · RODY DAVIS: Yeah.

**33:33** · Remove the debug banner.

**33:37** · So, as you can see, it came with a pretty cool UI already with a nice retro font and already with some animations.

**33:45** · And that kind of shows you that we just gave it-- it generated a retro-themed themed calculator, but it did the work of creating a plan.

**33:54** · The nice thing about the blueprint is it really makes an elaborate expansion on top of your prompt, and then also your intention.

**34:02** · It's almost like a PRD.

**34:03** · And then we generated all those files at once.

**34:08** · So that was 1, 2, 3-- three files with a pubspec change.

**34:12** · And this is something that's in the rules, too, is instead of updating the pubspec manually, it uses the CLI, which we prompted it to, so it always knows the correct way to do it.

**34:23** · So for our Angular template, when you add a new component, it uses the Angular CLI to generate the new components and routes.

**34:30** · So I think doing it this way lets the model do what it's best at, and then, also, what the tools are do what they're best at as well.

**34:42** · ALEXANDER NOHE: So one thing that I've noticed using Gemini CLI is that when I have a really targeted fix, it tends to be really good at that.

**34:55** · Whereas, when I vibe code with Firebase Studio, sometimes I want to have a targeted fix.

**34:59** · I'm like, change this thing to do this, or the math is not exactly mathing correctly.

**35:05** · RODY DAVIS: Yeah.

**35:06** · ALEXANDER NOHE: Is there a way to go-- ooh, is there a way to figure out where in my project this button is?

**35:14** · Like the 9 button, is this a single button on a screen that's reused for all the number buttons?

**35:19** · Because all the operations are one shade.

**35:21** · All the number buttons are another shade.

**35:22** · Is there a way for me to figure that out by prompting Gemini in Studio, or is there something, maybe, else going on?

**35:29** · RODY DAVIS: So I think one of the ways-- like, that's what you would use the Ask mode for.

**35:34** · You could ask those type of questions.

**35:37** · And then we've indexed all the files, and so it would know which file is where, and then, also, the context and state dynamically of what you've just added and updated.

**35:48** · Is that similar to what you're asking?

**35:51** · ALEXANDER NOHE: Maybe.

**35:53** · I was working on something recently where I knew that I wanted it to have a certain behavior.

**36:00** · And rather than just ask Gemini for the entire app, I said, in this file, change this thing.

**36:06** · Is there a way to figure out from this which file that would be so that I could take a look myself?

**36:13** · Do you know what I'm trying to ask?

**36:14** · RODY DAVIS: I think so.

**36:16** · I think you're asking-- so I guess the way I would do that is if I know the file ahead of time, I usually tell Gemini directly in the chat, update or read this file, describe this file to me, or, what do I need to do to make this file better?

**36:33** · Something like that.

**36:33** · And then I'm having a conversation with that file.

**36:37** · With the file from the workspace, you can even add it there too if it's like a deeply nested one too.

**36:43** · ALEXANDER NOHE: What if I don't know the file?

**36:45** · RODY DAVIS: So I would actually just start by asking, because Gemini CLI is really good at this.

**36:51** · And even in this mode too, we have an index list of all the stuff in your workspace.

**36:55** · So you can say, I'm trying to find out where this is in the code base.

**37:01** · And it could search stuff like that.

**37:04** · ALEXANDER NOHE: Oh, OK.

**37:05** · RODY DAVIS: Yeah.

**37:06** · Because we've actually sent the list of the files and the recent stuff and everything like that.

**37:11** · Gemini CLI will actually run regex queries and other stuff too.

**37:16** · ALEXANDER NOHE: And figure out exactly-- RODY DAVIS: Mm-hmm.

**37:19** · ALEXANDER NOHE: Oh, OK.

**37:20** · RODY DAVIS: Yeah.

**37:22** · ALEXANDER NOHE: Neat.

**37:23** · RODY DAVIS: So there's different goals and different trade-offs, for sure.

**37:27** · But yeah, I think sometimes you're like, this is a new code base.

**37:31** · I'm explorative, trying to figure out where everything is and how it's working.

**37:37** · One of the things I've done usually, either with CLI or regular, is just try to generate markdown files of what it thinks the app architecture is and try to have it go through and scan and create state and build it up.

**37:53** · Or even like for these files, generate a series of tests, then run them, because then that kind of also generates a contract of what it thinks that the correct output should be.

**38:05** · And then, as I'm going too, I like to have it generate documentation comments in the code too.

**38:12** · So it's kind of just leaving it better as it goes.

**38:16** · ALEXANDER NOHE: Oh, OK.

**38:17** · Yeah, yeah, yeah.

**38:19** · RODY DAVIS: Because also, it's natural language text, so it's great for context when it loads in the file too.

**38:25** · ALEXANDER NOHE: Speaking of context, is there a limit to the number of tokens we can use in Firebase Studio?

**38:32** · RODY DAVIS: So we're using Gemini 2.5 Pro here.

**38:34** · We switched.

**38:35** · So Gemini supports up to a million.

**38:40** · Obviously, it's less than that with the context that we send in.

**38:44** · But I think context is one thing, but usable context is different, right?

**38:50** · When you're working with code, I think it's a lot different than just chatting with a PDF.

**38:55** · And the more that you give it, the harder it is to find the exact things that you're looking for and to have meaningful change output.

**39:04** · I've noticed that my best performance is when I'm-- even in CLI, I'm hitting like 75%, 80% context window.

**39:13** · I feel it's like the sweet spot for-- I have a lot of context in there, but then I still have a lot of performance, because the performance will go down the more you fill it.

**39:24** · Even with caching, it still takes a while to load it in.

**39:28** · It still takes a while to parse and run inference on that too.

**39:33** · So it's just definitely a trade-off.

**39:36** · But there are times when you want to fill it up and do Ask questions like that.

**39:43** · ALEXANDER NOHE: Cool.

**39:47** · Peter looks like he's dying to ask a question.

**39:49** · PETER FRIESE: \[LAUGHS\] Yeah, so you mentioned that you can ask it to generate documentation.

**40:01** · So why don't we ask it to generate a diagram of this calculator for us?

**40:06** · RODY DAVIS: Yeah, let's do it.

**40:07** · OK.

**40:10** · Let's do, in the blueprint.md, generate a diagram of the application features and state.

**40:28** · Let's see if we can do that.

**40:34** · So we can see it reads, and then we'll make the changes, and then also apply the edit out.

**40:40** · We did switch to Auto-Run here.

**40:43** · Doing a nice mermaid diagram-- nice.

**40:47** · So let's go ahead and-- hey.

**40:53** · PETER FRIESE: All right.

**40:54** · ALEXANDER NOHE: Ooh.

**40:57** · Wow.

**40:57** · PETER FRIESE: Can we preview the diagram somehow?

**41:00** · RODY DAVIS: Preview.

**41:03** · ALEXANDER NOHE: I think you want markdown preview, which might be an extension.

**41:07** · Or if you do Command-Shift-P too, open up the command palette.

**41:10** · RODY DAVIS: Yeah.

**41:11** · I think we-- ALEXANDER NOHE: Would that work?

**41:12** · No.

**41:12** · RODY DAVIS: I wonder if we render it in our-- I don't know if the built-in-- PETER FRIESE: Oh, can you go-- so I see the button, so right next to the diamond icon, yeah.

**41:21** · RODY DAVIS: Yeah, that's the one I just did, yeah.

**41:23** · I don't think we render mermaid diagrams in here.

**41:27** · PETER FRIESE: Oh, OK.

**41:28** · ALEXANDER NOHE: Not yet.

**41:29** · RODY DAVIS: Yeah, not yet.

**41:32** · PETER FRIESE: OK, feature request.

**41:34** · ALEXANDER NOHE: Yeah.

**41:34** · RODY DAVIS: Yeah.

**41:35** · I'm trying to figure out-- I mean, I know GitHub will render it and other places, but yeah, I mean, at least it rendered the diagram, which is cool.

**41:46** · Let's see.

**41:47** · It has the list of operations, the different states, subgraph.

**41:55** · Yeah, this is a calculator in state diagram.

**41:58** · That's cool.

**42:00** · Nice.

**42:02** · Yeah.

**42:03** · And then the other thing too, we could take this further and be like, OK, great, update the code you generated to have documentation comments, and write some unit and widget tests, and run the test, checking for errors and fixing any issues.

**42:45** · OK.

**42:46** · And then we'll do, create plan and get started.

**42:54** · See if we can try this out.

**42:55** · So this is a relatively complex question with a series of compound things that I'm wanting it to do.

**43:03** · So obviously, I want it to do a chain of thought first and then-- all right, we'll go ahead, and it looks like it's refactoring it.

**43:13** · It's moving things around to a more layered architecture, which is cool.

**43:22** · Oh, it looks like the calculator is responsive.

**43:24** · Nice.

**43:25** · ALEXANDER NOHE: Well, you can't see the results at the top, though, right?

**43:31** · RODY DAVIS: Yeah, I mean, if you don't show the answer, it could be correct, so TBD.

**43:36** · ALEXANDER NOHE: We just hope.

**43:38** · \[LAUGHTER\] RODY DAVIS: Go ahead and move this down.

**43:45** · If you add the results but never look at it, is it correct?

**43:48** · Is it a superposition of what you've added?

**43:54** · All right.

**43:55** · So it generated the test.

**43:56** · Let's go ahead and run them.

**43:57** · It's probably going to fail on the default one.

**44:00** · I think we've already removed it.

**44:01** · We'll see.

**44:03** · But one of the nice things about having Gemini run the commands here is it will return all the standard error and standard out.

**44:12** · So it can fix screens and fix any issues.

**44:20** · Yeah, it looks like there's some errors that are going to return.

**44:26** · ALEXANDER NOHE: So while this is running, we have a few more questions.

**44:30** · RODY DAVIS: Sounds good.

**44:32** · ALEXANDER NOHE: It's hard to keep up with all of them.

**44:34** · So why isn't Android-native development not supported by Firebase Studio yet?

**44:39** · RODY DAVIS: So we do support it.

**44:40** · It's on pause right now.

**44:41** · But we do have Android Studio Cloud, where you can go onto the mobile one and launch an Android Studio workspace.

**44:50** · ALEXANDER NOHE: Nice.

**44:52** · Chrome extensions-- can we use Studio to build those?

**44:56** · RODY DAVIS: Yeah, I mean, you can.

**44:58** · I think, Nohe, you've explored this a little bit too.

**45:00** · I think you can build the extension and download and pull out the bundle.

**45:05** · I mean, I don't think you could run a debug version of the Chrome extension because it needs the Chrome APIs, and we're running in an iframe.

**45:13** · But you can literally do whatever you're going to do inside of Code OSS.

**45:18** · ALEXANDER NOHE: Cool.

**45:19** · And then, what's this going to cost me, Rody?

**45:24** · RODY DAVIS: Yeah, so we have our pricing page, but everybody gets three free workspaces and then one free Flutter and React Native space.

**45:33** · And then you can join the GDP program to get more workspaces.

**45:38** · ALEXANDER NOHE: GDP-- Gross Domestic Product program?

**45:41** · RODY DAVIS: That is correct-- no, Google Developer Program.

**45:44** · ALEXANDER NOHE: Oh, OK, gotcha.

**45:45** · I get those mixed up all the time.

**45:47** · And then what about tagging or editing individual files?

**45:51** · Why can't we?

**45:52** · RODY DAVIS: You can.

**45:53** · You can just reference it by name.

**45:56** · We have an index of the entire file list that you have.

**46:00** · Like as you saw earlier, I just said, update blueprint.md, and it knew because of the ones in my file list.

**46:11** · In Gemini CLI, you can tag it with an at symbol.

**46:14** · And we have Gemini CLI right here.

**46:15** · ALEXANDER NOHE: You can also do that here, right, in the Attachment button, if you go down there?

**46:20** · RODY DAVIS: So yeah, you can attach it, but it would load it as a context file as opposed to a file path.

**46:28** · So it's less prescriptive on, I want you to update this file.

**46:33** · It's more like, here's a file its context is in.

**46:36** · PETER FRIESE: So I think one of the advantages of being able to tag a file is that you can be sure that you're talking about the right file.

**46:43** · Specifically, if you are in a project that has a large folder structure, and you might have a list of those files with the same name, right?

**46:52** · RODY DAVIS: I literally just go copy relative path, and I paste it in, and just do it that way.

**46:56** · PETER FRIESE: Yeah.

**46:57** · OK.

**46:58** · So while that works, I think this sounds like a feature request.

**47:02** · This is something that the team is looking into or people should be going on UserVoice to request.

**47:11** · RODY DAVIS: Yeah, or you can use Gemini CLI right now and tag those by name as well too, yeah.

**47:16** · PETER FRIESE: Yeah.

**47:18** · So if I do something with the Gemini CLI, will it take the blueprint into consideration?

**47:26** · RODY DAVIS: Yep, because it also has context of the same folder structure that you've launched.

**47:32** · And so one of the things we've done is make sure that these rules files work for both.

**47:37** · Like, we generated a Gemini.md for the same thing that we have for the AI rules.

**47:41** · So it's going to have the same context there for this type of prototyping experience.

**47:46** · PETER FRIESE: So the only difference would be that if I have a chat conversation going in the prototyping chat UI, and then I go into the CLI, it wouldn't have the chat context, right?

**47:59** · RODY DAVIS: Yeah.

**48:00** · PETER FRIESE: Except if I asked, can you please summarize this conversation for me?

**48:03** · And then typed it into a CLI.

**48:06** · RODY DAVIS: Or write it to a markdown file.

**48:08** · I think that's the blueprint-- a good way to do that, yeah.

**48:10** · PETER FRIESE: Yeah, exactly.

**48:13** · ALEXANDER NOHE: Can we actually look at the test that it wrote?

**48:16** · RODY DAVIS: Yeah.

**48:17** · And yeah, it went through the tests, caught errors, and even fixed the other ones.

**48:22** · So let's go in here.

**48:23** · ALEXANDER NOHE: So whenever I fail a test, I usually just delete the test and move on with my life.

**48:28** · RODY DAVIS: Nice.

**48:29** · It did delete the default widget test.

**48:31** · That was for the Hello World project that it generates the counter.

**48:36** · ALEXANDER NOHE: Oh, how'd it fail that one?

**48:40** · RODY DAVIS: Because when we-- yeah.

**48:42** · Oh, yeah.

**48:43** · ALEXANDER NOHE: No, I'm making a joke.

**48:44** · RODY DAVIS: So what's cool is it generated a unit test like I asked it to.

**48:50** · So that was the domain.

**48:52** · And then it also generated a widget test, which is for the UI testing, so that's cool.

**48:58** · ALEXANDER NOHE: OK.

**49:01** · RODY DAVIS: Which I always forget the correct way to write widget test.

**49:04** · So it's always great that Gemini can write these as well.

**49:09** · ALEXANDER NOHE: I used to write a lot of test files.

**49:11** · Like, how creative at doing the wrong thing can it get with test files, do you think?

**49:17** · RODY DAVIS: I think-- ALEXANDER NOHE: Oh, hold on, there's a division by 0 there, right, towards the bottom?

**49:24** · RODY DAVIS: Yeah.

**49:25** · Let's see.

**49:26** · Division by 0, yeah.

**49:28** · ALEXANDER NOHE: Oh, look at that.

**49:30** · RODY DAVIS: I've actually found with Gemini 2.5 Pro, natural language to unit test is actually pretty great if you know the-- well, one, it can just kind of generate whatever.

**49:41** · But if you have a very guided series of things you want to test, what I usually do is I provide it a couple pseudocode examples.

**49:48** · And then it will stamp out and continue the pattern.

**49:52** · I've had pretty good luck with that.

**49:54** · ALEXANDER NOHE: So Rody, I want to ask you about your intentions.

**49:59** · Is it intentional that Firebase Studio don't handle the database provisioning like Firestore?

**50:04** · In most docs, it's just a prompt.

**50:06** · But one has to go to Firestore to provision it.

**50:08** · Otherwise, it fails.

**50:09** · Can you talk about that?

**50:13** · RODY DAVIS: Doesn't the Firebase MCP server now support generating Firestore?

**50:19** · ALEXANDER NOHE: I believe you might be right.

**50:21** · RODY DAVIS: It might be one of the new tools.

**50:23** · So one of the things that the Firebase MCP that we're investing in is the fact that it can generate a lot of these things from the console that you would have had to do otherwise.

**50:36** · So ideally, the Firebase MCP just gets ultra powerful over time.

**50:42** · And then we're just able to integrate with that and then use that as like a connection point.

**50:48** · ALEXANDER NOHE: So I was definitely paying attention.

**50:50** · But for Peter, who wasn't, does the Firebase MCP come already set up out of the box when you launch Studio?

**50:57** · RODY DAVIS: It does not, but you can follow our codelab or any of the other docs on how to-- it's just literally a one-line copy into this.

**51:06** · Like, you just paste in this one section, and then it installs the Firebase tools.

**51:11** · The Firebase tools are pre-installed on the machine.

**51:13** · But this just allows you to connect it.

**51:16** · And you can also do dot Gemini slash MCP, if you want, in the Gemini CLI as well.

**51:24** · ALEXANDER NOHE: Very cool.

**51:25** · RODY DAVIS: Yeah.

**51:30** · Yeah, so let's have it to do another change.

**51:32** · Let's do, make the calculator have a nice color gradient with animated borders.

**51:49** · This is a more complex UI thing, but it might be cool to see what it comes back with.

**51:55** · I found the iteration to be really nice to be able to try out different ideas, especially knowing that it's going to be inside of a Git repo.

**52:05** · I can just restore it anytime.

**52:08** · ALEXANDER NOHE: How do you go about restoring it if you are running something, and you're like, oh, gosh, that-- RODY DAVIS: Yeah.

**52:14** · ALEXANDER NOHE: Oh, right there.

**52:15** · RODY DAVIS: So you can literally just go in here, and you can-- I believe it's-- yeah, Checkout or Cherry Pick.

**52:21** · And you can also even do revert changes, I believe.

**52:25** · And yeah, if you have a staged one, you can always discard all those as well.

**52:29** · But like I said, VS Code also has this feature.

**52:32** · I don't know why it's not showing up, but the timeline also will usually show changes as well.

**52:38** · ALEXANDER NOHE: OK.

**52:40** · RODY DAVIS: Let's do-- but yeah, it's already like we're trying to bring the best of what people love about the prototyper into Firebase Studio.

**52:56** · And I think this kind of makes it a nice way to start with whatever framework.

**53:03** · I think we started with web and React and Next.js and Angular and Flutter because those are the most visual ones that we had.

**53:12** · But there's nothing stopping you from setting up the Go template or setting up, like I said, Vue or Svelte or something like that.

**53:20** · So we actually encourage the community to try it out and share their own rules files and their own MCP server setups and stuff like that, because I also played around with Astro and getting this working too.

**53:33** · And it's kind of cool to just vibe code a content-generated site.

**53:38** · So yeah, it's fun.

**53:40** · PETER FRIESE: So does that mean if I have any kind of workspace-- so let's say I have a project that has been sitting around somewhere in GitHub.

**53:52** · And it uses some sort of technology stack that might not even be supported.

**53:59** · Can I import it into Firebase Studio and then use the prototyper to start working on my project again?

**54:10** · RODY DAVIS: So you can follow the files here.

**54:13** · You just have to, in VS Code settings, make sure that agentic workspace is true, and make sure that you have a rules file there.

**54:23** · You can copy it and customize it to whatever your project is specific.

**54:28** · But then you just literally go into import repo.

**54:30** · And as long as those files are there-- oh, and then dev.nix.

**54:34** · You would definitely need that if you don't have one already.

**54:37** · But as long as-- ALEXANDER NOHE: Like, Peter's looking for Vapor and Swift, if I had to guess.

**54:43** · RODY DAVIS: Nice, yeah.

**54:44** · You could use server-side Swift here.

**54:45** · Yeah, for sure.

**54:46** · And you could run it.

**54:48** · PETER FRIESE: Yeah, I was looking into that.

**54:50** · And I hit a wall because I wanted to use the latest version of Swift, Swift 6.

**54:56** · And apparently, that is not supported on Nix.

**54:59** · Somebody seems to be working on that.

**55:01** · RODY DAVIS: Yeah, you can do unstable.

**55:04** · So if something isn't supported, you can also, in the packages, you can-- there's a way in Nix to actually just install the binary directly from a GitHub release.

**55:16** · And so, with that SHA, you could literally install the binary and do all the different kind of stuff.

**55:23** · So there's definitely escape hatches for that.

**55:25** · But yeah, I agree that sometimes if there's a version that's just slightly too new or just whatever, it can be annoying.

**55:32** · But one of the whole core tenets of Nix is all of the packages get updated together with the channel, so everything's guaranteed to work.

**55:41** · And so all 120,000 packages will compile because of the way that they do like their monorepo and stuff.

**55:51** · PETER FRIESE: Interesting.

**55:52** · OK.

**55:53** · But coming back to my original question, so if I add those three lines to my pre-existing repository, I could somehow make that agentive enabled?

**56:07** · RODY DAVIS: Yep, exactly.

**56:08** · PETER FRIESE: Is that correct?

**56:08** · RODY DAVIS: Yep.

**56:09** · Mm-hmm.

**56:10** · PETER FRIESE: Nice.

**56:11** · RODY DAVIS: Looks like it generated a nice animated calculator that's showing up.

**56:18** · PETER FRIESE: We should make the color change in response to the value.

**56:23** · RODY DAVIS: Yeah, let's see.

**56:25** · To the numbers?

**56:26** · PETER FRIESE: Yeah.

**56:27** · ALEXANDER NOHE: Yeah.

**56:28** · PETER FRIESE: In response to the result. The higher the result, the hotter the number, the hotter the color.

**56:34** · ALEXANDER NOHE: More neon.

**56:36** · RODY DAVIS: Like real-life conditional formatting.

**56:37** · PETER FRIESE: \[LAUGHS\] Exactly.

**56:51** · RODY DAVIS: Yeah, this will be cool.

**56:54** · Yeah, it's also just kind of fun to-- like, you could build this in a period of time.

**57:02** · But while it was generating, we were having discussions about other stuff.

**57:06** · It lets you focus on the things that you as a developer enjoy, which is thinking about the abstract of the application.

**57:13** · And also, at any point, you just can go into the code and do it a different way.

**57:19** · There's many times where Gemini will take it a wrong direction.

**57:23** · And I'm like, OK, let me give it a better stub to start from.

**57:26** · And then from that stub, you will have a way more high-quality result because AI generation's kind of like image generation, where if you try to generate an image with five words, it's going to not be what you probably had in mind for what you're trying to generate.

**57:45** · And so if you think about project and code generation the same way, be very descriptive, or at least like, this is the things that I want you to do, avoid the things that I don't want you to do, but also just kind of guiding it and growing it into the direction you're wanting as well.

**58:02** · PETER FRIESE: Yeah, that was a question around an aspect of vibe coding.

**58:10** · You have the tool generate code.

**58:13** · And then, even if you are a seasoned developer, and you might be an expert in the framework that it's using, sometimes it's hard to spot mistakes in the code.

**58:23** · So here, a user asked, if the AI makes a mistake in the code that's hard to spot, like a hidden bug or security problem, how does the tool help me find and fix it, even if I don't notice right away?

**58:37** · RODY DAVIS: So one of the things about being a developer is you should view AI-generated code as untrusted legacy code too because it is code that you didn't write or code that is immediately stale.

**58:51** · And what do you do with untrusted code?

**58:54** · You write unit tests.

**58:56** · You run fuzzing.

**58:59** · You do pen testing.

**59:00** · All these approaches still apply to vibe coding.

**59:03** · So that's why I had it generate a series of tests, like you said, Peter.

**59:08** · It even tested for-- or Nohe, it divided by 0.

**59:11** · Like, you want to cover all of your cases.

**59:15** · And the more that you can generate unit tests and widget tests of being-- even if it's three more times tests than it is actual code, or even simulation testing, or anything, you want to get to a point where you're covering at least a sufficient amount of the code paths.

**59:33** · And you can get closer by-- different tools used, like code coverage.

**59:38** · And I've been like, OK, run code coverage, check which files still need coverage, try to write new unit tests, and go through a loop and have it try to check for all the branches because, usually, you'll uncover different errors there.

**59:53** · I think the less tests and the less reviewing that you've done in a code base, the more likely it is to have a subtle off-by-one error or a subtle security issue.

**1:00:04** · But we also have tools that will help you as well.

**1:00:06** · We have Firebase App Check, which will make sure that the correct users are there.

**1:00:10** · We have Firebase Auth, which will make sure that your application is protected and locked down to only authorized users.

**1:00:18** · We have ways to do Firebase security rules to make sure that only the correct data is done.

**1:00:23** · So even outside of your application, you can still sandbox it to a certain degree.

**1:00:27** · But yeah, at the end of the day, you still need to write tests and have it generate the types of things that you would do even if you were another developer on the team reviewing code from someone else that's working on some new feature.

**1:00:41** · ALEXANDER NOHE: Are you saying I can't just say, hey, there's a bug in here, go find it, even if I don't know whether or not there's a bug in there?

**1:00:48** · RODY DAVIS: You can, but it might generate a new bug while it fixes the old one.

**1:00:52** · One of the things about programming is, oftentimes, a fix for one thing will uncover two different things.

**1:01:00** · ALEXANDER NOHE: Yeah.

**1:01:01** · And then you have that load-bearing bug that's rooted into the application.

**1:01:05** · Everybody's like, oh, no, you just have to save, close, save, close, and then you can add a new layer in.

**1:01:10** · Yeah.

**1:01:10** · RODY DAVIS: It becomes a feature at that point, yeah.

**1:01:12** · ALEXANDER NOHE: Yeah.

**1:01:13** · PETER FRIESE: Yeah.

**1:01:14** · So adding on to my previous question, here is a user who said they have been using Firebase Studio successfully as someone with zero knowledge about coding.

**1:01:27** · And they're struggling to get their app into the Google Play store.

**1:01:31** · So let's talk about that part of the question next.

**1:01:35** · But first, coming back to what you said, Rody, which I totally agree with, you have to review the code.

**1:01:45** · You have to treat it as something that you didn't write yourself.

**1:01:48** · You need to test it.

**1:01:49** · You need to know how to make it secure.

**1:01:53** · So that requires lots of knowledge that for us is second nature.

**1:01:58** · But for somebody who is completely new to coding, they might not even know that there are security risks and how to deal with them.

**1:02:11** · So what should people that come from a completely different field do in order to not get caught out?

**1:02:19** · RODY DAVIS: So one of the things that I would suggest is if you're coming into this with not a lot of experience, or maybe you did it a long time ago, or just changing industries or whatever, that's where our other Gemini tools are really useful.

**1:02:34** · So Gemini Deep Research is a great way to get answers and more questions to the things that you don't even know to ask.

**1:02:44** · So if you literally put in there, How do I get my app into the Google Play Store?

**1:02:50** · What are the list of things I need to do?

**1:02:52** · It would do a full research page on exactly, step by step, on the ways you get your metadata done for the screenshots, ways to do your review, how to upload the Play Store, step by step, often tutorials.

**1:03:09** · So use tools like that to really help you get around the knowledge gaps, because you'll be surprised at how straightforward that is.

**1:03:20** · Firebase Studio is just a development platform, an IDE, so we're just one part of the puzzle.

**1:03:26** · But I would definitely suggest Gemini and Gemini Deep Research for that kind of stuff.

**1:03:32** · PETER FRIESE: Yeah, I remember we had this discussion when we were at Google I/O Connect in Berlin.

**1:03:39** · And you told me about how you do research with the tool.

**1:03:43** · And then I tried it out and asked it to research restaurants near where I live.

**1:03:48** · And it was really great.

**1:03:49** · So it came out with this really nicely written article that almost was like something that you would read in a restaurant review magazine.

**1:03:58** · And I was like, oh, you should totally check out this one here.

**1:04:01** · RODY DAVIS: Exactly.

**1:04:02** · PETER FRIESE: So yeah.

**1:04:02** · RODY DAVIS: And also, NotebookLM is great too.

**1:04:04** · Yeah, you can basically take the research docs and then put them in a NotebookLM and ask more directed questions there too.

**1:04:10** · PETER FRIESE: Yeah.

**1:04:11** · ALEXANDER NOHE: I've been putting in my financial statements into NotebookLM because I saw a guide on this online.

**1:04:17** · I was like, oh, I'll just try it.

**1:04:18** · And then I was like, wow, you're really good at doing this thing, like paying your bills on time.

**1:04:22** · And I was like, oh, thanks.

**1:04:24** · RODY DAVIS: Yeah, I uploaded 62 PDFs for me and my wife for getting a house.

**1:04:29** · And so we had all of the disclosures that they gave us.

**1:04:33** · And tools like this make it so easy to scan and parse long documents of structured texts.

**1:04:40** · As a human, it's really hard to read that in a quick manner.

**1:04:45** · But yeah, use these tools for what they're good at because there's a lot of tutorials out there on how to publish your app on the App Store.

**1:04:51** · But usually, there's a ton of information.

**1:04:55** · It's spread across Stack Overflow and Stack Exchange and Reddit and search.

**1:05:00** · But Gemini Deep Research basically takes all that and normalizes it into one place and has a series of steps that are often going to be pretty good.

**1:05:09** · PETER FRIESE: Yeah.

**1:05:10** · ALEXANDER NOHE: If you ever need an ego boost, like you just wake up one day, and you're like, man, I'm not feeling it, put your resume into NotebookLM, and have it generate a podcast.

**1:05:20** · It'll be like, this guy-- PETER FRIESE: Oh, yeah, that's fantastic.

**1:05:22** · RODY DAVIS: Oh, I thought you were going to say, have it roast you.

**1:05:25** · ALEXANDER NOHE: Oh.

**1:05:26** · Ooh, that actually might be fun too.

**1:05:28** · Can you guide it like that and be like, roast this guy?

**1:05:30** · RODY DAVIS: I'm sure it can.

**1:05:31** · There is a system prompt setting for it.

**1:05:36** · PETER FRIESE: Nice.

**1:05:37** · ALEXANDER NOHE: Definitely going to be looking this up.

**1:05:38** · PETER FRIESE: All right.

**1:05:39** · So I know that lots of people asked about how they can get their feature requests to the team.

**1:05:47** · So I wanted to show this here, which is the UserVoice that the Firebase team is using.

**1:05:53** · So this is a site that's public, you can go to, and you can search for anything.

**1:06:00** · And I did a quick search for Studio.

**1:06:02** · And you can see that there's already a couple of people who asked about Flutter and Android Studio in Firebase Studio.

**1:06:14** · And you can submit your own feature request.

**1:06:19** · But chances are that there already are people who are interested in the same thing.

**1:06:24** · So you can sign in and upvote the thing.

**1:06:27** · And then, eventually, we'll have the resources and time to work on these.

**1:06:33** · And you can go through all of these, and you'll see that there are a bunch of those feature requests that are actually implemented in the product.

**1:06:45** · So that is one way to reach out to the team.

**1:06:50** · Rody, is there any other way how people could get in touch with the Firestore team and say, hey, I have this really fantastic idea?

**1:06:59** · Here it is.

**1:06:59** · Here is the prototype or whatever.

**1:07:01** · How can they do that?

**1:07:02** · RODY DAVIS: Yeah.

**1:07:03** · For the Studio team, I think the best place would be-- the forum is great.

**1:07:08** · So we also have a forum.

**1:07:10** · We check Reddit.

**1:07:11** · We check Twitter and LinkedIn.

**1:07:15** · The best place would be to have official place, like on the forum or tools like that, because that's where we can easily close out things when they're resolved, point people to the correct resources.

**1:07:28** · And then we also have the Firebase community that we're also a part of as well.

**1:07:34** · Yeah, if you have any issues, we are happy to answer them and help them.

**1:07:40** · One of the interesting things about Firebase Studio is people will come with Firebase issues or Gemini issues or app issues.

**1:07:49** · And it's literally infinite the amount of things that could be.

**1:07:54** · So yeah, but we'll easily be able to direct you to the right people.

**1:07:58** · PETER FRIESE: Yeah.

**1:07:59** · And we'll put links to all those resources in the video description so people can find it after this live stream ends.

**1:08:08** · Nohe, did we cover most questions on the live stream?

**1:08:12** · ALEXANDER NOHE: I think so.

**1:08:14** · There was a question about Data Connect that I saw come through.

**1:08:18** · Maybe we should do another Data Connect live stream eventually?

**1:08:21** · PETER FRIESE: Yeah.

**1:08:22** · ALEXANDER NOHE: Yeah.

**1:08:22** · PETER FRIESE: Yeah.

**1:08:24** · We should do one where we have people from all those teams and then make them work together and implement an application.

**1:08:31** · ALEXANDER NOHE: We should do it like the holiday special that we planned last year.

**1:08:34** · PETER FRIESE: Yeah, I know.

**1:08:35** · I know.

**1:08:36** · And maybe we could reuse-- ALEXANDER NOHE: That would have saved the year.

**1:08:38** · PETER FRIESE: Maybe we could reuse that really funny skit that we did.

**1:08:42** · ALEXANDER NOHE: Yeah, yeah.

**1:08:43** · Rody, were you in on the holiday special that we talked about?

**1:08:47** · RODY DAVIS: I know what you're talking about, but I wasn't in on it.

**1:08:49** · ALEXANDER NOHE: OK, great, great, great.

**1:08:50** · Yeah, yeah, yeah.

**1:08:51** · OK.

**1:08:52** · Ah, that would be fun to do on a live stream.

**1:08:56** · PETER FRIESE: Yeah, absolutely.

**1:08:58** · Yeah.

**1:08:59** · And then, because it's a live stream, it's a live stream, right?

**1:09:03** · Just saying.

**1:09:05** · All right, Rody, we're almost at time.

**1:09:09** · Is there anything that we didn't discuss that you are dying to tell people about?

**1:09:15** · RODY DAVIS: I think the biggest thing would be, just come try it out.

**1:09:19** · If you haven't used Firebase Studio recently, it's probably changed in the last week.

**1:09:24** · So we're always working on shipping updates and making it better and rapidly improving it.

**1:09:31** · And even down to the day, if you're having issues with Gemini, the issue might get resolved the next day.

**1:09:38** · And so if anybody is having issues opening workspaces, definitely let us know on the forums, and we'll see if we can get that resolved pretty quickly.

**1:09:47** · But I'll just say, also, I really like using Gemini CLI inside Firebase Studio.

**1:09:52** · It is super underrated how powerful it is to have a full VM that you can just ask and iterate on questions.

**1:09:59** · And even running Gemini CLI alongside the regular Gemini chat and having it update our previews, it's kind of a magical experience.

**1:10:09** · We can have them all running task in different threads.

**1:10:12** · So yeah, no, it's a fun time.

**1:10:14** · PETER FRIESE: Is there a place where people can go and see the release notes?

**1:10:20** · RODY DAVIS: Yeah, I think that we have the main Firebase release notes.

**1:10:24** · We probably most often put it on the blog and then share it on social channels and things like that.

**1:10:31** · We're usually pretty good about making little short snippets.

**1:10:33** · PETER FRIESE: Yeah, I was thinking about Firebase Studio.

**1:10:36** · Is there a place where I can go and say, OK, so what has changed in the last week?

**1:10:41** · RODY DAVIS: Yeah, we have a general roadmap and some other things that I've shown.

**1:10:46** · But I'm not aware of anything other than just updating our docs and releasing social posts.

**1:10:53** · PETER FRIESE: OK.

**1:10:54** · Cool.

**1:10:54** · All right.

**1:10:55** · Yeah, we'll post all the links in the description.

**1:10:59** · RODY DAVIS: Awesome.

**1:11:00** · PETER FRIESE: And I think, with that, it is time to say thank you, Rody.

**1:11:05** · Thanks for coming on.

**1:11:07** · Thanks for showing us some of the cool new features and taking questions from Nohe and me and the audience.

**1:11:15** · RODY DAVIS: Thanks for having me.

**1:11:16** · PETER FRIESE: Yeah, we'll bring you back for the grand thing that we'll roast the entire team.

**1:11:24** · RODY DAVIS: Nice.

**1:11:25** · PETER FRIESE: All right.

**1:11:26** · RODY DAVIS: That's great, yeah.

**1:11:28** · PETER FRIESE: Cool.

**1:11:28** · Nohe, do you have any final words before I click the button to send everybody back home?

**1:11:35** · ALEXANDER NOHE: No, click the button, Peter.

**1:11:37** · PETER FRIESE: All right.

**1:11:38** · RODY DAVIS: All right.

**1:11:38** · PETER FRIESE: Thanks for tuning in, everybody.

**1:11:40** · Thanks for joining us.

**1:11:41** · And go try it out.

**1:11:43** · Let us know what you think.

**1:11:45** · And we'll post all the links so you can send your feedback.

**1:11:47** · Thanks, and see you in the next one.

**1:11:50** · RODY DAVIS: All right.

**1:11:51** · Bye.

**1:11:54** · \[MUSIC PLAYING\]