The Technology Behind the Work

Vue, TypeScript, .NET and Azure, built to WCAG 2.2 Level AA accessibility, UK GDPR compliance and Google's Core Web Vitals thresholds. The specific standards every project is held to, not marketing language.

The Foundations

Strong fundamentals for reliable, accessible software.

Semantic HTML

Every site is built with semantic HTML5 elements including proper landmark roles (<header>, <nav>, <main>, <footer>, <article>, <section>). This creates a logical document structure that search engines understand and that assistive technologies navigate efficiently, improving both SEO and accessibility from the ground up.

Modern CSS

CSS Grid and Flexbox for responsive layouts, container queries for component-level responsiveness, custom properties (design tokens) for maintainable theming, and no bloated CSS frameworks. Modern CSS is powerful enough without the overhead of legacy libraries, resulting in smaller bundles and faster page loads.

JavaScript & TypeScript

TypeScript brings type safety to JavaScript, catching bugs at compile time instead of runtime. Strongly typed interfaces define data contracts, autocomplete speeds development, and refactoring becomes safer. The result is fewer production errors, clearer code, and faster onboarding for future maintainers.

Frameworks and Tooling

Vue 3, Nuxt, and Vite for high-performance modern applications.

Vue 3

Vue 3 is a progressive JavaScript framework for building user interfaces. The Composition API provides excellent logic reusability and TypeScript integration, the reactivity system is efficient and predictable, and single-file components (.vue files) keep template, logic, and styles co-located. Vue's small bundle size and performance characteristics make it an ideal choice for both marketing sites and complex applications.

Composition API for reusable, testable logic
Reactive data binding and computed properties
Single-file components with scoped styles
First-class TypeScript support
Small runtime (~34KB gzipped)
Virtual DOM with optimised patch algorithm

Nuxt

Nuxt is a meta-framework built on Vue 3 that provides server-side rendering (SSR), static site generation (SSG), and hybrid rendering modes. SSR delivers fully-rendered HTML to search engines and users on the first request, improving SEO and perceived performance. SSG pre-renders pages at build time for maximum speed and edge caching. File-based routing eliminates boilerplate and improves developer experience.

Server-side rendering (SSR) for SEO and performance
Static site generation (SSG) for edge-cached sites
Incremental static regeneration (ISR)
File-based routing with automatic code splitting
Built-in SEO and meta tag management
Middleware and server API routes

Vite & the Build Pipeline

Vite is a next-generation build tool that leverages native ES modules for instant server start and lightning-fast hot module replacement (HMR). Production builds use Rollup for optimised bundles with code splitting, tree shaking to eliminate dead code, and automatic vendor chunk splitting. The result is faster development and smaller production bundles.

Instant server start with native ESM
Lightning-fast hot module replacement (HMR)
Optimised Rollup-based production builds
Automatic code splitting and tree shaking
CSS code splitting and preprocessing
Asset handling and optimisation

What a Static Site Is, and Why It Matters to You

The delivery model behind fast, cheap-to-run, hard-to-break websites.

A static site is one where every page is built into finished HTML ahead of time, at the moment the site is published, rather than assembled by a server each time somebody visits. The visitor's browser is handed a complete page immediately. There is no database query, no server-side rendering step, and no waiting.

In practice that means three things for a business. It is fast, because the page is already made — which directly helps Core Web Vitals and therefore search ranking. It is cheap to run, because serving files costs a fraction of running an application server. And it is very hard to break into, because there is no database to compromise, no admin login exposed to the internet, and no plugin ecosystem to keep patched.

The trade-off is that anything genuinely dynamic — live stock levels, a customer account area, a booking calendar showing real availability — still needs a service behind it. That is why most of our builds are static pages with specific dynamic pieces called in as needed, rather than an all-or-nothing choice. This website is built exactly that way: every page in both English and Welsh is prerendered at build time.

Website Builders vs a Custom Build

An honest comparison of Wix, Squarespace, WordPress and a bespoke site.

Website builders are genuinely good at what they do. Wix plans run from around £9 to £119 a month and Squarespace from around £12 to £79 a month, both with templates, hosting and a visual editor included. If you need something online this week, you are comfortable doing it yourself, and the site is a simple shopfront, a builder is a reasonable answer and we will tell you so.

The costs show up later. Subscriptions never stop, and they rise. Templates constrain what you can do, so the site ends up looking like every other business using that template. Performance and accessibility are largely out of your hands, which matters because both feed search ranking. Apps and add-ons are billed separately, often £5 to £30 a month each. And your site is not portable — you cannot take a Wix site to another host, so you are renting, not owning.

WordPress sits in between: genuinely flexible and portable, but it is an application that needs maintaining. Core, theme and plugin updates have to be applied, and unpatched plugins are the single most common route into a small business website. Either you do that work monthly or you pay somebody to.

A custom build costs more up front and takes longer. What you get for it is a site nobody else has, built to accessibility and performance standards you can point at, with no subscription attached to the site itself and full ownership of the code and accounts. For a business where the website is a genuine sales channel rather than a formality, that usually pays back. For a business that needs a placeholder online by Friday, it does not, and a builder is the honest recommendation.

APIs and Integrations

Secure, versioned, and well-documented API design.

Modern applications often require backend APIs to handle data, authentication, payments, and third-party integrations. We design and build REST and GraphQL APIs with clear OpenAPI contracts, semantic versioning, and comprehensive documentation. REST endpoints follow standard HTTP status codes (200 OK, 201 Created, 400 Bad Request, 401 Unauthorized, 404 Not Found, 500 Internal Server Error) and use idempotent verbs (GET, POST, PUT, DELETE) consistently.

Authentication is handled using industry-standard protocols including OAuth 2.0 for delegated access and JWT (JSON Web Tokens) for stateless session management. Rate limiting protects APIs from abuse, and CORS policies are configured correctly for cross-origin requests. Backend services are built in .NET (C#) or Node.js depending on project requirements, both using strongly typed languages and robust frameworks.

Data persistence uses relational databases (SQL Server, PostgreSQL, MySQL) with normalised schema design, appropriate indexing, and transactional integrity. Third-party integrations include payment gateways (Stripe, PayPal), booking systems (Booksy, Square), CRM platforms (HubSpot, Zoho), and email services (Mailchimp, SendGrid). Each integration is abstracted behind a clean interface so dependencies can be swapped without rewriting application logic.

REST and GraphQL solve the same problem differently. REST gives you one URL per resource and is simpler to cache, debug and document — it is the right default for most business websites and integrations. GraphQL gives the client a single endpoint and lets it ask for exactly the fields it needs, which earns its keep when one screen pulls from many sources or when mobile bandwidth is a real constraint, at the cost of more complex caching and a steeper learning curve. For a small business site with a contact form and a booking integration, REST is almost always the correct answer, and we will say so rather than sell you complexity you do not need.

Accessibility Built In, Not Bolted On

WCAG 2.2 compliance for inclusive, usable web experiences.

Every site we build targets WCAG 2.2 Level AA, the standard referenced by UK accessibility obligations and the level most commercial and public sector contracts require. It covers the success criteria that matter most in practice: keyboard operability, screen reader support, colour contrast and error handling. Accessibility is designed in from the first decision rather than retrofitted before launch, because retrofitting is where the cost is. WAI-ARIA attributes (aria-label, aria-labelledby, aria-describedby, aria-live, role) are used sparingly and correctly to enhance semantics where HTML alone is insufficient, never as a replacement for proper semantic markup.

Keyboard operability is tested rigorously: all interactive elements receive visible focus indicators, focus order follows logical reading order, and keyboard traps are eliminated. Screen reader testing is performed using NVDA (Windows) and VoiceOver (macOS/iOS) to ensure announcements are clear, landmarks are navigable, and dynamic content updates are communicated via live regions. Colour contrast meets or exceeds WCAG AA ratios (4.5:1 for normal text, 3:1 for large text), and information is never conveyed by colour alone. Users who prefer reduced motion receive alternative animations or static layouts via the prefers-reduced-motion media query.

Forms are designed for clarity and error recovery: labels are properly associated with inputs, validation errors are announced to screen readers and linked via aria-describedby, and error messages provide actionable guidance. Legally, accessible websites are required under the UK Equality Act 2010 for businesses providing services to the public, and public sector bodies must meet the Public Sector Bodies (Websites and Mobile Applications) Accessibility Regulations 2018. Commercially, accessibility increases your audience, improves usability for all users, and contributes to better SEO rankings since search engines reward well-structured, semantic markup.

WCAG 2.2, published in October 2023, adds nine success criteria on top of WCAG 2.1 rather than replacing it — so a site that meets 2.2 Level AA also meets 2.1 Level AA. The additions mostly concern focus visibility and appearance, dragging alternatives, target size (a minimum 24 by 24 CSS pixels for interactive controls), consistent help placement, and reducing the cognitive load of authentication and redundant data entry. If you are asked to meet "WCAG 2.1 AA" in a contract or tender, building to 2.2 satisfies it with room to spare.

UK GDPR and Data Protection

Privacy-first design and compliance with UK data protection law.

Every project is designed with UK GDPR compliance from the outset. Personal data processing is based on a lawful basis (consent, contractual necessity, legitimate interests, legal obligation) and documented clearly in privacy policies. Data minimisation means collecting only what is necessary; purpose limitation ensures data is used only for the stated purpose; and storage limitation defines retention periods after which data is securely deleted. Consent for analytics and marketing cookies is obtained explicitly via opt-in banners under PECR (Privacy and Electronic Communications Regulations), and users can withdraw consent at any time, triggering immediate deletion of tracking cookies.

Analytics configurations respect privacy: Google Analytics 4 is configured with IP anonymisation enabled, sensitive data is excluded from event parameters, and data retention periods are set appropriately. Where possible, privacy-focused analytics alternatives are recommended. Data subject rights under UK GDPR — including the right to access (subject access requests), rectification, erasure (right to be forgotten), data portability, and objection — are supported through clear processes and technical implementation. The ICO (Information Commissioner's Office) provides regulatory guidance, and we help clients understand their obligations as data controllers.

Data in transit is encrypted using TLS 1.2 or higher (HTTPS everywhere), and sensitive data at rest is encrypted using industry-standard algorithms (AES-256). Where data is hosted, UK or EU data residency is preferred to avoid international transfer complexities, particularly when using Microsoft Azure's UK South or UK West regions. Backups are encrypted and tested regularly, and disaster recovery procedures ensure data can be restored within defined recovery time objectives (RTO) and recovery point objectives (RPO).

This information is provided for general guidance and does not constitute legal advice. Consult a qualified data protection solicitor for specific legal requirements.

Cloud-First Hosting

Microsoft Azure and edge-optimised infrastructure.

Modern hosting is cloud-first: Microsoft Azure provides scalable, reliable infrastructure with global edge delivery via Azure Static Web Apps, Azure App Service, and Azure CDN. Static sites are deployed to Azure's edge network, delivering content from the closest point of presence (PoP) to the user for minimum latency. TLS/HTTPS is enabled by default with automatic certificate renewal via Let's Encrypt or Azure-managed certificates, ensuring encrypted connections and trust indicators in browsers.

Environments are separated logically (development, staging, production) using Azure resource groups and deployment slots, allowing safe testing before production release. Auto-scaling handles traffic spikes without manual intervention, and uptime is monitored using Azure Monitor and Application Insights, with alerting configured for performance degradation, errors, or downtime. Costs are controlled through resource tagging, budget alerts, and right-sizing of compute and storage resources — cloud infrastructure does not need to be expensive, especially for small businesses with predictable traffic patterns.

Infrastructure as code (IaC) is used where appropriate, defining resources declaratively in Bicep or Terraform templates for reproducible deployments and version-controlled infrastructure changes. Backups are automated and tested regularly to verify restore procedures, and rollback mechanisms are in place to revert deployments if issues are detected post-release. Azure's UK regions (UK South, UK West) keep data within UK borders, simplifying GDPR compliance and meeting organisational data residency requirements.

Containerisation and CI/CD

Docker and automated pipelines for reliable deployments.

Docker containers package applications and dependencies into reproducible, portable images that run identically in development, staging, and production. This eliminates the 'works on our machine' problem and ensures consistency across environments. Dockerfiles define multi-stage builds: compile and test stages discard unnecessary files, and only the final runtime image (containing the compiled application and production dependencies) is deployed, reducing image size and attack surface.

Container images are pushed to container registries (Azure Container Registry, Docker Hub) with semantic versioning tags, enabling rollback to previous versions if deployments fail. Base images are kept up to date with security patches, and vulnerability scanning tools (Trivy, Snyk, Azure Defender) identify known CVEs in dependencies. Image layers are cached intelligently to speed rebuilds: dependency installation layers are cached separately from application code layers, so dependency downloads are skipped if package manifests haven't changed.

CI/CD pipelines automate the software delivery process through clearly defined stages: lint checks enforce code style, type checks verify TypeScript correctness, unit and integration tests validate behaviour, builds produce optimised bundles, and deployments push to target environments. Automated preview deployments create ephemeral environments for pull requests, allowing stakeholders to review changes before merging to main. If a deployment introduces a bug, automated rollback policies revert to the last known good version, minimising downtime and user impact.

Performance and Core Web Vitals

Fast, measurable user experiences that drive conversions.

Performance is not subjective — it is measured using Google's Core Web Vitals: Largest Contentful Paint (LCP) measures loading performance and should occur within 2.5 seconds, Interaction to Next Paint (INP) measures responsiveness to user input and should be below 200ms, and Cumulative Layout Shift (CLS) measures visual stability and should be below 0.1. These metrics directly impact user experience, conversion rates, and Google search rankings, so we optimise every project to meet or exceed Good thresholds.

Images are delivered in modern formats (AVIF with WebP fallback) using responsive image syntax (srcset and sizes attributes) to serve appropriately sized images for each viewport. Lazy loading defers offscreen images until the user scrolls near them, reducing initial page weight. Font loading uses font-display: swap to prevent invisible text (FOIT) and subset fonts to include only required character ranges. Critical CSS is inlined in the document head to render above-the-fold content immediately, and non-critical CSS is loaded asynchronously.

JavaScript bundles are code-split by route, so users only download code for the pages they visit. Third-party scripts (analytics, chat widgets) are loaded asynchronously or deferred to avoid blocking the main thread. Caching headers are configured aggressively for static assets (immutable files are cached for one year with cache-busting hashes in filenames), and stale-while-revalidate strategies serve cached content instantly while fetching updates in the background. The result is fast, smooth experiences that keep users engaged and drive measurable improvements in conversion funnels.

Technical SEO

Technical SEO and answer-engine optimisation, built in from the start.

Technical SEO ensures that search engines can crawl, index, and rank your content effectively. Semantic HTML structure with correct heading hierarchy (one h1 per page, logical h2-h6 nesting) communicates content importance and relationships. Metadata includes title tags (55-60 characters), meta descriptions (150-160 characters), and Open Graph tags for rich social media previews. JSON-LD structured data (Schema.org markup) provides explicit semantic context: LocalBusiness, Product, Article, BreadcrumbList, and FAQPage schemas help search engines understand content types and display rich results in SERPs.

Sitemaps (XML and HTML) list all pages for crawlers, and robots.txt files control crawler access to specific paths. Canonical URLs (rel=canonical) prevent duplicate content penalties, and 301 redirects guide search engines when URLs change. Server-side rendering (SSR) delivers fully-rendered HTML to crawlers on first request, ensuring JavaScript-heavy applications are indexable — unlike client-side rendering, which requires crawlers to execute JavaScript (not all do reliably). Nuxt's SSR mode solves this problem elegantly.

Internationalisation (i18n) with hreflang tags signals language and regional variants to search engines, preventing duplicate content issues for multilingual sites. This very site is bilingual (English and Welsh) with correct hreflang annotations. Performance optimisations (fast LCP, low CLS) contribute directly to SEO rankings under Google's page experience signals. Regular audits using tools like Lighthouse, Search Console, and Screaming Frog identify technical issues (broken links, missing alt text, slow pages) and track ranking improvements over time.

Ready to Get Your Business Online?

Based in Bridgend and serving businesses across South Wales. Get a free, no-obligation quote today with clear and honest advice.