The first solution is to use a CMS (Content Management System). A CMS is a framework that does a lot of the heavy lifting for you, mainly the database. They come with a theme engine (allowing you to easily change the interface of the website), a plugin ecosystem (to add supplementary features to the built-in ones) and an admin panel for an easy configuration.
One of the most popular ones is WordPress. It is mostly used for blogging sites, but it is more versatile than that. There are also more specialised ones like Magento for eCommerce and Moodle for eLearning. There are a lot of CMSs and you only have to choose what fits more your needs.
But remember that although CMS are user-friendly tools, allowing a non-developer to manipulate the site, they are a development framework too. To get the most out of the CMS, you'd have to learn it fully and often you will see the need to develop some plugin to tie everything together or to rewrite a theme for visual that fits your brand.
But maybe a full-fledged CMS is not needed, especially if your content does not change often and you only want a way to display them. So what you need is a site builder. Site builders come with a WYSIWYG (What you see is what you get) editor and a library of widgets. Some also provide you with a collection of templates to choose from and edit later. Some allow you to edit the style by adding custom CSS or setting the value of a subset of the styling properties.
An example of a site builder is Wix. Another one is Squarespace. They offer a no-code environment for people that do not need complicated features on their website and are fine with the default those platforms provide.
As you have seen, you do not always need to go the tedious way of writing everything from scratch. It's often faster to go to with a CMS or a website builder. As a developer, the most efficient solution is not always the one you implement by yourself.