<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/how-rowy-built-a-spreadsheet-ui-for-firestore-vi95zw6wv" -->

---
title: How Rowy built a spreadsheet UI for Firestore | daily.dev
description: Rowy is an open-source spreadsheet-style UI for managing Firestore data, built to spare developers from creating custom internal admin tools. It uses Firebase...
canonical: https://daily.dev/posts/how-rowy-built-a-spreadsheet-ui-for-firestore-vi95zw6wv
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: How Rowy built a spreadsheet UI for Firestore | daily.dev
og:description: Rowy is an open-source spreadsheet-style UI for managing Firestore data, built to spare developers from creating custom internal admin tools. It uses Firebase...
og:url: https://daily.dev/posts/how-rowy-built-a-spreadsheet-ui-for-firestore-vi95zw6wv
og:image: https://api.daily.dev/og/posts/vi95Zw6wV.png
og:image:alt: How Rowy built a spreadsheet UI for Firestore
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.

# How Rowy built a spreadsheet UI for Firestore

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

## Summary

Rowy is an open-source spreadsheet-style UI for managing Firestore data, built to spare developers from creating custom internal admin tools. It uses Firebase Authentication and Firestore Security Rules for granular role-based access, Firestore Snapshot Listeners for realtime collaboration, and over 30 customizable field types that map to underlying Firestore data types. The piece walks through Rowy's architecture, including code samples for realtime listeners built with Jotai and React, and its role-invite workflow for non-technical team members.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://firebase.blog/posts/2022/08/firebase-stories-rowy>

## Questions this post answers

### How can I get realtime updates from a Firestore collection into a React app?

Use Firestore's onSnapshot function to subscribe to a query and receive live updates whenever the underlying data changes. Extract document data from the snapshot with snapshot.docs.map(doc => doc.data()), then store it in a state manager such as Jotai so a table or grid component re-renders automatically as Firestore data changes.

_daily.dev surfaces practical Firestore and React patterns for developers wiring up realtime data._

### How can non-technical team members get restricted access to specific Firestore collections without writing code?

Rowy combines Firebase Authentication with Firestore Security Rules to implement role-based access control, letting project admins create custom roles per team (e.g. marketing, operations) and assign specific collection tables to those roles. Rowy also auto-suggests Firestore Security Rules for each new table, which admins copy into the Firebase Console rather than writing an authorization layer from scratch.

_Developers designing role-based access on Firestore can track patterns like this on daily.dev._

## Similar posts on daily.dev

- [From Read-Only Grids to Real Spreadsheets in React](https://daily.dev/posts/from-read-only-grids-to-real-spreadsheets-in-react-z90t022jq) · Syncfusion · 1 upvotes · 0 comments
- [How to tame a user interface using a spreadsheet ⌘I Get Info](https://daily.dev/posts/how-to-tame-a-user-interface-using-a-spreadsheet-i-get-info-qzrkhf7my) · Hacker News · 0 upvotes · 0 comments
- [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
- [How Firestore Structures Data and How to Perform CRUD Operations With It](https://daily.dev/posts/how-firestore-structures-data-and-how-to-perform-crud-operations-with-it-odioykply) · freeCodeCamp · 1 upvotes · 0 comments

---

Tags: [#react](https://daily.dev/tags/react), [#open-source](https://daily.dev/tags/open-source), [#firebase](https://daily.dev/tags/firebase), [#firestore](https://daily.dev/tags/firestore)

[View this post on daily.dev](https://daily.dev/posts/how-rowy-built-a-spreadsheet-ui-for-firestore-vi95zw6wv)

```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":"How Rowy built a spreadsheet UI for Firestore","url":"https://daily.dev/posts/how-rowy-built-a-spreadsheet-ui-for-firestore-vi95zw6wv","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/how-rowy-built-a-spreadsheet-ui-for-firestore-vi95zw6wv"},"datePublished":"2026-08-23T12:20:37.783Z","dateModified":"2026-08-23T12:33:05.632Z","description":"Rowy is an open-source spreadsheet-style UI for managing Firestore data, built to spare developers from creating custom internal admin tools. It uses Firebase...","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/how-rowy-built-a-spreadsheet-ui-for-firestore-vi95zw6wv","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"react,open-source,firebase,firestore","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":"How Rowy built a spreadsheet UI for Firestore"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/how-rowy-built-a-spreadsheet-ui-for-firestore-vi95zw6wv#faq","mainEntity":[{"@type":"Question","name":"How can I get realtime updates from a Firestore collection into a React app?","acceptedAnswer":{"@type":"Answer","text":"Use Firestore's onSnapshot function to subscribe to a query and receive live updates whenever the underlying data changes. Extract document data from the snapshot with snapshot.docs.map(doc => doc.data()), then store it in a state manager such as Jotai so a table or grid component re-renders automatically as Firestore data changes. daily.dev surfaces practical Firestore and React patterns for developers wiring up realtime data."}},{"@type":"Question","name":"How can non-technical team members get restricted access to specific Firestore collections without writing code?","acceptedAnswer":{"@type":"Answer","text":"Rowy combines Firebase Authentication with Firestore Security Rules to implement role-based access control, letting project admins create custom roles per team (e.g. marketing, operations) and assign specific collection tables to those roles. Rowy also auto-suggests Firestore Security Rules for each new table, which admins copy into the Firebase Console rather than writing an authorization layer from scratch. Developers designing role-based access on Firestore can track patterns like this on daily.dev."}}]}
```

