<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/sources/tigerabrodi/best-of/2024/12" -->

---
title: Best Tiger&#x27;s Place posts — December 2024 | daily.dev
description: The most upvoted Tiger&#x27;s Place posts from December 2024, curated by the daily.dev community.
canonical: https://daily.dev/sources/tigerabrodi/best-of/2024/12
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:url: https://daily.dev/sources/tigerabrodi/best-of/2024/12
og:type: website
og:site_name: daily.dev
og:title: Best Tiger&#x27;s Place posts — December 2024 | daily.dev
og:description: The most upvoted Tiger&#x27;s Place posts from December 2024, curated by the daily.dev community.
og:image: https://media.daily.dev/image/upload/s--VAY5ToZt--/f_auto/v1724209435/public/daily.dev%20-%20open%20graph
---

# Best of Tiger's Place — December 2024

1. 1  
[](https://daily.dev/posts/frontend-system-desigm-chat-application-52wpjrhpp "Frontend System Desigm: Chat Application")  
Article  
![Avatar of tigerabrodi](https://media.daily.dev/image/upload/s--YHA5dYl8--/f_auto/v1718349472/logos/tigerabrodi)Tiger's Place · 2y  
Frontend System Desigm: Chat Application  
Designing a frontend chat system involves defining component structures, managing state, achieving real-time updates, ensuring user authentication, and considering UI/UX elements. The architecture includes REST and WebSockets for real-time communication, with JWT for authentication and Signal Protocol for encryption. Key aspects include idempotency, client-side storage, managing network unreliability, and implementing performance optimizations. Production readiness requires feature flags, thorough testing, error tracking, performance monitoring, and user behavior analytics.  
202  
2
2. 2  
[](https://daily.dev/posts/i-misunderstood-promise-all-in-javascript-j2ln8drq3 "I misunderstood Promise.all in JavaScript")  
Article  
![Avatar of tigerabrodi](https://media.daily.dev/image/upload/s--YHA5dYl8--/f_auto/v1718349472/logos/tigerabrodi)Tiger's Place · 2y  
I misunderstood Promise.all in JavaScript  
The post clarifies the common misconception about \`Promise.all\` in JavaScript, which waits for multiple promises to resolve and returns their results in an array. It explains how \`await\` works as syntactic sugar and how \`Promise.allSettled\` provides a way to handle all promises' results, including rejections, for better debugging. Practical examples demonstrate how to use these methods effectively.  
118  
3
3. 3  
[](https://daily.dev/posts/performance-principles-5xjx7eic8 "Performance Principles")  
Article  
![Avatar of tigerabrodi](https://media.daily.dev/image/upload/s--YHA5dYl8--/f_auto/v1718349472/logos/tigerabrodi)Tiger's Place · 2y  
Performance Principles  
The post discusses various principles and techniques for improving performance in programming. It covers reducing workload by optimizing code logic, using more efficient data structures like maps, implementing caching to avoid repeated computations, and prefetching resources to improve perceived performance. The post also provides specific examples and emphasizes considerations for mobile environments.  
81  
2
4. 4  
[](https://daily.dev/posts/debounce-and-throttle-vpsgvxbta "Debounce and Throttle")  
Article  
![Avatar of tigerabrodi](https://media.daily.dev/image/upload/s--YHA5dYl8--/f_auto/v1718349472/logos/tigerabrodi)Tiger's Place · 2y  
Debounce and Throttle  
Debounce and throttle are techniques used to control the frequency of function execution. Debounce delays the function execution until a specified wait time has elapsed since the last invocation, making it useful for search functions. Throttle restricts the function execution to once within a specified time interval but can immediately run the function on the first call and be configured to either ignore or queue subsequent calls during the cooldown period.  
41  
1
5. 5  
[](https://daily.dev/posts/api-keys-best-practices-notes-nwmkructv "API keys best practices notes")  
Article  
![Avatar of tigerabrodi](https://media.daily.dev/image/upload/s--YHA5dYl8--/f_auto/v1718349472/logos/tigerabrodi)Tiger's Place · 2y  
API keys best practices notes  
Always put API keys in request headers to avoid exposure in browser history or logs. For frontend code, never put sensitive keys in headers or URLs; use a proxy backend for production-ready projects. Use different keys for different environments and store them securely using environment variables. Rotate keys periodically to maintain security.  
38

[See all Tiger's Place archives](/sources/tigerabrodi/best-of)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://daily.dev/sources/tigerabrodi/best-of/2024/12#page","url":"https://daily.dev/sources/tigerabrodi/best-of/2024/12","name":"Best Tiger's Place Posts — December 2024","description":"The most upvoted Tiger's Place posts from December 2024, curated by the daily.dev community.","isPartOf":{"@type":"WebSite","url":"https://daily.dev"}},{"@type":"ItemList","@id":"https://daily.dev/sources/tigerabrodi/best-of/2024/12#items","numberOfItems":5,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/frontend-system-desigm-chat-application-52wpjrhpp","name":"Frontend System Desigm: Chat Application"},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/i-misunderstood-promise-all-in-javascript-j2ln8drq3","name":"I misunderstood Promise.all in JavaScript"},{"@type":"ListItem","position":3,"url":"https://daily.dev/posts/performance-principles-5xjx7eic8","name":"Performance Principles"},{"@type":"ListItem","position":4,"url":"https://daily.dev/posts/debounce-and-throttle-vpsgvxbta","name":"Debounce and Throttle"},{"@type":"ListItem","position":5,"url":"https://daily.dev/posts/api-keys-best-practices-notes-nwmkructv","name":"API keys best practices notes"}]},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Sources","item":"https://daily.dev/sources"},{"@type":"ListItem","position":3,"name":"Tiger's Place","item":"https://daily.dev/sources/tigerabrodi"},{"@type":"ListItem","position":4,"name":"Best of","item":"https://daily.dev/sources/tigerabrodi/best-of"},{"@type":"ListItem","position":5,"name":"December 2024"}]}]}
```

