Oddbean new post about | logout
 Looking good! If you’re open to a small suggestion, and if fiatjaf doesn’t mind introducing some early-stage backwards-incompatible changes to khatru's Blossom’s API, I think you could simplify things by changing the return type here https://github.com/fiatjaf/khatru/blob/76ecf4f7914a93b7ec4f0cc0c823304a7402adab/blossom/server.go#L18 to `io.ReadSeeker`. This would allow you to eliminate the `io.Copy` fallback code and the `Content-Type` handling, as `http.ServeContent` also takes care of  that for you. It even handles ETags and cache-related headers, so I’d expect your patch to significantly improve things for all clients—not just iOS. Well done! 
 i thought about that, but was afraid it would break other people code... that's up to @fiatjaf... what do you think? 
 already one happy customer:

nostr:nevent1qgs0n4lskfcmtwcea4qqmzawacwz9tp6t0ju7gx625secjffu53es7sqyr7vhrfe20ay56kh9quexcjwf7zz848jumwj7a9s4v27308v070eygkz0gl 
 If you break other people’s code with backwards incompatible things, kindly start a tracker here: 

https://github.com/nostrability/nostrability 
 If it helps, it use to return `[]byte` and khatru Blossom's API own example was broken until a couple of weeks ago. It's ultimately Fiatjaf's decision of course, but, from my perspective, feel free go for it. 
 i'll submit a pull request as it is now (without the debug prints), and then try the non backward compatible change and see how it goes.