<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/tags/lua/best-of/2025" -->

---
title: Best Lua posts of 2025 | daily.dev
description: The most upvoted Lua posts of 2025, curated by the daily.dev community.
canonical: https://daily.dev/tags/lua/best-of/2025
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:url: https://daily.dev/tags/lua/best-of/2025
og:type: website
og:site_name: daily.dev
og:title: Best Lua posts of 2025 | daily.dev
og:description: The most upvoted Lua posts of 2025, 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 Lua — 2025

1. 1  
[](/posts/neovim-for-java-developers-a-match-is-made--csstppbyh "Neovim for Java Developers: A Match is made 🚀")  
Article  
![Avatar of shaaf](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/0b296c189bd840d99decdb5078460675)Shaaf · 1y  
Neovim for Java Developers: A Match is made 🚀  
A comprehensive guide to setting up Neovim as a Java development environment, featuring the neovim4j configuration repository. Covers essential plugins like nvim-java for testing and debugging, telescope for fuzzy search, and LSP configuration for code completion. Includes AI integration with GitHub Copilot and ChatGPT, along with practical keybindings and setup instructions for Java developers transitioning from traditional IDEs.  
82  
1
2. 2  
[](/posts/how-to-become-cracked-at-programming-jwy90ms4k "How To Become Cracked at Programming")  
Video  
![Avatar of bigboxswe](https://media.daily.dev/image/upload/s--KMRj-zRu--/f_auto/v1711188128/logos/bigboxswe)bigboxSWE · 1y  
How To Become Cracked at Programming  
Becoming highly skilled at programming requires obsession rather than specific technologies or frameworks. Two paths emerge: obsession with creating products (like the solo developer behind Balatro game) or obsession with technology itself (like Evan You creating Vue.js and Vite). Success comes from genuine passion that makes hard work feel like play, focusing on building for personal satisfaction rather than external validation.  
80  
6
3. 3  
[](/posts/m4xshen-hardtime-nvim-break-bad-habits-master-vim-motions-jonpayfik "m4xshen/hardtime.nvim: Break bad habits, master Vim motions")  
Article  
![Avatar of hn](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn)Hacker News · 1y  
m4xshen/hardtime.nvim: Break bad habits, master Vim motions  
hardtime.nvim is a plugin designed to help Vim users break common inefficient habits and master proficient command motions. It blocks repeated key presses in short intervals, provides hints for faster navigation, and reports frequently seen bad habits. The plugin requires Neovim v0.10 or above and can be customized via configuration files for a tailored experience.  
81  
1
4. 4  
[](/posts/multiplayer-spaceship-bridge-simulator-oqsjme3tr "Multiplayer Spaceship Bridge Simulator")  
Article  
![Avatar of hn](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn)Hacker News · 2y  
Multiplayer Spaceship Bridge Simulator  
EmptyEpsilon is an open-source multiplayer spaceship bridge simulator game inspired by Artemis Spaceship Bridge Simulator. It involves players taking on various officer roles on a spaceship, collaboratively working together for the best experience. The game is highly modifiable and free, with scenarios that can be customized using Lua scripts. Players can discuss, report issues, and follow updates in the game's forums, GitHub repository, and Discord community.  
70  
3
5. 5  
[](/posts/replacing-bash-for-scripting--ga4ankmqn "Replacing Bash for scripting?")  
Article  
![Avatar of otqajuf6zdm9hfrwtlr9n](https://avatars.githubusercontent.com/u/2653546?v=4)Isaac de Andrade · 1y  
Replacing Bash for scripting?  
A developer seeks alternatives to Bash for scripting tasks, having found Lua more verbose for command execution and stdout handling. They're looking for community experiences with replacing Bash using Python, Fish shell, or compiled languages for more capable scripting solutions.  
62  
28
6. 6  
[](/posts/this-website-is-served-from-nine-neovim-buffers-on-my-old-thinkpad-rwyscog2r "This Website is Served from Nine Neovim Buffers on My Old ThinkPad")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 1y  
This Website is Served from Nine Neovim Buffers on My Old ThinkPad  
A developer created a Neovim plugin that serves HTTP requests directly from editor buffers using pure Lua. The plugin leverages Neovim's libuv bindings for asynchronous I/O and surprisingly outperforms Nginx in benchmarks due to LuaJIT's efficiency and NaN tagging optimization. The implementation serves a static website from nine buffers on a 2012 ThinkPad, with security measures including Docker containerization, AppArmor profiles, and restricted system calls. The setup demonstrates how text editors can be repurposed for unconventional tasks while maintaining good performance.  
60  
3
7. 7  
[](/posts/lazyvim-and-how-i-did-it-nick-janetakis-ezqfb7zqn "LazyVim and How I Did It — Nick Janetakis")  
Article  
![Avatar of nickjanetakis](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/05b22e1c43b541059edfaba1ccc944e6)Nick Janetakis · 1y  
LazyVim and How I Did It — Nick Janetakis  
A developer shares their experience migrating from Vim to Neovim with LazyVim configuration. The switch was motivated by syntax highlighting issues, slow performance with large files, and desire for better LSP integration. The migration process involved auditing a 700-line Vim config with 55+ plugins, leveraging LazyVim as a starting point, and learning basic Lua scripting. Key ecosystem components include Neovim as the editor, LazyVim for configuration, Lazy for plugin management, Mason for LSP servers, Treesitter for syntax highlighting, and various completion plugins.  
50  
1
8. 8  
[](/posts/lua-game-engines-in-2025-qyvpisngj "Lua Game Engines in 2025")  
Video  
![Avatar of gamefromscratch](https://media.daily.dev/image/upload/s--EcPfFcSs--/f_auto/v1724391677/logos/gamefromscratch)Gamefromscratch · 2y  
Lua Game Engines in 2025  
An overview of various game engines and frameworks that utilize the Lua programming language, highlighting their features, popularity, and ease of use. The post covers both 2D and 3D engines, including Love, Defold, Solar2D, and more, offering insights into their capabilities, supported platforms, and community support.  
30
9. 9  
[](/posts/critical-redis-vulnerability-cve-2025-49844-immediate-action-required-eq0dxeswq "Critical Redis Vulnerability CVE‑2025‑49844: Immediate Action Required")  
Article  
![Avatar of collections](https://media.daily.dev/image/upload/s--fk_6ycEi--/f_auto,q_auto/v1780996001/logos/collections?_a=BAMAMiWQ0)Collections · 1y  
Critical Redis Vulnerability CVE‑2025‑49844: Immediate Action Required  
Wiz Research discovered RediShell (CVE-2025-49844), a critical remote code execution vulnerability in Redis with a maximum CVSS score of 10.0\. The flaw stems from a 13-year-old use-after-free bug in Redis's Lua interpreter that allows authenticated attackers to bypass the sandbox and execute arbitrary code. With Redis deployed in 75% of cloud environments and 330,000 instances exposed online (60,000 without authentication), the impact is severe. Patches are available for Redis versions 6.2.20, 7.2.11, 7.4.6, 8.0.4, and 8.2.2, along with Valkey. Organizations should immediately upgrade, enable authentication, restrict network access, disable unnecessary Lua commands, and implement ACLs to limit script execution.  
23  
2
10. 11  
[](/posts/openmw-0-50-0-released--ffa71q31u "OpenMW 0.50.0 Released!")  
Article  
![Avatar of hn](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn)Hacker News · 48w  
OpenMW 0.50.0 Released!  
OpenMW 0.50.0 brings major improvements to the open-source game engine reimplementation. Key updates include overhauled gamepad support with controller-friendly UI navigation, expanded Lua scripting API with combat mechanics dehardcoding, quick item transfer via Alt-clicking, and Polish language translations. The release fixes numerous pathfinding issues, improves skinned geometry rendering for better mod compatibility, adds terrain and weather APIs for scripting, and introduces Doppler effect for 3D audio. Progress toward supporting newer Bethesda games includes terrain texturing and distant object rendering implementations.  
18  
1
11. 12  
[](/posts/vim-vs-neovim-3m1ngpi16 "Vim vs Neovim")  
Video  
![Avatar of primeagen](https://media.daily.dev/image/upload/s--J5-GjDeo--/f_auto/v1704628081/logos/primeagen.jpg)ThePrimeTime · 2y  
Vim vs Neovim  
Vim is a text editor created and maintained by a single developer until his recent passing. Neovim, a community-driven fork of Vim, enhances the original with features like Lua programming support, Tree-sitter, LSP clients, and an improved API. The community-driven approach of Neovim provides a diverse development direction compared to Vim's singular vision.  
17
12. 13  
[](/posts/custom-file-type-syntax-highlighting-with-neovim-nick-janetakis-evyeljtbt "Custom File Type Syntax Highlighting with Neovim — Nick Janetakis")  
Article  
![Avatar of nickjanetakis](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/05b22e1c43b541059edfaba1ccc944e6)Nick Janetakis · 1y  
Custom File Type Syntax Highlighting with Neovim — Nick Janetakis  
Learn how to configure custom file type syntax highlighting in Neovim using Lua scripts. Covers practical examples like differentiating .env.example from .env files, treating requirements-lock.txt like requirements.txt, and highlighting shell script variants. Includes configuration patterns, Treesitter integration, and LSP considerations for better editor support.  
14
13. 14  
[](/posts/why-i-love-using-neovim-in-2025-doyzeh81n "Why I Love Using Neovim in 2025")  
Video  
![Avatar of joseanmartinez](https://media.daily.dev/image/upload/s--tchkHYFk--/f_auto/v1728807308/logos/joseanmartinez)Josean Martinez · 1y  
Why I Love Using Neovim in 2025  
A developer shares their continued enthusiasm for Neovim after 5 years of use, highlighting three main benefits: efficient code editing through Vim commands and motions, complete customization control without sacrificing modern IDE features, and seamless terminal-based workflow integration. The author acknowledges the initial learning curve for keyboard commands and configuration setup but emphasizes how these challenges become strengths once mastered, creating a personalized development environment that enhances focus and productivity.  
14
14. 15  
[](/posts/it-doesn-t-get-worse-than-this-cvss-10-0--dfmxwqqby "it doesn't get worse than this (CVSS 10.0)")  
Video  
![Avatar of lowlevellearning](https://media.daily.dev/image/upload/s--pjLyMMmx--/f_auto/v1724394406/logos/lowlevellearning)Low Level Learning · 1y  
it doesn't get worse than this (CVSS 10.0)  
A critical CVSS 10.0 vulnerability in Redis involves a use-after-free bug in its custom Lua interpreter implementation. The flaw occurs when the garbage collector fails to properly track T-string objects, allowing freed memory to be reused while still accessible, potentially leading to type confusion and remote code execution. The vulnerability requires authentication to exploit and demonstrates how even garbage-collected languages can have memory safety issues in their runtime implementations.  
11
15. 16  
[](/posts/make-your-own-theme-in-neovim-vscode-tutorial-6ntb1w7pf "Make your own Theme in Neovim & VSCode Tutorial")  
Video  
![Avatar of developedbyed](https://media.daily.dev/image/upload/s--zqSPhQkV--/f_auto/v1718348012/logos/developedbyed)developedbyed · 1y  
Make your own Theme in Neovim & VSCode Tutorial  
A comprehensive guide to creating custom color themes for both Neovim and VS Code. The tutorial covers setting up Lua-based themes in Neovim using highlight groups, defining color palettes, and configuring various UI elements like line numbers, search highlights, and cursor lines. For VS Code, it demonstrates using the Yeoman generator to create theme extensions, modifying JSON configuration files, and packaging themes for installation. The guide includes practical tips for finding color palettes and testing theme implementations.  
11

[See all Lua archives](/tags/lua/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/tags/lua/best-of/2025#page","url":"https://daily.dev/tags/lua/best-of/2025","name":"Best Lua Posts of 2025","description":"The most upvoted Lua posts of 2025, curated by the daily.dev community.","isPartOf":{"@type":"WebSite","url":"https://daily.dev"}},{"@type":"ItemList","@id":"https://daily.dev/tags/lua/best-of/2025#items","numberOfItems":15,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/neovim-for-java-developers-a-match-is-made--csstppbyh","name":"Neovim for Java Developers: A Match is made 🚀"},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/how-to-become-cracked-at-programming-jwy90ms4k","name":"How To Become Cracked at Programming"},{"@type":"ListItem","position":3,"url":"https://daily.dev/posts/m4xshen-hardtime-nvim-break-bad-habits-master-vim-motions-jonpayfik","name":"m4xshen/hardtime.nvim: Break bad habits, master Vim motions"},{"@type":"ListItem","position":4,"url":"https://daily.dev/posts/multiplayer-spaceship-bridge-simulator-oqsjme3tr","name":"Multiplayer Spaceship Bridge Simulator"},{"@type":"ListItem","position":5,"url":"https://daily.dev/posts/replacing-bash-for-scripting--ga4ankmqn","name":"Replacing Bash for scripting?"},{"@type":"ListItem","position":6,"url":"https://daily.dev/posts/this-website-is-served-from-nine-neovim-buffers-on-my-old-thinkpad-rwyscog2r","name":"This Website is Served from Nine Neovim Buffers on My Old ThinkPad"},{"@type":"ListItem","position":7,"url":"https://daily.dev/posts/lazyvim-and-how-i-did-it-nick-janetakis-ezqfb7zqn","name":"LazyVim and How I Did It — Nick Janetakis"},{"@type":"ListItem","position":8,"url":"https://daily.dev/posts/lua-game-engines-in-2025-qyvpisngj","name":"Lua Game Engines in 2025"},{"@type":"ListItem","position":9,"url":"https://daily.dev/posts/critical-redis-vulnerability-cve-2025-49844-immediate-action-required-eq0dxeswq","name":"Critical Redis Vulnerability CVE‑2025‑49844: Immediate Action Required"},{"@type":"ListItem","position":11,"url":"https://daily.dev/posts/openmw-0-50-0-released--ffa71q31u","name":"OpenMW 0.50.0 Released!"},{"@type":"ListItem","position":12,"url":"https://daily.dev/posts/vim-vs-neovim-3m1ngpi16","name":"Vim vs Neovim"},{"@type":"ListItem","position":13,"url":"https://daily.dev/posts/custom-file-type-syntax-highlighting-with-neovim-nick-janetakis-evyeljtbt","name":"Custom File Type Syntax Highlighting with Neovim — Nick Janetakis"},{"@type":"ListItem","position":14,"url":"https://daily.dev/posts/why-i-love-using-neovim-in-2025-doyzeh81n","name":"Why I Love Using Neovim in 2025"},{"@type":"ListItem","position":15,"url":"https://daily.dev/posts/it-doesn-t-get-worse-than-this-cvss-10-0--dfmxwqqby","name":"it doesn't get worse than this (CVSS 10.0)"},{"@type":"ListItem","position":16,"url":"https://daily.dev/posts/make-your-own-theme-in-neovim-vscode-tutorial-6ntb1w7pf","name":"Make your own Theme in Neovim & VSCode Tutorial"}]},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Tags","item":"https://daily.dev/tags"},{"@type":"ListItem","position":3,"name":"Lua","item":"https://daily.dev/tags/lua"},{"@type":"ListItem","position":4,"name":"Best of","item":"https://daily.dev/tags/lua/best-of"},{"@type":"ListItem","position":5,"name":"2025"}]}]}
```

