Loading video...

Video Failed to Load

Go Home

📢 Introducing the React Aria Sheet component! ‣ Native swipe gestures powered by CSS scroll snapping ‣ Gesture-synced animations ‣ Snap points ‣ Stacking ‣ Elastic over-scroll ‣ Keyboard aware Wrote a blog post about how it works!

53,143 views • 9 days ago •via X (Twitter)

36 Comments

Devon Govett's profile picture
Devon Govett9 days ago

Also in this release: Improved overlay positioning with software keyboard, Turbopack optimize locales plugin, and plenty of bug fixes. Thanks to everyone who contributed! 😍

Teemu Sirkiä's profile picture
Teemu Sirkiä9 days ago

Looks great! Any suggestions how to create, for example, a trigger which would use Sheet on mobile devices but Dialog when using a normal size screens?

Devon Govett's profile picture
Devon Govett9 days ago

Thanks! Maybe a wrapper component with a media query? let isDesktop = useMediaQuery("(width >= 768px)") return isDesktop ? <DialogTrigger /> : <SheetTrigger />

Teemu Sirkiä's profile picture
Teemu Sirkiä9 days ago

That could be one option. I guess that in most contexts the Sheet contents would work fine in Dialog when using a larger screen. Sheet does not feel a natural component/pattern outside the mobile world.

Peter Emad's profile picture
Peter Emad9 days ago

@devongovett Side shees feels good on desktops

Teemu Sirkiä's profile picture
Teemu Sirkiä9 days ago

@devongovett Yes, that’s true. Using ”right” for the position works very well in that context.

Max Schmitt 🍰's profile picture
Max Schmitt 🍰9 days ago

Amazing job, the sheet feels really great! Thanks for the write-up. Very interesting to see how you used scroll-snap and timeline animations for this. Did you have to do any special magic to deal with iOS Safari's address bar?

Devon Govett's profile picture
Devon Govett9 days ago

Thanks! Yes I sure did. 😅 We make heavy use of dynamic viewport units, and also add some extra padding so you can swipe the sheet fully off the screen even behind the toolbar.

Max Schmitt 🍰's profile picture
Max Schmitt 🍰9 days ago

Uff, this damn address bar 😅

Mike Solomon's profile picture
Mike Solomon9 days ago

This is extremely impressive!

Tobias Möritz's profile picture
Tobias Möritz9 days ago

nice, finally i can throw out my custom code for this

sqrtsanta's profile picture
sqrtsanta9 days ago

Holy moly, that's some marvelous engineering. ngl I continue to use react only because it has react-aria

JWWW's profile picture
JWWW9 days ago

this is very nice! brb migrating from vaul

Jeff Rosen's profile picture
Jeff Rosen9 days ago

Snap points feature is beautiful

Jason Gerbes's profile picture
Jason Gerbes9 days ago

Great work! Impressive use of modern CSS

🇺🇾 Emilio Franceschini's profile picture
🇺🇾 Emilio Franceschini9 days ago

sweet

Daniel Kempner's profile picture
Daniel Kempner9 days ago

Holy grail component.

Juliano Santos's profile picture
Juliano Santos9 days ago

Let me see if I understand correctly: Shadcn Drawer will be based on RAC Sheet, while Shadcn Sheet is based on RAC Dialog? 😅

Daniel's profile picture
Daniel9 days ago

Great work. Feels silky. base-ui could take some inspo from here

Roman's profile picture
Roman9 days ago

looks perfect 😍

Anush Shetty's profile picture
Anush Shetty9 days ago

keyboard aware is the underrated bit. snap points don't help if the input disappears

Julio Garcia's profile picture
Julio Garcia9 days ago

Something like this for react native would be awesome

Henrique Limas's profile picture
Henrique Limas9 days ago

This is great! Just curious about your thoughts on bringing this pattern to the web. Like, the app will need to identify with JS that it’s a mobile device as we shouldn’t have this pattern in desktop (debatable). (Not blaming here, just trying to understand and learn smth)

Devon Govett's profile picture
Devon Govett9 days ago

I think side sheets are pretty nice on desktop too, and it's nice to swipe away via the trackpad.

Henrique Limas's profile picture
Henrique Limas9 days ago

True the side one make sense for dsk. We removed from our DS (web only) the sheet (we call it drawer) and the fullscreen dialog as those are very native specific and they need isDesktop/isMobile type of checks that we wanted to avoid. But nice work there! Pretty cool!

Mateus Vahl's profile picture
Mateus Vahl9 days ago

Safari is really annoying with this safe area 😞. It basically forces you to have a solid background. I was trying to create a Sheet with blur() yesterday, but the safe area completely breaks the continuity of the sheet.

Devon Govett's profile picture
Devon Govett9 days ago

It is possible! You can see in the sheet demo above it goes behind the address bar. The trick is that you can't use position: fixed:

Mateus Vahl's profile picture
Mateus Vahl9 days ago

Got it working! Thanks!!!

Daniel Kempner's profile picture
Daniel Kempner9 days ago

I'm noticing in the demo that there's a brief x-scroll on desktop web when closing the sheet. I wonder why?

Arne Wiese's profile picture
Arne Wiese9 days ago

@grok what’s the bundle size impact?

Elliot's profile picture
Elliot9 days ago

Really neat! I think you should also let developers configure scroll-snap-stop on specific snap points.

Colin's profile picture
Colin9 days ago

Smooth, nicely done

Mikhail Rogov's profile picture
Mikhail Rogov9 days ago

scroll snapping for the physics instead of a gesture lib is smart, less JS fighting the browser. does it fall back clean on older safari

Devon Govett's profile picture
Devon Govett9 days ago

scroll snap is widely supported for ~10 years. We do have a fallback for view timeline though, which is coming to Firefox 159.

Mikhail Rogov's profile picture
Mikhail Rogov9 days ago

good to know the fallback is already scoped, view-timeline on firefox 159 is a specific date to build against instead of guessing browser support forever

symmetry's profile picture
symmetry9 days ago

the left and right padding on the sheet should be less by default imo

Related Videos

Build uncompromising high-performance, high-fidelity apps with React. What you see is not the Apple Messages app, nor is it meant to be 1:1. Rather it serves as an aspirational and real example of UI/UX that is possible. Every detail from the bubble animations to keyboard gestures to scroll view insets and safe areas to parallax timestamps required care and attention. Quality UIs come from caring hard. The little chat bubble tails that morph away when the next message animates in. Timestamps that scroll at a different rate than the bubbles. Peek gestures powered by UIKit that lift a chat bubble, tail and all, with a gentle haptic pulse. The subtle shadow of the text composer and responsively sliding down the keyboard in pixel-perfect concert. The composer shrinking its width to fit iPhone’s rounded bezel. The beautiful Liquid Glass refractions have the level of glassiness chosen by the user (new in iOS 27). Scroll view insets that adjust to fit the home bar and keyboard dynamically, creating a sense of depth as the chat bubbles are slightly visible as they scroll under the keyboard. Keeping the keyboard on screen if the prior screen already presented it. Sliding the keyboard and composer with the screen when the user drags to navigate back. I am excited to explore using the new iPhone Duo view controllers natively with React when the time comes. There is always room for innovation and improvement. This chat demo runs at 120 FPS on iOS 27 even on my phone that’s four versions old now. There are several approaches to high-performance lists. I explored a new Expo scroll view that uses the native gesture systems along with react-native’s VirtualView (codenamed “Fling” to reflect the speed of flinging a scroll view), which Meta’s React team designed to prioritize scroll momentum with React’s scheduler. There are tradeoffs with other scroll strategies for how the scroll views gracefully degrade, and they can be swapped out based on what’s best for your app’s use case. And, by virtue of using modern React, high-priority events like user gestures can preempt lower-priority ones like a network response. Let us dispel any myth that using React requires compromising on beautiful, smooth, user-friendly UI/UX that Uses the Platform. Let us dispel any myth frame-perfect UI coordination is not achievable. The Hermes thread and the UI thread can coordinate when needed, like for controlled text inputs. Let us dispel any myth that React Native’s performance is impacted by a bridge, let alone has a bridge. Bridgeless JSI and the Fabric renderer are here for apps that use the New Architecture. What about Android? The app runs and I’ll share a screenshot from my cloud agent’s emulator. With some attention to detail dedicated to Android I’m confident crafted UX is attainable. I’ve spent my tokens once and have a structural head start everywhere. One more thing! Most of this chat’s application code is written with , , , and other familiar elements. The styling is mostly CSS, including linear-gradient(), background-attachment: fixed, and semantic platform colors that adapt to dark mode. Not just appearance - CSS Animations and CSS Transitions run entirely natively. There are a handful of custom native components written in Swift and Kotlin, like the chat bubbles and a custom CAShapeLayer and UIBezierPath for the tails. Native coding is a first-class feature. The way to think about building beautiful apps this way is React and Native, not React vs. Native. Aspire high and raise your ambitions for what is possible!

James Ide

140,825 views • 1 month ago

Future CSS Tip! 🍏 You can create this Apple-style photo scroller by combining CSS scroll-driven animations and CSS scroll-snap 😍 Peep those changing captions 👀 No JS! img { animation: highlight both linear; animation-timeline: view(inline); 👈 Horizontal animation-range: cover 0% cover 50%; 👈 Finish } @ keyframes highlight { 50% { translate: 0 0; scale: var(--starting-scale); 👈 props opacity: var(--starting-opacity); 👈 } 100% { translate: 0 0; scale: 1; opacity: 1; } } Without the animation support, you get a standard unordered list containing some s 🤙 How do we swap the captions though? The "trick" is to use position: absolute on the figcaption and animate their opacity based on the ViewTimeline of their parent list item 😎 figcaption { animation: show both linear; animation-timeline: --list-item; } @ keyframes show { 0%, 45%, 55%, 100% { opacity: 0; } 50% { opacity: 1; } } li { view-timeline-name: --list-item; view-timeline-axis: inline; 👈 important! } The parent of the scroll track uses position: relative so all the captions sit in the middle even though they are in the right place for the markup 🙌 The last bit is the scroll-snap 🤙 Not much to it at all. Wrap the list and make it scrollable. Then add scroll-snap-type .wrapper { scroll-snap-type: x mandatory; overflow-x: scroll; } Then make sure each list item has scroll-snap-align set on it li { scroll-snap-align: center; } That's it! Pretty cool demo to put together and see how to do this stuff with these APIs 🤓 A lot of cool little tricks to pick up for writing your CSS! ⭐️ CodePen.IO link below! 👇

jhey ʕ•ᴥ•ʔ

234,583 views • 3 years ago

CSS Tip! 🍬 You can create a CSS-only sticky CTA using position: sticky or scroll-driven animations 🤙 .cta { position: sticky; margin-top: 110vh; bottom: 2rem; /* 👈 Stick! */ } This is one way 👀 This first way relies on you setting a layout on the body and putting the CTA in a zero-space part of the layout body { display: grid; grid-template-columns: auto 0; } The children of the body are an element with your content and then the CTA. You could also use display:flex too. .content { flex: 1 0 100%; } .cta { place-self: end; } As you scroll the body, the CTA comes into view and sticks in position 🙌 That's one way. If you want to take it further and do something like flip between showing or not, maybe scale it up, or add some special easing, etc. an animation is another way 📜 First, change the styles for your CTA. Note the translate property that's powered by a custom property .cta { position: fixed; bottom: 2rem; right: 2rem; translate: 0 calc(20vh - (var(--show) * 20vh)); transition: translate 0.875s var(--elastic); } Next you need a custom property that you're going to animate @​property --show { inherits: true; initial-value: 0; syntax: ' '; } Lastly, you animate this value on the body. As the property value changes, the value will trickle down to the CTA @​supports (animation-timeline: scroll()) { body { animation: show-cta both steps(1); animation-timeline: scroll(root); animation-range: 0 10vh; } @​keyframes show-cta { to { --show: 1; } } } Using @​supports you can use this as a progressive enhancement. If scroll-driven animations are supported, use them. Otherwise fallback to using position: sticky 🤙 That's it! As always, any questions or requests, hit me up! 🙏 CodePen.IO link below! 👇

jhey ʕ•ᴥ•ʔ

133,020 views • 2 years ago

Every serious vibe coder should have bookmarked it. 25 vibe coding resources to keep yourself ahead of the competition. 1. - 600+ award-winning prompts + full source code for 3D and scroll-driven websites. - 100+ 3D scenes, 200+ interactive gradients, 200+ UI components. - Copy the prompt, paste into Claude, Cursor or Lovable, launch live. 2. Minimal Gallery ( - curated high-end sites to feed your agent 3. Godly ( - hand-picked sites with serious craft 4. Refero Styles ( - 2,000+ real product styles with typography 5. Component Gallery ( - 2,600+ examples of how top design systems solve the same element 6. Mobbin ( - real app flows from real products 7. DESIGNmd ( - design systems as markdown your agent can read 8. VibePrompt ( - ready-made prompts for dashboards and landing pages 9. ( - component registry that plugs into agents via MCP 10. Kinetics ( - 150+ motion effects with React code and prompts 11. shadcn/ui ( - still the gold standard for clean, reusable UI 12. Aceternity UI ( - 200+ animated React/Tailwind components 13. Magic UI ( - beautifully designed components for modern web apps 14. Motion Primitives ( - ready-to-use animation and interaction components 15. Uiverse ( - community-built UI elements and interactive components 16. Shadcnblocks ( - full blocks, not just buttons 17. mapcn ( - map components, markers, routes, popups 18. Awwwards ( - the sites that actually won 19. Liquid Glass ( - glass refraction components and effects 20. CSS Text Effects ( - creative CSS text animations and effects 21. Circle Loaders ( - creative loading animations and loaders 22. Gradient Buttons ( - gradient button styles and effects 23. Shadertoy ( - shaders to study and remix 24. 3Dicons ( - a library of free 3D icons for modern interfaces 25. Anime.js ( - lightweight JavaScript animation library for the web If you're building with AI, this list will save you hours. Save it. 🔖

Himanshu Hingorani

23,823 views • 8 days ago

CSS Tip! 🤙 You can create custom easings for your animations and transitions with linear() 🔥 :root { --bounce: linear(0, 0.39, 0.57, 0.52, ..., 1); } .digit { transition: translate 1s var(--bounce); } Perfect for adding character to animations like this MRR widget! 🫶 Some of the easing code is obfuscated in the snippet there 👆 You would likely write these custom eases once and then reuse them in your projects 🎬 For example, here's the CSS for an elastic ease 🎾 :root { --elastic: linear( 0, 0.0009 8.51%, -0.0047 19.22%, 0.0016 22.39%, 0.023 27.81%, 0.0237 30.08%, 0.0144 31.81%, -0.0051 33.48%, -0.1116 39.25%, -0.1181 40.59%, -0.1058 41.79%, -0.0455, 0.0701 45.34%, 0.9702 55.19%, 1.0696 56.97%, 1.0987 57.88%, 1.1146 58.82%, 1.1181 59.83%, 1.1092 60.95%, 1.0057 66.48%, 0.986 68.14%, 0.9765 69.84%, 0.9769 72.16%, 0.9984 77.61%, 1.0047 80.79%, 0.9991 91.48%, 1 ); } The idea is that you map a set of points between [0, 0] and [1, 1]. This is cool because you can convert something like an SVG path to these coordinates. Link below for a gist with some eases in 🤙 As for the MRR widget, the trick is to set out some number tracks and translate them to show the correct number 🧮 You can translate by line-height based on the value. And the original value you can convert to a currency string like $1,000,000.00 using JavaScript's Intl.NumberFormat() const formatter = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', }) formatter.format(1_000_000) Check out the exploding view and the video to see how it all works! 👀 CodePen.IO link below! 👇

jhey ʕ•ᴥ•ʔ

574,927 views • 2 years ago

CSS Tip! ✨ You can create these parallax effects and image cross-fades with scroll-driven animations 🤙 img { animation: fade; animation-timeline: view(); mix-blend-mode: plus-lighter } img:last-of-type { animation-direction: reverse; } @​keyframes fade { to { opacity: 0; }} This one's fun! 😁 The trick with the cross-fading image is to make use of one animation that runs at the same time on two images inside a container. You use the same animation, animation-timeline, and animation-range. But, you use animation-direction: reverse on one of the images so they go in the opposite direction 🫶 The use of mix-blend-mode: plus-lighter; produces a better cross-fade result 💯 A viewTimeline (view()) works because you know that both images are the same height. The range you can use is img { animation-timeline: view(); animation-range: cover 45% cover 55%; } That means when the image has covered 45% of the scrollport (In this case, the window), start the animation. And finish when it has covered 55% 🎬 How about the slight parallax? This is a trick with calc(). You know the top of the small image and the big image line up. And you can do this by absolutely placing the caption outside of the small image. The trick is to translate the small image by a distance so it lines up with the bottom of the big image. You can do that like this :root { --catch-up: calc( var(--big-height) - var(--small-height) ); } @​keyframes move { to { translate: 0 var(--catch-up); }} Then drive that animation with a scroll-driven animation using the container of both images as the driver 🤙 /* section contains both images */ section { view-timeline: --container; } .img-fader { animation: catch-up both linear; animation-timeline: --container; animation-range: 50vh calc(100vh + (var(--big-height) * 0.25)); } That's it! Scroll-driven image cross-fading and parallax effects without any JavaScript. This demo will work in all browsers as there is some JavaScript in place where the API isn't supported 🤙 To do that, it uses GSAP ScrollTrigger 🏆 As always, any questions, requests, etc. hit me up! 🤙 CodePen.IO link below 👇

jhey ʕ•ᴥ•ʔ

242,205 views • 2 years ago

Man, I just spent the afternoon in full vibe coding mode and whipped up this little Python script that takes any video file and converts it down to the exact JT format my Cybertruck's tailgate LED screen loves. We're talking 64x256 pixels, optimized frame rate, the whole deal so it plays smooth without hiccups. Tested it on a bunch of clips and it works like a charm. The sky really is the limit now. No more being stuck with basic animations or static images. I can pull old road trip footage, concert vids, memes, whatever, resize and convert, then beam it straight to the tailgate via the app. It's like having a mobile billboard that actually means something personal. First thing I threw on there? The full scroll of my Tesla charging passport badges. All those Supercharger locations I've hit over the years, rolling by one after another, showing everywhere the truck and I have adventured. From local spots to cross-country hauls, it's basically a digital map of memories glowing on the back. People at stoplights keep staring, probably wondering what the heck it is, but it feels epic. Like the truck is flexing its own travel log. This got me thinking about all the wild stuff we could run as we wrap up 2025 and head into the new year. Festive lights shows synced to holiday tunes? Year-end recaps with personal highlights scrolling by? Or just random fun to brighten up the winter drives when everything outside is gray and cold. What's the craziest or coolest video you'd convert and slap on your Cybertruck tailgate if you had this script? Drop ideas, I might try a few over the holidays! 🚀⚡

Try TLGen App | Brandon Starship 🇺🇸

60,955 views • 10 months ago

Claude + Reddit intelligence + LinkedIn data = Content OS that replaced a $14,500/month team. (48K followers. 500+ booked calls. $387K in attributed revenue) This 6-skill system eliminates writers, strategists, researchers, and schedulers using brand memory + real audience intelligence + calibrated AI writers... → No more $14,500/month payroll for a 4-person content team → No more 20+ hours weekly building content calendars from scratch → No more guessing which hooks actually stop the scroll → No more AI slop that sounds nothing like you → No more starting every post from a blank page Just 1 topic in → a finished month of content out. Here's how it works: → Brand Memory (your voice, proof, and exact buyer in one file. every skill runs off it. nothing generic ships.) → Reddit Intelligence (mines your ICP's subreddits for the exact phrases they use. posts start from real words, not blank pages.) → LinkedIn Viral Signal (hooks already stopping the scroll in your niche, last 30 days, ranked by real engagement.) → Four Calibrated Writers (thought leadership, lead magnet, story, value. one writer per stage of the buyer journey.) → Voice Firewall (7-dimension QA that scores and rewrites every draft before it ships under your name.) → Finished Board (every post handed over with its visual and first comment. ready to approve.) Built on real content infrastructure. Zero payroll. Consistent output. Enterprise-grade quality. Results from the system: - $14,500/month content team eliminated - 48K LinkedIn followers - 500+ calls booked from content - $387K in attributed revenue Want the complete 6-skill build? Like + comment "OS" + repost, and I'll DM it to you. (must be following)

Aryan Mahajan

63,563 views • 4 months ago

I built a Three.js rendering study inspired by Tiny Glade’s painterly aesthetic, and got it running at 120fps in the browser. Over the past few weeks, I’ve been studying how stylized games achieve that soft, handcrafted look in real time. Tiny Glade was a huge inspiration, and I wanted to use the browser as a constraint: no compute shaders, no native GPU access, and single-threaded JavaScript. As part of this study, I implemented: - GPU-driven instanced brick walls with procedural noise jitter and elastic build animations - Tree, bush, and flower rendering with billboard card expansion, wind sway, and grow animations - Procedural grass with terrain conformance and interactive push deformation - Animated water with layered noise, interactive ripples, and Fresnel-based reflections - Procedural terrain with slope-aware triplanar materials, dirt paths, and rocks - A 7-pass post-processing stack with TAA, bloom, depth of field, painterly filtering, ACES tonemapping, 3D LUT color grading, and film grain The hardest part wasn’t writing any single shader. It was making all of these systems work together at high frame rates inside WebGL, where every millisecond counts and performance problems compound quickly across animation, materials, post-processing, and scene management. Some techniques in this study were inspired by analyzing Tiny Glade’s rendering approach, while others were original implementations built from scratch from visual reference. That contrast taught me a lot: recreating an effect is one challenge, but designing your own shaders and systems to achieve a similar feel is a very different one. This is a private educational rendering study. Some temporary placeholder content is being used during the research phase, and any public or production version would use original or properly licensed assets. Huge credit to Pounce Light for the incredible art direction and rendering work in Tiny Glade: Three.js #gamedev #webgl #threejs #rendering #graphics #realtimerendering #shaderdev

Ibrahim Boona

58,625 views • 6 months ago

🌐 Inside Algorand’s Biggest Updates: Liquid Auth, Payments, Post-Quantum and More We sat down with Pera to break down some of the most important developments happening inside the Algorand ecosystem right now. Here are the standouts: • Liquid Auth is Now Live A fully decentralized, passkey-based login that removes centralized choke points like WalletConnect. Built on Web2 standards, interoperable on day one, and designed for a future where apps, games, and Web3 accounts work seamlessly. • Real Progress on Payments USDC inflows and outflows are getting easier than ever. New partnerships are turning Para into a true finance app, not just a wallet. Bank accounts, direct deposits, remittances, and on-chain settlement blended into one experience. • Cross-Chain USDC and Swaps Allbridge, Exaswap, bridges, and credit-card on-ramps. Algorand is removing friction that stops most people from ever becoming active users. • Post-Quantum Infrastructure Falcon signatures, quantum-safe state proofs, and only one major component (VRF) left before the chain is fully post-quantum. Meanwhile, many networks are just beginning to think about this. • AI Agents, X402, and Machine-to-Machine Payments Early but real. Exactly where decentralized networks need to be heading. Algorand is working towards abstracting crypto and eliminating complexity, a world where people don’t even realize they’re using blockchain. It just works. Podcast powered by Algorand Foundation

Generation Infinity

133,046 views • 10 months ago

AG-UI makes building agentic applications dramatically easier. Here's how it works. This is a model for a simple chatbot: User → LLM → Response But interactive agents that render UI, pause for approvals, and ask users for input need a much more complex model. When building these agents, a response from the LLM will include a series of state changes as the agent runs: • Agent started a task • Agent called a tool • Agent updated its state • Agent streams these tokens • Agent is waiting on a human • Agent is resuming the task The Agent-User Interaction Protocol (AG-UI) treats the LLM response as a stream of events rather than a text endpoint. In practice, here is what you get as an agent runs: 1. Lifecycle events so your UI knows where the agent is. 2. Text messages that stream tokens. 3. Tool calls so your UI can prefill a form with any required arguments. 4. State updates that keep your UI in sync with the agent. 5. Special events for human approvals, rich media, and custom needs. All of these events travel over standard transports (SSE, WebSockets, or plain HTTP) as JSON. As a result, you can build a frontend that stays in sync with the agent's progress without having to invent a custom process to make this happen. For example, building a human-in-the-loop workflow becomes an off-the-shelf component you can integrate rather than build from scratch. CopilotKit🪁 is the creator of AG-UI, and you can use it when building frontend applications pretty much anywhere: • React • Angular • Vue • React Native • Slack • Teams • Discord • WhatsApp • Telegram Here is the link for you to check it out: Thanks to the CopilotKit team for partnering with me on this post.

Santiago

17,438 views • 3 months ago

📢 IMPORTANT ANNOUNCEMENT RE: BANTER AND $TOOKER📢 A few days ago I posted about the amazing content that the meme Cooker Shillerson was posting. I found it super fun but was concerned that it wasn’t informative enough to keep it long term relevant . Having given it some thought, I imagined the impact of Cooker Shillerson type content that was created by the meme but was informative, alpha filled, regular and still funny. Basically- how would Tucker cover crypto if he were a degen. After discussions with the team, together with Banter, we are launching the world’s first meme-media channel. The Tooker Kurlson Channel will be a dedicated channel powered by the Banter infrastructure, creating high alpha crypto content, emulating how Tucker would report on real crypto stories and other relevant events. Banter has a huge research team, unparalleled infrastructure, huge funding and are experts in raising and selling sponsorships and building a media business. We will collaborate with the team at Tooker and over the next few weeks we will begin publishing high alpha , relevant stories several times a day. Tooker will also be a new host and have a dedicated show on the Banter channel that will be fun and filled with real alpha! You can also expect to see breaking news interviews with elizabath whoren , Lurry Pink $BLACKROCK , Vitaleak Butterchicken and many others. You will also see post-results reporting interviews with JensenMeme and Huang we may even host an election debate with Jeo Boden and doland tremp ! Over time we will incorporate sponsors and begin to monetize the content credibly. We will work together to build this into the world's first real meme-media channel and hopefully create a new type of media. If you want to join us on this journey the ticker is $tooker.

Ran Neuner

130,563 views • 2 years ago

Here are a few things you probably did not know about Reddit's iOS and Android apps: they are ~2.5M lines of code each, with 500+ screens, and a total of 200 native mobile engineers work on the both of them (including a dedicated iOS and Android mobile platform team) But a few years ago, things looked very different - and Reddit quietly rebuilt their native apps from 2021. Today's conversation goes through what happened and how, with three engineers from Reddit’s mobile platform team who led this work: Lauren Darcey (Head of Mobile Platform), Brandon Kobilansky (iOS Platform Lead), and Eric Kuck (Principal Android Engineer) Watch or listen: • YouTube: • Spotify: • Apple: --- Brought to you by: • Graphite (we've moved to @graphite) — The AI developer productivity platform • Sentry — Error and performance monitoring for developers. Get 150k errors (three months of Team Plan) for free at --- Three of my takeaways from this episode: 𝟭. 𝗣𝗼𝗼𝗿 𝗱𝗲𝘃𝗲𝗹𝗼𝗽𝗲𝗿 𝗲𝘅𝗽𝗲𝗿𝗶𝗲𝗻𝗰𝗲 𝗰𝗮𝗻 𝘀𝗹𝗼𝘄 𝗱𝗼𝘄𝗻 𝗮 𝗰𝗼𝗺𝗽𝗮𝗻𝘆 – 𝘀𝗼 𝗽𝗮𝘆 𝗮𝘁𝘁𝗲𝗻𝘁𝗶𝗼𝗻! One of the reasons Reddit started investing heavily in modernizing its mobile stack was that the “old stack” was slowing down developers. Reddit’s platform team got proof of this simply by asking native engineers about the biggest development-related challenges they face. 𝟮. 𝗣𝗹𝗮𝘁𝗳𝗼𝗿𝗺 𝗲𝗻𝗴𝗶𝗻𝗲𝗲𝗿𝗶𝗻𝗴 𝗶𝘀 𝗵𝗮𝗿𝗱 𝘄𝗼𝗿𝗸. Advice from Brandon for anyone looking to work on a platform team: "You should try to work at a tech company for a year or two and actually see what happens after you ship a system — and then the assumptions change! You then have to figure out how to keep this thing going. You get a bunch of software design intuition because you have to like re-evaluate your assumptions for an incredibly long time. If you can do that, you're probably ready for platform stuff." 𝟯. 𝗚𝗲𝗻𝗔𝗜 𝗰𝗼𝗱𝗶𝗻𝗴 𝘁𝗼𝗼𝗹𝘀 𝗳𝗲𝗲𝗹 𝗹𝗶𝗸𝗲 𝘁𝗵𝗲𝘆 𝗮𝗿𝗲 𝗻𝗼𝘁 “𝘁𝗵𝗲𝗿𝗲” 𝘆𝗲𝘁 𝘄𝗶𝘁𝗵 𝗻𝗮𝘁𝗶𝘃𝗲 𝗺𝗼𝗯𝗶𝗹𝗲. LLMs integrated into IDEs seem to be increasingly helpful with backend, fullstack, web and even cross-platform (React Native / Expo) projects. However, Reddit’s mobile team shared that they get a moderate boost from the Apple and Android Studio LLM additions. Native mobile development is distinctively different from web, fullstack and backend coding – and it seems that these IDEs with AI functionality have not done much to optimize for the expereince of native mobile engineers. Over time, this will likely change – but it’s a reminder that there are differences between fullstack, backend and native mobile development.(I wrote a book reflecting on more of the challenges unique to native mobile titled Building Mobile Apps at Scale)

Gergely Orosz

67,275 views • 1 year ago