This article was written with Joomla 3 in mind - I need to check if it's all still correct for Joomla 4.

Setting up a new website is fun, and Joomla 4 with the Cassiopeia template makes it even nicer. Once it's all set up, I can concentrate on adding content and doing what I enjoy most of all: writing CSS.

But the set-up takes some preparation. And once a site is finished, it still needs to be transferred to it's own domain and it will need some tweaking once it's there.

It's quite easy to forget a step in the process, I made a checklist.

Setting up a new Joomla site - general

(When developing in own subdomain, remember to exclude subdomain from own backup)

  • Make sure webspace is clean (except maybe temp html page). Make sure SSL is enabled.
  • Create "site info" txt file, to keep track of all logins and other relevant info.
  • Create a db and a db user.
  • Download latest Joomla full stable package.
    a. FTP Package zip to webspace
    b. Go to (DA) File manager, extract all files from Zip.
  • Install Joomla. Add extra language if desired. Finish Install.
    a. Remove Package Zip
    b. Check Front and backend
    c. Install Akeeba Backup from JED.
    d. Run Akeeba Configure and make a backup.
  • If default language not English: go to Languages and set required language as default.
  • Rename htaccess.txt to .htaccess. Add any required rules
  • Go to Global Config General
    a. Enter basic metadata/keywords
    b. Set no-index/no-follow (while in dev mode)
    c. Set URL rewrite
    d. Set Force SSL
    e. Set website timezone
    f. Check email settings and send testmail
  • Go to Global Config Articles. In "Integration", set URL routing to Modern and Remove ID's
  • Go to TinyMCE settings
    a. For each set, choose toolbar options and set "Use Joomla Text Filters" to YES.
    b. If required, add an editor.css (Example: editor.css)
  • Go to Modules - Backend
    a. Unpublish unwanted modules
    b. Add module "Statistics", call it Server Settings, use all options.
    c. Add module "Custom", call it Site Settings, use it to keep track of what's installed and any other relevant info.
  • Go to Modules - Frontend. Unpublish unwanted modules
  • Download and install the desired template (if not standard Joomla)
    a. Go to Templates - template and make a copy of the template with new name.
    b. Set this copy as default.
    c. Go to Extensions - Manage & remove unused templates (leave one extra just in case)
  • Use FTP to remove Joomla's sample images and any other "fluff".
  • Run another backup
    a. Set up offsite storage of jpa files
    b. Move copy of backup to offsite storage

Website Setup - Site specific

  • Create and add a favicon in the /templates/templatename folder
  • Add extensions you want to use (remember to add them to the "Site Settings" Module).
  • Make any modifications you need to the template's index.php (!only to your copy of the template!)
  • If necessary, adapt the TemplateDetails.xml
  • Go to Global Config -> Articles and set as required.
  • Upload custom font or add link to Google Font in the index.php
  • Create and add custom CSS with basic settings

Develop the site...

Once development is complete

  • Run Autoprefixer on custom CSS
  • If necessary: add users
  • Set up additional cloud storage for backups and get share link for site owner
  • Check Site Info document
  • Purge User Action Log for dev period
  • Run final backup (and store copy offsite)

Move site to own domain

  • Set up FTP to new server
  • Set up database on new server
  • Check PHP version and SSL
  • FTP jpa-file + kickstart to new server
  • Run Kickstart

When site is up & running on own domain

  • Set index/follow
  • Turn on caching and gzip
  • Check licenses of extensions
  • Run backup (and copy to offsite & cloud)
  • Remove devsite and db from own subdomain
  • Discuss maintenance with owner