Product engineering
Building products: frontend, mobile and design systems.
Reports
- URL redirects and folder aliases for memo
Implementing a URL redirect system for NextJS static memo pages to create SEO-friendly, shareable URLs while maintaining backward compatibility.
- From multi-repo to monorepo: a case study with Nghenhan Turbo
Learn how migrating to a Turbo-powered monorepo cut build times by 60%, boosted developer productivity by 40%, and simplified dependency management in a real trading…
Case studies
- Droppii v3 in ten weeks: rebuilding a 90-day rush on web, iOS and Android
A Dwarves team shipped Droppii for Business v3 on web (10 October 2022) and mobile (20 October 2022), then spent a year on ERP screens, API tests and a shared frontend…
- Swift: Building a micro frontend design system for e-commerce
We helped Swift, an e-commerce partner, implement a micro frontend architecture with a shared design system that improved development efficiency and created a consistent…
- Building a community platform for Vietnamese entrepreneurs
We helped create a digital hub where Vietnamese startup founders can connect, share knowledge, and access resources to grow their businesses.
- Building AI-powered search for online stores
We helped Search.io improve their dashboard, enhance their open-source tools, and create better interfaces for their plugins, helping online stores boost sales with…
- Creating the first platform for Executive assistants
We worked with BaseHQ for two years to build and improve their software for executive assistants, helping them create new features and make their system faster and more…
- Building a central hub for food and beverage businesses in Singapore
We helped Momos, a pre-seed startup in Singapore, build their first MVP, a centralized data hub that simplifies online operations for food and beverage businesses…
- Building Setel's fuel payment super-app for Malaysian drivers
We helped Setel expand their fuel payment app into a full-featured platform that makes refueling simple for Malaysian drivers. Our team built the conversion features…
- Connecting healthcare workers with hospitals during COVID-19
During the height of the pandemic, we helped Para build a platform that quickly connects nurses with hospitals facing staffing shortages. Our COVID-19 support program…
- Two engineers, a Chrome extension and a Slack app: how we shipped Relay's MVP
Two Dwarves engineers built Relay's Chrome extension, web dashboard and Slack app for the US market, then shipped a Gmail add-on, plan tiers and weekly summaries with…
Show all 19 case studies
- Naru: a task manager that works right in your browser
We built Naru, a browser extension that helps people stay organized and productive while browsing the web. Working with a US-based designer, we created a task management…
- Building cloud solutions for UK real estate
We joined Reapit as their offshore development team, helping them transform their desktop software into a modern cloud platform. Our agile team delivered critical…
- Building a complete tech system for small Vietnamese hotels
We helped Aharooms create a suite of digital tools that enables small hotels in Vietnam to improve operations, increase bookings, and boost revenue, especially during…
- Helping launch beCorporate enterprise ride-hailing service
We provided an augmented team for beGroup, Vietnam's popular ride-hailing platform, to help them launch their beCorporate enterprise service on a tight timeline while…
- Creating a smart system to monitor electricity use
We built AirWatt's system that uses artificial intelligence to track how businesses use electricity, helping them save money and prevent equipment problems.
- Building Voconic's cloud platform with Google for financial services
We helped CJC create Voconic, a cloud platform that makes it easy for financial companies to deploy complex systems with just a few clicks, reducing manual effort and…
- Sol: making group travel easier and more fun
We designed Sol, a travel app that helps groups stay connected, organized, and on budget during trips. Our comprehensive approach included user research, visual design,…
- Making dental work easier in Singapore
We built an online platform that helps dentists in Singapore run their practices better. Created by a dental surgeon, Dental Marketplace connects dental professionals,…
- Redesigning BHD Cinema's ticket booking app for a better experience
We helped BHD Cinema transform their outdated mobile app into an intuitive platform that allows customers to easily browse movies, book tickets online, and enjoy a…
Writing
- Onboarding without flattening: what 9T keeps hard on purpose
A tester opened 9T and understood nothing. bievh kept the guide at four tabs and left the rest hidden. Two weeks later tuanddd proposed a story opening at full power,…
- Play a quarter, wait the rest: the dead-air problem in turn-based artillery games
In a four-player artillery match you play about a quarter of the time and nothing after you die. tieubao's T/N formula and the off-turn options the lobshot thread raised.
- Dispatch #1: UI kit workflow: bốn bước từ setup đến implement
Kit này ghép nhiều skill/command lại thành một workflow gồm bốn bước chính: setup, initial design system, prototype, và implement. Bước setup hỏi user về tech stack và…
- Zaplib post-mortem
Zaplib is a frontend framework that helps to port your JS/TS app to Rust/Wasm. This idea was found after the founder's painful work at https://webviz.io when he had to…
Research notes
- Job stories: use JTBD stories to foreground the context of a solution
Learn how job stories focus on user context and motivations to improve product design, offering a clear alternative to traditional user stories by highlighting real user…
- Personas alone can't help teams achieve empathy (reading note)
Discover why personas alone may not build true user empathy in design teams and how relying on them can create a false sense of user understanding in product development.
- Personas may create space for assumptions (reading note)
Learn why personas can mislead design teams by including unnecessary demographic details and how focusing on real user research improves understanding and creates better…
- Personas start with qualitative research (reading note)
Discover how effective user personas emerge from qualitative research and sensemaking to capture rich user experiences, helping teams design better products by focusing…
- The three clicks rule is a myth
The "three clicks rule" for website navigation is a myth, as research shows click count doesn''t impact user experience or conversion rates, and more clicks can…
- Why every redesign should start with UX Benchmarking
Discover why UX benchmarking is essential before any redesign. Learn how capturing usability metrics provides a baseline for improvement, avoids accidental regression,…
- Design tokens in the AI era
Design tokens create consistency across platforms by centralizing visual attributes. AI tools now automate token creation and management, making design systems…
- Real feedback
Learn what true feedback is and isn't. Discover practical steps for giving and receiving feedback that fosters growth and trust.
Show all 117 notes
- Synthetic users in UX research
Explore AI-generated user profiles in UX research and their potential benefits and limitations. Learn when synthetic users can complement real user research and best…
- Rendering strategies in React
React rendering strategies with in-depth coverage of client-side rendering (CSR), server-side rendering (SSR), and static site generation (SSG).
- State management strategy in React
Discover state management strategies, best practices, and when to use each approach for scalable, efficient React applications
- Introducing HTMX - navigating the advantages and concerns
A comprehensive exploration of HTMX, a JavaScript library that extends HTML as a hypermedia, addressing the limitations of legacy HTML applications.
- Adoption of pnpm
The Dwarves team switched from Yarn to pnpm for faster, more efficient package management, improving development speed and saving disk space across their projects and…
- A fragment colocation pattern with React & Apollo GraphQL
When working with complex GraphQL schemas, it's common to have shared fields across different types. A fragment colocation pattern allows us to define fragments…
- Shadow DOM
Shadow DOM is a web standard that allows encapsulation of HTML, CSS, and JavaScript within a specific context.
- Choosing a JavaScript framework: React versus Angular versus Vue
Compare React, Angular, and Vue to find the best JavaScript framework for your web projects by exploring their performance, learning curve, tooling, and industry use…
- Lessons learned from a corporate micro-frontend implementation
Discover how micro-frontend architecture boosts large-scale frontend development with independent teams, shared components, and efficient communication for scalable,…
- What is PNPM compare to NPM/Yarn
PNPM is a package manager for Node.js which stands for “Performant NPM”. It was introduced in 2016, the same year Yarn was released. PNPM is a fast, disk space efficient…
- Accelerating project initiation with a Next.js boilerplate and React toolkit
Speed up project initiation with NextJS-Boilerplate and React-Toolkit, featuring pre-configured tools, TypeScript, custom hooks, and ESLint for faster setup and improved…
- An i18n guideline for frontends: locale detection, routing and RTL text
Learn how to implement multi-language support with locale detection, internationalized routing, RTL/LTR text handling, and i18next formatting in React.js and Next.js…
- Why we chose our frontend tech stack
We pride ourselves on being a team of seasoned technology experts, passionate about crafting innovative solutions for our clients. With years of experience in the…
- When should we use useReducer instead of useState?
Imagine we have a component with multiple states. It is simple enough not to use state management libraries. `useState` is surely a choice for the sake of brevity and…
- Parse, don't validate in TypeScript
The "parse, don't validate" approach is about processing incoming data and failing in a controlled manner if parsing fails.
- Secret management on iOS: from obfuscation to keeping secrets off the device
Learn the best ways to securely manage and store secrets in iOS apps, from code obfuscation to why keeping secrets off the client is the safest approach for developers.
- HSL color
HSL is the answer to resolving all of the painful points of Hexadecimal color codes.
- Mitigate blocking the main thread
We all know that for web applications, perceived performance is highly importance for our users. For data intensive SPAs with CPU-intensive tasks, the single-threaded…
- UX in Web3: simple, secure and self-custodial design
Discover the Triple S of UX—Simple, Secure, and Self-custodial designs that make Web3 easy and safe for users to access and control decentralized applications.
- UI design best practices at Dwarves: Figma handover to developers
Learn essential Figma best practices for designers to ensure smooth handovers to developers, including version control, layer management, naming conventions, and…
- The Domain Insight Research framework for understanding a new industry
Learn how Domain Insight Research (DIR) helps UX researchers quickly understand industries, analyze markets, and design user-focused digital products using market…
- How a design system works: naming for colors, text styles and components
Learn effective design system naming conventions for colors, text styles, and components using Figma tools and atomic design to improve UI consistency and team…
- Card sorting for information architecture and an experimental sorting session
Learn how card sorting improves information architecture and user experience by organizing content based on real user feedback for clearer navigation in websites and…
- A design workflow from user research to UI principles
Learn how to improve product design with user research, job stories, guerrilla usability testing, wireframing, UI principles, prototyping, and design systems for…
- Be careful with your code splitting setup: scroll resets in virtual lists
Learn how improper Webpack code-splitting can cause React virtual lists to reset scroll position unexpectedly and how grouping related chunks fixes navigation glitches…
- A landscape of UX research methods
Learn how UX research methods are organized by attitudinal vs behavioural, qualitative vs quantitative, and context of use to uncover valuable user insights and improve…
- Abundant data pushes us toward quantitative answers to every problem
Explore why collecting too much data can mislead decision-making, highlighting the limits of quantitative analysis and the risks of relying on lagging indicators in…
- Four theories of truth: correspondence, coherence, consensus and pragmatic
Explore the four main theories of truth—correspondence, coherence, consensus, and pragmatic—to understand how claims are evaluated and applied across cultures and…
- How many users should you interview?
Learn how to determine the right number of qualitative interviews by considering research domain, participant diversity, and researcher experience to achieve data…
- Jobs to be done: a framework built on customer needs and outcomes
Learn how the Jobs to Be Done (JTBD) framework helps product teams focus on customer needs and outcomes by understanding the processes customers use to achieve their…
- Jobs-to-be-done interview structure: a five-step customer interview guide
Discover a step-by-step interview guide to uncover customer jobs-to-be-done, including how to explore tasks, needs, feelings, and circumstances for better product and…
- Measuring behaviour changes behaviour (reading note)
Measuring behavior often changes it, as people and organizations adjust actions to improve scores, making metrics unreliable and potentially harming long-term goals and…
- Methods to overcome the limitations of personas (reading note)
Explore the limits of traditional personas and discover alternatives like characters, thinking styles, and Jobs to be Done that provide deeper user insights and richer…
- Persona (reading note)
User personas help product teams understand user needs, behaviors, and goals by creating realistic profiles that guide design and improve user experience in marketing…
- Qualitative researchers care more about data saturation than sample size (reading note)
Learn how qualitative UX research focuses on data saturation over sample size to uncover key user insights and improve products through ongoing Agile feedback and…
- Quant data is lossy (reading note)
Reducing human activity to numbers often loses important context and rich qualitative data, showing that quantitative measures alone can't fully capture complex human…
- Quantitative analysis is not inherently more reliable than qualitative data (reading note)
Quantitative analysis can be biased and limited, as data selection and interpretation depend on human judgment and may overlook context and deeper understanding of human…
- Sensemaking (reading note)
Sensemaking is a humanities-based method that uses cultural understanding and empathy to interpret how people relate to their world, offering deep insights beyond data…
- Skeuomorphic models can limit room for innovation
Skeuomorphism in design uses real-life metaphors to shape digital tools, but this can limit how we understand and innovate with digital technology beyond physical…
- Skeuomorphism: familiar metaphors for new technology
Skeuomorphism is a design approach that mimics familiar objects to help users understand new technology, but it can also limit innovation by sticking to old models.
- Spend more time in the problem space before you chase a solution
Learn why embracing uncertainty and spending more time understanding problems leads to better solutions by avoiding assumptions and applying thoughtful analysis in…
- User research teams as organizational multipliers
Learn how user research teams act as multipliers to share customer insights across organizations, enabling confident, customer-focused solutions through training, best…
- UX research activities across the product lifecycle
Learn how different UX research methods fit each product lifecycle phase to improve design, reduce risks, and ensure usability with effective discovery, exploration,…
- Code splitting in React
Optimize JavaScript performance with code splitting techniques like route-based splitting, lazy loading, and dynamic imports
- Component composition patterns in React
Learn React composition patterns with coverage of HOCs, render props, compound components, and custom hook
- Design system integration in React
Learn how to integrate design systems in React applications with comprehensive coverage of design tokens, atomic components, and accessibility standards.
- Hook architecture in React
React hooks architecture with in-depth coverage of custom hooks, state management, and side effects handling.
- Designing for forgiveness: creating error-tolerant interfaces
In this article, we will look at some simple principles for designing error-tolerant interfaces and how to apply them to improve user experience.
- WebSockets
WebSockets are a simple solution that is invented to solve the problems of HTTP polling for updating the data from the server, which has caused in high overhead,…
- From markup to pixels - a look inside the DOM, CSSOM, and render tree
A deep dive into the rendering process of a web page, exploring the Document Object Model (DOM), CSS Object Model (CSSOM), and the Render Tree.
- Window and iframe communication
When working with web development, communicating between a main window and an embedded iframe is often necessary for various tasks, such as content creation or widget…
- Applying mock service worker (MSW) for seamless web development
Mock Service Worker (MSW) is an API mocking library that leverages the Service Worker API to intercept requests. It offers unique features that set it apart from…
- Render optimization in data-fetching libraries
Data-fetching libraries are software tools or frameworks that can help improve the performance and scalability of your application by handling network requests and data…
- Scroll-driven animations in CSS
Scroll-driven animations are popular effects used in web design. They are animations that are connected to the scroll position of a scroll container.
- URL formats for sharing a link on social networks
Each social network has its own unique way of handling URLs, and understanding the correct formatting can make a significant difference in the visibility and engagement…
- Retain scroll position in infinite scroll
Infinite scroll has become a popular web design technique in recent years, as it offers several benefits over traditional pagination models. However, it can also present…
- Continuous translation
Continuous translation (CT) is a modern approach to translation management that involves synchronizing software development and translation workflows. This means that…
- Why micro frontend
As web applications become more complex and feature-rich, traditional frontend architectures such as monolithic will become harder to maintain, scale, and evolve.…
- Tackling server state complexity in frontend development
Frontend development has become increasingly complex over the years, and with it, the need for efficient state management.
- Variable fonts
Variable fonts are a font format that allows for a single font file to contain multiple variations of a typeface.
- Validation with Zod
Zod is the TypeScript-first schema validation library with static type inference.
- Webassembly
WebAssembly (abbreviated *Wasm*) was launched in 2017 as a low-level assembly-like language with a compact binary format, so it’s fast to load, execute, and run with…
- Data race versus race condition in multithreaded programming
Learn the difference between data race and race condition in multithreaded programming, and discover how mutex and atomic operations ensure data safety by controlling…
- Scaling up an Android app with Jetpack Navigation
Learn how to simplify Android app navigation with Jetpack navigation Component, handling fragment transitions, dynamic start destinations, modular flows, and integration…
- Debugging in JavaScript: console methods and the debugger
Learn how to use JavaScript console methods like console.log, console.assert, console.dir, console.time, and the debugger statement to effectively debug code in Chrome…
- Singleton design pattern in Javascript
The Singleton design pattern is a design pattern that restricts the instantiation of a class to one object.
- The best of CSS TLDR
Tailwind is not another Bootstrap, a `justify-center` class maps exactly to 1 line of css code, you have total control over what is being shipped to the user, whereas a…
- An introduction to atomic CSS
This article provides an overview of Atomic CSS, including its definition, variations, purposes, and how it compares to other CSS approaches.
- Intro to IndexedDB
IndexedDB is a low-level API for client-side storage like localStorage and cookies. But this built-in non-relational database is much more powerful than those 2…
- Kotlin coroutine lifecycle: scope, context and Job states
Learn the difference between CoroutineScope and CoroutineContext, understand the Job lifecycle states, and discover how cooperative cancellation works in Kotlin…
- The fundamental of web performance
The key to improving your website speed is to understand where the bottlenecks are, and how much time each step takes.
- WAI-ARIA
WAI-ARIA is a technology that can help with the problems of modern websites and applications containing huge amounts of dynamic content and complex components with no…
- Build polymorphic React components with Typescript
This article provides a step-by-step guide on how to build polymorphic React components with Typescript, covering the necessary concepts and techniques to create…
- The structure of a command line app built with Swift
Learn how to build powerful Xcode command line tools using Swift, covering CLI app structure, commands, options, flags, and creating custom build tools for automation…
- Cameras in ThreeJS
**ThreeJS** is a JavaScript 3D library that allows developers to develop and describe data in 3 dimensions, and then convert them into 2 dimensions and display them on…
- Flutter widgets: stateless versus stateful
Learn the key differences between stateless and stateful widgets in Flutter, including how each manages UI state and when to use them for dynamic or static app…
- Prevent layout thrashing
Layout Thrashing happens, when you request layout information of an element or the document, while the layout is in an invalidated state.
- Pure CSS parallax
This article demonstrates how to use CSS transforms, perspective and some scaling trickery to create a pure CSS parallax scrolling website.
- Kotlin coroutines: structured concurrency basics
Learn Kotlin coroutines basics, structured concurrency, and how lightweight threads improve concurrent programming with examples of coroutine cancellation and job…
- Container queries in CSS
Container Queries is a CSS feature that allows us to style elements based on the size of a container.
- Declarative UIKit in Swift: the builder pattern, then @resultBuilder stacks
A two-part Swift tutorial that brings SwiftUI-style code to UIKit with @discardableResult builders, then wraps stack views using @resultBuilder.
- Concurrency in JavaScript: the event loop, callbacks and promises
Learn how JavaScript’s single-threaded event loop enables asynchronous, non-blocking concurrency using callbacks, Promises, and async/await to handle tasks efficiently…
- Css in JS
CSS-in-JS is a styling technique where Javascript is used to style the component.
- Dark mode flickers a white background for a fraction of a second
The dark mode feature uses local storage to store a user's preference for future usage. The problem is that when the dark mode is enabled and the page is reloaded,…
- ViteJS native modules
ViteJS takes full advantage of the availability of native ES modules in the browser and the rise of JavaScript tools written in compile-to-native languages by…
- JavaScript modules
Modules have always been a part of JavaScript development and providing mechanisms for splitting JavaScript programs up into separate modules that can be imported when…
- Atomic design pattern
Atomic design is a methodology for crafting design systems with five key fundamental building blocks, which, when combined, promote consistency, modularity, and…
- React 18 feature quick guide
React 18 was released in March 2022. This release focuses on performance improvements and updating the rendering engine.
- Parallelism in JavaScript
Parallelism in JavaScript is a technique to improve the performance of web applications by executing multiple tasks simultaneously.
- MPA, SPA and partial hydration
MPA, SPA and partial hydration are three different approaches to building web applications.
- Deno: a secure JavaScript runtime built in Rust
Discover Deno, a secure JavaScript runtime built in Rust with native TypeScript, WASM, and ESM support, designed for modern web APIs and easy deployment without complex…
- Micro frontends microservices for frontend development
Micro Frontends is an architectural style where independently deliverable frontend applications are composed into a greater whole.
- Six lessons from design thinking for everyday decisions
Discover how applying Design Thinking in everyday life enhances problem solving, decision making, and adaptability with practical tips on gathering information,…
- Getting started with Webflow: responsive sites on a no-code platform
Learn how to design responsive, high-quality websites quickly with Webflow’s no-code platform, featuring visual design tools, CMS, hosting, and easy animations for…
- XPC services in a macOS app with Swift
Learn how to implement XPC Services for secure interprocess communication on macOS, enabling modular app design, crash isolation, and efficient resource management with…
- Grids and layout: columns, gutters and responsive techniques
Learn how to create strong digital design layouts using grids, columns, gutters, and responsive techniques to make your graphic and web designs look clean and…
- Gestalt principles in UI design: proximity, similarity and closure
Learn how Gestalt principles like Proximity, Similarity, and Closure improve UI design by organizing elements for better usability, clear visual hierarchy, and enhanced…
- A quick introduction to WebAssembly, part 1: why it exists and how JavaScript runs
What WebAssembly is, why JavaScript was slow, and how modern JavaScript engines parse, compile and optimize code.
- A quick introduction to WebAssembly, part 2: from asm.js to WebAssembly
How asm.js made a subset of JavaScript fast, why it still fell short, and how that led to WebAssembly.
- Drawing a watch face with SwiftUI
Learn how to create a custom watch face with circular bezel, ticks, numbers, and moving hands using SwiftUI Shapes, Paths, and real-time updates in this step-by-step…
- Using correct Html element to increase website accessibility
Using the correct HTML element can significantly improve the accessibility of your website.
- Building custom iOS views in Swift
Three step-by-step recipes for custom views in Swift, a passcode input, a draggable bottom menu and circular text in SwiftUI, each built from gestures, input handling or…
- The principle of spacing in UI design, part 2: line height and paragraph spacing
Learn the best UI design spacing tips for vertical and horizontal elements, including line-height, paragraph spacing, input fields, and icon alignment to improve…
- What makes good design: usability, accessibility, credibility and typography
Learn what makes good UX and UI design by exploring key factors like usability, accessibility, credibility, color, typography, and layout to create effective,…
- A competency map for user research, design and client management
Discover a detailed competency framework for user research, design, usability, metrics, prototyping, client management, and development to assess and develop skills…
- Building a design system that unites teams and speeds up design work
Learn how to create a design system that unites teams, speeds up design workflows, and improves product quality with reusable components, visual language, design tokens,…
- Don Norman's three levels of design: visceral, behavioral and reflective
Learn how Don Norman’s three levels of design—visceral, behavioral, and reflective—shape user experience and determine whether a product succeeds or fails.
- UI design fundamentals: aesthetics, content and interaction
Learn how to design effective user interfaces by focusing on aesthetics, content, and interaction to create user-centered apps and websites that engage and meet user…
Playbooks
- Frontend code style
Frontend coding rules for functional style, React components, Tailwind, TypeScript, dependencies and performance.
- Frontend tech ecosystem
The frontend stack (React, Next.js, SWR, Tailwind, TypeScript) and the reasoning behind each choice.
- Design sprint
Design sprint mostly applied to the Exploration phase. Friday is usually Education event or Lab projects at Dwarves Design, learning and continuous professional and…
- Low-fidelity prototype: UI design
Design systems enable teams to build better products faster by making design reusable, reusability makes scale possible.
- UX
A two-phase UX research framework (gather data, then analyze it) covering interviews, competitor analysis, personas, journey maps and flows.
- Best practices in Android development, part 1: build setup and libraries
Android SDK, Gradle configuration, project structure, IDE choice and the libraries worth using, from the Dwarves fork of the Futurice guide.
- Best practices in Android development, part 2: app structure and resources
When to use activities or fragments, how to lay out Java packages, and how to keep layout XML, styles, colors and dimens organized.
- Best practices in Android development, part 3: testing, ProGuard, storage and tooling
Test frameworks, emulators, ProGuard configuration, data storage, and the debugging and CI tools that keep an Android app healthy.
Show all 13 playbooks
- Best practices in iOS development, part 1: getting started
How to start an iOS project: design guidelines, Xcode, project setup, dependency management, project structure and the minimum iOS version.
- Best practices in iOS development, part 2: libraries, architecture, stores and assets
Which libraries earn a place in an iOS app, how to structure models, views and controllers, where to keep data, and how to handle images.
- Best practices in iOS development, part 3: coding style, security, diagnostics and analytics
Naming and code structure, secure storage and networking, compiler warnings, the static analyzer, debugging, profiling, analytics and crash logs.
- Best practices in iOS development, part 4: building, deployment and in-app purchases
Build configurations, targets and schemes, code signing and provisioning, uploading to App Store Connect, and in-app purchases.
- Database migration in iOS development
How to migrate Core Data models in iOS apps with the progressive migration method, including the Swift types that implement it.
Series
Tags in this topic
Writers
neko-anon34, zlatanpham20, duynglam14, tieubao12, nikkingtr10, namtrhg6, ngolapnguyen6, nguyend-nam6