Juan Campa

1.6K posts

Juan Campa banner
Juan Campa

Juan Campa

@juancampa

Founder of @membraneio Prev: Vercel, Mighty, Zynga, Grove Street Games, Efecto Studios

Miami, FL Katılım Mayıs 2009
4.9K Takip Edilen1.6K Takipçiler
Sabitlenmiş Tweet
Juan Campa
Juan Campa@juancampa·
Hot take: retained-mode was a premature optimization. We built Membrane using rust and egui and never looked back. When our IDE was react-based we had to worry about reflows and re-renders. With immediate-mode every frame is a re-render! But it only takes 900us
English
32
32
512
89.8K
Valery Bugakov
Valery Bugakov@valerybugakov·
We flipped the switch: Amp Tab is now on by default for new installs. It’s our free completion engine for manual edits in VS Code. It’s fast, knows your recent changes and compiler errors, and suggests cross-file updates when needed. Already on Amp? Run `Enable Amp Tab` from cmd/ctrl+shift+p.
English
8
16
132
91.2K
Juan Campa
Juan Campa@juancampa·
@freetonik @membraneio Ok here it is. Each element in the UI is "linked" to the data it came from (hold shift while hovering). You can see it at the bottom-left corner. From there, you can grab any piece of data and use it from a program. Video doesn't show it but views are computed from JSX
English
2
0
4
100
Juan Campa
Juan Campa@juancampa·
@freetonik Glad you liked it! I read your article. You called out the fact that semantics get loss when data gets transformed to a bunch of divs. I wanted to send you a quick video of our new UI system because fixing that is one of the reasons I built @membraneio
English
1
0
2
83
Rakhim
Rakhim@freetonik·
@juancampa Dude! Both the performance and the aesthetic of Membrane is crazy well executed!
English
1
1
4
305
Juan Campa retweetledi
U.S. Graphics Company
U.S. Graphics Company@usgraphics·
Inexistence of task specific keyboards is a sign of an intellectually malnourished society.
U.S. Graphics Company tweet media
English
78
141
2.3K
409.9K
Juan Campa
Juan Campa@juancampa·
Just ran into this table of divisors in wikipedia and thought it was neat how clearly it shows why we have 24 hour days, 60min hours, 360 degree circles, etc. These are the easiest numbers to divide
Juan Campa tweet media
English
5
0
8
254
Juan Campa
Juan Campa@juancampa·
@refactorordie Check out this one I just found. Towards the end it shows how you can play with the API right from the HUD to, for example, modify a google doc
English
0
0
1
24
Juan Campa
Juan Campa@juancampa·
@geoffreylitt's HUD metaphor is incredibly powerful. This prototype falls in that category. With one click, you'd get an "API view" of a website, which you could then drag-and-drop onto your code to get programmatic access. It worked on other websites too! (not just GitHub)
Geoffrey Litt@geoffreylitt

# Enough AI copilots! We need AI HUDs IMO, one of the best critiques of modern AI design comes from a 1992 talk by the researcher Mark Weiser, where he ranted against "copilot" as a metaphor for AI. 33 years ago, but still incredibly relevant for anyone designing with AI... Weiser was speaking at an MIT Media Lab event on "interface agents". They were grappling with many of the same issues we're discussing in 2025: how to make a personal assistant that automates tasks for you and knows your full context. They even had a human "butler" on stage representing an AI agent. Everyone was super excited about this... except Weiser. He was opposed to the whole idea of agents! He gave this example: how should a computer help you fly a plane and avoid collisions? The agentic option is a "copilot" — a virtual human who you talk with to get help flying the plane. If you're about to run into another plane it might yell at you "collision, go right and down!" Weiser offered a different option: design the cockpit so that the human pilot is naturally aware of their surroundings. In his words: "You’ll no more run into another airplane than you would try to walk through a wall." Weiser's goal was an "invisible computer"—not an assistant that grabs your attention, but a computer that fades into the background and becomes "an extension of [your] body". There's a tool in modern planes that I think nicely illustrates Weiser's philosophy: the Head-Up Display (HUD), which overlays flight info like the horizon and altitude on a transparent display directly in the pilot's field of view. A HUD feels completely different from a copilot! You don't talk to it. It's literally part invisible—you just become naturally aware of more things, as if you had magic eyes. ## designing HUDs OK enough analogies. What might a HUD feel like in modern software design? One familiar example is spellcheck. Think about it: spellcheck isn't designed as a "virtual collaborator" talking to you about your spelling. It just instantly adds red squigglies when you misspell something! You now have a new sense you didn't have before. It's a HUD. (This example comes from Jeff Heer's excellent Agency plus Automation paper. We may not consider spellcheck an AI feature today, but it's still a fuzzy algorithm under the hood.) Here's another personal example from AI coding. Let's say you wanna fix a bug. The obvious "copilot" way is to open an agent chat and ask it to do the fix. But there's another approach I've found more powerful at times: use AI to build a *custom debugger UI* which visualizes the behavior of my program. (x.com/geoffreylitt/s…) With the debug view, I have a HUD! I have new senses, I can see how my program runs. The HUD extends beyond the narrow task of fixing the bug. I can ambiently build up my own understanding, spotting new problems and opportunities. Both the spellchecker and custom debuggers show that automation / "virtual assistant" isn't the only possible UI. We can instead use tech to build better HUDs that enhance our human senses. ## tradeoffs I don't believe HUDs are universally better than copilots! But I do believe anyone serious about designing for AI should consider non-copilot form factors that more directly extend the human mind. Hmm so when should we use one or the other? TBH I think it's super tricky, but we can try to use the airplane analogy for some intuition: When pilots just want the plane to fly straight and level, they delegate that task to a "virtual copilot" autopilot system. But if the plane just hit a flock of birds and needs to land in the Hudson, the pilot is gonna take manual control, and we better hope they have great instruments that help them understand the situation. In other words: routine predictable work might make sense to delegate to a virtual copilot / assistant. But when you're shooting for extraordinary outcomes, perhaps the best bet is to equip human experts with new superpowers...

English
2
1
8
424
Juan Campa
Juan Campa@juancampa·
@refactorordie @tbdr We had to remove it from the Chrome Marketplace due to a change in our API that broke it and haven't had the time to fix it. We will bring it back though! It makes the Web significantly more programmable
English
1
0
1
23
Cole Lawrence
Cole Lawrence@refactorordie·
@tbdr @juancampa oh shoot. I thought so. I was specifically interested in seeing more of the web HUD demos
English
2
0
0
31
Juan Campa
Juan Campa@juancampa·
This was pre-LLMs so one big issue was that not all websites have semantic information in their markup that could be used to map it to their corresponding API resource. I think LLMs could help here
English
0
0
1
138
Juan Campa retweetledi
Pete Millspaugh
Pete Millspaugh@pete_millspaugh·
I'm writing a book!
Pete Millspaugh tweet media
English
5
3
37
2.9K
jordwalke
jordwalke@jordwalke·
Reply with the best Ui you’ve ever built.
English
451
130
3K
1.5M
Juan Campa
Juan Campa@juancampa·
@witsdev Did you use any library to build and query the local search index?
English
0
0
0
30
wits
wits@witsdev·
here's how we engineered "Find," the new universal search in the @vercel dashboard
English
42
65
1.6K
206K
Juan Campa retweetledi
Guillermo Rauch
Guillermo Rauch@rauchg·
We have a "Reddit Enhancement Suite" but for the entire web at @vercel. A chrome extension that solves all kinds of papercuts in the tools we use daily. You can just fix (other people's) things 😁
Guillermo Rauch tweet media
English
13
6
292
41K
Juan Campa
Juan Campa@juancampa·
@refactorordie It is! It’s so satisfying to have an instantaneous feedback loop and also not having to worry about data loading. The missing piece is the ability to share boards with others (i.e. your team) but that’s coming next
English
0
0
1
32
Cole Lawrence
Cole Lawrence@refactorordie·
@juancampa This looks like so much fun to build. Argh! JSX as an intermediate format for your own renderer is so cool. Figma does something like this with their widgets & they run the code in QuickJS also
English
1
0
6
98
Juan Campa
Juan Campa@juancampa·
Want to try a brand new way of building UIs? Our dashboard is out now and it makes building utilitarian UIs very quick and easy. It's great for internal tools, admin panels, personal utilities, etc. You (alongside Brane🤖) write JSX, but the whole thing runs on our Rust-based rendering stack that keeps every interaction buttery smooth. What makes it different than anything else is that there's a direct correspondence between a ui element, the data it uses, and the code that generated it. So you can quickly jump around to make tweaks as needed.
English
2
6
20
1.5K
Juan Campa
Juan Campa@juancampa·
@thdxr The plan for X was to turn Twitter into a western WeChat. So probably the beginnings of that
English
0
0
0
161
dax
dax@thdxr·
what is this
dax tweet media
English
55
2
183
30.2K
Juan Campa
Juan Campa@juancampa·
@skalskip92 @NBA Have you considered mapping the feet, instead of the player? Might help with shakiness, and it would add orientation
English
1
0
3
4K
SkalskiP
SkalskiP@skalskip92·
I can finally map @NBA player's position from the camera perspective onto the court map it's still a bit shaky... I'll smooth it out later it's time to detect shooting motions and mark the shot location! some of the code has already been migrated to: github.com/roboflow/sports
English
265
816
10.1K
1.6M
Juan Campa
Juan Campa@juancampa·
@tbdr It is! Were you able to try it?
English
1
0
0
63
Juan Campa
Juan Campa@juancampa·
We're launching our new dashboard UI in a few hours and it's honestly quite insane: - JSX but rendered in Rust+Egui (immediate mode) - Instant feedback loop on every keystroke - Semantically aware UIs (so AI can work alongside) We're aiming to provide the ideal tool to build utilitarian applications (think internal tools, automations, etc) But there's more! - Brane: our new assistant that can interact with anything on your graph as well as write Membrane code, including the dashboard. - Database drivers for postgres, mysql and mssql (for when durable javascript objects are not enough) - Membraney auto-completion - A myriad of other improvements on top of our existing durable javascript runtime Stay tuned for the launch later today!
English
1
5
32
1.8K