I've been using ConcourseCI because another team manages it and it is integrates with Hashicorp vault.
It's good. The big advantage is I don't have to deal with maintaining it.
The downside is their story on GitHub integration is kind of crummy, you have to create your own web hooks because our ConcourseCI instance is too busy for poll based resource checks.
What is a "full stack"
My problem is that there are a lot of layers beyond just the "front end, web/REST, database" layers that most people refer to, that are involved with delivering an application.
Like, do you know Angular and also BGP?
Probably not. So, it's impossible to truly be "full stack" so you're going need to actually define what everyone is supposed to be responsible for knowing, and also recognize that there are going to be folks that are strong in some areas and other areas less so. Plan accordingly