What is the difference between WebWeb root end? -1
Hello! This is @jio_jake.
This post is a Korean translation of what I wrote in paragraph.xyz. You can get the fastest updates by subscribing to our publication

hello! My name is @jio_jake. I am currently working as a front-end developer at @Yooldo_Games, a blockchain gaming platform.
I joined the team last year with very little knowledge of Web3, so I joined the team without being familiar with the ecosystem or Web3 development. About a year and a half have passed since then, and I started a tech blog to share the insights and development tips I gained and contribute to the ecosystem.
What I can tell newbies in crypto development like me last year is that compared to the uncertainty and direction of the market situation, blockchain development is surprisingly clear and cool. I will periodically share the insights and tips I have gained through the blog, so I would appreciate it if you could subscribe.
What do front-end developers usually do?
Before we get into it, according to my personal experience, there is no big difference between Web3 front-end developers and Web2 front-end developers. There may be a slight difference in the technology stack, but the development environment is not significantly different. It would be more accurate to refer to the differences in business sectors rather than distinct technologies.
From my past experience, the essential qualifications for a frontend developer are as follows:
- UX (User Experience). Tracking user activity in our service is a really important clue for front-end developers.
- Javascript. The recent growth of the Javascript ecosystem is truly remarkable. Most things can be done with Javascript.
- Frameworks such as React. I don’t think it is an essential skill, but I think it is close to essential if you are a developer who wants to join a company.
- Collaboration and soft skills. A front-end developer is literally a job at the end. Sometimes we need to align all team members’ understanding of the product task.
- Problem solving ability. If you know the team business well and know the internal technology architecture well, you must be able to apply it.
Front-end engineers are always focused on improving user experience. If business terms that are difficult to understand at once are explained in a user-friendly way, or the churn rate is high or the process is complicated when drawing a user journey map, we focus on improving it. However, in the Web3 environment, there are slightly different things that front-end developers need to pay attention to when approaching a user-friendly approach.
UX in Web3 dapp
The very first time I joined the current team, there was a time of onboarding for current projects. What was a bit interesting was that there were a lot of words here and there in the product that corresponded to Web3 jargon or proper nouns (business language) that we had defined.
Nevertheless, over 30,000 users (I think it would be better to say fans) were gathered in our community and talking. I was curious about how on earth they gathered users. Surprisingly, the answer is simple.
It was the closed group culture of Web3 users.
Let’s talk about it in more detail. Below is a brief version of Web2 user's journey map.
- Users discover our service by chance. It enters through various channels such as social media advertising, viral marketing, and word of mouth.
- A new user is joining the service.
- The service carefully considers users. A device is installed to prevent the bounce rate, and it identifies interests and shows recommended products.
- Users who suit their tastes become loyal to the service. The number of loyal customers has increased by one.
This is a very honest journey map of a typical Web3 service.
First, it is a flow that presupposes that there is already a large community and community builders within it.
- The user first heard of our service in Closed Group. It is said that they have partnered with a very famous large blockchain (chain, wallet). The KOL (Key Opinion Leader) strongly recommended the project.
- Users have decided to trust our service. Because there is a big, trustworthy company next to this project.
- The user decides to spend some ETH for events, etc. Of course, you can also connect your wallet to our service.
- The cycle repeats. Wow! We have become a project with hype!
Users have the characteristic of not being hesitant to spend a little money. As a front-end developer, the interesting part is that users learn to use the service on their own. This doesn't happen often in Web2. There are so many competing products that you just have to leave. Therefore, we do not need to provide users with tutorials on very simple wallet integration, etc. You know this much, right? There are some parts that can be overlooked with this thought.
So what should we focus more on?
Personal Conclusion: Correlation between Squeezing and Product
The answer to the above question varies from team to team. I am currently working in blockchain gaming. We make really cool games in-house and get them from outside. It's not because it's the company I work for, but I think there aren't many blockchain gaming companies that are as serious about games as we are.


We are now living in the era of dopamine. So, there is a tendency to easily get tired of long-form content. I think the game is long form.
Let's take another example: What if I was the FE of the paragraph?
Let me give you a clearer example. If I were a developer of paragraph, how could I improve the UX?

Hmm.. I just connected the wallet, but it says an unknown error has occurred.
This error appears to occur when connecting to a chain that is not supported by the project. This happened because my MetaMask chain setting was Linea. So I changed it to the Ethereum mainnet.


It is quite inconvenient to have to press the button on the top left of the User Journey screen and select a network. Most Web3 users are well aware of this because it is not uncommon, but there is definitely room for improvement.
I place these invisible tasks in the background without user interaction. It's a simple example, but continuing to think about this kind of thinking is one of the ways to improve UX as a Web3 front-end engineer. Here are some tips for quick and easy interaction.
paragraph The team appears to be using web3-modal for wallet integration. The code below is what I wrote under this assumption.
const SignInButton = () => {
const { open: openWeb3Modal } = useWeb3Modal();
const { address, isConnecting } = useAccount();
const chainId = useChainId();
const { switchChainAsync } = useSwitchChain();
const handleOnclick = async () => {
// check current user wallet chain is supportive or not
if (!supportedChains.has(chainId)) {
await switchChainAsync({ chainId: mainnet.id });
}
openWeb3Modal();
}
return (
<button onClick={handleOnclick}>
{isConnecting ? 'Awaiting Confirmation' : 'Signin'}
</button>
)
}
Web3-modal is a service built using Walletconnect, Viem, and Wagmi. So you can receive support for powerful hooks and utility functions. Using these elements in the right place can greatly improve the user experience.
There is one last detail. Sometimes, some mischievous users do various things when wallet interactions occur. One of them is changing the chain right before sending a transaction. And proudly found the bug! I post it on the Discord community, Twitter, etc. So, it is important to always check the current environment when interacting with a wallet. Like below:
- Is the user’s wallet address the same as registered off-chain?
- Are users connecting to chains we support? The more facts you need to check, the better. There are more tips in terms of improving the UX of smart contract interactions, and I will come back soon and share some tips with you.
finish
As I mentioned at the beginning of the article, I don't see Web3 frontend development as fundamentally different from Web2 frontend work. In fact, Web3 from a technical perspective is much sharper and clearer than the ambiguous and always-changing market situation.
It's hard to deny that Web3 services are sometimes not very user-friendly. Because it is essential to have the function of wallet and on-chain interaction. However, if you are a frontend developer, there are things to worry about. We must analyze the target users of our service and try to understand the needs of core users. You can optimize UX by drawing a user journey map and reducing inconvenient points.
Today, I briefly shared the UX regarding wallet connection. There are still many points where Web3 can improve UX, and there are many things I would like to share.
If you liked the article, please subscribe and share. Thank you for reading this long article. See you in the next post.
The above is the detailed content of What is the difference between WebWeb root end? -1. For more information, please follow other related articles on the PHP Chinese website!
Hot AI Tools
Undress AI Tool
Undress images for free
Undresser.AI Undress
AI-powered app for creating realistic nude photos
AI Clothes Remover
Online AI tool for removing clothes from photos.
Clothoff.io
AI clothes remover
Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!
Hot Article
Hot Tools
Notepad++7.3.1
Easy-to-use and free code editor
SublimeText3 Chinese version
Chinese version, very easy to use
Zend Studio 13.0.1
Powerful PHP integrated development environment
Dreamweaver CS6
Visual web development tools
SublimeText3 Mac version
God-level code editing software (SublimeText3)
Advanced Conditional Types in TypeScript
Aug 04, 2025 am 06:32 AM
TypeScript's advanced condition types implement logical judgment between types through TextendsU?X:Y syntax. Its core capabilities are reflected in the distributed condition types, infer type inference and the construction of complex type tools. 1. The conditional type is distributed in the bare type parameters and can automatically split the joint type, such as ToArray to obtain string[]|number[]. 2. Use distribution to build filtering and extraction tools: Exclude excludes types through TextendsU?never:T, Extract extracts commonalities through TextendsU?T:Never, and NonNullable filters null/undefined. 3
Generate Solved Double Chocolate Puzzles: A Guide to Data Structures and Algorithms
Aug 05, 2025 am 08:30 AM
This article explores in-depth how to automatically generate solveable puzzles for the Double-Choco puzzle game. We will introduce an efficient data structure - a cell object based on a 2D grid that contains boundary information, color, and state. On this basis, we will elaborate on a recursive block recognition algorithm (similar to depth-first search) and how to integrate it into the iterative puzzle generation process to ensure that the generated puzzles meet the rules of the game and are solveable. The article will provide sample code and discuss key considerations and optimization strategies in the generation process.
What is the class syntax in JavaScript and how does it relate to prototypes?
Aug 03, 2025 pm 04:11 PM
JavaScript's class syntax is syntactic sugar inherited by prototypes. 1. The class defined by class is essentially a function and methods are added to the prototype; 2. The instances look up methods through the prototype chain; 3. The static method belongs to the class itself; 4. Extends inherits through the prototype chain, and the underlying layer still uses the prototype mechanism. Class has not changed the essence of JavaScript prototype inheritance.
Mastering JavaScript Array Methods: `map`, `filter`, and `reduce`
Aug 03, 2025 am 05:54 AM
JavaScript's array methods map, filter and reduce are used to write clear and functional code. 1. Map is used to convert each element in the array and return a new array, such as converting Celsius to Fahrenheit; 2. Filter is used to filter elements according to conditions and return a new array that meets the conditions, such as obtaining even numbers or active users; 3. Reduce is used to accumulate results, such as summing or counting frequency, and the initial value needs to be provided and returned to the accumulator; none of the three modify the original array, and can be called in chain, suitable for data processing and conversion, improving code readability and functionality.
How can you remove a CSS class from a DOM element using JavaScript?
Aug 05, 2025 pm 12:51 PM
The most common and recommended method for removing CSS classes from DOM elements using JavaScript is through the remove() method of the classList property. 1. Use element.classList.remove('className') to safely delete a single or multiple classes, and no error will be reported even if the class does not exist; 2. The alternative method is to directly operate the className property and remove the class by string replacement, but it is easy to cause problems due to inaccurate regular matching or improper space processing, so it is not recommended; 3. You can first judge whether the class exists and then delete it through element.classList.contains(), but it is usually not necessary; 4.classList
Vercel SPA routing and resource loading: Solve deep URL access issues
Aug 13, 2025 am 10:18 AM
This article aims to solve the problem of deep URL refresh or direct access causing page resource loading failure when deploying single page applications (SPAs) on Vercel. The core is to understand the difference between Vercel's routing rewriting mechanism and browser parsing relative paths. By configuring vercel.json to redirect all paths to index.html, and correct the reference method of static resources in HTML, change the relative path to absolute path, ensuring that the application can correctly load all resources under any URL.
Vercel Single Page Application (SPA) Deployment Guide: Solving Deep URL Asset Loading Issues
Aug 13, 2025 pm 01:03 PM
This tutorial aims to solve the problem of loading assets (CSS, JS, images, etc.) when accessing multi-level URLs (such as /projects/home) when deploying single page applications (SPAs) on Vercel. The core lies in understanding the difference between Vercel's routing rewriting mechanism and relative/absolute paths in HTML. By correctly configuring vercel.json, ensure that all non-file requests are redirected to index.html and correcting asset references in HTML as absolute paths, thereby achieving stable operation of SPA at any depth URL.
JavaScript Performance Optimization: Beyond the Basics
Aug 03, 2025 pm 04:17 PM
OptimizeobjectshapesbyinitializingpropertiesconsistentlytomaintainhiddenclassesinJavaScriptengines.2.Reducegarbagecollectionpressurebyreusingobjects,avoidinginlineobjectcreation,andusingtypedarrays.3.Breaklongtaskswithasyncscheduling,usepassiveeventl


