Hacker News new | past | comments | ask | show | jobs | submit | more robbiejs's comments login

Excellent work!

Like you said, there exists many chart libs out there already... Hope you find a way to sell and keep working on your product!


Neat idea!


Glide Grid is an amazing achievement I have to say!

You can have a fast DOM without canvas, but it requires creative thinking. DataGridXL also renders millions of cells, but it does not use canvas as its main renderer (https://www.datagridxl.com/demos/one-million-cells).

The way it works: only columns are their own DOM nodes. For browsers it's just too much to ask to re-render let's say (20rows*10cols) 200 DOM nodes while keeping scrolling at 60fps.


> it's just too much to ask to re-render let's say (20rows*10cols) 200 DOM

I don't think this is true with modern browsers and CSS. For a table, every cell and parents of the cells as much as possible, should be styled `contain: strict` and if possible, absolutely positioned.


It's still true. You might be able to get decent performance on a Macbook 3000 (doubtful even) but anything less than that, nope. That's why many grid components use canvas rendering. It would have been a lot easier for all these grid devs to work with DOM nodes if they could.


Out of curiosity: What browsers did you test? Firefox performs magnitudes better in css benchmarks than Chrome, and I thought it is also better in handling large DOMs in general.


DataGridXL is used by 10 million end users. It's tested on all kinds of devices and browser combinations.

Browsers can handle AND update really large DOMs, but they still choke on doing all of these actions (repaint, reflow) WHILE SCROLLING, which is a different game.


> That's why many grid components use canvas rendering

Many grid components were developed many years before modern compositors and the `contain` property.


This is a big achievement, congrats! A lot of time must have been put into this I am sure. And you are also making a spreadsheet product AND a PDF (preview?) product? How do you combine it?


With this and node-canvas, you have everything you need to generate PDFs. I'll add an example to the examples/ directory for that. The spreadsheet library and PDFs I talked about in OP were examples of how we use this in our application, but are closed-source.


Noticed this too! Also, fun game!


"I’m thinking about opening a restaurant now."

That was really funny! I feel your frustration ;-)


Beautiful work! Very intuitive, thanks for sharing!

I was looking for a no nonsense planning tool. Will use it for planning the v3 release of DataGridXL, coming soon! (https://datagridxl.com)


Thank you! Wow, the creator of DataGridXL! Please feel free to use it!


Lol! The one and only ;-)


I'm so thrilled! Keep up the great work on the development!


Congrats on releasing the product! What are you using instead of the native scroll event of a browser element? Are you listener to `onwheel` events? Have you find a way to keep scrolling momentun scroll-browser/cross-device or do you normalize the delta to +1/-1?

I am the creator of DataGridXL (https://datagridxl.com), an Excel-like data grid component and it uses native scrolling. However, the document/sheet height/width is indeed limited by max div dimensions. Does your spreadsheet have a max?


I have the same experience with my product DataGridXL (https://datagridxl.com).

I spent a lot of time minimizing bugs and I choose deliberately to have less features and focus ond speed aan reliability.

But website visitors only see that a competing product has 2x the features (at great cost).

I have a customer with 10 million end users, in one year they have reported only 2 bugs, both bugs fixed within a day.

It's also hard to sell another 12 months of support this way, as it "just works". Bugs and imperfection can actually be a way for users to "bond" with your product.

Another downside is that the product does not have a weekly update cycle, as there is not much to fix.

People on github might think the project is dead. In reality, i spent a long time working on the product foundation, but that has no face value.


I got to the end of your post and realized I’d love to hear more about your thoughts around this. Also you must be proud of building something with so little bugs! Thats quite a feat.


It does make me proud, absolutely.

Do you have a product yourself?

Reach out to me at robbert@datagridxl.com.


Instead of sticky headers, I would suggest using a limited viewport height, so that the headers always remain visible.

Like in DataGridXL (https://datagridxl.com) disclaimer: I am the creator


Just a thought: This is very difficult to navigate without a pointing device (e.g. using the keyboard.)


Not sure what you mean. Keyboard controls are like Excel. What do you find difficult?


Open your page, and try doing these actions without touching your mouse. Some are just awkward, requiring a lot of Tab key. Some I have not figured out at all:

Scroll the table down and up.

Scroll the table right and left.

Select some text in the table and copy it.


I appreciate your feedback. However, I must admit that I still a bit in the dark about what is awkward about it.

The component is used by a million+ end users and copies traditional Excel/Google Sheets controls.

Are you familiar with those programs?

DataGridXL is an Excel-like component for editing cell values, rather than a table component for selecting rows.

I am curious though if the component is somehow not working like Excel for you... will you perhaps take the time to do a screen recording? I am curious to know what you find awkward, as I especially take pride in the usability of the component. (robbert@datagridxl.com)


I'm not trying to criticize you, but I've never been a fan of this on mobile. I think the content should scroll with the page.


Perhaps it's because of the scroll snapping? Version 3 of the product will have smooth scrolling, which is more natural on mobile.


Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: