Erik V
flotes-dev.bsky.social
Erik V
@flotes-dev.bsky.social
Senior Software Engineer @ Cisco · BJJ Black Belt · Daddy

Independently building at night
- Flotes · Markdown Note-taking Built for Learning
- Tomatillo Timer · Study timer that syncs to music
- Better Commits · CLI to make conventional commits
This is the fix for me.

client:notify instead of client.notify

So confusing 🫤. - There are examples of this workaround everywhere. They all use client.notify. Only example I've seen using client:notify was a Neovim 12 user, I'm on 11.
November 11, 2025 at 1:55 AM
Outside of the Svelte LazyVim Extra, this used to work for me, but that's no longer the case.

For context I'm on Neovim v0.11.3
November 10, 2025 at 9:50 PM
I am re-writing portions of a timer application.

It has many different states that affect each other:
- running / idle
- study, short-break, long-break,
- current-time / max-time
- current-interval / max-interval

(2/4)
November 9, 2025 at 9:25 PM
First time writing Svelte Kit Remote Functions.

Used commands for cookie updates to save ssr layouts/preferences.

Sheeeesh, remote functions kick ass. The code is so much nicer now.
November 6, 2025 at 12:59 AM
First attempt 👀

Had a few hiccups where it seemed like the highlight group was off (like `new` is an Operator). Or getting the catch block parameter to match a function parameter.

Still not totally convinced on nothing to signify built-ins / keywords 😅.
October 30, 2025 at 8:37 PM
flotes.app now loads significantly faster.

On the technical side, this uses a PWA + IDB to mirror data specific to the user. While some data uses a stale-revalidate strategy, notes utilize timestamps to verify if they need synced. This significantly reduces bandwidth usage from large markdown.
October 9, 2025 at 12:32 AM
You can now view/navigate backlinks in a graph in flotes.app. Typing [[ now searches across all notes (and notebooks).

On a technical side, this uses force-graph. Super easy to use and works via HTML 5 Canvas & d3-force. The backlink renderer is CodeMirror v6 autocomplete.

#svelte #d3
October 9, 2025 at 12:17 AM
Anyone writing Svelte with Ollama models?

I feel like there should a Svelte 5 llms.txt *mini* lol.

Smaller local models like gpt-oss:20b say they have a context of 128k tokens. But, it definitely seems like even the small llms.txt gets truncated.

Their reasoning when given the file is way off
August 13, 2025 at 12:05 PM
Ollama is really fun to use. So satisfying seeing my desktop's GPU run when I ask a model a question from code-companion.nvim on my Macbook.
August 12, 2025 at 4:05 PM
So much has changed 🥲. Yet still so many improvements to make 😅.
July 30, 2025 at 3:07 PM
Question for my Svelte wizards. (1/2)

Context

I have code where my state is managed by a cookie and a form action (a button). This way, when I refresh, I SSR the state I want.

On Vercel free tier (project over 1mb, no edge) this puts a delay on my button, and on a slow network, a long delay...
July 24, 2025 at 7:10 PM
I'm in a software dev funk. I'm really starting to just not enjoy it.

I spent 2 days rebuilding my stairs. - Challenging, rewarding, safer for my kids.

I spent 4 months of nights refactoring my long-running svelte project. Tedious, exhausting, and the outcome leaves something to be desired.
June 29, 2025 at 1:42 AM
When running a heap snapshot in a Svelte 5 application. What are detached comments? And why are they so... big?

Is this something that's unavoidable? Or a product of making a mistake somewhere?
May 3, 2025 at 7:47 PM
In regards to mundane state changes that become more complex. Would populating state via an async call on the client fall under that category? - Is there a way derived would solve this, if you had to load from the client?

Genuinely curious. If it can be done better I'd rather do it that way.
April 10, 2025 at 5:50 PM
Personally, I just define all of my deps at the top. Then untrack.
March 28, 2025 at 4:51 PM
Svelte Tip. This one speaks for itself lol. A true red squiggly destroyer.

🟠 #svelte
February 26, 2025 at 11:01 PM
Your site looks awesome! Quick heads up. I was reading your DaisyUI article. Theme should be loaded from a cookie, not local storage. Local storage isn't available on SSR so it gives your site this dark-mode to light-mode flicker effect on load.
February 24, 2025 at 1:38 PM
Catppuccin Mocha Version 🐈‍⬛
January 30, 2025 at 1:16 PM
New stat | milestones | achievements | streaks screen in Tomatillo Timer :)

🟠 #svelte 🟢 #supabase 🟡 #webdev 🔵 #indie
January 30, 2025 at 1:16 PM
TIL you can get today's date as various formats in postgres with to_char and current_date. - Definitely helped me simplify some postgres functions I was writing.

It uses the default time zone of the database session. Alternatively you can use now() for specific time zones.

🟢 #supabase 🔵 #sql
January 12, 2025 at 12:46 AM
The three most important lines in my entire zsh / linux setup 😆. Your pinkie fingers will thank you.

🟢 #linux#programming
January 11, 2025 at 9:27 PM
Something I enjoy about Supabase.

Almost everything you do in the UI can be displayed as plain SQL. So you can easily create something in the UI, that might be advanced in SQL. Cascades, indexes, constraints, rls, etc

Then read the resulting SQL to learn how that stuff works.

🟢 #supabase 🔵 #sql
January 6, 2025 at 10:36 PM
Pretty convenient svelte form tip

use:enhance + requestSubmit() you can fire a form action *on change* without refreshing the page or losing focus.

Nice for stuff like themes where you need to handle the cookie server-side.

🟠 #svelte
January 6, 2025 at 8:19 PM
Some updates from the weekend building a #catppuccin theme for Tomatillo Timer. :)

Built with #svelte 5 and Pico #css
January 6, 2025 at 5:22 PM
Maybe a pretty well-known neovim tip 😅 but something I use all the time.

ctrl+q is the default keymap to send your telescope results to your quick-fix list.

Now you can jump through that list and center each line using

"cnzz" - for next
"cpzz" - for previous

🔵🟢 #vim #neovim
December 29, 2024 at 2:09 AM