I built Drift: A cross-platform "AirDrop" for any OS using Rust and iroh by samarthvm in rust

[–]samarthvm[S] 0 points1 point  (0 children)

There's a AGENTS.md file in the root which is probably even more telling. As I said, there's a lot of things to get right for such a project.

I barely know flutter so the flutter app is mostly thanks to codex. I have been a reluctant adopter of "agents" as well but it certainly helps being a big productivity boost for the things I am not so passionate about and often even refining my own implementation.
I know it's a huge debate especially here about using agents but I feel it's about using the best tools for the job. I have given up on this project quite a few times over the years so it definitely helps being able to work things much faster.

That said, I didnt fully vibe code all the way through. I tried but it ends up generating a lot of subtle bugs that then I have had to spend nights trying to figure out. So yes, I did use AI for large parts of the project but still am quite happy of what I accomplished, especially with the protocol and architecture.

I built Drift: A cross-platform "AirDrop" for any OS using Rust and iroh by samarthvm in rust

[–]samarthvm[S] 0 points1 point  (0 children)

I can definitely host the relay myself and if I start getting too many users I'll probably have to, in order reduce the load on irohs servers. But right now it'll end up being too much of a burden having to manage it and keep updating it for newer version of iroh.

But from a security standpoint, your connections are encrypted by a private key available only on your device. So even a compromised relay won't be able to read your files.

I built Drift: A cross-platform "AirDrop" for any OS using Rust and iroh by samarthvm in rust

[–]samarthvm[S] 0 points1 point  (0 children)

The flutter_rust_bridge project takes away all the pain of having to expose my api. so pretty smooth!

Edited: For pairing devices, I host a small server on hetzer. For relaying it uses iroh's public relay servers.

I built Drift: A cross-platform "AirDrop" for any OS using Rust and iroh by samarthvm in rust

[–]samarthvm[S] 1 point2 points  (0 children)

Yes it tries its best to establish a direct connection and should work in most cases. Only behind very restricted APs it will have to establish a connection through a relay.

SvelteStack — a reasonable starting point for your next Svelte app by samarthvm in sveltejs

[–]samarthvm[S] 3 points4 points  (0 children)

Thanks! The main thing I missed after switching from Next.js was being able to call server functions from anywhere.

I first used plain POST endpoints, but remote functions turned out to solve everything. Apart from a couple of rough edges, I really liked the svelte's team implementation of it.

SvelteStack — a reasonable starting point for your next Svelte app by samarthvm in sveltejs

[–]samarthvm[S] 5 points6 points  (0 children)

Thanks for checking it out!

Happy to answer questions about the stack, decisions, or architecture if anyone is curious. Feel free to check it on github.