Dynamic vs. Static: Which Is Right For Your Site?

In the early days of the web, all sites were static. They were comprised of HTML, CSS (a little later), and sometimes JavaScript. Later, we developed content management systems that included server-side processing using languages like PHP and databases like MySQL. Server-side scripting allows content to be dynamic – it enables us to build interactive sites that change according to user input or other events. Without server-side scripting, content management systems like WordPress or MODX would not be possible.

In recent years, we’ve seen a resurgence of static sites, and the development of many static site generators that make the process of deploying a static site easier — not as straightforward as installing and managing a WordPress site, but a good deal simpler than hand-coding the HTML. Static sites are particularly popular among self-declared geeks and developers, but anyone with a bit of web dev know-how can figure it out.

Static sites, as the name suggests, don’t change once they are uploaded to the server. Usually, an off-server static site generator like Jekyll is used to rebuild the site each time a change is made, and the whole thing is then uploaded to the server. Anyone with a familiarity with WordPress will recognize how different this is to using a content management system.

Is A Static Site Right For You?

A static website is great for blogs and other sites that don’t require dynamic content. Many of the people who use WordPress for their blog and some business sites would probably be perfectly fine without all the bells and whistles it provides, provided they’re happy to roll up their sleeves and learn how to build a site.

One example of how static sites differ is the way that content is added. Instead of writing in the text entry area of a content management system and hitting “publish”, a blog article is written in whichever text editor the writer prefers using Markdown, then added to the site’s source files before being processed by the site generator into HTML and uploaded to the server. Markdown is a great way for writers to create content — it’s how I write everything, including this post, even when it’ll be published to WordPress.

The benefits of a static site include:

  • Performance – Because there is no server side processing, static sites are extremely fast.
  • Security – Many of the security vulnerabilities that content management systems are prone to are caused by bugs in the server-side code. You can’t hack a static site because there is nothing to hack (at least at the level of the site; there is still a web server and operating system underlying the site.)
  • Simplicity – Whether you think of static sites as simple or frustratingly complex depends on your level of knowledge. For people with a bit of development experience, static site generators are refreshingly simple and lightweight compared to a hefty and complex CMS. For people used to simply typing their content and hitting publish, static site generators may have a hair-curling learning curve.

That said, static sites are not for everyone. There is a reason dynamic content management systems are so popular. If you have to manage complex writing, editing, and publishing workflows then a content management system is the better option. If you need to build an interactive experience for users – or even something as simple as a contact form that requires server-side processing, then a dynamic site is required.

If you’ve got some web development skill, or want to learn some, a static site generator is a great way to take control of every aspect of your web presence. This Jekyll tutorial is a great place to get started.