7 ms·
Show HN: Quadratic – Open-Source Spreadsheet with Python, AI (WASM and WebGL)
Hi, I am David Kircos. The Founder of Quadratic (https://QuadraticHQ.com https://QuadraticHQ.com), an open-source spreadsheet application that supports Python, SQL (coming soon), AI Prompts, and classic Formulas.
Unlike other spreadsheets, Quadratic has an infinite canvas (like Figma). As a result, you can pinch and zoom to navigate large data sets, and everything renders smoothly at 60fps.
Our vision is to build a place where your team can collaborate on data analysis. You can write Python, AI Prompts, and Formulas in one spreadsheet feeding each other data and updating automatically.
Quadratic is built using WebGL and Rust WASM. To render a large grid of cells smoothly, we tile the spreadsheet similar to google maps. If you are interested in the technical details, check us out on GitHub (https://github.com/quadratichq/quadratic/ https://github.com/quadratichq/quadratic/)
You can use AI to help you write Python and then run the code directly in Quadratic. Then, we feed the result back to the AI model so it can follow along, help you debug, and modify your existing code.
AI can also be used to directly generate data onto the sheet with prompts. It knows the context of what's on the sheet and how the data it's inserting fits in. Try it out.
SQL is coming soon... stay tuned!
- swyx 3y agothis is super HN bait - webgl, rust, wasm, figma, AI in spreadsheet! congrats on your launch - wondering how youre thinking about the UX of AI integration in spreadsheets?
- davidkircos 3y agoWith the first iteration of AI in Quadratic, the UI/UX is a chatbot that knows the context of your document, your code, the output, and our documentation. This context makes it easy to use GPT to write, edit, and debug your code to get the desired result faster. We are working on inline code completions and experimenting with whole document generation. Imagine a spreadsheet that generates all you need for your analysis, with each step being verifiable in code, SQL, and formulas. Then being able to share it with your team with a link.
- esafak 3y agoDo users have to bring an OpenAI license key?
- dsnr 3y agoThe Figma reference strikes me as odd. You can implement an infinite canvas in plain html/css, and there’s a gazillion tools that have this feature. I get the feeling the text is written for search engines rather than HN. On a related note, there’s no mention that the product is built using Pixi.JS, an open source 2d graphics engine. https://pixijs.com/ https://pixijs.com/
- nilslice 3y agoi saw a very early version of Quadratic and was impressed then, so to see what David and team have done in the months since is awesome! congrats on the launch :)
- joshu 3y agoi love spreadsheets. i'm also a seed investor in quadratic!
- adamdill 3y agoSpreadsheets are broken, and a horrible user experience for technical users. I'm excited to see work in this space, because it's such a great lever for continued productivity. how do you see your open source model making money and continuing to scale feature development?
- davidkircos 3y agoWe plan on charging organizations using Quadratic for collaboration. Our pricing will be low so it's affordable to get seats for the whole team. Think <$15 / user / month.
- easton 3y agoI can’t imagine you can really charge less, but is there a huge market for an excel substitute that costs more than excel and doesn’t interoperate? I understand the reasons why this is cooler/better, but IME when people want to step up from excel it’s either because they have some use case that fits a BI tool or they are going to hire a dev. (Real problem is that they never realize Excel isn’t enough until it’s the backbone of their company… but…) Best of luck though, this looks super cool!
- WillAdams 3y agoNo, the prevailing implementations are mapped to the grids of ledger sheets which the accountants who were the initial market were accustomed to. (A vivid memory from when I was young was the accountant who pulled up to the computer store I was at and said, "I want a Visicalc" --- after a bit of back-and-forth w/ the salesman, he loaded up his Trans Am w/ pretty much one of everything in the store (Apple ][, 80 column card, dual floppies, wide printer, &c.) Look up Lotus Improv and Javelin and Quantrix for examples of spreadsheets done right.
- porker 3y ago> Look up Lotus Improv and Javelin and Quantrix for examples of spreadsheets done right. I looked them up but Google wasn't forthcoming about what made them be "done right". Can you explain what they brought?
- knewter 3y agoThis looks great, and I'm always eager for competition for Google sheets and friends. Supporting python directly makes it seem great for a massive variety of use cases, and python is incredibly accessible. Connecting this up to databases seems like it would provide a great deal more value - excited to see that come to fruition. Additionally, from the demo video, I have to say the performance is impressive. I haven't seen a similar product yet from that respect - curious if this is due to my ignorance or your ingenuity. At any rate, congratulations! What are some of the useful things you've used it for recently?
- davidkircos 3y agoWe do many of our company operations dashboards in Quadratic. Directly using SQL would make this even easier. We are also working on support for popular Python charting libraries like MatPlotLib and Plotly!
- digdugdirk 3y agoAny thoughts on creating a python API to allow data input/output to the locally run instance?
- el_don_almighty 3y agoThe nerd in me loves seeing tools like this and the amazing integration of coding tools for manipulating data The enterprise manager of complex financial and equipment excel models worries about managing those code bases if they are spread out all over God's creation, hidden in a thousand cells without change management or access control... Is there a single code/formula base location for everything? (I admit, I have only been playing with it for a little bit...) How do I manage who gets the 'user version' and who gets to play with the 'creator' version? We always use the first worksheet as a version control chart tracking recent changes and modifications. It's rudimentary, but surprisingly effective over time now that OneDrive desperately undermines these controls with history management
- davidkircos 3y agoWe are working towards having your code stored in a way where you can manage it with git. Access controls will allow you to set who can edit and who can view. We also want to have a mode where you can edit, but only in your own fork.
- marwis 3y agoInfinite canvas looks like a mistake. Is there a way to use sheets?
- davidkircos 3y agoRight now there is only one sheet. We are working on support for multiple sheets (both infinite or finite) and support for Python files to enable reusability of code across the sheets.
- digdugdirk 3y agoWhat about just linking to define-able sections of the infinite grid? Just need the functionality to "jump" to other center point location+zoom level. Maybe also with the option to hide cells (by painting them all white) to create definite borders.
- HactarCE 3y agoSuper excited with where Quadratic is going! I've been long frustrated that performance and reliability of web apps is so awful, and the fact that Quadratic emphasizes both of those as core product features is a significant reason I'm working there now as the main Rust dev. Currently the classic Excel-style formulas are implemented in Rust, and we're planning on writing the spreadsheet core + multiplayer server in Rust as well.
- greatDEBONKER 3y ago[dead]
- probablypower 3y agoThis looks cool and is well made, but god do I hope my company does not let this become common place. We already struggle with company logic being buried in spreadsheets, brains and walled garden software. The last thing we need is to encourage this modern business anti-pattern of experts implementing their work in byzantine, opaque, impenetrable gardens of logic-data spaghetti bowls. I'll buy into this in a second, however, if you find a way to defragment the logical mess of a spreadsheet and turn it back into functional transformations of tabular data, such that we can implement it into stream processes or ETL pipelines. Otherwise you're just letting the next generation of corporate workers fall into the same trap of embedding their business logic lazily into a digital grid cemetery that'll end up wedged into the onedrive file pile. (Apologise if this comes across as cynical, from an implementation perspective you've done an amazing job, I just hate spreadsheets)
- swyx 3y agoi hear you but also it wouldnt be too too hard to consume data from your source of choice and to expose data for consumption elsewhere. a fully reactive spreadsheet is in some ways a lot better for a smooth upgrade path from “just trying things out” to “ok it’s in production now” - the holy grail.
- davidkircos 3y agoYeah, it's a valid point. Our goal isn't to replace production ETL pipelines etc. We are building a place where you can quickly do an ad hoc analysis, share it with your whole team, and iterate on it. If it's small and works great you're all set. If your work out grows Quadratic just take the Python and SQL code from Quadratic, modify it slightly, and deploy it on more robust infra.
- hyuuu 3y agohah i tried to build this myself, I think there is a huge market to be able to connect multiple data sources + proper programming language support logic instead of vbscript/excel formula. Did the user interviews as well, I saw a lot of real world tangible use cases can be solved with this. Congrats on your launch!
- swyx 3y agowhy did you stop? any concerns on the market demand?
- ricklamers 3y agoYou can read some of the reasons I stopped working on it here https://hackernoon.com/introducing-grid-studio-a-spreadsheet-app-with-python-to-make-data-science-easier-tdup38f7 https://hackernoon.com/introducing-grid-studio-a-spreadsheet... (not parent)
- rdschouw 3y agoAny chance you have a docker-compose.yml you can add to your repository? ;-) Great concept! Congrats on your launch!
- jarpineh 3y agoThis looks really interesting and useful to start looking into data and doing ad hoc processing. It reminds me of https://natto.dev/ https://natto.dev/ Without knowing anything about your architecture I wonder if you could support Duck DB WASM as a data source and SQL engine. Also, since there’s Python there you could conceivably bring Jupyter into the mix. Shared runtime (or at least a connection) and data space within browser sounds like a powerful combination.
- davidkircos 3y agoYup, working on duckdb-wasm support. Stay tuned!
- Yoofie 3y agoAny chance this can run offline in a standalone way, just like excel? This seems really cool, but asking the PM or marketing to run NPM commands to build and open a *.grid file is a no-go.
- davidkircos 3y agoYes it can. It can also run as a standalone app via Electron. We just haven't published builds yet.
- nhatcher 3y agoHey David, I just tried it out and looks great! Congratulations on a great product! Colour me impressed. There are a million things in my head. Let me just mention two: * When you are sending close to 20Mb of data compress it, it's going to make a huge difference in loading times. * I think, and I might be very wrong, but I think that when you are looking at a spreadsheet that looks like Excel you have certain expectations about the the UX. How to insert formulas, the way you extend content from some cells to others, etc One question, what algorithm are you using to evaluate the dependencies? Could you point me to the source?
- davidkircos 3y agoYes the bundle is huge, we have made no effort yet to optimize it. Feel free to create a PR :) Here is how we manage cell dependencies https://github.com/quadratichq/quadratic/blob/main/src/grid/sheet/CellDependencyManager.ts https://github.com/quadratichq/quadratic/blob/main/src/grid/...
- nhatcher 3y agoThanks!
- zokier 3y agoNeat. From tech point of view, one improvement I'd love to see is more named ranges/tables etc so that the python<->grid interaction doesn't need to rely only on coordinates. I'd imagine it'd also make sense for stuff like sql queries and dataframes to have column names mapped somehow sensibly into the datamodel.
- davidkircos 3y ago1000% create an issue on the repo https://github.com/quadratichq/quadratic/issues https://github.com/quadratichq/quadratic/issues
- Andrew_nenakhov 3y agoUh oh can it be a self-hosted Google sheets replacement?! Screenshots look really promising!
- drexlspivey 3y agoThis runs in the browser so there isn't really anything to host, it's just a static page.
- Andrew_nenakhov 3y agoThen I have to double check their documentation how they organize concurrent editing.
- JulianWasTaken 3y agoJust a marketing note, as I haven't tried to use this yet, but starting the feature list on the page with "pinch to zoom" striked me as pretty odd. Sheets (Google or Excel) already do this, and even if they didn't I don't personally find it to be a killer feature anyhow. I know the point is pinch to zoom + infinite sheet, but the pinch to zoom doesn't strike me as interesting there from a marketing perspective. To pick something else -- I again haven't used it yet and might not be in the target market as I don't find myself saying "I wish my spreadsheets had more functionality" -- but if I were, I'd probably lead with more of the flexibility or collaboration functionality (e.g. "write Python not VB", even though Google Sheets lets you write JS at this point.)
- davidkircos 3y agoGood point - we will move things around on the marketing site. Google Sheets does not have pinch to zoom. Maybe Excel does on some platforms, it doesn't on 365. The only other spreadsheet I know with decent pinch to zoom support is Numbers on mac.
- JulianWasTaken 3y agoI'm not sure what you mean by not having it, maybe you mean something different than what I'd usually mean -- on platforms I use it (Android), Google Sheets definitely has pinch to zoom (and it's been awhile since I've used Excel but I was pretty sure it did too -- the docs confirm it indeed does: https://support.microsoft.com/en-us/office/excel-for-android-touch-guide-aef977da-6adf-4724-b054-8ca4bb1d7afb https://support.microsoft.com/en-us/office/excel-for-android...).
- mkl 3y agoThis looks quite interesting. It seems strange to force all the tables into the same grid, so the column widths and row heights interfere with each other. If tables had their own grids and lived on a gridless canvas (or multiple canvases, or whatever), they could have whatever formatting they liked without interference, and cell references would automatically be more meaningful as they'd refer to the table.
- davidkircos 3y agoI like this idea.
- haolez 3y agoWhat's the business model? Can I configure SSO on the open source offering?
- timmit 3y agoThanks for sharing, it is an interesting tool. I was quite surprised that the AI feature is free for everyone's trial, I believe it is quite expensive. The payload for consuming the GPT-4 is interesting as well, there are one 1 out of 7 messages were from users, the first 6 are all system promots. Looks like it is an example for users to understand how to use the ai assitant. {"role":"system","content":"For example if a user asks for a list of 3 months starting at Jan 2020, you reply [\"Jan 2020\", \"Feb 2020\", \"Mar 2020\"]."}
- carom 3y agoWould an adjustable frame rate be possible? I have a 240hz monitor and would like to match the FPS to remain competitive. Jokes aside, this is legitimately awesome. I have been dreaming about an application like this ever since I found out Excel can't handle more than 1 million rows. I'm glad spreadsheets are getting a fresh rewrite with modern technologies.
- swyx 3y agothank god you were joking, you had me in the first half ngl
- huevosabio 3y agoThis is absolutely awesome, congrats!
- marcus_yallow 3y agoIt looks great. I think you should publish a Tauri / Electron desktop version.
- genericacct 3y agoCan it load data via http? (edit: it can) Nice!
- PurpleRamen 3y agoWhy do I need an account for a demo? Where are the data saved? Can I use my own editor for writing code? What is the business-model?
- m00nsome 3y agoWe tried to use a canvas based control for rendering data too, but the text rendering qualities of canvas were just too bad at the time. Do you have any plans to overcome that?
- Oranj 3y agoThis is extremely cool. Going to give it a spin.
- jonathaneunice 3y agoLove the approach. Direct Pandas DataFrames access/manipulation rocks. Accessibility, however, needs work. Must be a way to zoom on the inspector/code pane for those of us with less than stellar vision.
- tritiy 3y agoI always like to view pricing information first. It usually tells me the scope of the service and roughly gives me an idea if the service will make it or not. However, there is no pricing information on the page. Where is this information?