I've chosen VuePress to build this blog and my other side-projects, but it wouldn't be the right choice for every website.
This post covers 5 reasons why you might not choose to build your website with VuePress. Answer the questions as you go to reach the right conclusion.
# 1. You don't want to see the code
VuePress is easy to get started with, even if you are a beginner web developer. To get the most out of VuePress, you just need a basic understanding of HTML, CSS, JS and Git.
However, if you are completely code-phobic you'll want to use a no-code website builder. Just beware of getting locked into something where you don't have control of the cost, the code or the data.
# Are you afraid of code?
# 2. You don't like Vue
I would recommend VuePress even if you have never used Vue before. Learning Vue is not a prerequisite to using VuePress. If you want to learn Vue, a VuePress site makes a good playground.
If you have tried Vue and decided it's not for you, VuePress is not going to be your first choice. If you prefer not to have a JS framework involved in your static site, try Eleventy.
However, VuePress is more than just a static site generator. Once a page is loaded it hydrates to a Single Page App (SPA), giving you the best of both worlds. Having Vue baked-in also makes it easy to create interactive content, like the questions in this blog post.
# Would you really hate using Vue?
# 3. You want a large choice of readymade themes
One of the great strengths of VuePress is that the default theme is perfect for technical documentation sites. The trouble is, this theme is so nicely designed that relatively few developers have gone to the trouble of developing alternatives.
There is also a default blog theme, which is what I'm currently using for this site. You can easily change the colour palette of the default themes (as I have done here), but to customise further or develop your own theme you will have to be fairly confident in your design and front-end development skills.
There is a community of VuePress developers sharing open-source themes, but you will not find a vast selection of well-used themes. For me, this isn't a problem because creating themes is the fun part and I'm hoping to start sharing themes soon.
# Do you need to find just the right readymade theme?
# 4. You have complex content management requirements
The main way to create VuePress site content is with Markdown files saved in your Git repository. You manage drafts and publish content using your normal Git workflow. To make content authoring easy for people who don't use Git, you can add a Git-based Content Management System (CMS) like Netlify CMS or Forestry.
There are huge advantages to this Markdown + Git approach to content:
- Full version control with easy rollback
- Fast builds and easy local development
- No back-end, database or third-party integrations to maintain
This approach only becomes a problem if you have a huge, complicated website or if you're content is across multiple sources or channels. In these cases, I would suggest pairing a headless CMS like Contentful with a Static Site Generator that is designed to compile content from APIs like Gridsome.
# Do you really need a database-backed/API-based CMS?
# 5. You're building a data-driven web app
One of the big selling points of VuePress is that there is no need for a database. Like any website, you can fetch data from APIs dynamically in a VuePress site if you want to. However, VuePress is best when the majority of the content you display will be fairly static.
If you are building an app where the main content is constantly updating or highly personalised, why would you generate a static site? Instead, you could try adding Vue Apollo to a Vue app or starting with Nuxt. I'll leave the database research up to you!
# Are you building a dynamic, data-driven app?
Answer the 5 questions above to get your conclusion 😉