go slow and steady. optimise for few dependencies and short compilation times. we do not need to be super fast or feature-rich. [ architecture ] - use the one-file-per-route patten [ rouille-specific ] - logging - https://docs.rs/rouille/latest/rouille/fn.log_custom.html x flash message - https://docs.rs/rouille/latest/rouille/input/fn.cookies.html - https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#creating_cookies - https://docs.rs/rouille/latest/rouille/struct.Response.html#method.with_additional_header - https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#define_the_lifetime_of_a_cookie - file upload - https://docs.rs/rouille/latest/rouille/input/post/index.html#handling-file-uploads - auth - https://github.com/tomaka/rouille/blob/master/examples/login-session.rs - https://docs.rs/rouille/latest/rouille/struct.Response.html#method.basic_http_auth_login_required [ tasks ] - write the settings route(s) - scuttlebutt - peers x menu - peers list - invites - profile - private x menu x guide x status x scuttlebutt x scuttlebutt menu - configure_sbot x template x sbot_config data - might need some thought...render elements or input data - admin x menu x configure x add x delete - auth x change password x form x post x reset password x form x post x login x form x post x logout x get [ flash messages ] - for now, use simple redirects in the handlers - then add flash messages later - write getter, setter and unsetter for flash messages - from rocket docs - A “removal” cookie is a cookie that has the same name as the original cookie but has an empty value, a max-age of 0, and an expiration date far in the past. - use Response::with_additional_header() method to set cookie - https://docs.rs/rouille/latest/rouille/struct.Response.html#method.with_additional_header - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie