Three Tools. One System.
The Zettelkasten / Slip-box
This is the place where all your notes come together to build a critical mass of ideas. There are many different ways to emulate the Zettelkasten digitally, and the landscape of available programs is changing rapidly. My program of choice used to be ZKN3 by Daniel Lüdecke, which is free and built explicitly to emulate the Zettelkasten. I like it, but it is a one-man project and has its quirks. Alternatives of stand-alone Zettelkasten programs include Zettlr and The Archive.
I switched to Roamresearch recently, which I consider the most innovative and lean among a new generation of writing tools. But it is web-based only at the moment and will become a subscription-based model soon. Alternatives include TiddlyWiki (free and open-source), obsidian, RemNote, amplenote, and org-roam. For those who want to stick with classic note-taking apps, Bearnotes, Notion, and Evernote are sometimes used as a Zettelkasten (see links).
The Reference Manager
This is where you can store all your references and articles. Zotero has some neat features to make your life much easier. As an open-source project, it is constantly being improved. Alternatives include Endnote, Mendeley, and Citavi.
This is where the actual writing is done. It makes sense to check which program is compatible with your reference manager. LibreOffice and Word both work well with Zotero, for example. If you write something more complex and need to shuffle things around a lot, though, you might want to consider a writing tool like Scrivener.