Best practice when I build a website
When I create a website there is best practice that I follow alongside some opinionated views on what makes for a ‘good’ site.
What follows is included within any agreement I’d have with a client to create a website.
Scope & Method of Work
To create a functional, fast & beautiful website to an evolving design
To be freely available for regular, ad-hoc contact through face-to-face meetings, telephone & email
To encourage momentum on the project through regular contact
To collaboratively develop the design & functionality of the site through iterative, in-browser prototypes using the client’s brand identity
Content & Site Structure
All content is ultimately the responsibility of the client.
However, developing the structure and semantics of the text, images, media and navigation of the site is the work of the entire team. It is a joint effort between the client, design, marketing and developers all working towards the project’s aims.
We’ll have a continuous and detailed conversation around the existing content that will persist, and what new content will be required.
Chronology & milestone
Although every project varies, the aim is to complete the website in a timely manner with the pace of delivery largely dependent on proactive discussion, content readiness, design decisions and functional detailing.
Due to the nature of bespoke design and development, definitive timelines are impractical to declare. They vary from half a day, to six months. A more relaxed or speedy timescale may be possible by changing the scope or expectations and is discussed as the project progresses.
NB: It is worth noting that websites are rarely ‘done’. They reach certain stages and can always be evolved further.
Initial set-up:
Hosting established: often Digitalocean or Netlify, client-direct ownership, access shared
Establish working environments: dev and staging
If the site is to have a control panel, begin configuration of CMS (content management system), I typically use Statamic
Configure supporting software such as CSS (Tailwind) & JS (Alpine)
Gather existing sitemap to ensure legacy URLs are handled appropriately
Site navigation and content architecture discussed (likely remaining the same)
Iterative development:
Further develop the CMS fields for authoring content
Build page templates in skeletal form to later embellish with more nuanced design
Content added to site and refined, content population shared with collaborators
Evolve the site’s design through iterations using actual content
Implement any interactive elements or functional detailing
Design & technical detailing along with UX consultation
Live public facing website:
Production environment established
Site launched on client’s domain
Configuration of legacy and alias domains
Integration & activation with live services (social media, SEO, sitemaps, etc)
Typically, at least 1 week is required following the launch of a CMS backed site to ensure all is well. During this time, some technical aspects of the site are established and optimised.
Technical guidelines
Version controlled with Git on a private GitHub repository shared with the client
Code written to be: lean, device-agnostic (mobile-first & responsive), accessible, progressively enhanced, semantic and generally understood by other developers
Code written primarily in HTML + CSS along with CMS templating
Javascript used sparingly for UX (user experience) enhancement
Responsive image optimisation
Site served over https (secure site)
Clear, logical, human readable & SEO suitable URLs with legacy URLs redirected
Robots.txt file and XML sitemap with ability to hide pages
Aim for +90 scores using Lighthouse (pagespeed.web.dev)
Nightly automated back-ups configured to GitHub
Appropriate custom error pages (404 Not Found, etc.)
Customisation of printable web pages with CSS
Setup of tracking analytics if requested (analytics platform TBD)
Installation on domain with suitable hosting ensuring live & stable functionality
NB: Related tech that falls outside of scope: email configuration, newsletter platform, analysis of web traffic, etc.