voithure's Avatar

voithure

@voithure.bsky.social

Developer ๐Ÿ“๐Ÿ‡ซ๐Ÿ‡ท Paris https://github.com/arthur-fontaine https://x.com/voithure https://arthurfontaine.fr

22 Followers  |  30 Following  |  16 Posts  |  Joined: 15.11.2023  |  2.1281

Latest posts by voithure.bsky.social on Bluesky

j'ai pas vu un seul mec qui soutenait tiky

22.03.2025 20:30 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
A 10x Faster TypeScript - TypeScript Embarking on a native port of the existing TypeScript compiler and toolset to achieve a 10x performance speed-up.

Today we're thrilled to announce our effort to port the TypeScript compiler and language service to native code, gaining a 10x speed boost in build times and editor responsiveness!

devblogs.microsoft.com/typescript/t...

11.03.2025 14:36 โ€” ๐Ÿ‘ 975    ๐Ÿ” 293    ๐Ÿ’ฌ 22    ๐Ÿ“Œ 156

But just as Johnny-five is based on a JavaScript library (don't remember its name), it would be possible to make a TS library based on Espiruino?

28.02.2025 14:30 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

. @sumyerradi.bsky.social Really cool talk at #TSLaconfParis #arduinoparis, but isn't it possible to do without the USB cable (which is annoying)? You talked about Esprino (or something like that), the only drawback is that it's not typesafe, no? So why not make a fork of it typesafe?

28.02.2025 13:40 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Post image Post image

Surprised that PWA isn't a dead tech yet, at least on Android.

- the app appears in the app drawer
- you can define shortcuts for your app

3 years ago, I decided to be a PWA hater due to this lack of nativeness, but this morning, I might have changed my mind.

26.02.2025 08:00 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Yep, my dish seems to smell great ๐Ÿ˜‹

I just finished implementing Flows.

In `flow.ts`, I defined a schema with an `otherLinks` property, passed it to the `addToQueue` function, and ran the command. It now works like a full scraper/crawler.

github.com/arthur-fonta...

(the demo video is sped up 8x)

21.02.2025 19:53 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

Just type slowly

20.02.2025 11:20 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

I think I am cooking ๐Ÿ‘จโ€๐Ÿณ

- AI-based scraper
- Use any OpenAI-compatible API
- Use any Puppeteer-compatible browser
- Designed to be simple (auto load your Zod schema, just specify the URL in the command)

github.com/arthur-fonta...

In the example:
- Model: google/gemini-2.0-pro
- Browser: Lightpanda

20.02.2025 00:16 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 1

My dream is to have a CLI command in Astro that lets me generate code easily and quickly.

`npx astro make:action`
`npx astro make:table`
`npx astro make:page`
`npx astro make:collection`
`npx astro make:content`
...

Similar to the Symfony Console, Adonis Ace, Laravel Artisan, etc.

13.02.2025 20:50 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I saw that plugins are coming to Biome 2.0. I think we will see a lot of rules that haven't been implemented yet coming later this year

10.02.2025 22:18 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

Just released my new website! (only in French for now)

04.02.2025 14:53 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Okay, thanks for your answer!

02.02.2025 13:39 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

@en.sitnik.ru really good talk at FOSDEM about local-first application and privacy ๐Ÿ‘.

I like the API of Logux, but the last release was 4 months ago. Is it stable enough that it doesn't need frequent releases? Or have you "abandoned" the project?
Do you still recommend using it?

02.02.2025 11:30 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
import { createStateMachine } from "../../../shared/pkg/nanostores-state-machine/nanostores-state-machine";

interface SessionStore {
	token: string | null;
}

export const sessionMachine = createStateMachine()
	.context<SessionStore>({
		token: null,
	})
	.events<{
		login: { token: string };
		logout: undefined;
	}>()
	.states({
		authenticated: (state) =>
			state
				.onEntry((context, set) => set({ token: context.token }))
				.onReceive({
					logout: () => "unauthenticated",
				}),
		unauthenticated: (state) =>
			state
				.onEntry((_, set) => set({ token: null }))
				.onReceive({
					login: (_, set, { token }) => {
						set({ token });
						return "authenticated";
					},
				}),
	})
	.initial("unauthenticated")
	.stateMachine;

import { createStateMachine } from "../../../shared/pkg/nanostores-state-machine/nanostores-state-machine"; interface SessionStore { token: string | null; } export const sessionMachine = createStateMachine() .context<SessionStore>({ token: null, }) .events<{ login: { token: string }; logout: undefined; }>() .states({ authenticated: (state) => state .onEntry((context, set) => set({ token: context.token })) .onReceive({ logout: () => "unauthenticated", }), unauthenticated: (state) => state .onEntry((_, set) => set({ token: null })) .onReceive({ login: (_, set, { token }) => { set({ token }); return "authenticated"; }, }), }) .initial("unauthenticated") .stateMachine;

It is really easy to use as it is perfectly typed, but here's an example

08.01.2025 21:22 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
`nanomachine` is a type-safe state machine builder based on Nanostores and inspired by XState. `nanomachine` is a type-safe state machine builder based on Nanostores and inspired by XState. - nanomachine.ts

This afternoon I built a type-safe state machine builder that uses Nanostores and that is inspired by XState.

Not published yet as an NPM package (and may never be), so if you are interested to use it (let me know), you can copy-paste this code to your utils dir:

gist.github.com/arthur-fonta...

08.01.2025 21:22 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Evan You said

Theo - would be much better if you reached out first. Rolldown itself is beta but we haven't really made a proper release for Rolldown-Vite yet so you are testing the wrong target.

There are some unfortunate issues with your benchmarks:

1. Rolldown-Vite doesn't need `vite-plugin-react` because JSX handling is built-in. You are basically paying the cost of Babel transform on every module for nothing in your benchmark when it can be done in Rust!

2. Rolldown-Vite ports many Vite-internal JS plugins to Rust, but they are not enabled by default currently. When we do a proper release, we will ask users to opt-in to native mode so we can more gradually test drive and phase it in. When opted-in, Rolldown-Vite is more than 3x faster than current Vite.

3. The bundle size issue is a known issue (de-optimized CJS bindings because React is still... CJS) and has a fix incoming.

Relevant PR to your benchmarking repo: https://github.com/t3dotgg/rolldo

Evan You said Theo - would be much better if you reached out first. Rolldown itself is beta but we haven't really made a proper release for Rolldown-Vite yet so you are testing the wrong target. There are some unfortunate issues with your benchmarks: 1. Rolldown-Vite doesn't need `vite-plugin-react` because JSX handling is built-in. You are basically paying the cost of Babel transform on every module for nothing in your benchmark when it can be done in Rust! 2. Rolldown-Vite ports many Vite-internal JS plugins to Rust, but they are not enabled by default currently. When we do a proper release, we will ask users to opt-in to native mode so we can more gradually test drive and phase it in. When opted-in, Rolldown-Vite is more than 3x faster than current Vite. 3. The bundle size issue is a known issue (de-optimized CJS bindings because React is still... CJS) and has a fix incoming. Relevant PR to your benchmarking repo: https://github.com/t3dotgg/rolldo

01.01.2025 13:59 โ€” ๐Ÿ‘ 8    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Agrume ๐Ÿ‹โ€๐ŸŸฉ

Backend for/in frontend library

๐Ÿ“ Allows you to write your backend directly in your frontend
๐Ÿ—๏ธ Working with most build tools (Vite, Webpack, etc.)
โšก You can also do realtime API
๐Ÿ”“ No vendor lock-in, you're not tied to Agrume

agrume.js.org

02.11.2024 11:41 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

@voithure is following 20 prominent accounts