Even though GitHub does not allow dynamic website, following this diagram is a good approach to deliver dynamic content to GitHub. This diagram, basically, explain how to connect your live website with a local back-end on your computer that can commit changes to your GitHub repo.
With this approach, you can develop a backend that can make changes to your website visually or by fields delivered from a local database. This is very similar to Jekyll but more customizable.
Basically, the backend will be your computer and does not need to be online to your site operate. The benefit of doing that is that your website will be no hacked due that you are just sending your html output to the live website.