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 a piece of code written by Sonnet 4.5 in my actual app 😄

We needed onclick={activate()}

Instead we got a polling system filled with as anys lol.

This is with Playwright mcp, svelte 5 mcp, ultrathink, telling it my grandma was in danger if it did it wrong; this is the outcome lol.
December 20, 2025 at 4:52 PM
Cleaned up some initial load performance issues on one of my side projects. Thought these two charts were pretty interesting in retrospective.

Light chart is traffic, dark chart is data transfer. - Even though traffic kept increasing, data transfer dropped from 13GB to 500MB.

timer.flotes.app
December 19, 2025 at 1:00 AM
Not perfect, but reduced the resources loaded on start by one of my svelte apps from 12.4MB to 1.5MB. Something like an 88% reduction in size.

timer.flotes.app
December 16, 2025 at 12:12 AM
"Property '"~standard"' is missing in type 'ObjectSchema'

For anyone else that runs into a valid schema and svelte kit remote function failing with this error:

My valibot version was old 🥲.

May you save 30 minutes of your life not diddling your config and running :LspRestart 🫡
November 24, 2025 at 1:27 AM
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