AndrewPrifer Profile Banner
Andrew Prifer Profile
Andrew Prifer

@AndrewPrifer

Followers
3K
Following
4K
Media
156
Statuses
1K

UI, UX, 3D. Cooking something new. Prev: @LumaLabsAI @theatre_js @splinetool

🌎
Joined November 2015
Don't wanna be here? Send us removal request.
@AndrewPrifer
Andrew Prifer
9 months
#DreamMachine's carousels are probably the most complex UI I've ever built. We wanted a free-flowing, diagonally arranged, arbitrarily long carousel that would satisfyingly flow around other UI elements. Something that doesn't exist anywhere else. Read on for some behind the
11
6
93
@AndrewPrifer
Andrew Prifer
10 hours
How I’m prompting Claude from now on
@seflless
Francois Laberge ✍️
15 hours
We built Claude Code into a browser & whiteboard! It's called Decode @decodetool It’s the fastest & best way to give UX feedback to Claude Code while coding locally & enables it to review & test changes itself See thread👇to learn how whiteboards makes it an even better browser
0
0
1
@AndrewPrifer
Andrew Prifer
1 day
I am curious how Remix 3's primitives would wrap complex functionality like this into a single call site without a hook-like primitive.
@AndrewPrifer
Andrew Prifer
1 day
Unfun fact: even without forcing a delay, naive handling of asynchronous code can cause race conditions, as results may not return in call order. I once challenged myself to write the minimal solution that correctly handles race conditions, caching, and state management, and it
1
0
1
@AndrewPrifer
Andrew Prifer
1 day
I also think it provides a pretty cool API in its own right, which I still haven't found a comparable equivalent for. :) Check it out.
Tweet card summary image
github.com
📯 Tiny, flexible and ergonomic data fetching & RPC library for React with memoization support - AndrewPrifer/tiny-async
1
0
7
@AndrewPrifer
Andrew Prifer
1 day
Unfun fact: even without forcing a delay, naive handling of asynchronous code can cause race conditions, as results may not return in call order. I once challenged myself to write the minimal solution that correctly handles race conditions, caching, and state management, and it
@sebastienlorber
Seb ⚛️ ThisWeekInReact.com
2 days
AbortSignal is a cool API, but it's also quite dangerous in practice See, for example, how Ryan wasn't 100% sure that the line was needed, despite web platform expertise Now, imagine adding a seamless "await delay(1000)" anywhere below => it reintroduces the race condition
1
1
9
@AndrewPrifer
Andrew Prifer
1 day
This rivalry is the best thing that happened to cloud infra in a long time. First, CPU-billed Vercel fluid compute, now fast CF workers. Amazing stuff.
@dok2001
Dane Knecht 🦭
1 day
Real world benchmarks even better!
0
0
2
@AndrewPrifer
Andrew Prifer
2 days
This is still one of the most audacious things I’ve ever put in a real-world app, but somehow what I’m building now feels a 1000x cooler. The future is bright.
@AndrewPrifer
Andrew Prifer
9 months
The loading animation is using animation blending, a technique borrowed from video games that ensures that different animation cycles flow nicely into each other.
0
1
30
@AndrewPrifer
Andrew Prifer
2 days
Designer friends who’ve used LG UltraFines, how is the color quality compared to the studio display or XDR?
@ilyamiskov
Ilya · イリア
2 days
LG has introduced the 6K 32 inch Thunderbolt 5 monitor. And it costs 3 times less than the Apple Pro Display XDR Now all we need is 120hz and OLED.
0
0
0
@AndrewPrifer
Andrew Prifer
2 days
Who doesn’t use a VESA mount anyways? Like yeah sure the studio display stand is pretty but it will never provide the same range as my $50 monitor arm from amazon.
@twankx
twank
2 days
@ilyamiskov But this part is 🥴
0
0
2
@AndrewPrifer
Andrew Prifer
3 days
Yes, I just deployed my backend on Fly, AMA.
0
0
1
@AndrewPrifer
Andrew Prifer
3 days
The hard thing about microVM-based services like @flydotio is that you need to know Docker. The easy thing about microVM-based services is that you only need to know Docker.
@AndrewPrifer
Andrew Prifer
6 days
We now have first-class support for standalone backend deployments in @vercel. What's the simplest approach for the following scenario? - I have a monorepo with shared code across targets, including my backend, via packages. - These targets use bundler module resolution, and
1
0
2
@AndrewPrifer
Andrew Prifer
3 days
Once you have a database, there is no scenario in which you wouldn't want to have it in the same colo. One way or another, you're making a trip to it! There's nuance with replicas, caching and connection pooling, but even then, 99% of the time a colo will beat a local worker.
1
0
1
@AndrewPrifer
Andrew Prifer
3 days
Cloudflare's opt-in solution to this is Smart Placement, which feels very contrived to me. What it does is it looks at past worker performance and picks the location with the best performance so far, as long as it's still worth it with the longer roundtrip time. This means that
2
0
1
@AndrewPrifer
Andrew Prifer
3 days
I'm very happy that Cloudflare is now positioned as a direct Vercel competitor. However, I found "region: earth" isn't ideal for most apps. I learned this the hard way (just moved my backend off of workers)--you can cut up to 300ms off PER QUERY just by colocating servers with
1
0
1
@AndrewPrifer
Andrew Prifer
3 days
YC fork incoming
@dougesdev
mike douges
3 days
⭐️1,000
1
0
1
@AndrewPrifer
Andrew Prifer
3 days
The moment Bun clicked for me is when the docs demonstrated the file watcher by having VS Code save on keystroke and the terminal display having no lag whatsoever.
@DrizzleORM
Drizzle ORM
4 days
how he looks at you when your test suite runs slower than npm --version
0
0
0
@AndrewPrifer
Andrew Prifer
3 days
Now to bash on react a little bit too, one of the biggest newb footguns is that people are prone to reacting to events in effects instead of the event itself. That is bad. Although I feel like this is not necessarily a React problem, it is a “we don’t have a good enough
@ryanflorence
Ryan Florence
3 days
@rickhanlonii @AndrewPrifer hey I already made a drummer! I just changed the drummer's tempo in the event handler, which deals with its own interval, so it's not modeled as a reactive thing, just a task in an event if you want to make something that shows off a reactive setInterval, I'll clone it
1
1
11
@AndrewPrifer
Andrew Prifer
3 days
See the sneaky code duplication? Every solution has tradeoffs as soon as you increase complexity. In React, your teardown logic has one place to live. In Remix 3 you have to manually run it when your props change, AND when the component unmounts (the abort signal branch).
4
1
68
@AndrewPrifer
Andrew Prifer
4 days
Anime pfp final boss. @elysiaJS is seriously impressive.
@saltyAom
SaltyAom
4 days
This is why I made ElysiaJS
0
0
2
@AndrewPrifer
Andrew Prifer
4 days
genus proximum, differentia specifica
@Henrik_wes
Henrik
5 days
”Lovable for X” is the new ”Uber for X”
0
0
1
@AndrewPrifer
Andrew Prifer
4 days
React's complexity can obscure its appeal, but reactivity is powerful: the UI is a function of state, always. This simplifies reasoning, unlike having to manage both state, and update timing. Reactivity is annoying in that it makes determining UI state the main challenge, thus
@AndrewPrifer
Andrew Prifer
5 days
Why were opt-in renders chosen in Remix 3 when @solid_js, Vue Vapor, Inferno, Ripple etc. have already shown you can get near-vanilla performance without? Is there some cool architectural benefit you get from it specifically in Remix 3?
0
0
2