I had to apply for a new Canadian passport from the US since I changed my last name when I got married. I just sent it off a couple weeks ago so I don't have information on whether or not it was successful unfortunately, but they did process my payment 😅 I will try and update once I know more but the processing times are pretty long.
I went the Walgreens route, mainly because there were no recommended photographers near me. Keep in mind that the people working there when you go may not be knowledgeable about non-US passport photos and you will (probably) have to cut your own photos. They also had a photo paper shortage for a while so you may run into that as well 🙃 Their passport computer screens had a walkthrough on how to take and crop passport photos from many different countries, but I had to help walk them through it because they'd never done it before. I'd definitely recommend bringing the official "Examples of acceptable and unacceptable passport photos" with you and comparing if you can, especially since the photos themselves can be somewhat pricey. I think the resulting photos were acceptable but they are only valid for 6 months rather than what I believe is the usual 12 when applying from Canada (passport application requirements, not because they were taken at Walgreens).
I sent my application via USPS and was required to fill out a customs form. The address given for applications from the US didn't have a street number or PO Box (it's literally just "Passport Program", City, Province, Postal Code) so you may not be able to fill in some of the fields on the customs form, so just be careful with that. I put "Passport Program" as the business name and skipped the street number fields and it seems to have gotten where it needed to go. The USPS clerks unfortunately didn't have any insights or advice and told me they don't know how Canadian addresses work so I kinda just had to cross my fingers and hope for the best. Definitely get some form of tracking, especially if you have to send any original documents.