There are sooo many different apps that can create a great system.
But the problem with all of these programs is that they were designed by someone else, not you. Even when an app touts itself as "flexible", there are still limitations both code-wise and design-wise. There is no perfect app.
But there's one tool that could be used exactly how you want it to be: paper.
Paper has no limitations whatsoever. You can just create whatever you like, however you like. And that's why it's the best tool to build a system on.