Sign in

Jay Meistrich

@jayz.us
1.2K followers 102 following 241 posts

Building legendstate.com, bravely.io, legendapp.com. Been a digital nomad for 12 years. Posting about 🔥 Legend-State, ⚡️web perf, 🤯 productivity, and ✈️ traveling.

PostsRepliesMedia
Jay Meistrich @jayz.us · 20/10/2025
I've got LegendList's scrollToIndex and sticky headers features working in react-dom now (though not fully optimized yet) - try it out in @legendapp/list@2.1.0-beta.2 🎉 If you've used another web virtualized list library before, what are your pain points?
270
Jay Meistrich @jayz.us · 05/09/2025
Legend List 2.0 is LIVE! The ⚡️ fastest React Native list library, in 100% JS, now with more accuracy and speed! ✨Perfectly accurate scrollToIndex ✨Even faster ✨Zero mount time on new arch ✨Sticky headers ✨estimatedItemSize is optional ✨New and old arch www.legendapp.com/open-source/...
3272
Jay Meistrich @jayz.us · 30/08/2025
Getting Legend List for web ready for my @reactuniverseconf.com talk in beautiful Wroclaw 😍
1202
Jay Meistrich @jayz.us · 23/08/2025
I got maintainVisibleContentPosition working in LegendList on web 🎉 So it looks like we can support initialScrollIndex with no jank scrolling up, and bidirectional infinite lists should work too! The solution seems to be scrollBy(), which does not break momentum scrolling 👍
060
Jay Meistrich @jayz.us · 18/08/2025
Legend List 2.0 is now in beta! ✨ Improved performance ✨ Perfectly accurate scrollToIndex ✨ Mount time on new arch goes from pretty fast to ZERO ✨ Sticky headers ✨ estimatedItemSize is now optional ✨ Fixes many bugs
1484
Jay Meistrich @jayz.us · 17/08/2025
2 Fast 2 LegendList. Beta 2morrow.
1151
Jay Meistrich @jayz.us · 06/08/2025
Legend List for React DOM coming soon, launching September 4 at @reactuniverseconf.com. The goal is to be faster than every other list library on both mobile and web.
0141
Jay Meistrich @jayz.us · 27/07/2025
Legend List is feeling a bit sticky
0182
Jay Meistrich @jayz.us · 18/05/2025
I'm trying to make the fastest Mac app you've ever seen. So of course I'm building it in javascript with React Native. It'll be an app for managing Github issues, PRs, discussions. 🔌 Local first 🛜 Works offline ⚡️ Instant interactions 💾 App is 50mb, 100mb ram 👐 Open source
6707
Jay Meistrich @jayz.us · 14/05/2025
Hmm that's weird... I just wrote a couple tests to make sure and it seems to be working right. If you're assigning an array with the same values it won't be considered a change, but otherwise I'm not sure why that wouldn't work. Can you share more code?
110
Jay Meistrich @jayz.us · 02/05/2025
I had misunderstood the FlashList internals and halved the drawDistance incorrectly. These videos are also more exact, using a script for scrolling at a consistent speed. The previous video was at 1.3x, this is 1x. The latest optimizations are not quite stable yet, will release them this weekend!
070
Jay Meistrich @jayz.us · 02/05/2025
I made a mistake in the LegendList comparison which made FlashList look worse than it is 🤦. But another mistake made LegendList look worse than it is too 😂. And I did another round of optimizing today, so it's still looking pretty good!
190
Jay Meistrich @jayz.us · 30/04/2025
030
Jay Meistrich @jayz.us · 30/04/2025
130
Jay Meistrich @jayz.us · 30/04/2025
Working from this island is the most productive I've ever been. Just code and eat, with a daily sunset walk on the beach. But today my productivity dropped when I made friends with the hotel cat who sat on my laptop and demanded pets. So we did a photoshoot 😍 Photos in 🧵!
190
Jay Meistrich @jayz.us · 23/04/2025
Legend List 1.0 is LIVE! The ⚡️ fastest React Native list library, 100% JS, with powerful new features. For new and old arch. ✨ maintainContentVisiblePosition ✨ Bidirectional infinite scrolling ✨ Chat UI without the inverting hack I hope it helps make your apps better! github.com/LegendApp/le...
8625
Jay Meistrich @jayz.us · 22/04/2025
I'm quite please with the code too! It uses Legend State to persist to/from a theme.json file, and set css variables so NativeWind classes update immediately. Pretty cool! 😍 Check it out: github.com/LegendApp/le...
010
Jay Meistrich @jayz.us · 22/04/2025
You can now make Legend Photos super ugly! By that I mean it has theme customization now 😀. Released in new version 0.3.0.
130
Jay Meistrich @jayz.us · 22/04/2025
Legend List 1.0 release tomorrow! Last new feature before 1.0: After the first render it internally uses the average item size instead of the estimate, which should be more correct. And providing an estimated item size is now optional 😀
190
Jay Meistrich @jayz.us · 18/04/2025
After months of trying to solve gaps/overlaps when scrolling or changing size, without native code, I’ve finally cracked it! See this video of a VERY slow phone and no visible gapping. Try it now in Legend List beta.47 😀. And I think we should be ready for 1.0 next week!
1120
Jay Meistrich @jayz.us · 12/04/2025
Legend List is over 1,000 stars and it’s not even 1.0 yet 😱. But that’s about to change! The most important milestone, ZHB (Zero @hirbod.dev Bugs), has been achieved and all 1.0 blocking Issues are complete. Now just need to finish the docs and prep for release... github.com/LegendApp/le...
1100
Jay Meistrich @jayz.us · 03/04/2025
I just released a new version of Legend Photos with customizable hotkeys and fixing every bug I’m aware of since launch. Now on to adding more features 🎉 And this one sets up auto-updates correctly, so this is the last time you’ll need to update manually. Download: github.com/LegendApp/le...
050
Jay Meistrich @jayz.us · 27/03/2025
Working on making everything in Legend Photos configurable, and have hotkey customizing almost finished. I'm liking the look of this so far 😀
040
Jay Meistrich @jayz.us · 24/03/2025
The first version of Legend Photos is ready 🎉. ✨ Loads files from local folders or Apple Photos ✨ Very fast and small (24mb) ✨ Extensible plugin system ✨ Hotkeys for everything ✨ Open source React Native macOS app Fun new feature today: toggle this filmstrip view with F
5264
Jay Meistrich @jayz.us · 23/03/2025
Curiosity got the better of me so Legend Photos can now load from Apple photos (using PhotoKit) as well as local files 🎉. It has a plugin-first architecture so this is just a source plugin for PhotoKit. And it should be easy to add more sources...
060
Jay Meistrich @jayz.us · 22/03/2025
I started Legend Photos just a week ago, periodically prompting Cursor and Claude to add features in the background while I was focused on other work. It's wild that in week of mostly background vibing I have a polished app ready to launch Monday! 🥳
030
Jay Meistrich @jayz.us · 21/03/2025
The most common and emphatic response was Legend Photos so I'm going with it. I AI'd an icon I'm pretty happy with! I think this feels like a legendary photo? What do you think?
180
Jay Meistrich @jayz.us · 20/03/2025
This is looking pretty dope as I’m polishing it towards a first release! Using a VibrancyView for popups, animating stuff, made an optimized native Image module for fast arrow keys, a hotkey helper popup, an architecture where everything is a plugin. React Native is awesome 🤩
080
Jay Meistrich @jayz.us · 19/03/2025
Well this is silly 😂. This React Native MacOS app compresses down to 9 MB. It's exactly 1/10 the size of an Electron app 😱
2362
Jay Meistrich @jayz.us · 19/03/2025
This photos app has been a great stress test for Legend List! After a few optimizations this week, it’s now scrolling beautifully with no dropped frames or blanks, even with 8 columns. Window resizing at 60fps with responsive columns. I’m very excited 🎉. Aiming for 1.0 soon!
1201
Jay Meistrich @jayz.us · 17/03/2025
Didn't have much time for it today but Cursor / Claude and I made some native modules for native Button, SegmentedControl, and SFSymbols. This makes me happy 🎉
070
Jay Meistrich @jayz.us · 17/03/2025
Cool, I even got it to support all the native sizes (large, regular, small, mini). I like large much better though so I'll probably use that everywhere 😀
020
Jay Meistrich @jayz.us · 17/03/2025
Out of curiosity I tried getting Claude to make a SegmentedControl, and it worked on the second go around. So this is now a native NSSegmentedControl. I've found a pattern when prompting for native modules that "Please make sure you are doing it in the simplest way" makes it work much better 😅
130
Jay Meistrich @jayz.us · 16/03/2025
It’s wild how AI has accelerated my development 🤯 In half a day today with Cursor/Claude: animated sidebar, rating/flagging and plugins systems, a settings window native module. The native bit was tough but we got there. I wouldn’t have even attempted this project without AI...
1100
Jay Meistrich @jayz.us · 15/03/2025
I decided to make the photos app I've always wanted with react-native-macos. I spent a few hours today and it already does stuff! And it's super fast without even optimizing yet! I'll do the #buildinpublic thing and open source it in Legend Kit Pro. This is going to be fun! 🚀
6290
Jay Meistrich @jayz.us · 14/03/2025
It turns out that react-native-macOS is even faster than I thought 🤯 I realized it wasn't even using Hermes before, and the markdown library I used was slowing rendering. Legend List is buttery smooth in Mac apps 🎉
0100
Jay Meistrich @jayz.us · 12/03/2025
I made an app that opens faster than any Mac app I've seen, loading a 5500 line markdown file instantly. It's not Swift. Not Rust. Not C++. It's JavaScript! react-native-macos is INSANELY fast 🤯 And 10% the size of an Electron app! I had no idea RN on desktop is this good.
4548
Jay Meistrich @jayz.us · 09/03/2025
Big day for Legend List today! 11 of my commits, 5 PRs merged, 8 issues closed. I fixed maintainScrollAtEnd, columns work much better, added columnWrapperStyle, fixed web support. And @michbil.bsky.social made scrolling to index accurate even when item sizes are unknown 😱
260
Jay Meistrich @jayz.us · 09/03/2025
And in case you're curious for how to generate it, I'd found a bunch of tools to scrape the website. But it's easiest to have this as the llms-full.txt.ts file in our Astro Starlight project.
000
Jay Meistrich @jayz.us · 09/03/2025
I set up automatic llms.txt generation in the Legend State docs, so there's now an always updated documentation for AI to consume directly. I added it to Cursor and it's so much better at using Legend State now 😍. Just add legendstate.com/llms-full.txt as Docs to Cursor or your favorite AI tool.
191
Jay Meistrich @jayz.us · 06/03/2025
Introducing the Legend Kit CLI! 🚀 Add Legend State observables, helpers, and hooks to your projects with an excessively fancy CLI interface. It has 12 packages available now (7 free, 5 Pro) with more coming soon! npx @legendapp/kit
171
Jay Meistrich @jayz.us · 20/01/2025
Legend List 1.0 beta is ready! It started as a performance experiment, but it ended up solving a lot of the major issues with lists in React Native. 🎉 ✨ Better perf than FlashList ✨ maintainContentVisiblePosition ✨ Bidirectional infinite lists ✨ Chat UI without inverting
38016
Jay Meistrich @jayz.us · 03/01/2025
I'm trying to make a Reanimated component for Legend List, but I'm not very experienced with Reanimated so I'm not 100% sure how to do it... It doesn't seem to like being given a function component. So is this the right way to do it? It seems to work?
110
Jay Meistrich @jayz.us · 22/12/2024
Experimenting with Legend List in the Bluesky app, which uses FlatList and performs surprisingly well already. I only really see it get slow after loading a lot of pages and then scrolling very quickly. I learned a lot from this! 🧵
3413
Jay Meistrich @jayz.us · 18/12/2024
Had a couple hours on a flight to knock out numColumns support in Legend List 0.5.5 ✈️ On the next (longer) flight I'm going to play with animations and start writing docs. I'm more excited to do the animations 😅
080
Jay Meistrich @jayz.us · 17/12/2024
I just released Legend List 0.5.0 🎉. It should now be mostly at feature parity with other lists, and much faster. This version has: ✨ maintainContentVisiblePosition 💬 Example of chat without inverting 🏁 onStartReached 🚀 Much better perf We’re on the road to 1.0 now 🤘
3151
Jay Meistrich @jayz.us · 14/12/2024
Of course in a real app you’d set a higher drawDistance on the vertical list and lower on the horizontal, and then it’s perfectly smooth :). But this shows the differences better. I’m still not entirely sure why it's so much faster though 😅
110
Jay Meistrich @jayz.us · 14/12/2024
I set drawDistance to 0 on the vertical lists to more clearly see what’s happening. And I set a high drawDistance on the horizontal lists to make it slower, with an equal number of total posters rendered between the two lists. So I *think* this is an accurate and fair comparison.
110
Jay Meistrich @jayz.us · 14/12/2024
I did some more optimizing while running @almouro.bsky.social’s movie list test app on a slow phone. Legend List non-recycling seems to perform slightly better than FlashList recycling, and Legend List recycling is even better. 🧵
3170
Jay Meistrich @jayz.us · 11/12/2024
Interestingly, because of the other optimizations to minimize renders, it was actually much better to remove scrollEventThrottle, unstable_batchedUpdates, and debouncing scroll events. They were causing delays while scrolling quickly and weren’t actually adding any benefit.
1100