smartfolds.nvim — My First Plugin, My First Build in Public
Today, I’m kicking off a new project: smartfolds.nvim. It’s a Neovim plugin that I’m building to solve a small but really annoying thing I keep running into — how folded code looks. When I'm working with JavaScript or TypeScript, especially with functions that have JSDoc comments, the default folds feel... bad. You fold a function and instead of seeing something meaningful, you just get {...}. No context, no hint, nothing. It’s frustrating when you’re trying to scan your file and quickly understand what’s folded. So I thought: what if folds could show the function name and signature instead? That small idea is how smartfolds.nvim was born. But honestly, this project is about more than just fixing folds. Recently, I wrote about feeling a little stuck as a developer — like I was just doing the same things over and over. This project is me trying to change that. It’s me exploring new areas of myself, trying new tools, new ideas, and hopefully finding my passion for building again. It’s a chance for me to: Learn Lua properly. Finally dive into Neovim’s plugin system. Build something real, not just read about it. And most importantly, build in public — sharing my progress (and probably a lot of mistakes) openly. This is my first time doing all of that. I’m excited, a little nervous, but mostly just happy to be trying. It feels way more fun to learn by actually doing and sharing, even if it’s messy at the start. Right now, smartfolds.nvim is basically just a vim.notify() that says "smartfolds.nvim loaded

Today, I’m kicking off a new project: smartfolds.nvim.
It’s a Neovim plugin that I’m building to solve a small but really annoying thing I keep running into — how folded code looks.
When I'm working with JavaScript or TypeScript, especially with functions that have JSDoc comments, the default folds feel... bad.
You fold a function and instead of seeing something meaningful, you just get {...}
. No context, no hint, nothing.
It’s frustrating when you’re trying to scan your file and quickly understand what’s folded.
So I thought: what if folds could show the function name and signature instead?
That small idea is how smartfolds.nvim was born.
But honestly, this project is about more than just fixing folds.
Recently, I wrote about feeling a little stuck as a developer — like I was just doing the same things over and over.
This project is me trying to change that.
It’s me exploring new areas of myself, trying new tools, new ideas, and hopefully finding my passion for building again.
It’s a chance for me to:
Learn Lua properly.
Finally dive into Neovim’s plugin system.
Build something real, not just read about it.
And most importantly, build in public — sharing my progress (and probably a lot of mistakes) openly.
This is my first time doing all of that.
I’m excited, a little nervous, but mostly just happy to be trying.
It feels way more fun to learn by actually doing and sharing, even if it’s messy at the start.
Right now, smartfolds.nvim is basically just a vim.notify()
that says "smartfolds.nvim loaded