Hi, I am David Kircos. The Founder of Quadratic (https://QuadraticHQ.com), an open-source spreadsheet application for engineers that supports Python, SQL (coming soon), 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.
Today, we launched real-time Multiplayer on Product Hunt!
Quadratic is built using WebGL and Rust WASM. We built our multiplayer service from scratch in Rust to handle large amounts of data smoothly. For smooth rendering of a large grid of data, cells and text are rendered using low-level WebGL for performance. If you are interested in the technical details, check us out on GitHub (https://github.com/quadratichq/quadratic/)
What do you think? Can we make a spreadsheet that developers actually enjoy using?
Cool! I’ve spent a lot of time building OT and CRDT based collaborative editing. What approach did you go with for quadratic? What were the pain points you had with existing systems that motivated you to write your own?
How do you handle server sync? What is the use case? You don't seem to be for application building, rather for doing analysis work (https://www.quadratichq.com/examples) where the main problem you solve is "No more squinting into a tiny terminal to see your data output"? So this is a data swiss army knife for developers, a dev sidecar if you will that attaches to your python REPL i guess. How do you make money?
I had a look at the server code. Is the idea that you will just vertically scale up the server to handle the load, or is there a mechanism for scaling out horizontally?
The `quadratic-multiplayer` service is designed to be scaled vertically. Once we hit that limit, we will need to come up with a way to route traffic to servers based on what file a user is accessing and what server is hosting that room.
Every other service can be scaled horizontally today. However, the Rust services are very efficient at processing traffic, and a single node can handle significant usage.
Congrats on the launch! I was just looking at the Multiplayer PR earlier this week and was hoping it would be released soon. I’ve always been frustrated with Excel and you’ve built a product that I’ve legit dreamed of for years.
Thank you! Yes, Quadratic was built out of frustration from existing spreadsheets.
If a spreadsheet was built today...
it would support modern programming languages,
be fast,
multiplayer from day 1,
have a great API,
speak with databases natively,
"Multiplayer" seems like a weird term outside of video games, but I think it conveys multiple real-time concurrent users more than just "multi-user" would.
Edit: There's no obvious mention of open source on their website or docs (presumably because that would be legally unwise), so it's false advertising on HN for likes.
Quadratic's source code is openly available on Github, we will amend our language to "open access" going forward. We are far more open than any other spreadsheet, and pride ourselves on that!
linked in the github issue: "Quadratic's source code is available publicly in this repo. However, we do not provide any license to use, modify, or distribute our code." so you can look at it but dont have permission to use it
Today, we launched real-time Multiplayer on Product Hunt!
Quadratic is built using WebGL and Rust WASM. We built our multiplayer service from scratch in Rust to handle large amounts of data smoothly. For smooth rendering of a large grid of data, cells and text are rendered using low-level WebGL for performance. If you are interested in the technical details, check us out on GitHub (https://github.com/quadratichq/quadratic/)
What do you think? Can we make a spreadsheet that developers actually enjoy using?