I've been working on Arkfile for over a year now. I have been using mostly AI tools to build out and co-design the system with me. I have learned a lot about CGO (Go + C), OPAQUE Auth protocol, and rqlite database innards.
I am excited to continue building it out.
As I have been working on it, I've adapted to the realities of what I'm trying to build. Where the rubber meets the road, building truly zero-knowledge systems is hard.
I had a mental model going in of performing client-side encryption and decryption of files.
I've adjusted from thinking that I must do all of this in Go with Web Assembly on the client side, to now accepting the tradeoffs of using the Web Crypto API and using TypeScript on the client-side instead for the browser side of the app.