Why custom Python connectors over Fivetran / Airbyte / Stitch?
For the long tail — and where the actual value lives — managed connectors don't cover the surface. Custom objects, rate-limited or paginated quirks, that one field your team lives in, an internal API, an SFTP drop, a legacy DB. Fivetran covers the easy 60%. Custom Python covers the 40% that determines whether the AI can actually answer.
We're not religious about it: if Fivetran covers a source cleanly, we use it and pay the per-row fee. The moat is in writing the connector for the source that doesn't have a managed option.