painful mistake adopting @EffectTS_ that we've finally unpicked
always start with a managed runtime and build up from there
avoids odd runtime bugs, layer duplication, easier flushing and simpler interop with vanilla ts code
@SandroMaglione was right
https://t.co/tGjEx6TB64
@levelsio this is a niche joke
east malvern vs malvern east
its also very affluent and protective over the boundary of what can be considered 'malvern' against other suburbs
@n_haberkamp@0xblacklight this is the way
it interops nicely with existing ts code, so you can start with a single function, feature or service and build out from there
starting with services > utils imo because that's where effect really shines and you get a taste of typed errors + dependency injection
@RhysSullivan@dillon_mulroy@kr0der I pass a runtime.client.ts and runtime.server.ts through the loader context so Tanstack can code split
server runtime swaps the fetch layer to skip the network hop and call the http api handlers directly
not super clean tho and still needs lots of decoding on the edges
@RhysSullivan@dillon_mulroy@kr0der it looks like you’re doing all the data fetching client side in the atoms right?
the difficulties I’ve found are when you want to use the route’s loader or beforeLoad functions, and then need to manage client/server and effect/tanstack boundaries
@RhysSullivan@dillon_mulroy@kr0der what’s been your approach for bridging client and server with tanstack start + effect ??
I’ve settled on mounting a rpc/api catchall with an isomorphic effect client
but there’s not much prior art online so I worry I’m missing a trick
@RhysSullivan effect v4 migration
was very much a rinse and repeat operation where codex could pick the next failing package in the monorepo and migrate, type check, test and repeat for 9 hrs
@samgoodwin89 speedrunning my effect v4 migration so I can start using this
so many ideas
IaC not just for trad infra but for posthog, notion, attio, workos, featurebase, resend etc
you can standup whole product / gtm stacks alongside app infra
@samgoodwin89@yacinehmito@turborepo useful here too to cache test outputs across surfaces and handle re-running when deps change
so if the tests are run locally, in codex, in CI their cached results are re-used everywhere else
it operates at the package-level though so maybe too coarse-grained
@zachtratar@Replit both the codex native Notion plugin and raw via the Notion API for trickier updates
so the loop is: codex builds new feature, then takes screenshots and writes content, then pushes this into a Notion marketing db and help docs db (via plugin + api)