Techlist.io - Korean Tech Blog Curator

figma2 min readCurated summary

Supporting Faster File Load Times with Memory Optimizations in Rust | Figma Blog

Figma improved server-side file loading by reducing the memory overhead of its Rust data structures. Replacing per-node `BTreeMap`s with compact sorted vectors made deserialization faster and cut memory usage for large files by nearly 25%, despite worse theoretical operation complexity. The team also explored packing field IDs into unused pointer bits, potentially storing the same information in fewer bytes. ## Smaller, Memory-Efficient Maps - Figma files consist of nodes, each represented by properties such as type, parent, position, and dimensions. - Nodes were stored as `BTreeMap<u16, u64 pointer>` structures because ordered iteration was required for serialization. - Profiling showed these maps consumed more than 60% of a file’s memory, even though they stored metadata rather than large data payloads. - The schema contains fewer than 200 possible fields, and nodes typically contain only a subset of them—about 60 properties on average. - Figma replaced each `BTreeMap` with a sorted flat vector of `(field ID, pointer)` pairs. - Although vectors have theoretically slower insertion, lookup, and editing, their compact linear layout is more cache-friendly and faster during deserialization. - The deployed change reduced memory usage by nearly 25% for large files and improved file-loading performance. ## Saving More Memory with Bit Stuffing - The team also investigated storing the field ID inside the pointer itself. - While pointers are nominally 64 bits, x86 systems currently use only the lower 48 bits for memory addresses, leaving 16 bits available. - Figma’s field IDs require exactly 16 bits, allowing a single `u64` to contain both: - A 16-bit field ID - A 48-bit memory pointer - This representation could eliminate the separate field-ID storage and further reduce memory overhead. - The approach had not yet been productionized because relying on unused pointer bits is architecture-dependent and could change in the future. Figma’s results demonstrate that practical memory layout and CPU cache behavior can outweigh Big O complexity. For compact, bounded data structures, flat vectors—and carefully considered bit packing—can deliver substantial improvements in both memory efficiency and load speed.

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

7 Moments That Shaped Figma, as Told by Dylan Field | Figma Blog

Figma’s story, as told by co-founder Dylan Field, was shaped by unlikely experiences, persistent experimentation, and lessons from mentors and early mistakes. His path ran from child acting and mathematical curiosity to founding a company at 20, with setbacks—including a brief meme-generator idea—helping clarify Figma’s direction. ## Persistence Learned Through Acting - As a child actor, Field once fell asleep during a *Peter Pan* performance, which he considered his most embarrassing acting moment. - The experience nevertheless gave him stunt-flying skills that helped him land a Windows XP commercial. - Auditioning taught him that persistence over time can create opportunities: continuing to try increases the chances of eventually succeeding. ## A Janitor Sparked His Interest in Mathematics - Field was solving algebra problems as early as age six and became bored in middle school. - He spent time with a cerebral school janitor who discussed mathematics and physics with him. - The janitor encouraged him to study proofs and set theory, pushing Field toward deeper mathematical thinking. ## An Unusual Fellowship Application - Applying for the Thiel Fellowship, Field answered the question about what most people get wrong by arguing that “chocolate is repulsive.” - He treated the response as a “meta-contrarian” idea—challenging not only conventional wisdom but also Silicon Valley’s tendency to prize contrarian opinions. - The playful, unexpected answer may have helped his application stand out. ## Figma Briefly Considered Becoming a Meme Generator - Field and Evan Wallace initially wanted to use WebGL—the JavaScript API for high-performance graphics in browsers—to build a design product. - Unsure how to apply the technology, they briefly considered making a meme-creation tool. - Field called this five-day period Figma’s “darkest week,” after realizing that memes were not a sufficiently serious direction. - The episode illustrates the founders’ willingness to explore ideas before committing to a larger product vision. ## Growing Into Leadership - At 20, Field struggled with the responsibilities of being CEO after previously identifying more like an intern. - He acknowledged micromanaging because he had intensely considered every part of the product experience. - Pressure to launch and control the details created tension, teaching him that building Figma required developing as a manager as well as refining the product. The post presents Figma’s development as the result of accumulated experiences rather than a perfectly planned startup journey. Field’s advice and example emphasize persistence, intellectual curiosity, experimentation, and the willingness to learn from immature decisions.

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

How we scaled fast, reliable configuration distribution to thousands of workload containers | Datadog

The provided content does not include the blog post itself. It contains Datadog’s navigation menu and a link whose URL suggests an article about scaling configuration delivery to containers, but no article text or technical sections are available to summarize. Please provide the post’s body or a readable URL extract, and I can summarize it in the requested format.

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

Breaking up a monolith: How we’re unwinding a shared database at scale | Datadog

The provided text does not contain the blog post itself. It mainly includes Datadog’s navigation menu and a promotional link announcing its Gartner Magic Quadrant recognition, so the article’s argument and technical conclusions cannot be reliably summarized. ## Content Present in the Extract - A promotional banner links to Datadog’s recognition as a **Leader in the Gartner Magic Quadrant for Observability Platforms**. - The page navigation lists Datadog offerings across: - Infrastructure and application monitoring - Logs, databases, and data observability - Security - Digital experience monitoring - Software delivery - Service management - AI capabilities - The URL suggests the intended article is **“Unwinding a Shared Database”**, but its body text is missing. ## Practical Conclusion Please provide the article’s actual text or a complete page extract for a meaningful technical summary.

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

How we scaled fast, reliable configuration distribution to thousands of workload containers

Datadog’s seemingly simple tenant-configuration CRUD system must propagate updates rapidly and reliably to thousands of containers processing millions of logs per second. Loading configuration on every log is too expensive, while periodic caching introduces stale data and delayed updates. Datadog initially used database-backed caches invalidated through Kafka, but growing scale exposed reliability and resilience problems tied to repeated workload access to the central database. ## The Challenge of Propagating Context Data - Datadog calls tenant-specific settings—such as log parsing rules, Sensitive Data Scanner settings, and storage quotas—“context data.” - Configuration changes are expected to take effect almost immediately, including in Live Tail. - The same context data may be consumed by thousands of containers handling traffic for many tenants. - Because configuration directly affects customer-data processing, propagation must be both low-latency and highly reliable. - The system must assume that failures can occur anywhere in a large distributed environment. ## Why On-Demand Fetching and Simple Caching Fail - Fetching configuration from a database for every incoming log would create an impractical read load. - Large tenants can generate hundreds of thousands of logs per second. - Each processing instance could require thousands of database reads per second. - Multiplying this across many instances would require extensive, highly performant database replicas. - Caching configuration in each workload container reduces reads but does not eliminate the scaling problem. - Many workload instances still cache data for a high number of tenants. - Increasing the cache interval reduces database load but delays configuration updates. - With periodic invalidation, the average propagation delay is roughly half the cache interval. ## Context Loading v1: Database-Backed Caches and Kafka Datadog’s first successful architecture kept tenant configuration in a central durable database while allowing workload containers to cache entries indefinitely. - A user changes a log-processing configuration. - The central context database stores the update. - Kafka publishes an invalidation message after the database write. - Every workload container receives the notification. - Each container reloads the affected tenant’s configuration from the database. - This minimized routine database reads while preserving low-latency updates. ## Why the Initial Architecture Needed Reconsideration - The design required every workload instance to reach the central context database whenever a configuration changed. - As Datadog added more workloads and containers, update-related database traffic grew substantially. - Internal game days and production incidents showed that problems affecting the context database could spread to downstream processing workloads. - Database failures could prevent configuration updates from propagating and potentially make it impossible for new workload containers to initialize their context. - These reliability concerns demonstrated that Kafka-based invalidation alone did not sufficiently isolate workload processing from context-database failures. Datadog’s experience shows that configuration propagation at large scale requires more than a durable database and cache invalidation. The system must also reduce dependency on the central database during updates and startup, while continuing to provide near-immediate, reliable propagation.

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

Breaking up a monolith: How we’re unwinding a shared database at scale

Datadog is moving away from a large shared relational database because its benefits eventually give way to coordination costs, schema fragility, noisy-neighbor problems, and scaling limits. Splitting the database is difficult and expensive, but platform investments in service development and managed Postgres can make independently owned databases practical. The key is to establish functional boundaries, provide safe cross-domain access, and automate migrations. ## Why Shared Databases Persist - Shared databases reduce operational overhead for small or fast-moving organizations. - A single database enables simple, low-latency joins across all data. - Workload isolation and access management often matter less when systems are small. - Because the cost of splitting a database is high, organizations commonly keep the shared model longer than they should. ## Signs It Is Time to Split the Database - Data grows beyond the capacity of one machine, or replication becomes too slow. - Noisy-neighbor effects make performance unpredictable. - Schema changes by one team unexpectedly affect others. - Security requirements such as access-control lists are difficult to enforce. - These issues create engineering costs, incidents, and degraded user experiences across teams. ## What Database Decomposition Requires - Identify functional ownership boundaries. - Build services for cross-domain queries where necessary. - Require consumers to use those services instead of querying another domain’s tables directly. - Provision new database instances. - Migrate data and traffic carefully from the shared database to the new instances. Datadog had previously split off large portions of its database into only a few separate databases. The experience showed that finding boundaries, enforcing them, and migrating without incidents is difficult and highly manual. ## Why Teams Resist Leaving Shared Infrastructure - Building a service may jeopardize existing product goals. - Operating a service can introduce significant maintenance and on-call work. - Cross-domain data access may be unclear or cause unacceptable latency or user impact. - Owning a database creates additional operational responsibility. - Migrations are often handcrafted, risky, and difficult to repeat. - Forcing the transition can cost more than tolerating the existing problems and create organizational resistance. ## Platform Investments That Enable Change Datadog addressed these obstacles through two major initiatives: - **Rapid:** An opinionated framework for building and operating API and gRPC services. - **OrgStore:** A managed platform for Postgres databases. Rapid reduces the cost of creating and maintaining services by providing shared configuration, common data-access patterns, and operational support. OrgStore reduces the burden of owning separate database instances. Together, these platforms make it more attractive for new projects to avoid the legacy shared database and allow existing domains to migrate incrementally. The broader lesson is that database decomposition becomes realistic when platform engineering makes service ownership, database operations, cross-domain access, and migrations safe enough to fit into normal product development.

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

Make your site interactive with code layers | Figma Blog

Figma’s new code layers let designers add custom React-powered interactions directly within Figma Sites. They bridge the gap between static canvas designs and production-like experiences by combining AI-assisted coding, direct code editing, and reusable components. The feature is intended to make advanced interactions—such as drag-and-drop systems, animations, calculators, maps, shaders, and 3D effects—accessible without external developer support. ## Customizing Existing Designs - Code layers extend Figma Sites’ built-in responsive elements and interactions. - Designers can convert an existing element into a code layer through the Figma Make icon in the Design panel. - AI chat can then generate or modify behaviors such as: - Spinning or bouncing animations - Animated counters and text effects - Loan calculators and price estimators - Hover effects, ripples, and color changes - Code layers can be duplicated with **Command D** to create and compare multiple interaction variations. - Example use case: a flower shop could let visitors duplicate, drag, rotate, and layer flower images to create custom bouquets. ## Creating Code Layers from Scratch - Designers can use the Make tool or press **E** to draw a standalone code layer on a blank canvas. - A modal opens for generating the layer through AI prompts or writing code directly. - Suggested prompts and starter components—such as buttons, image galleries, and navigation menus—provide ready-made starting points. - These components can be used as-is or customized to match an existing design. ## Reusable and Extensible Components - Code layers support customizable properties, including strings, numbers, and references to other components. - AI can generate these properties automatically, or users can request specific controls. - A code layer can be converted into a reusable Figma component for use across pages, projects, and team design systems. - Designers can import npm packages such as `motion` and `@react-three/fiber` to add advanced animation, 3D rendering, and other functionality. ## Code Layers Compared with Figma Make - **Figma Make** is suited to building a functional app from a prompt without relying heavily on precise canvas design. - **Code layers in Figma Sites** are designed for adding custom interaction and motion to an existing visual design. - Together, the tools support both prompt-first development and design-first experimentation. Code layers are available to all Figma Sites users, offering a practical way to prototype and publish richer web experiences directly from the Figma canvas.

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

Gift Nitro and Earn A Flavorful Splash for your Avatar

Discord announced a limited-time promotion rewarding users who gift Nitro to friends. From June 13 through June 23, 2025, anyone purchasing a monthly or annual Nitro gift through the desktop app receives the permanent “Freshly Picked” Avatar Decoration. The recipient gets Nitro benefits, while the purchaser gains a summer-themed profile accessory. ## Promotion Details - The offer runs through June 23, extended from the original end date due to popular demand. - Eligible purchases include: - Monthly Nitro gifts - Annual Nitro gifts - Purchases must be made through Discord’s desktop app. - The Avatar Decoration is awarded permanently. ## Benefits for Nitro Recipients Gift recipients gain access to Nitro features such as: - Using custom emoji anywhere on Discord - Higher-quality streaming - Other standard Nitro benefits ## Gift Inventory Option - Gifts can be sent immediately to a friend. - Buyers can also store the Nitro gift in their Gift Inventory and redeem or send it later. Users interested in the promotion should purchase an eligible Nitro gift through Discord’s desktop app before June 23 and consult the Help Center for additional questions.

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

Welcoming Payload to the Figma Team | Figma Blog

Figma has welcomed the team behind Payload, an open-source headless CMS and application framework, to strengthen its developer tools and connect design more closely with development. Payload will remain open source, with continued investment and no immediate changes for users. The partnership supports Figma’s broader vision of letting teams design, build, and deploy digital products within a collaborative ecosystem. ## Why Figma Chose Payload - Payload is known for its highly customizable architecture, extensibility, and strong developer experience. - It has become one of the leading open-source projects in its category and is used by several Fortune 100 companies. - Figma was especially impressed by Payload’s active open-source community and its practice of incorporating developer feedback into the product. - Both companies emphasize collaboration, community participation, and continuous improvement. ## What Happens to Payload - Payload will remain an open-source product. - There will be no immediate changes for existing users. - Figma plans to continue investing in the project and improving it. - Figma and Payload users will receive ongoing communication as the combined CMS strategy and product roadmap develop. ## Bridging Design and Development - Figma aims to become a central hub where teams can create and deploy digital products. - Payload’s CMS and framework capabilities can help connect Figma’s design tools with production websites and applications. - As AI accelerates the generation of code and content, controlling deployments and refining user experiences across channels becomes increasingly important. - The partnership is intended to reduce the traditional gap between designers and developers. ## The Broader Context - The announcement follows Figma’s push into web publishing through Figma Sites. - Payload’s flexibility and developer-focused tools could expand what developers can build across Figma’s platforms. - The companies expect their combined teams and communities to create more integrated design, development, and content workflows. Figma’s acquisition of the Payload team is positioned as a long-term investment in collaborative, developer-friendly product creation, while preserving Payload’s open-source identity and existing user experience.

Read original(opens in new tab)
lineOriginal article

AI and Writer's Partnership (opens in new tab)

LY Corporation is addressing the chronic shortage of high-quality technical documentation by treating the problem as an engineering challenge rather than a training issue. By utilizing Generative AI to automate the creation of API references, the Document Engineering team has transitioned from a "manual craftsmanship" approach to an "industrialized production" model. While the system significantly improves efficiency and maintains internal context better than generic tools, the team concludes that human verification remains essential due to the high stakes of API accuracy. ### Contextual Challenges with Generic AI Standard coding assistants like GitHub Copilot often fail to meet the specific documentation needs of a large organization. * Generic tools do not adhere to internal company style guides or maintain consistent terminology across projects. * Standard AI lacks awareness of internal technical contexts; for example, generic AI might mistake a company-specific identifier like "MID" for "Member ID," whereas the internal tool understands its specific function within the LY ecosystem. * Fragmented deployment processes across different teams make it difficult for developers to find a single source of truth for API documentation. ### Multi-Stage Prompt Engineering To ensure high-quality output without overwhelming the LLM's "memory," the team refined a complex set of instructions into a streamlined three-stage workflow. * **Language Recognition:** The system first identifies the programming language and specific framework being used. * **Contextual Analysis:** It analyzes the API's logic to generate relevant usage examples and supplemental technical information. * **Detail Generation:** Finally, it writes the core API descriptions, parameter definitions, and response value explanations based on the internal style guide. ### Transitioning to Model Context Protocol (MCP) While the prototype began as a VS Code extension, the team shifted to using the Model Context Protocol (MCP) to ensure the tool was accessible across various development environments. * Moving to MCP allows the tool to support multiple IDEs, including IntelliJ, which was a high-priority request from the developer community. * The MCP architecture decouples the user interface from the core logic, allowing the "host" (like the IDE) to handle UI interactions and parameter inputs. * This transition reduced the maintenance burden on the Document Engineering team by removing the need to build and update custom UI components for every IDE. ### Performance and the Accuracy Gap Evaluation of the AI-generated documentation showed strong results, though it highlighted the unique risks of documenting APIs compared to other forms of writing. * Approximately 88% of the AI-generated comments met the team's internal evaluation criteria. * The specialized generator outperformed GitHub Copilot in 78% of cases regarding style and contextual relevance. * The team noted that while a 99% accuracy rate is excellent for a blog post, a single error in a short API reference can render the entire document useless for a developer. To successfully implement AI-driven documentation, organizations should focus on building tools that understand internal business logic while maintaining a strict "human-in-the-loop" workflow. Developers should use these tools to generate the bulk of the content but must perform a final technical audit to ensure the precision that only a human author can currently guarantee.

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)
figma3 min readCurated summary

What They’re Not Teaching in Design Class—and What You Can Do About It | Figma Blog

Design education often teaches craft and user experience but not how design affects revenue, costs, growth, or product strategy. The authors argue that business fluency and product sense make designers more effective collaborators and decision-makers. Early-career designers should build these skills beyond the classroom through business courses, conversations with professionals, industry media, and hands-on product work. ## Why Business Matters in Design - Design choices influence user engagement, retention, growth, and profitability. - Poor experiences can frustrate users and cause them to abandon a product. - Designers need to balance user needs with business goals and stakeholder priorities. - Business knowledge helps designers: - Understand how decisions affect revenue and costs - Prioritize features in response to market competition - Contribute to product roadmaps - Communicate more effectively with product, research, marketing, and business teams - Leaders from Figma, Microsoft, and Netflix describe business acumen as a major distinction between good and exceptional design organizations. ## The Gap in Design Education - Many design programs focus heavily on design fundamentals and craft. - Early-career designers often receive little instruction on connecting their work to measurable business outcomes. - The authors discovered this gap through their experiences as Figma Campus Leaders and early-career product designers. - They argue that creative quality and business impact should not be treated as opposing priorities; combining them can be a designer’s “superpower.” ## Take Business and Marketing Courses - Students should supplement design coursework with classes in fields such as marketing and business. - Case-study-based courses can show how companies approach market, customer, and product problems. - Even courses without a direct UX focus can help designers understand how products are positioned, launched, and evaluated. ## Learn from Industry Professionals - Coffee chats provide practical insight into how products are actually developed and how companies succeed. - Designers should speak with more than product designers, including: - Content designers - UX researchers - Business researchers - Product and marketing professionals - These conversations reveal how different stakeholders contribute to product decisions and understand industry economics. ## Follow Product and Business Discussions - Newsletters and podcasts can help designers connect design decisions with broader business trends. - Recommended resources include: - **Lenny’s Newsletter**, focused on product building, growth, and careers - **Masters of Scale**, featuring advice from business leaders - **Dive Club**, which interviews design executives about product experience and organizational strategy ## Build and Ship Real Products - Hands-on work is presented as one of the most effective ways to develop product sense. - Student startups, industry roles, and other practical projects expose designers to constraints that classroom exercises often miss. - Building and shipping products teaches designers how ideas perform in the real world and how design interacts with product and business decisions. Designers should treat business understanding as a core part of their professional education, even when their formal programs do not. Combining design craft with product sense enables them to create work that is both valuable to users and meaningful to the organizations building it.

Read original(opens in new tab)
lineOriginal article

Code Quality Improvement Techniques Part 1 (opens in new tab)

Effective naming in software development should prioritize the perspective of the code's consumer over the visual consistency of class declarations. By following natural grammatical structures, developers can reduce ambiguity and ensure that the purpose of a class or variable is immediately clear regardless of context. Ultimately, clear communication through grammar is more valuable for long-term maintenance than aesthetic symmetry in the codebase. ### Prefixing vs. Postfixing for Class Names When splitting a large class like `SettingRepository` into specific modules (e.g., Account, Security, or Language), the choice of where to place the modifier significantly impacts readability. * Postfixing modifiers (e.g., `SettingRepositorySecurity`) might look organized in a file directory, but it creates grammatical confusion when the class is used in isolation. * A developer encountering `SettingRepositorySecurity` in a constructor might misinterpret it as a "security module belonging to the SettingRepository" rather than a repository specifically for security settings. * Prefixing the modifier (e.g., `SecuritySettingRepository`) follows standard English grammar, clearly identifying the object as a specific type of repository and reducing the cognitive load for the reader. ### Handling Multiple Modifiers and the "Sandwich" Effect In cases where a single prefix is insufficient, such as defining the "height of a send button in portrait mode," naming becomes more complex. * Using only prefixes (e.g., `portraitSendButtonHeight`) can be ambiguous, potentially being read as the "height of a button used to send a portrait." * To resolve this, developers can use a "modifier sandwich" by moving some details to the end using prepositions like "for," "of," or "in" (e.g., `sendButtonHeightForPortrait`). * While prepositions are helpful for variables, they should generally be avoided in class or struct names to ensure that instance names derived from the type remain concise. * Developers should also defer to platform-specific conventions; for example, Java and Kotlin often omit prepositions in standard APIs, such as using `currentTimeMillis` instead of `currentTimeInMillis`. When naming any component, favor the clarity of the person reading the implementation over the convenience of the person writing the definition. Prioritizing grammatical correctness ensures that the intent of the code remains obvious even when a developer is looking at a single line of code.

figma2 min readCurated summary

The Long and Short of It: Issue no.11 | Figma Blog

AI is changing how people build, but Figma argues that it does not replace craft, quality, or emotional connection. The issue highlights tools and practices that combine automation with design intent, context, safety, and care. Its central conclusion is that meaningful work still requires human judgment and deliberate practice. ## Building with Figma Make - Figma Make is a prompt-to-code tool that turns natural-language prompts or static designs into interactive prototypes. - It can be used at different stages of the design and development process. - Figma recommends experimenting with prompts and applying practical techniques to get better results. ## Bringing Design Context into Coding - Agentic coding tools are limited when they lack context about the intended design. - Figma’s MCP server connects Figma files to AI coding tools. - It gives language models access to variables, components, and styles, helping them generate code that better reflects design intent. - This positions AI as part of the developer workflow rather than an isolated automation tool. ## When Efficiency Undermines Care - The issue examines the idea that excessive focus on efficiency can weaken connection and emotional investment in creative work. - Themes from Config 2025 include AI evolving from a tool into a teammate and the importance of reaching “minimum viable play.” - The broader message is that faster production should not come at the expense of thoughtful, resonant design. ## Designing AI with Trust and Transparency - Headspace’s Ebb AI mental-health companion was designed with trust and safety as priorities. - Product and brand teams considered details such as the character’s name, visual identity, and conversational guidelines. - The goal was to keep Ebb’s AI nature visible while ensuring users felt supported. - The example illustrates the additional responsibility involved in creating AI products for sensitive contexts. ## Craft Requires Practice - Figma’s third annual Config publication, *Practice*, explores how designers develop mastery. - It emphasizes patience, precision, experimentation, and a willingness to push boundaries. - The accompanying microsite, created with Other Means, includes a custom font by Kia Tasbihgou. ## Rabbit Hole - The issue closes with a visual collection of colorful abstract forms, collages, and photography, extending its focus on experimentation and creative inspiration. AI can accelerate making, but strong results still depend on context, care, taste, and practice. Figma’s recommendation is to use AI as a creative partner while preserving the human attention that gives work its meaning.

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

Discord Social SDK Updates &amp; Integrations

Discord’s Social SDK, launched in March 2025, gives game developers free Discord-powered social features directly inside their games. The post highlights new SDK capabilities, early results from Rust, and GDC presentations showing how developers use Discord for communication, community building, and player growth. Early integrations suggest that seamless social tools can increase in-game engagement and strengthen player communities. ## New Discord Social SDK Features - Rich Presence now supports custom buttons on activity cards. - Unreal and Unity console support has improved through better packaging and documentation. - New guidance covers integrating and managing content moderation. - Players have more granular controls over in-game direct messages and communication preferences. - Webhook notifications alert developers when users unlink accounts or revoke application authorization. - Configurable request timeouts provide greater control over SDK integrations. - Partner feedback also led to improvements around online visibility, account access, and consistent experiences for players without Discord accounts. ## Rust Integration: Unified Communication Facepunch Studios partnered with Discord to test the SDK in *Rust*, which has sold more than 20 million copies and has over one million weekly active users. - The primary goal was to improve communication between players inside and outside the game. - Rust integrated the Unified Friends List and Cross-Platform Messaging features. - Players could communicate with their Discord friends without leaving the game or switching applications. - Facepunch and Discord offered an exclusive in-game reward to encourage account linking. - The reward helped drive initial adoption, while continued use of the social features increased in-game chat activity. - Facepunch reported that more friends were forming squads and playing together. ## Lessons from Early Integrations - Incentives can encourage players to try new social features. - Once players experience seamless communication, retention and engagement can improve. - Developers need controls for visibility, messaging, account linking, and authorization. - Testing with established game communities helps identify usability issues and improve the SDK before broader adoption. ## GDC 2025 Developer Examples Discord used GDC 2025 to showcase its tools and partnerships with game studios. - Discord emphasized its scale: 200 million monthly active users spend more than 2 billion hours gaming each month. - Theorycraft Games presented its development strategy for *SUPERVIVE*, including open development and community-led playtesting through Discord. - Discord served as the central platform for *SUPERVIVE*’s feedback and community strategy. - The Social SDK helped *SUPERVIVE*: - Extend its in-game social graph with Discord friends. - Enable game invitations through Discord Rich Presence. - Improve communication and party coordination. - Connect social features more closely to gameplay. Game developers looking to add communication, friend discovery, invites, or community features can use the Discord Social SDK as a way to provide these experiences without requiring players to leave the game. Early examples such as *Rust* and *SUPERVIVE* indicate that thoughtful integration, clear player controls, and incentives can make adoption more successful.

Read original(opens in new tab)