Show HN: Subset – Spreadsheet building blocks on an infinite canvas (subset.so)

49 points by antidnan ↗ HN
Hey HN! We’re excited to show you Subset (https://subset.so)! Subset is a spreadsheet on an infinite canvas where you can drop in spreadsheet building blocks and connect them together to easily build good looking analytical tools.

My cofounder and I both worked in finance before this. We quit our jobs and learned to code to build the spreadsheet we always wanted.

We got frustrated with how much time was wasted recreating the same thing from scratch or trying to extract something reusable from a previous spreadsheet. We wanted a spreadsheet with more composability and a community of building blocks to work off of.

Why infinite canvas? Reusability is not really a first class concept in a traditional endless spreadsheet grid [1]. A canvas felt more intuitive. You can communicate data flow, better understand inputs/outputs, and quickly make data presentable.

Subset is browser based and real-time multiplayer. It is free to use. We haven’t figured out a pricing model yet, but we imagine it’ll be a freemium SaaS model.

We’ve spent a lot of time on getting the core spreadsheet functionality as close to Sheets/Excel as possible, but there’s a lot more to do here. This list could be endless, but let us know if we need anything in particular.

Here’s a couple templates to explore:

Splitting a bill that includes sharing items - https://subset.so/templates/how-to-split-a-bill Calculating the cap rate and cash yield on real estate investments - https://subset.so/templates/quick-real-estate-deal-calculato...

We love spreadsheets and we think this combination of a canvas + reusable blocks has the potential to solve some of the biggest challenges with spreadsheets themselves.

Let us know what you think!

— AJ and Jason

[1] https://www.microsoft.com/en-us/research/uploads/prod/2020/0...

14 comments

[ 2.9 ms ] story [ 44.5 ms ] thread
I like the idea. It looks like something that I would use for work.

The side looks like something that has a paid plan. Sadly I can't find any information on pricing (and if it's free, why can't I find that info?).

It's too bad I work in the public sector and due to date privacy we can't use tools like this for work, as the data is not under our control.

Glad to hear! It is free to use for now. We just got running and haven't figured out the pricing model, but we're planning on something freemium SaaS.

Totally understand the privacy concerns. That's something we've been thinking about a lot. Right now we're only SaaS but might offer something "local only" in the future if there's enough demand.

This is similar to an idea I once had about spreadsheets. In my mind it was more focused on being able to handle bigger amounts of data in a more efficient way: a "block" would be a data source and could for example be linked to a database or something else instead of data in spreadsheet cells.

In any case, I think this looks really good.

What I personally would find handy, is if there would be a way to show that one block depends on data from another block. I think it will be common that several blocks will be pure input and other blocks will be pure output. It should be doable to show direct dependencies for a block and the transitive dependencies for a block.

A separate input box for editing cells might also be useful.

I like that it runs in a browser, but I would appreciate if there is a way to run the software locally and store the data locally. And like I said, I would like to see a way to define blocks that connect to a data source, such as a database running locally on my machine.

We've discussed a lot of these ideas! We have a primitive version of tracing dependents and visualizing flows we haven't released yet. Stay tuned.

Connecting databases is high on our list of things to tackle next.

And will keep the local mode in mind, that's another vote on that from HN.

Thanks for the feedback!

Nice work OP, this has a lot in common with how I always wished excel worked. It's nice to see that someone's finally built it, and better than I would have.

FYI your homepage has a couple of typos (spreadshet and spreadhseets).

Love to hear that! Anything else you had in mind? We have a million ideas but I'm curious what else you had thought of that we missed / could add.

Also thanks for the spellcheck!

A lot of my ideas (aside from what you've already got) were very programmer-focused and not very fleshed out, so probably won't be much use. Here are some thoughts after playing with it for a bit though:

- I think you should lean more heavily into the 'naming things' aspect: - Being able to have a separate "display name" and "tag" (or something like that) for tables and columns would be a big improvement when referencing them in formulae. These would be linked by default. In excel, I always feel pressured to simplify table and column names because otherwise the formulae are nigh unreadable. - I was a bit disappointed that column names aren't used when referencing other cells. Using plain A1 names is especially confusing when the column names don't even show the associated letter. Excel has a decent implementation for this inside tables, but it would be even better with the previous point. - The controls for block selection etc. feel pretty unintuitive to me, until I figured out that I could click/drag the block headings to go straight to block selection mode. These definitely need their own hover/cursor effect to make this obvious. The fact that it stays in block selection mode when I click another table is also confusing, since it doesn't if I initially have nothing selected. Some improvements might be: - Dragging the space at the top-left of a block should act the same as dragging the title (i.e. move the block). - Preferably, the corner resize handles should appear whenever the mouse is nearby, without needing to be in a specific mode or have the block active. - Either make it so that switching blocks _always_ enters block selection mode first, or only when the title is selected. The inconsistency depending on the current selection feels unnecessarily confusing. - Perhaps most importantly, the hover effect should always show what's about to be selected. - First class functions (a la LAMBDA from google sheets). - I would've preferred if the generators just worked as functions which return arrays, rather than having a dedicated column selection UI. E.g. `= SORT(FILTER('Data'!B:B, 'Data'!C:C > 4))` (even better with a pipe operator). - Formulas unequivocally need to allow line breaks and indentation. - It should be possible to sort/filter columns in place temporarily for quick analysis, without any effect on dependencies or the underlying data. - The filter blocks seem to lose all type information etc, making them pretty much useless - I assume this is already on your roadmap somewhere? - You definitely need a "create > grid block" context menu item when right clicking on empty space (from the guide it seems like this might already exist?).

Very cool prototype! I work in customer analytics and while I love the "infinite" column/row aspect of Excel, it's always annoyed me that it's not free-form, and that the width of a block of cells is constrained by whatever data I have above/below it.

It would be cool if you could use the Excel-style UI and formulas to build a back-end for small web apps whose front-end could be customizable with CSS.

This looks great, looks like a lot of work has been poured in getting the UX right.

I am the creator of a spreadsheet-like JavaScript product named DataGridXL (https://datagridxl.com). I can tell how much work it is to get all the interactions right!

One thing that confused me is the immediate-drag when clicking on row or column header, I am used that single-click is for selecting, and only drag when the column or row is already selected.

In any case, you guys are on to something here! Best of luck!

Thank you! DataGridXL is awesome as well. None of what we're doing would be possible without data grid libraries.

And yes, good catch on the drag after a single click, we're tracking and plan to fix :)

Interestingly, I've found that newer database-like spreadsheet apps like notion or airtable favor the single click to drag and reorder columns behavior. But for a more analytical tools where multi-column selection is more relevant, click and dragging a column should simply multi-select columns.

this is great. OneNote should have had something like this years ago but you know how the world is.
Good adaption: feels a little bit like Apple Numbers for the web. One thing I always wonder about: when will we get a usable spreadsheet like application for mobile devices with small screens.
Looks like figma for spreadsheets
congrats. UX looks great.. and i personally know that part was not easy to refine.

curious, what solution are you using for the realtime multiplayer?

good luck!