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
It seems like Cloudflare Workers are much cheaper than Vercel for hosting something like a SvelteKit app.

Am I missing something?
- Vercel is $20/m for 10m requests
- Workers are $5/m for 10m request, not including static assets.
December 19, 2025 at 1:13 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
vim.lsp.config has fixed so many issues I've been having in Neovim.
- Svelte LS crashes on large svelte projects
- Autocomplete suggestions are duplicated
- ts_ls doesn't attach to .ts buffers at all
- svelte files don't recognize changes to ts files
December 16, 2025 at 12:23 PM
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
I'm using Neovim & Copilot CLI. How do others run multiple agents at a time?

Any attempt to run more than 1 and they both start running npm run dev and playwright against each other in an infinite loop. I can even say "Don't use the default port", no luck lol.
December 13, 2025 at 9:19 PM
I'm having a bunch of little issues pop up in my Neovim lately.
- Svelte: I constantly have to restart the LSP for various reasons. Indentation stops working, duplicated references in auto complete, svelte/kit types aren't recognized.
- Ghost text for things like copilot.lua break auto pairs.
November 29, 2025 at 1:50 AM
Reposted by Erik V
I'm looking for my next opportunity in the front-end space 🌐

I've worked at some great companies: Hugging Face, V7, Appwrite, and Significa.

I've built NPM packages with 400k downloads/week, and am an avid open-source contributor.

Let me know if you want to work together!
November 24, 2025 at 10:36 PM
"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
Anyone using Svelte + Neovim want to share their dots / config? 🙂

I've been using both for a long time, but recently the LazyVim extra for Svelte crashes the svelte-language-server on big svelte projects.

I can't get ts file changes to show in svelte files without LspRestart. 🥲
November 10, 2025 at 9:50 PM
Does FiniteStateMachine from Svelte Runed library have the ability to handle nesting similar to X-State?

I was trying different ways but couldn't figure it out or find any examples.

Runed: runed.dev/docs/utiliti...
X-State Example: github.com/statelyai/xs...
FiniteStateMachine
Defines a strongly-typed finite state machine.
runed.dev
November 9, 2025 at 5:31 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
If you had a setting page in written Svelte / Svelte-Kit. No save button, every change event on a select, checkbox, etc... saves to the server.

Do you use a form remote function with a form element, or omit the form element and use a command remote function?
November 2, 2025 at 9:39 PM
Recently switched from Harpoon2 to Grapple.nvim.

Insanely good plugin. I think Harpoon is so well known that people don't look at alternatives. Definitely worth the switch IMO and even has a harpoon-to-grapple config example in the readme.

github.com/cbochs/grapp...

#NeoVim #Vim
GitHub - cbochs/grapple.nvim: Neovim plugin for tagging important files
Neovim plugin for tagging important files. Contribute to cbochs/grapple.nvim development by creating an account on GitHub.
github.com
October 31, 2025 at 12:34 AM
tonsky.me/blog/syntax-... by @tonsky.me

Looking at the first color.js example, the idea made sense, but I was still like ehhh IDK.

By the end of reading the article, the playSound example highlighting really had me convinced on a lot of ideas here. - Great read :)
I am sorry, but everyone is getting syntax highlighting wrong
Applying human ergonomics and design principles to syntax highlighting
tonsky.me
October 30, 2025 at 5:25 PM
How is anyone running agents in large monorepos with success? - Even if there is some tool that uses multiple contexts, isn't each context missing the big picture?

I constantly crash to the point it's not even worth it to attempt.

"prompt token count of 308154 exceeds the limit of 128000"
October 28, 2025 at 3:55 PM
I'm using Neovim+CodeCompanion+Copilot. After a few months of this, I'm wondering. Is it just my experience based on my tools, or is the constant flickering of ghost text not annoying to others?
October 24, 2025 at 5:45 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
How does one provide detailed instructions and extensive context to AI for coding, if after a month of providing detailed instructions and extensive context, the AI has written all of the parts of the code that you want now want to extend, by providing detailed instructions and extensive context?
October 7, 2025 at 5:59 PM
The older I get the more I prefer imperative code in event listeners and life cycle hooks over things like effects or rx libraries.

This is the type of opinion where people go "wow this guy is a ding dong". But, I can't help it. The heart wants what the heart wants.
October 6, 2025 at 6:10 PM
Multiply the number of lines of code in your side projects using a framework by the number of young children you have by the number of additional hobbies you have.

The higher the number, the more difficult to keep up with the changes to that framework.

My score for Svelte is well over 200,000 🤣
October 6, 2025 at 6:03 PM
The more I code with AI. The more I realize, I don't really care about being fast.
October 6, 2025 at 5:57 PM
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