Apple content restrictions (free, in Settings) keep a Never Allow domain list and an adult-content filter. No schedules, no strict mode beyond the passcode, app and site rules separate. Enough for a simple domain problem; details in how to block websites on iPhone.
Website/domain filters (BlockerX, Migiri, Covenant Eyes' filter) maintain large adult-domain lists plus custom entries, safe-search enforcement, and keyword blocking, working across browsers and (for some) apps. They see domains, not images — explicit content inside an otherwise allowed site or app generally passes. This is the central technical limit to understand: a domain filter cannot see inside Reddit or X.
Real-time content filters (Canopy) screen images and video as they load, which is the only approach here designed to catch explicit content inside mixed-content apps and pages. The tradeoff is intrusiveness by design: content must be inspected to be judged, so evaluate the vendor's privacy terms with open eyes, and treat "catches everything" marketing as marketing — no vendor publishes a measured catch rate you can verify.
Accountability software (Covenant Eyes first, Canopy/BlockerX/AppBlock optionally) adds a person: activity reports, screenshots, or approvals go to someone you chose. The mechanism is social, not technical — it works when being seen changes behavior, and it requires a relationship you can sustain. It also means your browsing is visible to someone; that privacy tradeoff is the price, stated plainly.
General app blockers (Fella, AppBlock, Freedom) close whole apps on schedules or sessions. They solve "the app is the route," not "the content is the problem." Potent when Reddit, X, or Safari itself is the doorway; irrelevant against a browser pointed at an explicit domain — except where they also include site blocking (AppBlock, Freedom).