Benson Chen
@bnyue.bsky.social
π€ 26
π₯ 92
π 52
π
https://benson-chen.co
Sr. Frontend @ Tomofun
π― Journey to Big Tech #35: build Tabs II Interesting learning about a11y for Tabs: - each tab should have a `role` - tab button uses `aria-controls` to link its panel - panel uses `aria-labelledby` to reference its tab
#Frontend
#React
#100DayOfCode
about 21 hours ago
0
2
0
π― Journey to Big Tech #34: build Digital Clock Just build a simple clock to learn how to get current `hour`, `minutes`, and `seconds` to finish
#Frontend
#React
1 day ago
0
3
0
π― Journey to Big Tech #33: build Stopwatch Finally find `requestAnimationFrame` useful! Since browser frames render ~16ms apart, `setTimeout(fn, 10ms)` will not work as expected. Instead, use browser render frame timestamps to accurately track elapsed time.
#Frontend
#React
4 days ago
0
4
0
π― Journey to Big Tech #32: build Undoable Counter Build a calculator which supports undo/redo. It is interesting that what I learned from AI Google Doc project is really useful here.
#Frontend
#React
4 days ago
0
3
0
π― Journey to Big Tech #31: build TableData Just continuing another React Component challenge
#Frontend
#React
6 days ago
0
2
0
π― Journey to Big Tech #30: build TicTacToe Learned the TicTacToe winner algorithm, which is pretty interesting!
#Frontend
#React
8 days ago
0
2
0
π― Journey to Big Tech #29: build TransferList Just continuing GFE UI question
#Frontend
#React
9 days ago
0
1
0
π― Journey to Big Tech #29: build FileExplorer Practice @greatfrontend UI question, and learn a lot from the solution - instead of tree, flat structure is more performant - can separate comps by html tag Also make it cleaner from the solution is satisfied!
#Frontend
#React
10 days ago
0
1
0
How to build your own Next.js π― Journey to Big Tech #28: How to build your own Next.js Grasping the core concepts behind SSR and understand what causes common issues like hydration errors. If you're interested, you can check the github repo:
github.com/MechaChen/ne...
#NextJs
#frontend
loading . . .
19 days ago
3
5
1
π― Journey to Big Tech #27: Host a real AWS server β cheap & fast To learn system design by doing, without big cost. Thanks to AWS Lightsail, it's just: 1. Build Docker image locally 2. Push local image to AWS Lightsail 3. Deploy to Lightsail Container Service
#AWS
#systemdesign
loading . . .
26 days ago
0
1
0
I just finished the
#GraphQL
Yoga HackerNews clone tutorial by
the-guild.dev/graphql/yoga...
about 2 months ago
0
0
0
π― Journey to Big Tech #26 : Post Chat app architecture & data flow knowledge on LinkedIn link:
d3i9rmv5fv6cfg.cloudfront.net
π¬ Chat Appβs architecture, including - Critical components - Data models: client-side data - Interfaces: client and server communication
#systemdesign
#frontend
#WhatsApp
2 months ago
0
0
0
π― Journey to Big Tech #25 : Post Google Doc knowledge on LinkedIn link:
dw2wyy51ndwcp.cloudfront.net
β Collaborative editing (like in Google Docs, Figma) without proper resolution, different users may end up seeing divergent document states.
#systemdesign
#frontend
#GoogleDoc
3 months ago
4
2
0
π― Journey to Big Tech #24 : Add MCP Client & Server β Add MCP Client UI to init MCP server & communicate with 3rd party service β Add MCP Client by anthropic SDK β Manipulate G-calendar by local Google Calendar MCP server
#ai
#Anthropic
#MCP
loading . . .
4 months ago
0
1
0
π― Journey to Big Tech #23 : Review Sliding window, PrefixSum, Trie algorithm β Learned and Completed Trie algorithm β Completed Slinding Window review β Almost completed PrefixSum review
#algorithm
#prefixsum
#slidingwindow
#trie
5 months ago
0
0
0
π― Journey to Big Tech #22 : MCP try out β Build MCP weather server β Build MCP command line client β Integrate MCP weather server and command line client succesfully
#mcp
#ai
#anthropic
loading . . .
6 months ago
0
0
0
π― Journey to Big Tech #21 : Phase 3.3 - Summarize diff by AI β Migrating Version table schema with ai-diff column β Diffing versions across server with old/new snaphost and gpt-4o-mini model β Show diff summary in drawer
#webdev
#systemdesign
#ai
loading . . .
6 months ago
0
0
0
π― Journey to Big Tech #19 : Phase 3.2 - Save version metadata & apply target version β Upload version metadata to AWS PostgreSQL RDS β Creat a history drawer to get all versions β Get target version snaphost and apply to editor
#systemdesign
#webdev
#AWS
loading . . .
6 months ago
0
0
0
π― Journey to Big Tech #19 : Phase 3.1 - Upload document snaphost β Build version service to upload snaphost β Build s3 bucket by AWS CDK to store document snaphost β Buid s3 presigned-url to secure upload snaphost
#systemdesign
#webdev
#AWS
loading . . .
6 months ago
0
0
0
π― Journey to Big Tech #18 : Phase 2 - Add local buffer β Clone y-websocket to local to get onmessage β Clone lexical collaboration plugin implement local buffer mechanism β Show syncing status with checked ui and working
#systemdesign
#webdev
loading . . .
6 months ago
0
0
0
π― Journey to Big Tech #17 : Phase 1.3 - Add voice to text function β Build web recording with MediaRecorder & .webm β Draw sound wave with AudioContext analyzer & Canvas β Parse .webm to .wav by ffmpeg β Parse .wav to text by whisper model
#ai
#systemdesign
#webdev
loading . . .
6 months ago
0
0
0
π― Journey to Big Tech #16 : Phase 1.2 - Connect real server + load balancer β Create AWS EC2 collab y-websocket service with AWS CDK (Infrastructure as Code) β Connect to EC2 collab service and test editor β Create AWS Load balancer and test editor
#webdev
#systemdesign
loading . . .
7 months ago
0
0
0
π― Journey to Big Tech #15 : Phase 1.1 - collaboration β Created y-websocket collaboration server β Combined lexical/yjs to collaborate on editor
#systemdesign
#webdev
loading . . .
7 months ago
0
0
0
π― Journey to Big Tech #14 : Phase 0 - autocomplete with AI ghost text β Finished connecting to OpenAI model β Finished creating ai ghost-text with context β Finished show ai-ghost-text on editor and "Tab" to accept
#webdev
#systemdesign
loading . . .
7 months ago
0
0
0
π― Journey to Big Tech #13 : Phase 0 - Custom editor style β Finished add new lexical custom node β Finished "Enter" to new paragraph β Finished "Backspace" to remove custom node
#webdev
#systemdesign
loading . . .
7 months ago
0
0
0
π― Journey to Big Tech #12 : Phase 0 - Implement basic editor β Finished adding heading format β Finished adding unordered/ordered list format
#webdev
#systemdesign
loading . . .
7 months ago
0
1
0
π― Journey to Big Tech #11 : Design Google Doc β Finish Phase 2 design (Basic Scalable Collaboration Protocol) β Finish Phase 3 design (Persistence, History & Reconnect Support)
#webdev
#systemdesign
7 months ago
0
1
0
π― Journey to Big Tech #10 : Design Google Doc β Finish Phase 1 design (1 user editor + AI hint) β Finish Phase 2 design (multi users editor + AI Voice to Text)
#webdev
#systemdesign
7 months ago
0
0
0
π― Journey to Big Tech #10 : Design Google Doc β Know Google Doc send update timing, by local updates buffer, server ACK β Know pros & cons of OP (β perf, causality βcomplicated), CRDT (β easy, non-central βspacy) β Know back of envelope calculations
#webdev
#systemdesign
7 months ago
0
0
0
π― Journey to Big Tech #9 : Design Google Doc - Frontend β Grasp Rendering rich text can utilize Canvas, super interesting β Grasp Concurrency control model, like Locks, Version-detection β Grasp Conflict resolution approach, like OP, CRDT
#webdev
#systemdesign
7 months ago
0
1
0
π― Journey to Big Tech #8 : WebRTC - try out and more β Try out WebRTC build connection and send message β Know more beyond basics, like media API to send video/audio message, and `addicecandidate` to update SDP β Know you can customize you webRTC STUN, TURN servers
#webdev
#systemdesign
loading . . .
7 months ago
0
0
0
π― Journey to Big Tech #7 : WebRTC - understand how to build WebRTC connection β Understand what is ICE, SDP β Understand the process of building WebRTC connection β Understand the Pros & Cons of WebRTC (fast but complex mesh connections)
#webdev
#systemdesign
7 months ago
0
0
0
π― Journey to Big Tech #6 : WebRTC - understand STUN and TURN β Understand how WebRTC connect througth STUN β Understand STUN cannot work under symmetric NAT β Understand TURN can help under symmetric NAT
#webdev
#systemdesign
7 months ago
0
0
0
π― Journey to Big Tech #5 : Chat App - Message Status Control β Optimistic Update: Use Map + client message_id to quick lookup and show in_flight message instantly. β Store Failed: Save failed messages in IndexedDB. β Retry : Retry failed messages and update state on success.
#webdev
#systemdesign
loading . . .
8 months ago
1
0
0
π― Journey to Big Tech #4 : Chat App - Store draft text and image β Create chat room indexedDB database β Create draftMessage objectStore(table) with keyPath: ${userId}_${roomId} to save draft text and image messages β Show draft message when re-open chat room
#webdev
#systemdesign
loading . . .
8 months ago
1
1
1
π― Journey to Big Tech #3 : Chat App - οΌulti-tabs with single connection β Use a SharedWorker to manage the WebSocket connection and ensure all functions work. β Ensure multiple tabs/windows share one connection. β Disconnect WebSocket when all tabs/windows close.
#webdev
#systemdesign
loading . . .
8 months ago
1
1
1
π― Journey to Big Tech #2 : Chat App - Multiplayer chat app β Updated room creation to allow selecting multiple users instead of a single user. β Updated room list UI to display multiple users. β Tested that multiple users can send messages to each other in real time.
#webdev
#systemdesign
loading . . .
8 months ago
0
0
0
π― Journey to Big Tech #1 : Chat App - Tackling Basics To dive into the chat system at
#greatfrontend
, I built mini chat with basic requirements : β Create & login email-based account β Create chat room & display rooms β Join a room to send messages
#webdev
#systemdesign
loading . . .
8 months ago
2
1
0
Hi everyone, did anyone even study a lot of browser mechanism, like page life cycle and critical rendering path, but being confused about the overlapping part and the timeline of these two. Here is an article which organizing these informaiton, hope it help!
benson-chen.co/docs/Plan/pa...
loading . . .
[Browser] The relationship between Page Life Cycle & Critical Rendering Path | Benson
Background
https://benson-chen.co/docs/Plan/page-life-cycle
10 months ago
0
3
0
you reached the end!!
feeds!
log in