React Native

9 posts

discord3 min readCurated summary

Discord Patch Notes: July 7, 2026

Discord’s July 7, 2026 patch focuses on performance improvements, cross-platform reliability, usability fixes, and bug cleanup. Notable changes include nearly 20% faster typical iOS startup times through React Native’s Fabric architecture, faster session connections, Linux looping-media fixes, silent message forwarding, and channel pinning for all servers. The remaining changes address a wide range of interface, profile, notification, search, and platform-specific issues. ## Performance and Reliability - iOS migration to React Native’s New Architecture, Fabric, produced nearly 20% improvements in typical app initialization times. - A session-start configuration change reduced p95 and p99 connection times by approximately 100 milliseconds. - Linux GIFs and videos now loop correctly after a deep media-stack fix. - Linux no longer gradually leaks X11 connections on NVIDIA systems, which could eventually prevent other applications from opening. - Windows startup now launches Discord quietly in the background instead of stealing focus from games. - Desktop clients no longer stop accepting mouse clicks after two rapid refreshes. ## Messaging and Server Features - Message forwarding now supports `@silent`, allowing users to forward messages without notifying recipients. - Channel Pinning is now available on all servers, rather than only Community-enabled servers. - Invites to servers a user already belongs to now open the server directly instead of incorrectly starting Server Tag Adoption. - Invalid search filters such as `has: hello` are no longer treated as valid filters on Android and iOS. ## Desktop Interface Fixes - Profile cards, custom-status hover bars, and other elements now have corrected corner shapes, positioning, and overflow behavior. - Long searches no longer cause “No results” text to overflow searchable dropdowns. - Small login windows no longer show an unexpected scrollbar or misaligned sign-in box. - Adding widgets while editing a profile no longer discards unsaved changes. - Badge links now close the profile modal before opening Nitro Home or the Shop. - The “24 hours” custom-status expiration now lasts a full 24 hours instead of clearing at midnight. - Spelling suggestions now appear when right-clicking misspelled text in fields such as display names, poll questions, and channel names. - Search filter dates no longer shift forward by a day when reopening the filters modal. - The Inbox keybind no longer locks the client when another modal is open. - Nitro items in a user’s own wishlist now open the subscription modal instead of offering an impossible self-gift. ## iOS Improvements - Channel-list scrolling is smoother and no longer jitters or jumps. - Notification settings correctly recognize already-enabled push notifications without requiring the page to be reopened. - Profile previews now reflect pending display-name style changes. - Scheduled event and Live channel location text truncates correctly within cards. - iPad browser invites now preserve the invite code and display the invite properly in Discord. - Profile-tab scrolling no longer causes content clipping. - Shop item previews no longer make profile text flash and disappear. - Nitro perk descriptions are easier to scroll when system text is enlarged. - Various visual issues were corrected, including theme-colored boxes, unclear channel-list banners, and invisible or overflowing elements. ## Android Improvements - Nitro carousel indicators are now visible across default themes. - Incomplete server-application alerts can be dismissed by tapping outside them or pressing Back. - Profile-picture editor labels and sliders for “Scale” and “Rotate” now appear correctly on affected themes. - Profile Call and Message buttons now render at consistent sizes after accepting a friend request. Overall, the update is primarily a broad maintenance release: users should see faster startup and connections, more consistent media and navigation behavior, and fewer platform-specific interface bugs.

Read original(opens in new tab)
github3 min readCurated summary

Building AI-powered GitHub issue triage with the Copilot SDK

The post demonstrates how to build IssueCrush, an AI-powered GitHub issue triage app using the GitHub Copilot SDK. The app presents issues as swipeable cards and uses Copilot to generate concise summaries and recommended actions. Because the SDK depends on Node.js and the Copilot CLI, the integration runs on a server rather than directly inside the React Native client. ## IssueCrush: Faster Issue Triage - IssueCrush displays GitHub issues as swipeable cards: - Swipe left to close an issue. - Swipe right to keep it. - Use “Get AI Summary” to receive actionable context. - Copilot summarizes lengthy issue descriptions and suggests actions such as: - Investigate the problem. - Implement the request. - Assign it to a relevant team. - Close it as a duplicate. - The goal is to reduce the cognitive load of reviewing many issues across active repositories. ## Server-Side Architecture - React Native cannot directly use the Node.js-based Copilot SDK. - The SDK launches a local Copilot CLI process and communicates with it through JSON-RPC. - The recommended architecture is: - React Native or web client communicates with a Node.js server over HTTPS. - The server runs the Copilot SDK and manages the Copilot CLI. - Clients separately use GitHub OAuth and the GitHub REST API for issue data. - Server-side integration provides: - A shared SDK instance for multiple clients. - Secure storage of Copilot credentials and API tokens. - Graceful fallback summaries when AI services are unavailable. - Centralized logging for latency, failures, prompts, and responses. ## Required Setup - Install the Copilot CLI on the server and ensure it is on the system `PATH`. - Use either: - A GitHub Copilot subscription, or - A BYOK configuration with personal API keys. - Authenticate the CLI with `copilot auth` or the `COPILOT_GITHUB_TOKEN` environment variable. ## Copilot SDK Lifecycle The SDK uses a session-based workflow: - Import `CopilotClient` and `approveAll`. - Create and start a `CopilotClient`, which launches the CLI. - Create a session with a selected model such as `gpt-4.1`. - Send a prompt using `session.sendAndWait()`. - Read the response from `response.data.content`. - Disconnect the session and stop the client. The required lifecycle is: `start() → createSession() → sendAndWait() → disconnect() → stop()` Sessions should always be cleaned up in a `finally` block. Missing `disconnect()` calls can leak resources and cause memory issues, while suppressed cleanup errors prevent them from hiding the original failure. ## Prompt Design for Triage - The prompt provides structured issue information instead of only passing raw text. - Context includes: - Title and issue number. - Repository name. - State and labels. - Creation date. - Author. - Full issue body. - The model is instructed to produce a concise two- or three-sentence summary that: - Explains the issue. - Identifies the key problem or request. - Recommends a practical next step. - The response should be clear, actionable, and free of Markdown formatting. A server-side Copilot integration offers a practical way to add AI-assisted triage while keeping credentials secure, maintaining fallback behavior, and preserving reliable resource management.

Read original(opens in new tab)
discord3 min readCurated summary

Discord Patch Notes: December 8, 2025

Discord’s December 8, 2025 patch focuses on faster uploads, quicker video playback, a redesigned Desktop User Settings experience, and broad reliability improvements. Major infrastructure updates include resumable media uploads, Rust-based retry logic, and CDN changes that substantially reduce video startup latency. The release also contains numerous desktop, mobile, chat, localization, and UI bug fixes. ## Uploads, Performance, and Settings - Media uploads now support resuming after interruptions, which is especially useful for large files. - New Rust-based retry logic reduced upload latency by about 15% overall: - iOS: 21% faster - Android: 10% faster - CDN configuration changes improved video embed startup times: - P90 latency fell from 600 ms to 275 ms. - P95 latency fell from 1,250 ms to 658 ms. - Rare cases involving videos taking up to 40 seconds to start were also addressed. - Desktop User Settings received a redesign intended to make options easier to find, with metrics indicating improved usability. ## Platform and General Improvements - Mobile apps upgraded from React Native 0.78 to 0.81.4. - Desktop upgraded to Electron 37. - Server Hub search is now more performant, particularly for hubs connected to more than 50 servers. - Linux clients no longer display duplicate titlebars. - Various desktop rendering issues were fixed, including stray white pixels, incorrect scrollbars, spacing problems, and MacOS traffic-light alignment. - Server folders, unread channels, invite searches, profile previews, and image previews received multiple correctness fixes. - Emoji Studio now properly re-centers images when using Reset Image. - Search in Settings no longer produces empty categories for certain queries. - Several localization issues were corrected, including “Edit Profiles” and “Search in DMs.” - Users can now dismiss the Upcoming Events banner in voice channels. - Event invites, event popouts, custom-location sharing, and event Join buttons were repaired. - Android and iOS fixes address server folders, server lists, nameplates, role settings, and profile customization controls. ## Chat and Messaging Fixes - Multiline typing in the Desktop Message Forward interface no longer causes visual shifting. - Spoiler timestamps now render correctly before content is revealed. - Mobile fixes improve message-row sizing, reply navigation, forum interactions, and thread rendering. - Android code blocks once again use monospace formatting. - Sticker Picker and Emoji Picker navigation now behaves correctly on Android. - Scrollbars remain interactive when thread previews are present. - Inbox navigation to thread-creation messages has been fixed. - Forum post search no longer includes excessive blank space. - Additional iOS fixes address swiping to reply, navigating to message replies, and displaying the thread spine connecting avatars to threads. Overall, the update combines meaningful performance improvements with a large collection of visual and interaction fixes. Users who depend on large uploads, embedded video, mobile chat, or Desktop settings should benefit most, though the changes may continue rolling out across platforms.

Read original(opens in new tab)
discord3 min readCurated summary

Discord Patch Notes: September 3, 2025

Discord’s September 3, 2025 patch focuses on scaling, performance, mobile improvements, permissions, and a large collection of cross-platform bug fixes. Discord increased the default server capacity from 2.5 million to 25 million members while improving update processing and asynchronous operations for very large communities. The Android app also moved to React Native’s new architecture, with early results showing smoother performance, particularly on lower-end devices. ## Large-Server Improvements - Raised the default server member limit to **25 million**, up from 2.5 million. - Batched certain server updates and shifted more work to asynchronous processes to improve stability. - Added further improvements for large servers and those using Community features. - Continued work based on administrator feedback, including changes described in Discord’s Community Server Cleanup Report. ## Android and Mobile Updates - Upgraded Android to React Native’s new architecture across most of the app. - Early performance data shows: - Smoother app operation. - Fewer low-frame-rate problems. - Better behavior on lower-end devices. - Improved the mobile Shop with: - Faster loading. - Gifting. - Nameplate purchases. - A redesigned layout closer to the desktop experience. - Added camera-enable and camera-disable sound effects, especially useful when using keyboard shortcuts. - Improved mobile rendering and behavior for Markdown, member statuses, thread lists, voice-region menus, browser settings, and rotated layouts. ## Server Management and Permissions - Increased the pinned-message limit from **50 to 250**. - Added a dedicated permission for pinning and unpinning messages, separating it from **Manage Messages**. - Fixed issues involving: - Role assignment during Server Onboarding. - Reordering roles on iOS. - Server subscriptions and subscription modals. - Community server icons. - Server Insights announcement-channel charts. - Twitch integration’s Force Sync button. - Nitro boosts and localized Japanese formatting. ## General Usability Fixes - Mobile member lists now correctly display “Can’t Wait For” and “Obsessed With” status messages. - Fixed profile views that could become impossible to close after rapidly opening mutual-friend profiles. - Corrected poll notification placeholders on Android. - Restored proper Markdown rendering on mobile Event pages. - Fixed Quick Switcher search prefixes such as `!`, `@`, `#`, and `*`. - Improved DM context-menu hitboxes and fixed several spacing, padding, alignment, and tooltip issues. - Corrected invalid invite embeds, owner crown alignment, role and app badge positioning, and Friend Suggestions layout. - Fixed desktop pop-out windows incorrectly displaying a menu bar. ## Notifications, Themes, and Accessibility - Automod incident notifications now follow users’ existing push-notification settings. - Fixed randomly changing client theme colors. - Improved visibility and formatting for light-theme Student Hub search placeholders. - Corrected localization issues involving Nitro Home and other interface elements. - Fixed several unreadable, misaligned, or incorrectly sized buttons and controls. ## Platform-Specific Fixes - **iOS:** Fixed thread-list flickering, browser selection, voice-region menu backgrounds, role reordering, phone-related interface behavior, and channel details after rotation. - **Android:** Fixed phone country-code controls, app badge alignment, poll notifications, and mobile layout issues. - **Windows:** Corrected navigation from Action Center notifications. - **macOS:** Fixed an unclickable title bar. - **Desktop/Web:** Resolved issues with custom keybind warnings, pop-out windows, search, tooltips, subscription flows, and various menus. Discord says all listed fixes have been merged, though they may still be rolling out gradually across platforms.

Read original(opens in new tab)
lineOriginal article

Hosting the Tech Conference Tech- (opens in new tab)

LY Corporation is hosting its global technology conference, Tech-Verse 2025, on June 30 and July 1 to showcase the engineering expertise of its international teams. The event features 127 sessions centered on core themes of AI and security, offering a deep dive into how the group's developers, designers, and product managers solve large-scale technical challenges. Interested participants can register for free on the official website to access the online live-streamed sessions, which include real-time interpretation in English, Korean, and Japanese. ### Conference Overview and Access * The event runs for two days, from 10:00 AM to 6:00 PM (KST), and is primarily delivered via online streaming. * Registration is open to the public at no cost through the Tech-Verse 2025 official website. * The conference brings together technical talent from across the LY Corporation Group, including LINE Plus, LINE Taiwan, and LINE Vietnam. ### Multi-Disciplinary Technical Tracks * The agenda is divided into 12 distinct categories to cover the full spectrum of software development and product lifecycle. * Day 1 focuses on foundational technologies: AI, Security, Server-side development, Private Cloud, Infrastructure, and Data Platforms. * Day 2 explores application and management layers: AI Use Cases, Frontend, Mobile Applications, Design, Product Management, and Engineering Management. ### Key Engineering Case Studies and Sessions * **AI and Data Automation:** Sessions explore the evolution of development processes using AI, the shift from "Vibe Coding" to professional AI-assisted engineering, and the use of Generative AI to automate data pipelines. * **Infrastructure and Scaling:** Presentations include how the "Central Dogma Control Plane" connects thousands of services within LY Corporation and methods for improving video playback quality for LINE Call. * **Framework Migration:** A featured case study details the strategic transition of the "Demae-can" service from React Native to Flutter. * **Product Insights:** Deep dives into user experience design and data-driven insights gathered from LINE Talk's global user base. Tech-Verse 2025 provides a valuable opportunity for developers to learn from real-world deployments of AI and large-scale infrastructure. Given the breadth of the 127 sessions and the availability of real-time translation, tech professionals should review the timetable in advance to prioritize tracks relevant to their specific engineering interests.

discord3 min readCurated summary

Discord Patch Notes: June 3, 2025

Discord’s June 3, 2025 patch focuses on performance, reliability, media playback, and cross-platform consistency. Major improvements include ARM infrastructure migration, faster video startup, better mobile image compression, persistent voice-message playback, and early adoption of shared Rust components. The release also includes framework upgrades and a broad set of UI, navigation, billing, accessibility, and platform-specific bug fixes. ## Infrastructure and Performance - Discord is migrating parts of its infrastructure to ARM hardware. - The change has reduced per-core load and improved latency. - ARM machines also lower energy consumption. - Keyframe-generation changes reduced video and stream startup latency by more than 10% on average. - Discord migrated one core store to a shared, multi-platform Rust implementation. - Early results showed improvements in memory and CPU usage, crashes, and other reliability metrics. - More stores and APIs are planned for migration. - Desktop clients were upgraded to Electron 35. - Mobile clients moved to React Native 0.78, while all clients upgraded to React 19, with incremental performance improvements and no significant regressions. ## Voice, Images, and App Links - Voice messages on desktop and web now support playback-speed controls. - Playback position is preserved when users close the app or navigate away. - Mobile image compression now adapts to source resolution. - Lower-resolution images receive higher-quality embeds. - Median upload latency has decreased across platforms. - Discord revamped app-link handling to resolve Android linking failures and improve compatibility with modern apps. ## General Bug Fixes - Fixed an iOS Billing Settings issue involving an empty entry field and moved Manage Nitro to the top of the page. - Fixed Android poll results that could not be swiped horizontally. - Soundboard uploads now work correctly in Firefox. - Corrected mobile profile scrolling that exposed blank space. - Fixed multi-line status rendering, Custom Status emoji alignment, and unreadable light-mode text. - Starting a Desktop settings search with “M” no longer freezes the application. - Mac popouts now correctly render Unicode emojis in full-screen mode. - Fixed duplicate server entries caused by lurking through Discovery. - Corrected server settings save prompts, profile badge previews, folder rendering in Safari, and profile banner updates on iOS. - Fixed Soundboard picker placement, event-link copying, Shop navigation, 2FA login-state messaging, and Expression Picker spellcheck replacement. - Removed a redundant Linux title bar and corrected channel-list alignment for servers with many channels. - Profile edits now prompt consistently for saving across platforms. - Fixed stale forwarding-search results, invite-modal corner rendering, light-mode member text, overlay popups, privacy-page dividers, folder mention badges, and stream-invite display names. - Improved Discovery scaling for different window sizes. - Fixed “Go to Shop” links from avatar decoration and profile-effect previews. - Corrected rendering issues involving passkey backup codes and several additional interface elements. The changes had been merged but might still be rolling out by platform. Users encountering remaining issues can report them through Discord’s community bug megathread or test upcoming iOS builds through TestFlight.

Read original(opens in new tab)
discord3 min readCurated summary

Supercharging Discord Mobile: Our Journey to a Faster App

Discord’s mobile performance work focuses on making power-user workflows faster and more reliable, especially on lower-end Android devices. The team improved memory usage and frame rates through virtualization, native UI optimizations, recycling, and better media formats. When React Native could not meet performance needs, Discord chose targeted native implementations despite the added maintenance burden. ## React Native and Performance Priorities - Discord uses React for desktop and React Native for mobile. - Android moved to React Native in 2022 after improvements in device capabilities and the Hermes JavaScript engine. - The transition initially affected startup performance, but median startup times were cut in half during 2023. - Recent work targets heavily used features and users with large servers, busy chats, and extensive emoji collections. ## Virtualized Server List - The old server list kept every server view and icon—including animated icons—in memory. - The rewritten virtualized list retains only information for servers currently visible on screen. - The change also enabled improved drag-and-drop animations. - Users with more than 100 servers saw: - 14% lower startup memory usage - 10% faster overall startup time ## Native Chat Performance Improvements - Discord profiled its already-native chat list and found opportunities to improve loading, scrolling, and memory use. - Application Components and Media Mosaics now use recycling mechanisms. - Infrequently used elements, including spoilers and upload overlays, are loaded lazily. - Message containers and reactions were made faster to measure. - Recycling pools are pre-filled with common chat elements before a chat is opened. - Results included up to 60% fewer slow frames and approximately 12% lower chat-list memory usage. ## Rebuilding the Android Emoji Picker - Large servers can provide hundreds of custom emojis, many of them animated. - The previous React Native picker produced blank frames—and sometimes crashes—on budget Android devices during rapid scrolling. - Discord rebuilt the picker natively for Android rather than applying incremental optimizations. - Stress tests involving emojis from 200 servers eliminated blank frames and delivered smooth scrolling on low-end hardware. - Discord accepted the cost of maintaining separate Android and iOS implementations, while planning to reassess the decision with React Native’s New Architecture. ## Animated WebP Emojis - Discord’s media proxy added animated WebP support. - Replacing GIFs with WebP enabled animated emojis to render at up to 60 frames per second on low-end devices. - The team plans to publish more details about its animated-image improvements. ## Eliminating ChannelList Blanking - Discord initially replaced its homegrown React Native FastList with Shopify’s FlashList. - FlashList simplified development because components did not require precisely accurate dimensions. - In practice, FlashList blanked more frequently on low-end Android devices. - Discord restored and refactored FastList, eliminating blanking even on a $50 phone. Discord’s approach combines broad React Native development with native solutions where performance is critical. Virtualization, recycling, lazy loading, and efficient image formats provide general improvements, while platform-specific rewrites remain justified for demanding experiences such as emoji browsing.

Read original(opens in new tab)
figma2 min readCurated summary

Six integrations to help your product team collaborate in Figma | Figma Blog

Figma argues that its open platform and API help product teams connect design work with the tools used for documentation, development, feedback, and production. The integrations described keep designs current across workflows, reduce handoff friction, and help teams validate ideas with users before investing heavily in implementation. ## Confluence: Keep Documentation and Designs in Sync - Live Figma files and prototypes can be embedded in Confluence pages. - Product specifications and requirements remain connected to the latest designs. - Teams no longer need to manually replace screenshots whenever designs change. - Developers can review current designs directly within the documentation they use as a source of truth. ## GitLab: Connect Designs to Development Tasks - The GitLab plugin lets teams upload Figma designs directly into GitLab issues. - Developers can review designs alongside tasks, issues, and code changes. - Designs can be versioned and discussed in context, improving collaboration during sprints. - The integration reduces the need to move manually between tools. ## Avocode: Simplify Design Handoff - The Avocode plugin syncs finished Figma designs to Avocode projects. - Developers can inspect layers, export assets, and retrieve measurements and color values. - It supports copying code snippets in languages including CSS, CSS-in-JS, and React Native. - Designers can continue exploring in Figma while developers work from a stable, production-ready version. ## Pendo: Gather Feedback from Real Users - Pendo can embed live Figma wireframes and prototypes into targeted areas of a product. - Product teams can expose proposed features to specific user segments before development. - Feedback can be collected through surveys, open-text responses, and scheduled user interviews. - Early testing helps teams identify customer needs and problems before launch. ## Bubble: Turn Designs into Web Apps - Bubble allows teams to import Figma designs into a no-code web app workflow. - Each Figma frame becomes a page in the Bubble application. - Vectors are uploaded as images during the import process. - The integration shortens the path from visual design to implementation without requiring traditional coding. Overall, these integrations extend Figma beyond design by connecting it to documentation, issue tracking, developer handoff, user research, and no-code development. Teams can use them to maintain a shared source of truth and move more efficiently from concept to shipped product.

Read original(opens in new tab)
figma2 min readCurated summary

Creating atomic components for an atomic design system in Figma | Figma Blog

littleBits built an atomic design system in Figma to support four mobile and tablet apps across iOS and Android within a six-month roadmap. Drawing on Atomic Design and Bootstrap, the team organized reusable styles and components while adapting the structure to their actual workflow. They concluded that a simplified system aligned with React Native components was more practical than rigidly preserving separate “molecule” and “organism” categories. ## Atoms: Styles, colors, and icons - Text styles and colors were defined with Figma Styles. - A customized icon set based on Modern Pictograms was imported and converted into components. - Colors used semantic names inspired by Bootstrap, including categories for: - UI states - Grayscale values - Brand colors - Backgrounds - Overlays - Outlines - Semantic naming made future theme changes safer. For example, `bg-light` could consistently represent backgrounds while `ui-dark` represented foreground elements. ## Simplifying molecules and organisms - The team found that complex molecules and organisms were rarely reused across multiple templates. - Instead, both categories were grouped under the simpler name “Components.” - This structure mapped more naturally to the React Native components being developed in parallel. - Components included cards, tooltips, and foundational controls such as buttons. ## Combining styles without unnecessary components - Figma Styles enabled designers to combine text styles and color swatches directly. - Rather than creating separate components for every color-and-text combination, the team documented combinations in a style guide and applied styles as needed. - Mixing text styles within a single text box also supported copy with variable lengths. - This approach reduced document complexity and improved usability and performance. ## Reusable button components - Buttons were treated differently because they appeared frequently and included styling details such as outlines that were harder to manage centrally in Figma. - The team created nested components for: - Primary buttons - Secondary buttons - Tertiary buttons - Other frequently repeated custom buttons - These reusable button components provided a consistent foundation for the broader design system. The resulting system balanced atomic design principles with the team’s real reuse patterns, creating a practical Figma library that supported both design work and React Native implementation. The next step was applying these components to responsive layout templates.

Read original(opens in new tab)