Quick answer
desde = since; points at a starting point: a date, a year, an event.
hace = ago; points at a stretch of time counted back from now.
Key pattern: hace + time + que + present or present + desde hace + time. Spanish uses the present, not the perfect, for something still going on.
Side by side
Memory trick
Are you naming a point on the calendar or counting backwards? A point takes desde. A count takes hace, and if the action is still going, use the present tense.
Typical mistakes
He vivido aquí desde tres años.
Vivo aquí desde hace tres años.
Two problems: desde needs a starting point, not a duration, so it becomes desde hace; and for an action still in progress Spanish uses the present, not the perfect.
Hace 2019 que estudio español.
Desde 2019 estudio español.
Hace counts a quantity of time, so it cannot take a year. A year is a starting point, which is desde.
Check yourself
Fill in: "Conozco a Marta ___ diez años."