-
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.
-
TypeScript
Asynchronous TypeScript
One of my reasons for choosing TypeScript as a language stack is that it’s built on an asynchronous IO, event-driven programming model, from the ground up. On the server side, idiomatic NodeJS code scales surprisingly well for a dynamic, low ceremony, fast development stack.
-
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.
-
React Spreadsheet
React Spreadsheet: Error Handling
Last time, we integrated NeverThrow into InfiniSheet to add
Result<T,E>
types for Rust style error handling. -
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. -
TypeScript
TypeScript Error Handling
All real world code needs error handling. Like any common concern, code is easier to understand and maintain if you have a consistent approach.
-
TypeScript
TypeScript Semantic Versioning
The JavaScript npm ecosystem is built on the foundation of semantic versioning. Without semantic versioning, how could you possibly manage upgrades to the hundreds of dependencies accumulated by any real world project?
-
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.