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

---
title: Best Lobsters posts — May 2024 | daily.dev
description: The most upvoted Lobsters posts from May 2024, curated by the daily.dev community.
canonical: https://daily.dev/sources/lobsters/best-of/2024/05
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:url: https://daily.dev/sources/lobsters/best-of/2024/05
og:type: website
og:site_name: daily.dev
og:title: Best Lobsters posts — May 2024 | daily.dev
og:description: The most upvoted Lobsters posts from May 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 Lobsters — May 2024

1. 1  
[](https://daily.dev/posts/yet-another-rest-client--mkaukg8if "Yet Another REST Client?")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
Yet Another REST Client?  
A developer shares the journey of creating a new API client called Yaak after experiencing frustrations with existing tools like Insomnia. The post discusses the motivation behind Yaak, the burnout faced by the developer, and the future plans for the tool.  
256  
29
2. 2  
[](https://daily.dev/posts/a-javascript-quine-clock-8hdlmavjz "A JavaScript Quine Clock")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
A JavaScript Quine Clock  
A JavaScript Quine Clock is a unique clock that uses self-replicating code to display the time. The code continuously updates and generates the current time in a visually appealing way.  
193  
22
3. 3  
[](https://daily.dev/posts/don-t-microservice-do-module-mfdhrun8p "Don't Microservice, Do Module")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
Don't Microservice, Do Module  
This post argues for the use of modules instead of microservices, highlighting the benefits of modules and the challenges of microservices. It also provides scenarios in which microservices may be appropriate. Overall, a well-structured modular monolith is recommended over microservices unless specific use cases demand them.  
160  
8
4. 4  
[](https://daily.dev/posts/7-css-lgg4i6mbd "7.css")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y

7.css

7.css is a CSS framework for building interface components that look like Windows 7\. It is built on top of the GUI backbone of XP.css, which is an extension of 98.css. This framework relies on the usage of semantic HTML and does not contain any JavaScript.  
129  
5
5. 5  
[](https://daily.dev/posts/your-api-shouldn-t-redirect-http-to-https-2sswcg9fq "Your API Shouldn't Redirect HTTP to HTTPS")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
Your API Shouldn't Redirect HTTP to HTTPS  
This post argues that APIs should not redirect HTTP to HTTPS due to the downsides and potential security risks involved. It highlights the importance of a fail-fast approach for unencrypted API calls and suggests disabling the HTTP interface or returning clear error responses for unencrypted requests. The post also mentions popular APIs that either redirect or respond with plaintext, and suggests amending best practices to explicitly recommend against redirecting HTTP to HTTPS for APIs.  
111  
4
6. 6  
[](https://daily.dev/posts/glanceapp-glance-a-self-hosted-dashboard-that-puts-all-your-feeds-in-one-place-jnyop2j1l "glanceapp/glance: A self-hosted dashboard that puts all your feeds in one place")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
glanceapp/glance: A self-hosted dashboard that puts all your feeds in one place  
Glance is a self-hosted dashboard that allows users to see everything in one place, including RSS feeds, subreddit posts, weather, bookmarks, and more. It has minimal JS, very few dependencies, and offers a small binary and Docker container for easy distribution. The project is under active development.  
96  
1
7. 7  
[](https://daily.dev/posts/writing-commit-messages-djktci0pd "Writing commit messages")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
Writing commit messages  
A guide to writing good commit messages that focus on important information rather than typography. It emphasizes the importance of including all the important facts and reasoning behind the code changes. The post also discusses the use of subject lines in Git and provides tips for clear and readable commit messages.  
73  
6
8. 8  
[](https://daily.dev/posts/state-of-html-2023-guju0b4bt "State of HTML 2023")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
State of HTML 2023  
The State of HTML survey covers a wide range of topics including accessibility, web components, and more. The report includes improved chart customization features.  
55  
1
9. 9  
[](https://daily.dev/posts/bitkeeper-linux-and-licensing-disputes-how-linus-wrote-git-in-14-days-ynvg7xwpp "BitKeeper, Linux, and licensing disputes: How Linus wrote Git in 14 days")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
BitKeeper, Linux, and licensing disputes: How Linus wrote Git in 14 days  
Linus wrote Git as an alternative to the existing version control tools, BitKeeper was the tool of choice before Git. Linus disliked CVS and Subversion due to their centralized nature. The development of Git was influenced by BitKeeper and aimed to provide a better solution for managing the Linux kernel.  
49  
2
10. 10  
[](https://daily.dev/posts/why-after-6-years-i-m-over-graphql-vrck47zpf "Why, after 6 years, I’m over GraphQL")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
Why, after 6 years, I’m over GraphQL  
The author explains why they no longer recommend GraphQL due to security risks, performance issues, coupling, complexity, and more. They suggest considering an OpenAPI-compliant JSON REST API as an alternative.  
32
11. 11  
[](https://daily.dev/posts/that-time-postgresql-said-no-thanks-i-don-t-need-your-index--q4w6ythnw "That time PostgreSQL said "no thanks, I don't need your index"")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
That time PostgreSQL said "no thanks, I don't need your index"  
Explore the journey of optimizing PostgreSQL queries, from facing rejection of adding an index to eventually achieving a significant reduction in query latency by refreshing the database's stale estimates.  
33  
4
12. 12  
[](https://daily.dev/posts/microsoft-go-the-microsoft-build-of-the-go-toolset-86llf6k9q "microsoft/go: The Microsoft build of the Go toolset")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
microsoft/go: The Microsoft build of the Go toolset  
microsoft/go is a repository containing the infrastructure Microsoft uses to build Go. It produces a modified version of Go that can be used to build FIPS 140-2 compliant applications. The binaries produced are intended for general use within Microsoft. The repository follows the upstream Go Release Policy and supports each major release until there are two newer major releases.  
29
13. 13  
[](https://daily.dev/posts/database-design-for-google-calendar-a-tutorial-x3j77newa "Database Design for Google Calendar: a tutorial")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
Database Design for Google Calendar: a tutorial  
This post provides a tutorial on how to design the database tables for a Google Calendar clone. It introduces the approach used in the book 'Database Design using Minimal Modeling' and is aimed at helping readers understand the process of designing a database.  
27
14. 14  
[](https://daily.dev/posts/golang-is-evil-on-shitty-networks-apxzhpbyx "Golang is evil on shitty networks")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
Golang is evil on shitty networks  
Discover why Go disables Nagle's algorithm by default and how it affects network performance. Learn when to enable TCP\_NODELAY for better throughput.  
27
15. 15  
[](https://daily.dev/posts/what-s-new-in-neovim-0-10-vjao2d9ms "What's New in Neovim 0.10")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
What's New in Neovim 0.10  
Neovim 0.10 introduces new features, a new default colorscheme, enhancements in the terminal UI, support for LSP inlay hints, a Tree-sitter query editor, and more.  
25  
1
16. 16  
[](https://daily.dev/posts/higherorderco-bend-a-massively-parallel-high-level-programming-language-1vjhagmwz "HigherOrderCO/Bend: A massively parallel, high-level programming language")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
HigherOrderCO/Bend: A massively parallel, high-level programming language  
Bend is a massively parallel, high-level programming language that runs on massively parallel hardware like GPUs. It has features of expressive languages like Python and Haskell and does not require explicit parallel annotations.  
20  
3
17. 17  
[](https://daily.dev/posts/stealing-everything-you-ve-ever-typed-or-viewed-on-your-own-windows-pc-is-now-possible-with-two-line-ufboct8kd "Stealing everything you’ve ever typed or viewed on your own Windows PC is now possible with two lines of code — inside the Copilot+ Recall disaster.")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
Stealing everything you’ve ever typed or viewed on your own Windows PC is now possible with two lines of code — inside the Copilot+ Recall disaster.  
The implementation of Copilot+ Recall on Windows PC raises privacy concerns and potential risks of data breaches. Hackers and malware can access the processed data, and the privacy implications are significant.  
15
18. 18  
[](https://daily.dev/posts/destel-rill-go-concurrency-with-channel-transformations-type-safety-batching-and-error-handling--tyu52f1nh "destel/rill: Go concurrency with channel transformations, type safety, batching and error handling. No boilerplate")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
destel/rill: Go concurrency with channel transformations, type safety, batching and error handling. No boilerplate  
Rill is a comprehensive Go toolkit for streaming, parallel processing, and pipeline construction. It is designed to reduce boilerplate and simplify usage, allowing developers to focus on core logic without getting bogged down by the complexity of concurrency. Rill offers a range of features including lightweight integration into existing projects, easy to use abstractions for managing concurrency and error handling, batching for organizing and processing data, streaming for handling real-time data, order preservation for maintaining the original order of data, efficient resource use, type-safety, and functional programming capabilities.  
15
19. 19  
[](https://daily.dev/posts/alternatives-to-makefiles-written-in-go-vwio7ms3y "Alternatives to Makefiles written in Go")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
Alternatives to Makefiles written in Go  
Discover alternatives to Makefiles written in Go, such as Taskfile and Mage. These tools provide different ways of automating tasks in projects, offering advantages like familiarity with YAML and the power of Go programming.  
15
20. 20  
[](https://daily.dev/posts/so-we-built-a-reverse-tunnel-in-go-over-http-3-and-quic-gxgptemfq "So we built a Reverse Tunnel in Go over HTTP/3 and QUIC")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
So we built a Reverse Tunnel in Go over HTTP/3 and QUIC  
Flipt has built Reverst, a reverse tunnel implementation in Go over HTTP/3 and QUIC. The blog post explains the motivation behind Reverst, its inner workings, and why HTTP/3 and QUIC were chosen as the underlying protocols.  
15
21. 21  
[](https://daily.dev/posts/seeing-like-a-data-structure-nnclbau4p "Seeing Like a Data Structure")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
Seeing Like a Data Structure  
Technology has become entangled with the structure of society, leading to a world built entirely of abstractions. Our data-centric way of seeing the world isn't serving us well, and we need to embrace and tame this chaos for a better future.  
13  
1
22. 22  
[](https://daily.dev/posts/don-t-return-err-in-go-akavel-s-digital-garden-b4l2h7bkz "Don’t return err in Go — akavel's digital garden")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
Don’t return err in Go — akavel's digital garden  
Improving error handling in Go by adding missing details relevant for debugging.  
13  
5
23. 23  
[](https://daily.dev/posts/rebuilding-my-homelab-suffering-as-a-service-67y6asbbv "Rebuilding my homelab: Suffering as a service")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
Rebuilding my homelab: Suffering as a service  
The post discusses the process of rebuilding a homelab using Talos Linux and Kubernetes, exploring the challenges faced and the solutions implemented. It highlights the benefits of running workloads locally, the use of Kubernetes for workload management, and the importance of persistent storage solutions. The author evaluates various options, including Rocky Linux, Fedora CoreOS, and Longhorn for persistent storage.  
12  
5
24. 24  
[](https://daily.dev/posts/discovering-small-github-projects-for-contributing-to-foss-d5leplfud "Discovering Small GitHub Projects for Contributing to FOSS")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
Discovering Small GitHub Projects for Contributing to FOSS  
Learn how to find small GitHub projects for contributing to FOSS and the importance of contributing to small projects. Discover effective ways to search for small projects on GitHub.  
12
25. 25  
[](https://daily.dev/posts/naming-is-hard-zuqr9erhi "Naming is hard")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
Naming is hard  
The post discusses a bug encountered in Meilisearch v1.6.0 that caused a panic due to mixing the \`tokio\` and \`rayon\` runtimes.  
11

[See all Lobsters archives](/sources/lobsters/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/lobsters/best-of/2024/05#page","url":"https://daily.dev/sources/lobsters/best-of/2024/05","name":"Best Lobsters Posts — May 2024","description":"The most upvoted Lobsters posts from May 2024, curated by the daily.dev community.","isPartOf":{"@type":"WebSite","url":"https://daily.dev"}},{"@type":"ItemList","@id":"https://daily.dev/sources/lobsters/best-of/2024/05#items","numberOfItems":25,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/yet-another-rest-client--mkaukg8if","name":"Yet Another REST Client?"},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/a-javascript-quine-clock-8hdlmavjz","name":"A JavaScript Quine Clock"},{"@type":"ListItem","position":3,"url":"https://daily.dev/posts/don-t-microservice-do-module-mfdhrun8p","name":"Don't Microservice, Do Module"},{"@type":"ListItem","position":4,"url":"https://daily.dev/posts/7-css-lgg4i6mbd","name":"7.css"},{"@type":"ListItem","position":5,"url":"https://daily.dev/posts/your-api-shouldn-t-redirect-http-to-https-2sswcg9fq","name":"Your API Shouldn't Redirect HTTP to HTTPS"},{"@type":"ListItem","position":6,"url":"https://daily.dev/posts/glanceapp-glance-a-self-hosted-dashboard-that-puts-all-your-feeds-in-one-place-jnyop2j1l","name":"glanceapp/glance: A self-hosted dashboard that puts all your feeds in one place"},{"@type":"ListItem","position":7,"url":"https://daily.dev/posts/writing-commit-messages-djktci0pd","name":"Writing commit messages"},{"@type":"ListItem","position":8,"url":"https://daily.dev/posts/state-of-html-2023-guju0b4bt","name":"State of HTML 2023"},{"@type":"ListItem","position":9,"url":"https://daily.dev/posts/bitkeeper-linux-and-licensing-disputes-how-linus-wrote-git-in-14-days-ynvg7xwpp","name":"BitKeeper, Linux, and licensing disputes: How Linus wrote Git in 14 days"},{"@type":"ListItem","position":10,"url":"https://daily.dev/posts/why-after-6-years-i-m-over-graphql-vrck47zpf","name":"Why, after 6 years, I’m over GraphQL"},{"@type":"ListItem","position":11,"url":"https://daily.dev/posts/that-time-postgresql-said-no-thanks-i-don-t-need-your-index--q4w6ythnw","name":"That time PostgreSQL said \"no thanks, I don't need your index\""},{"@type":"ListItem","position":12,"url":"https://daily.dev/posts/microsoft-go-the-microsoft-build-of-the-go-toolset-86llf6k9q","name":"microsoft/go: The Microsoft build of the Go toolset"},{"@type":"ListItem","position":13,"url":"https://daily.dev/posts/database-design-for-google-calendar-a-tutorial-x3j77newa","name":"Database Design for Google Calendar: a tutorial"},{"@type":"ListItem","position":14,"url":"https://daily.dev/posts/golang-is-evil-on-shitty-networks-apxzhpbyx","name":"Golang is evil on shitty networks"},{"@type":"ListItem","position":15,"url":"https://daily.dev/posts/what-s-new-in-neovim-0-10-vjao2d9ms","name":"What's New in Neovim 0.10"},{"@type":"ListItem","position":16,"url":"https://daily.dev/posts/higherorderco-bend-a-massively-parallel-high-level-programming-language-1vjhagmwz","name":"HigherOrderCO/Bend: A massively parallel, high-level programming language"},{"@type":"ListItem","position":17,"url":"https://daily.dev/posts/stealing-everything-you-ve-ever-typed-or-viewed-on-your-own-windows-pc-is-now-possible-with-two-line-ufboct8kd","name":"Stealing everything you’ve ever typed or viewed on your own Windows PC is now possible with two lines of code — inside the Copilot+ Recall disaster."},{"@type":"ListItem","position":18,"url":"https://daily.dev/posts/destel-rill-go-concurrency-with-channel-transformations-type-safety-batching-and-error-handling--tyu52f1nh","name":"destel/rill: Go concurrency with channel transformations, type safety, batching and error handling. No boilerplate"},{"@type":"ListItem","position":19,"url":"https://daily.dev/posts/alternatives-to-makefiles-written-in-go-vwio7ms3y","name":"Alternatives to Makefiles written in Go"},{"@type":"ListItem","position":20,"url":"https://daily.dev/posts/so-we-built-a-reverse-tunnel-in-go-over-http-3-and-quic-gxgptemfq","name":"So we built a Reverse Tunnel in Go over HTTP/3 and QUIC"},{"@type":"ListItem","position":21,"url":"https://daily.dev/posts/seeing-like-a-data-structure-nnclbau4p","name":"Seeing Like a Data Structure"},{"@type":"ListItem","position":22,"url":"https://daily.dev/posts/don-t-return-err-in-go-akavel-s-digital-garden-b4l2h7bkz","name":"Don’t return err in Go — akavel's digital garden"},{"@type":"ListItem","position":23,"url":"https://daily.dev/posts/rebuilding-my-homelab-suffering-as-a-service-67y6asbbv","name":"Rebuilding my homelab: Suffering as a service"},{"@type":"ListItem","position":24,"url":"https://daily.dev/posts/discovering-small-github-projects-for-contributing-to-foss-d5leplfud","name":"Discovering Small GitHub Projects for Contributing to FOSS"},{"@type":"ListItem","position":25,"url":"https://daily.dev/posts/naming-is-hard-zuqr9erhi","name":"Naming is hard"}]},{"@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":"Lobsters","item":"https://daily.dev/sources/lobsters"},{"@type":"ListItem","position":4,"name":"Best of","item":"https://daily.dev/sources/lobsters/best-of"},{"@type":"ListItem","position":5,"name":"May 2024"}]}]}
```

