I'm developing a blog to write programming articles as a hobby. Confused between using a frontend framework or just simple template.
Researched a bit and found out that SEO is a bit of a drag with front end frameworks. What differences are there considering speed, UX and other factors?
And if I have to choose a front end framework, React or Vue, which one's better for my use case ?
Django templates will take you quite far. If needed, you can sprinkle in some JS down the road. E.g. Vue or LiteDom can be added to enhance some views without requiring a total conversion.
In general, try to keep things simple by default. JavaScript build tools will add unneeded complexity to your development process.
I don’t see why you need SPA-like functionality for a blog, which is really a largely-static collection of words and/or images. Adds nothing to the experience.
Django templates are actually excellent for things like blogs. Hell, I’d just use Wagtail for the blog.
I want to know about this too. I’ve approached Django for learning a couple times and the framework is just so much to learn compared to throwing together a couple website files.
so far I’m doing github pages with markdown, and I’ve done very little learning and a lot of creation which was the point.
Depends. If you want your blog to be ranked on Google SEO the use Server Side rendering (Django Templates). Otherwise, use SPA.
I have had bad experience with React and SEO and had to scrap the project after going on live.
It sounds like a pretty static website. I usually only add JS if you need interactivity between components or other dynamic features.
Use react only when your website is highly interactive, take facebook for example, it has an online sidebar, timeline, notifs, and etc. All of these have their own data that refresh how the page looks when there’s new data, if you coded this in plain js, you will have a hard time maintaining it.
If it’s not that interactive of needs a lot of data that refresh, there’s no need for a front end framework like react/vue/angular.