Both! Unicode has some support for as-is ligatures. For example fi is U+FB01.
Modern fonts can also use self-defined ligatures. That's how fonts like https://www.sansbullshitsans.com/
So my plan is (eventually) to add in ligatures where Unicode has defined them - and automatically replace typed text with self-defined ligatures where it doesn't.