318 karma · joined May 23, 2009
That said, your points about X-Frame-Options and CSP are definitely important for usability. Maybe I'll update the post w/ some of those details.
When developing a new M/R job from scratch I start by mirroring (at least part of) the data to a local database. Then I can iterate locally on the M/R using print() and printjson() to debug the map() and reduce() functions - those will print directly to the database log.
I tend to just embed the map() & reduce() functions as Python strings like you see in the post. I'm confident that there are better ways to handle this, though. One approach that can be interesting is to do development from the shell, that way you can write and debug the map() & reduce() in an actual JS environment. Once you're happy with them you can just drop them in as strings with the rest of your application code. Would love to hear how other people are approaching this stuff, too.
All of that said, I expect that the tooling here will improve over time.
Right now messages aren't saved at all (for privacy reasons). In the future there will be optional (opt-in) archiving like yahoo/google groups has.
Yup, using MongoDB to store everything. I will definitely be doing a post discussing the architecture, etc. Follow @mdirolf or @fiesta and you'll see it when it pops up.
The short answer, though, is that I'm running a 3 node replica set. Each mailserver (right now there are 2) is running on one of those nodes.
Archiving is definitely in the works. It'll be opt-in, per list, that way we still never save any emails by default.
Suggestions like that are really helpful as I am definitely not a designer (IADNAD).
Also, they wanted like $1M for fiesta.com or something :P
You're right though, if all else fails the welcome email will just end up having an opt-in link.