Web AppBuilder for ArcGIS (Developer Edition) | ArcGIS for Developers gives you access to the many custom/extended widgets that the user community has written, that may or may not ever become part of the base software. It allows you to nit "re-invent the wheel" since many time, others gave had the same needs or requirements as you.
check out Web AppBuilder Developer Edition - Customization Resource List for a list if many of these available widgets. These widgets can be plugged into WAB and the configured. You can also take the widget itself and further customize it for you needs if necessary. The WAB community is very active if you have questions, and you can share you widgets if you have something others may be able to use. You should checkout and follow Web AppBuilder Custom Widgets
tl;dr? If you want limited customization and out of the box functionality, use WAB. If you want full control, build your own from scratch.