Skip to content

Current Design Flaws

This section documents some bad/buggy designs in PixivFE's design, both frontend and backend.

Low Quality Go Module: net/url

url.Path is stored decoded (no %XX). url.Scheme is stored without :// (mandated by RFC). Not sure why Go does that. Felt like this is bound to cause some nasty bug on decoding and encoding.

Current proxied URLs don't have weird characters in them. Hopefully it stays this way.

Solution: Replace net/url with a better third-party module

Mitigation: replaced url.Parse with urlx.Parse from github.com/goware/urlx

Update as of 2024-10-14: swapping out url.Parse for urlx.Parse caused several issues and was essentially reverted over multiple bug fix commits