cross-platform

5 posts

discord

Every Voice and Video Call on Discord Is Now End-to-End Encrypted (opens in new tab)

Discord now uses end-to-end encryption by default for nearly every voice and video call, without requiring users to opt in. The rollout, completed in March 2026, relies on the open DAVE protocol and spans desktop, mobile, browsers, consoles, bots/apps, and the Social SDK. Discord says encryption was introduced without reducing call quality or performance, though Stage channels remain exempt. ## Building DAVE Across Platforms - Discord began experimenting with voice and video E2EE in 2023. - The DAVE protocol was introduced in 2024 as an open, audited encryption system. - Support was expanded to: - Desktop and mobile - Web browsers - PlayStation and Xbox - Discord bots and apps - The Social SDK - The protocol and its implementation are publicly available and open source. - Trail of Bits externally audited the design and implementation. - Discord expanded its bug bounty program to cover DAVE. - The team collaborated with Mozilla to fix a Firefox issue that interfered with encrypted calls. ## Reaching Default Encryption - Since early March 2026, E2EE covers calls in: - Direct messages - Group DMs - Voice channels - Go Live streams - All clients must support DAVE before joining a call. - Discord is removing unencrypted fallback code, after which calls will no longer be able to downgrade to unencrypted connections. - Encryption operates transparently, preserving expected call quality and latency. ## Why Stage Channels Are Excluded - Stage channels are intended for large-scale broadcasts, AMAs, live events, and town halls. - Their broadcast-oriented architecture differs from personal voice and video conversations. - Discord therefore continues to exclude them from E2EE. ## Future Privacy Work - Discord will continue maintaining and improving DAVE, including its open protocol and bug bounty program. - The company has no current plans to add E2EE to text messages. - Many Discord text features depend on server-side access to messages, so supporting encryption would require substantial redesign. Discord’s recommendation is effectively to treat DAVE as an ongoing privacy foundation rather than a finished project: voice and video calls are now protected by default, while the protocol remains open to inspection and continued improvement.

meta

Rust at Scale: An Added Layer of Security for WhatsApp (opens in new tab)

WhatsApp has deployed a Rust-based media security layer across billions of devices to defend against malware hidden in images, videos, PDFs, and other attachments. The system, called Kaleidoscope, validates file formats and identifies suspicious content before it reaches vulnerable downstream libraries. WhatsApp’s large-scale rollout demonstrates Rust’s production readiness and supports the company’s broader shift toward memory-safe languages. ## Media Handling as a Security Boundary - WhatsApp’s default end-to-end encryption protects messages, but shared media can still contain maliciously crafted files. - Attackers may exploit vulnerabilities in: - Operating system libraries - Media parsers - WhatsApp itself - Dangerous attachments can appear harmless, particularly when malware is concealed in images or videos. ## Lessons from the 2015 Stagefright Vulnerability - Android’s Stagefright vulnerability affected operating-system media-processing libraries. - Applications could not directly patch the vulnerable libraries, while users often took months to update their devices. - WhatsApp adapted its existing cross-platform C++ `wamedia` library to identify malformed MP4 files that could trigger vulnerable parsers. - This allowed WhatsApp to protect users faster than relying solely on operating-system updates. - Because the library automatically processes untrusted downloads, WhatsApp identified it as a strong candidate for memory-safe implementation. ## Replacing C++ with Rust - WhatsApp developed the Rust implementation alongside the original C++ version rather than performing a gradual rewrite. - Differential fuzzing, unit tests, and integration tests verified compatibility. - Key challenges included: - Increased binary size from the Rust standard library - Build-system support for WhatsApp’s many target platforms - The final implementation replaced approximately 160,000 lines of C++ with 90,000 lines of Rust, including tests. - Rust provided performance and runtime memory-use improvements. - The library was deployed across Android, iOS, Mac, Web, wearables, and other platforms. ## Kaleidoscope’s File Checks - Kaleidoscope expands beyond basic MP4 validation by checking for: - Non-conforming structures that could exploit parser differences - Embedded files and scripts in PDFs - Files that disguise their type through spoofed extensions or MIME types - Known dangerous formats such as executables and applications - These checks support safer handling in WhatsApp’s user interface and help defend against malicious attachments and unofficial clients. - The system cannot prevent every attack, but it adds an important defense-in-depth layer. ## WhatsApp’s Broader Security Strategy - WhatsApp distributes the libraries each month to billions of phones, computers, watches, and browsers across WhatsApp, Messenger, and Instagram. - The company describes this as the largest deployment of Rust code across diverse end-user platforms. - Its wider security program includes: - End-to-end encrypted messages, calls, and backups - Key transparency and additional calling protections - Fuzzing, static analysis, audits, and attack-surface monitoring - CVE reporting and an expanded bug bounty program - WhatsApp’s vulnerability strategy focuses on minimizing attack surface, strengthening remaining C and C++ code, and choosing memory-safe languages for new development. - Existing protections include control-flow integrity, hardened allocators, safer buffer APIs, specialized developer training, and automated analysis. WhatsApp plans to accelerate Rust adoption, particularly for security-sensitive, cross-platform components that process untrusted input. Its media library rollout provides evidence that Rust can deliver both memory safety and performance at global consumer scale.

discord

Discord Announces First Mobile Ad Format, Broadening Advertising Opportunities (opens in new tab)

Discord is set to expand its rewarded advertising ecosystem to mobile devices with the pilot launch of Video Quests on Mobile in June 2025. This strategic evolution aims to connect advertisers with Discord’s 200 million monthly active users across platforms, leveraging a full-screen, opt-in format designed specifically for brand awareness. By transitioning these advertising tools to mobile, Discord provides a performance-driven channel for partners to engage a highly active community through high-quality video content and incentivized rewards. ### Mobile Integration and the 2025 Pilot * The initial pilot program for Video Quests on Mobile is scheduled to begin in June 2025. * The format utilizes a full-screen, premium user interface tailored for mobile consumption while maintaining Discord’s commitment to opt-in, non-intrusive advertising. * This expansion marks Discord’s first mobile-specific ad offering, targeting a cross-platform audience that spans PC, mobile, and native console integrations. ### Evolution of the Quests Framework * Discord currently offers two primary rewarded formats: Video Quests for awareness (trailers and announcements) and Play Quests for engagement (requiring users to play or stream a game). * The platform has shifted from a gaming-exclusive focus to a broader Media and Entertainment strategy, catering to diverse brand partners including streaming services and movie studios. * Play Quests generate authentic connections by rewarding players with exclusive in-game items for meeting specific gameplay or streaming milestones. ### Proven Campaign Performance and Metrics * **miHoYo (Genshin Impact):** Utilizing high-value in-game rewards through Play Quests, the developer saw an 80% increase in playtime during the campaign week. * **Max (Dune: Prophecy):** The first-ever Video Quest featured a long-form trailer (2:38) that achieved a significantly high completion rate of 85%. * **Nexon Games (The First Descendant):** A Video Quest campaign generated over 1 million completions, with 10% of that engagement occurring organically through peer-to-peer sharing. ### Strategic Outlook for Advertisers Brands and developers looking to capitalize on this expansion should consider participating in the June pilot to secure early access to the mobile player community. This format is particularly recommended for titles launching new updates, downloadable content (DLC), or major media premieres where high-impact video awareness is a primary objective.

figma

How Crunchyroll Clarified Confusing Workflows with Dev Mode | Figma Blog (opens in new tab)

Crunchyroll’s global scale—15 platforms, 12 languages, and many legacy workflows—makes consistent product design difficult. Its Universal Design System helps standardize experiences and improve delivery speed, but outdated processes and fragmented documentation created confusion. Moving handoff and implementation guidance into Dev Mode has made design-to-development collaboration faster, clearer, and easier to maintain. ## Crunchyroll’s Design Complexity - Crunchyroll serves around 15 million fans across: - Web and mobile applications - Smart TVs, game consoles, set-top boxes, and Roku - Nine living-room platforms - Supporting multiple languages and complex licensing requirements increases product complexity. - The company also extends beyond streaming through the Crunchyroll Store and Game Vault. - Its goal is to create a deeply relevant experience for anime fans rather than a generic service for everyone. ## Measuring Design Success - James Hsu defines successful design through two baseline criteria: - It looks good, using sound typography, grids, spacing, and visual hierarchy. - It works well, with clear content, thoughtful interactions, and no frustrating edge cases. - A design can be visually polished but still fail if users become trapped in confusing flows or loops. ## The Role of the Universal Design System - The design system promotes consistency across devices, reducing cognitive load caused by inconsistent fonts, grids, spacing, or responsive behavior. - Reusable components improve team efficiency, much like meal preparation: - Teams can build from existing solutions. - New components can be evaluated based on their cost and value. - Shared patterns speed up product delivery and help product teams validate ideas quickly. - Engineers also benefit from avoiding duplicated implementations, reflecting the “Don’t Repeat Yourself” principle. ## Adapting the Design System to Reality - Crunchyroll uses: - A foundational design layer - Separate component libraries for individual clients - The system still contains many one-off components, numerous variants, and an underdeveloped type system. - The team rejects treating the existing system as an unchangeable process. - The design system should serve current product needs, not constrain teams because of decisions made by previous teams. - Different designers are at different stages of understanding and adopting the system, making education and early investment important. ## Problems with the Previous Workflow - Design and code parity was managed through complicated Jira workflow triggers. - Component changes generated automated alerts, but time-zone dependencies and convoluted processes meant stakeholders often lacked the latest information. - Documentation was split across separate Zeplin projects for iOS, Android, tvOS, and Android TV. - Finding the right flow required invitations, navigating branches, and comparing against outdated designs. - Searching for a specific payment signup flow could take several minutes per artboard, making implementation research slow and frustrating. - Handoff statuses were ambiguous: - Designers submitted work for review. - Reviewers moved it back to “in progress.” - Exported designs were not necessarily final. - Engineers had to rely on labels such as “ready for development.” ## How Dev Mode Improved Handoff - Dev Mode gives engineers direct access to design values and helps them identify the correct component. - Designers now create a dedicated, organized page when work is ready for development. - The page is labeled “ready for development,” and engineers receive a link directly to it. - Engineers no longer need to sift through ideation or outdated explorations. - Faster loading and parsing removed a major pain point from the previous tool. - The team supported adoption through documentation and onboarding workshops for developers. - Crunchyroll is also interested in integrating Code Connect to make its existing design-system code more accessible. Crunchyroll’s experience suggests that a design system is most effective when paired with clear ownership, focused documentation, and a streamlined handoff process. Dev Mode helped replace fragmented legacy workflows with a faster path from approved design to implementation.

figma

Happy Emoji Release Day at Figma 🎉 | Figma Blog (opens in new tab)

Figma introduced emoji support in 2017 after users repeatedly requested it, emphasizing that emojis had become essential to modern digital communication and interface design. The main technical challenge was ensuring consistent rendering across operating systems without sacrificing visual quality. Figma chose individually cached, 64×64 full-color PNGs, providing sharper and more memory-efficient results than Slack’s single large sprite image. ## Why Emoji Support Mattered - Designers need to preview interfaces with the same visual content users will see in real products. - Emojis communicate tone, emotion, and nuance in advertising, messaging, email, and social media designs. - Some teams reportedly left Figma because the feature was missing. - Native browser rendering was unsuitable because emoji appearance varies between operating systems and platforms. ## The History of Emoji and Unicode - Emojis originated in Japan in 1999, when Shigetaka Kurita created 176 pictorial characters to supplement text. - Competing mobile carriers developed incompatible emoji sets, causing inconsistent rendering. - In 2009, the Unicode Consortium standardized emoji identifiers alongside other written characters. - Unicode defines the character code and general design guidelines, but companies remain free to create their own artwork. - As a result, the same emoji can look substantially different on Apple, Google, Facebook, Twitter, Samsung, and other platforms. ## Why Cross-Platform Rendering Was Difficult - Figma is a collaborative, cross-platform application, so Mac and Windows users need to see identical designs. - Depending on each operating system’s emoji library could make the same file appear differently to different users. - Visual inconsistencies can alter an emoji’s perceived meaning, creating communication problems. ## Figma’s Rendering Approach - Slack’s approach used a large PNG containing Apple’s emoji set and displayed relevant regions as needed. - That method was fast but limited by lower color quality and poor scalability at larger sizes. - Figma rejected the sprite-image approach because designers are especially sensitive to low-resolution visuals. - Instead, Figma used separate 64×64 full-color PNG files for each emoji. - Individual emoji files load slightly slower the first time they are used, but are cached for faster subsequent use. - This approach provides higher resolution and uses memory more efficiently than one massive image. Figma’s solution prioritized consistent, high-quality rendering over the fastest possible initial load. For design tools and other visually demanding collaborative applications, individually cached assets can be a better tradeoff than relying on platform-native rendering or low-resolution sprite sheets.