HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
palantir
blueprint
TypeScript2016–2021
palantir / blueprint

blueprint

A React-based UI toolkit for the web

15Distinct people
17Mentions
1Explicit recommenders
22.2KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A React-based UI toolkit for the web

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

For a large-screen-centric, all-batteries-included React UI component library, I love Palantir's Blueprint: https://github.com/palantir/blueprint

rayshan used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year17 dated mentions

Observed mentions: 2016-11-12 20:34:55 UTC to 2021-10-27 04:55:05 UTC.

024682016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 8 mentions; 1 submissions, 7 comments20162017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2021

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC817
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC211
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC505
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC101
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC000
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC101

What Hacker News says

17 sources
Approach ----------- Basically the approach is like that used by the Sproutcore Big Data List demo, being: 1. construct a moving foreground window onto a giant, scrollable background element (giant, as in arbitrarily wide and high, like 200000em) 2. move rows from the 'scroll wake region' to a pool when they move offscreen because of scroll, 3. move rows from the pool to the 'scroll bowshock region' when we need new rows because of scroll, 4. don't change the position of any existing rows in the window (instead allowing them to scroll naturally), but set new rows (and remove pool rows) using absolute positioning. Except as we need to scroll across both rows and columns do all of the above in 2 dimensions, for columns as well. And also the way I detect when we need to "add or remove" rows or columns is via Intersection Observers[mi]. Major
Read the rest
issues overcome so far --------------------------------- - It's possible to scroll it now infinitely (and performantly) for the duration of the very large background element. - Major problem was I initially was listening for intersection of cells individually on each row, but if a row had already travelled off screen due to a vertical scroll, it would not be possible for its cells to 'intersect' with the viewport element (the window, in Intersection Observer API parlance, the "root"), and so no intersection for that cell would occur, and so cells in that row would not be updated. And if they were not updated, they would not be onscreen when the row was in future removed from the pool and positioned back on screen, and so its cells could no longer be updated, as there would be no cells within that scroll viewport to intersect anymore. The solution to this was to create a logical grouping of cells into columns, and handle any intersection observations for any cell in a column, at once, and apply them to all cells in a column. So the whole column would be updated. Before I fixed this, repeated scrolling (particularly in opposite diagonal directions) would erode the cells present, gradually decreasing their number, and throwing many out of their column alignments. - Also performance was another issue that's now mostly resolved tho I think I can do better. Basically too much work was happening on handling each Intersection record and we were not ignoring records that triggered the same work to be redone (such as intersection events from each cell in a column). These redundant records are now ignored (but mostly in a haphazard manner that could cause browser dependent bugs). Next steps ------------- - Add all of the outstanding features (scroll snap, row / col size dragging) from the table component. - Style it to make it look nice - Fix the outstanding border 'off by 1' bugs. - Sync up the 'view portal' with a 'data portal' (movable portal over a very large set of data), and print the correct data corresponding to the current scroll position in the table - Add the row and column headers using CSS sticky. This is the only comment I'll make in this thread, thanks for reading, and hit me up with questions at my email if you want: cris@dosycorp.com [bt]: https://i5ik.github.io/_____/7guis/ (scroll down to the last 7GUIs component) [bp]: https://github.com/palantir/blueprint/issues/390 [ft]: https://fulmicoton.com/fattable/index2.html [sc]: https://showcase.sproutcore.com/#demos/Big%20Data%20Lists [ct]: https://canvas-datagrid.js.org/demo.html [mi]: https://developer.mozilla.org/en-US/docs/Web/API/Intersectio... [other]: https://js.devexpress.com/Demos/Widgetsgallery/Demo/DataGrid... https://codepen.io/enigmatic/pen/JGvwEv https://www.htmlelements.com/demos/grid/overview/
In Show HN: A work in progress large table virtualization component
I'm in a similar boat as you. We actually started building on top of Ant. However, we first started out by building out our Admin pages and they were built with Blueprint. I like Blueprint a lot more than Ant, but Blueprint doesn't pretend to support responsive applications[1], which was somewhat important to us. Blueprint exposes a couple building blocks (like PopOver) which really help in building more custom functionality. It actually looks like Evergreen be closer to Blueprint in this regard so I might piss off all the devs and evaluate Evergreen. [1]https://github.com/palantir/blueprint/wiki/Frequently-asked-...
In Evergreen: a React UI Framework built by Segment
Well the sad thing about this is that Palantir is actually doing some very good things with Lerna, Babel and Yarn and they tried to explain that... ...BUT SOME PEOPLE ALREADY MADE UP THEIR MIND AND JUST REFUSE TO LISTEN TO ANY REASON. Do you want to hear what Palantir is ACTUALLY doing using these tools? Here you go: "[...]We appreciate your concerns based on the article you linked to. We would like to clarify that Palantir's contracts are with Homeland Security Investigations (HSI), the ICE directorate responsible for investigating serious transnational criminal activity such as human trafficking, child exploitation, and counter-terrorism as opposed to the activities theorized in the article. We're happy to discuss your concerns in person if you're interested, please get in touch." https://github.com/palantir/blueprint/issues/2870 TL;DR:
Read the rest
Palantir is helping the HSI unit within ICE to FIGHT CHILD ABUSE, STOP HUMAN TRAFFICKING AND STOP TERRORISM. Now can anyone explain to me what is so terribly wrong and evil about THAT? Anyone???
In Lerna relicences to protest ICE
I wonder if the companies mentioned will cease to use lerna or cease to update lerna? Or if they'll just ignore the clause since the likelihood of any meaningful enforcement is about zero? For example, I checked the top two companies on the list and both Microsoft [0] and Palantir [1] are using lerna currently. [0]: https://github.com/Microsoft/fast-dna/blob/705cb008a59efb4d8... [1]: https://github.com/palantir/blueprint/blob/3c360b50f6106f733...
In Lerna relicences to protest ICE
For context, jamebuilds is the maintainer or contributor of many javascript libraries like Lerna, Babel, and Yarn. He recently tweeted [1] that he would go to war with Palantir for collaboration with ICE. He opened several issues with Palantir's blueprint which uses Lerna [2]. He then opened a PR to change Lerna's license with the MIT license (with persional exceptions) [3] where it was merged after the original author agreed since jamebuilds is one of the primary maintainers now. Palantir did respond in one of the issues [4] where they clarified they work with HSI and would be open to meeting in person but it did not seem to change jamebuild's opinion. [1]: https://twitter.com/jamiebuilds/status/1034517589001613312 [2]: https://github.com/palantir/blueprint/issues/2870, https://github.com/palantir/blueprint/issues/2875, https://github.co
Read the rest
In The MIT license (with personal exceptions)
Actually a good example is Blueprint CSS framework from palantir (https://github.com/palantir/blueprint). It's fully tailored around their design philosophy and they are not beholden to anyone else. However you have to remember that your scale, we will follow you (and fix your bugs) rather than demand you serve us. Who knows we both might learn off each other !
In Stripe Home

Showing the 15 most recent of 17 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.