I’m building an implementation of a cloud based, open source, serverless, customer deployed, scalable spreadsheet in the infinisheet monorepo on GitHub.
-
InfiniSheet
React Spreadsheet
Asynchronous Spreadsheet Data
Last week’s tracer bullet development showed that I needed to make my
SpreadsheetData
interface more explicitly asynchronous. -
InfiniSheet
React Spreadsheet
Event Sourced Spreadsheet Data
I’ve been working on my scalable spreadsheet project from opposite ends. So far, most of my focus has been on the front end. I’ve created a virtualized React spreadsheet component that can scale to trillions of rows and columns. The component accesses spreadsheet data via a SpreadsheetData interface based on React’s external store interface.
-
InfiniSheet
Asynchronous Event Log
I’ve created an event log interface and reference implementation. The interface exposes all the functionality I’ll need with a minimal API. There’s enough of an abstraction layer that it should allow for multiple real implementations.
-
InfiniSheet
InfiniSheet Event Log
So far, my scalable spreadsheet implementation has concentrated entirely on the frontend. Time to start looking at the backend, starting with the persistence model.
-
InfiniSheet
React Spreadsheet
InfiniSheet Error Handling
Last time, we looked at general options for error handling in TypeScript. I liked Rust style
Result<T,E>
types. -
Front End
InfiniSheet
Upgrading to Vitest 3, Vite 6 and React 19
There are three big outstanding updates that have been hanging over me for a while. React 19, Vite 6 and Vitest 3. Vite and Vitest are at the heart of my development process. React is the dependency for my front-end packages. Understandably, I’m nervous given my experience the last time I did a round of major updates.
-
React Spreadsheet
InfiniSheet
React Spreadsheet: Editable Data
We’re on a roll, steadily filling out the Infinisheet architecture diagram with actual implementations. I’ve created a React based spreadsheet frontend that reads data via a common spreadsheet data interface.
-
Front End
Blog
InfiniSheet
Publishing the InfiniSheet Storybook
I finally have a storybook that I’m happy to publish. Now I just have to figure out how to get it onto thecandidstartup.org and tie it into the website navigation structure, as well as the existing Typedoc API documentation.
-
Front End
InfiniSheet
Building the InfiniSheet Storybook
Now that I have Storybook bootstrapped, I’m going through all my InfiniSheet components creating stories. The process is mostly really straightforward. However, I am finding cases where I need to use additional Storybook features.
-
InfiniSheet
TypeScript
InfiniSheet: Chore Updates
Last time, I decided that I needed some additional tools for browser based automated testing. Before I can do that, I should really make sure all my existing dependencies are up to date.
-
Blog
InfiniSheet
Integrating API Documentation
Last time we got good results when we tried out TypeDoc for API reference documentation generation. I left you with a cliff hanger. How do we integrate TypeDoc into my GitHub Pages based publishing pipeline? And how should we surface API documentation on the blog focused Candid Startup site?
-
Cloud Architecture
Front End
InfiniSheet
InfiniSheet Architecture
I’ve been working on my spreadsheet project for many months now. I started with very high level thinking and paper explorations of possible data structures and algorithms. Then I went to the other end of the scale and built a React virtual scrolling package that you could use to build the frontend for a large spreadsheet.
-
Front End
InfiniSheet
Bootstrapping a Lerna Monorepo
So far, all the front-end development work I’ve done has been in the repo I created when bootstrapping Vite. It’s starting to feel a little restrictive.