What is the best practice for that prevents the backlog from becoming a mess, but also maintaining developer productivityWho should we allow to add stories to the product backlog? And how do you make sure these stories meet certain requirements? For example I find a few small css bugs during the development of Feature X. Should I then as a developer be allowed to add a story describing the bugs to the bottom of the backlog? Or should I discuss it with the product owner?Having all ideas/bugs go through the product owner sounds like possible bottleneck. 
Who should be allowed to add stories to the product backlog?
scrum;product owner;product backlog
The usual approach is that anyone can add stories to the backlog.  The product owner prioritizes them and the team estimates them.  Story quality issues generally get taken care of one way or another in planning meetings or retrospectives.That means the product owner isn't a bottleneck as long as you're satisfied with the priorities he's assigning.  Otherwise, make your case.  