Jay Meistrich

Jay Meistrich

@jayz.us

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

1.1K followers102 following241 posts

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?

Wow this is a huge improvement from upgrading to LegendList v2! I didn't even know it's THAT much better 😅 I've been using @habitpixel.com for a while and it will be great to get a perf boost in it 🎉. So cool to be able to make the apps I use even better 🫡

Hirvesh@hirve.sh

Just upgraded Legend List from v1 to v2 in @habitpixel.com, and wow, performance on my Pixel 4a just got a serious boost! Didn't expect this level of improvement. Also tested Flashlist v2, but it’s more on par with Legend List v1 - kudos to @jayz.us 💪 Comparison videos below 👇 #buildinpublic

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/...

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 👍

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

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

It's still a prototype but it's looking promising! I've gotten frustrated managing Legend List and Legend State issues so this is primarily scratching my own itch. But I think it could be useful for a lot of people :). Would you use something like this?

Heya! I’m working on my Legend List talk for Appjs. Anything you’re curious about or think I should include? Like, how some bit of it works, why it does certain things, or general performance questions? Let me know what you’d love to hear about and I'll try to cover it ❤️

If you're making a desktop app using react-native-macos or react-native-windows app, what are you making? And DM me! Let's see if we can help each other out 😀

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!

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!

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 🧵!

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...

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 😀

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!

This video is not about perf! It's testing gaps when estimated size is way off. drawDistance is small, those flags are surprisingly heavy to render, and this is a very slow phone. And check out the PR for details about how it works: github.com/LegendApp/le...

github.comFix gaps by jmeistrich · Pull Request #192 · LegendApp/legend-listThis does two things: 1. Fix gaps while scrolling When a container useLayoutEffect fires, run through all containers and if we don't already have a known size then measure the item. This is use...

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...

Working on making everything in Legend Photos configurable, and have hotkey customizing almost finished. I'm liking the look of this so far 😀

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

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...

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! 🥳

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! 🚀

Jay Meistrich reposted

Got inspired by @jayz.us playing around with React Native macOS and got NavigationSplitView working as an Expo module; next step is to see if I can hook it up to react-navigation

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?

What should I name this photos app? I've come into a pattern of naming things Legend something. What's cool/clever name that would fit this app? Current ideas: - Legend Aura - Legend Epic (because "pic") - Legend Photos (boring?) Note: Airy is reserved for a future project 🤫

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 🤩

What should I name this photos app? I've come into a pattern of naming things Legend something. What's cool/clever name that would fit this app? Current ideas: - Legend Aura - Legend Epic (because "pic") - Legend Photos (boring?) Note: Airy is reserved for a future project 🤫

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! 🚀

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!

Of course it’s not perfect yet, always more optimizations to do! But very promising results so far… Annoyingly recording a video makes my computer slower, it's even faster in real life 😅

Jay Meistrich reposted

What makes a list extremely fast? 💨 Jay Meistrich (@jayz.us) shares how eliminating blanks and guessing ahead boosts perceived speed in this clip from the latest episode 👇