This topic focuses on delivering two common real-world website builds to production standard:
- A CMS-based website (content managed by non-developers).
- A Progressive Web App (PWA) (fast, installable, works offline or on poor connections).
By the end, you should be able to choose the right approach, integrate a content workflow, add PWA features, and deploy a capstone project with confidence.
1) When to Use a CMS (and When Not To)
A Content Management System (CMS) helps teams create and update content without changing code.
Use a CMS when:
- Content changes often (news, products, events, blogs, notices).
- Non-technical editors need to update pages.
- You need workflows (draft → review → publish).
- You need roles and permissions (e.g., authors vs publishers).
- You need multi-language content, scheduled publishing, or reusable content blocks.
Avoid (or reconsider) a CMS when:
- The site is mostly static and changes rarely.
- The content model is very small (a few pages) and you want maximum simplicity.
- Performance requirements are extreme and content does not need frequent edits (a static site may be best).
Common CMS options (high level)
- Traditional CMS (e.g., WordPress): pages served from the CMS, often theme-based.
- Headless CMS (e.g., Strapi, Contentful, Sanity): CMS stores content, your front-end fetches content via API.
Rule of thumb:
If you want design and front-end freedom while still enabling content editing, headless CMS is often a strong choice.
2) Content Models: Designing Content for Real Work
Before building pages, define your content model: the types of content and fields you need.
Example content types
- Post/Article
- title, slug, summary, body, featureImage, category, tags, author, publishDate, SEO fields
- Product/Service
- name, description, price (if applicable), images, features, availability
- Page
- title, slug, pageSections (repeatable), SEO fields
Good content modelling practices
- Prefer structured fields (e.g., “publish date”) over messy rich text.
- Create reusable blocks (e.g., hero section, FAQ, testimonial).
- Include SEO metadata fields (title, description, social image).
- Keep a consistent slug strategy (URL-friendly identifiers).
3) Integrating Content Workflows (Draft, Review, Publish)
A production website often needs more than “edit and publish”.
Workflow stages (typical)
- Draft: writers create content.
- In review: editors check quality, tone, legal, factual accuracy.
- Published: visible to the public.
- Archived: removed from public view but kept for records.
Roles and permissions (typical)
- Author: can create and edit drafts.
- Editor/Publisher: can approve and publish.
- Admin: manages users, settings, and content types.
Practical workflow tips
- Define a content checklist for every publish:
- Headings are correct (H1 once, logical order)
- Links work
- Images have alt text
- SEO title/description filled in
- No placeholder text
- Use preview environments so editors can review changes before going live.
4) CMS Integration Approaches
A) Traditional CMS site
- The CMS renders pages directly.
- Pros: fast to set up, editing built-in.
- Cons: front-end flexibility can be limited; performance and security depend heavily on plugins and configuration.
B) Headless CMS + front-end app
- Your website (React/Vue/Angular or even static site generator) fetches content via API.
- Pros: modern front-end, strong performance options, flexible design.
- Cons: you must build the front-end and content rendering logic.
Common integration patterns
- Build-time rendering (static generation): content is fetched during build; very fast site; requires rebuild to update content.
- Server-side rendering (SSR): content is fetched on request; content updates immediately; needs server runtime.
- Hybrid: some pages static, others dynamic.
When content changes daily and must be immediate, SSR or a hybrid approach is often better. For marketing sites with periodic updates, static generation is usually excellent.
5) PWA Essentials: What Makes a Web App a PWA?
A Progressive Web App is a website with app-like features such as offline support and installability.
Key PWA capabilities
- Works on unreliable networks (offline fallback, caching strategies)
- Installable (Add to Home Screen / install prompt on supported devices)
- Fast and responsive
- Secure (served over HTTPS)
- App-like experience (standalone display mode, icons, splash screen)
Minimum technical requirements
- A valid Web App Manifest (e.g.,
manifest.webmanifest) - A registered Service Worker
- Served via HTTPS
6) Implementing Offline Support with Service Workers
A service worker is a background script that can intercept network requests and decide whether to serve cached content.
What to cache
- App shell: core HTML, CSS, JS, fonts, logo
- Offline page: a friendly fallback for navigation requests
- Key content: most-used pages or API responses (where appropriate)
Caching strategies (choose intentionally)
- Cache-first
- Good for: static assets (CSS/JS/images that rarely change)
- Risk: users may see old content if cache invalidation is not handled
- Network-first
- Good for: content that must be up to date (news, prices)
- Benefit: falls back to cache when offline
- Stale-while-revalidate
- Good for: content where “slightly outdated is OK”
- Benefit: fast response, updates in the background
Offline UX expectations
When offline, users should still be able to:
- Open the app
- Navigate to previously visited pages (where possible)
- See a clear offline message for content that cannot be loaded
Tip: Make offline behaviour a planned feature, not an accident. Provide an offline banner or status indicator.
7) Installability: Manifest, Icons, and User Experience
Manifest essentials
Your manifest should include:
nameandshort_namestart_urldisplay(oftenstandalone)background_colorandtheme_color- A set of icons in multiple sizes (e.g., 192×192, 512×512)
Install prompts (practical guidance)
- Don’t annoy users with constant prompts.
- Offer installation after the user has shown intent (e.g., after returning twice, or after completing a task).
- Provide a visible “Install app” button where appropriate.
8) Data and Content in PWAs (including CMS Content)
If your PWA uses CMS content, decide how to handle content in low-connectivity scenarios.
Options
- Cache key routes (top pages, last-read articles).
- Cache API responses with a network-first strategy.
- Store some data locally (e.g., IndexedDB) for offline reading lists.
Be careful with:
- Sensitive data (don’t store tokens or personal info in unsafe ways).
- Stale content (show “last updated” timestamps when relevant).
- Cache size (clean up old cached items).
9) Capstone Delivery: From “Works on My Machine” to Production-Ready
Your goal is a deployment that is:
- Reliable (repeatable builds, predictable releases)
- Fast (optimised assets, caching, good Core Web Vitals)
- Discoverable (SEO basics in place)
- Accessible (WCAG-aligned)
- Secure (HTTPS, safe headers, dependency checks)
Production readiness checklist (CMS + PWA)
Content and CMS
- Content types match real business needs
- Draft/review/publish workflow in place
- Roles and permissions configured
- Content previews available (if relevant)
PWA
- Manifest valid and tested
- Service worker registered and working
- Offline fallback page works
- Caching strategy documented (what is cached and why)
- Installability tested on at least one mobile device
Quality
- Basic automated tests pass (unit/integration as appropriate)
- Manual smoke test: navigation, forms, login (if any), error states
Performance
- Images optimised (correct formats, lazy loading where appropriate)
- Minified assets and compression enabled (Brotli/Gzip on host)
- Lighthouse run and key issues addressed (especially Performance + Accessibility)
SEO
- Unique page titles and meta descriptions
- Correct heading structure
robots.txtand sitemap where applicable- Clean URLs and canonical tags (if needed)
Security
- HTTPS enforced
- Dependencies updated and audited
- No secrets committed to Git
- Basic security headers configured where supported
10) Deployment Approach for the Capstone
Recommended environments
- Development: local machine + local CMS (or CMS dev space)
- Staging/Preview: automatic deploy on pull requests for review
- Production: manual approval or controlled merge-to-main releases
CI/CD basics (typical flow)
- Developer pushes changes to a branch.
- CI runs:
- linting
- tests
- build
- If successful, deploy to preview/staging.
- After review, merge to main triggers production deploy.
CMS deployment considerations
- Keep CMS configuration versioned where possible (content types, settings).
- Manage secrets via your hosting platform’s environment variables.
- Plan for backups and restore procedures.
- If using a hosted headless CMS, focus on environment separation (dev vs prod spaces).
11) What to Submit (Capstone Expectations)
For your CMS + PWA capstone, you should be able to provide:
- A live URL (production deployment)
- A Git repository with clear commit history and README
- A short delivery note including:
- CMS choice and why it suits the use case
- Content types created and workflow used
- PWA features implemented (offline behaviour and installability)
- Any known limitations and next steps
Knowledge Check (Self-Assessment)
Answer these before you consider your capstone “done”:
- Why did you choose a CMS (or headless CMS) for this project?
- What content types and fields did you model, and why?
- Which caching strategy did you apply, and what risks does it introduce?
- What happens when a user goes offline mid-session?
- Can a non-developer update the site content safely without breaking layout?
- If you deploy a bug, how quickly can you roll back or redeploy?
Practical Activity: Capstone Delivery Sprint
Complete the following in order:
- Content model: finalise 2–4 content types with required fields (including SEO fields).
- Workflow setup: configure roles + draft/review/publish.
- Front-end integration: render CMS content with consistent components and accessible markup.
- PWA implementation:
- add manifest + icons
- register service worker
- implement offline fallback
- choose caching strategy for assets and content
- Quality gates: run tests, fix failures, run Lighthouse and address major issues.
- Deploy: set up CI/CD, deploy to staging, then production.
- Handover: write README + delivery notes and share the live link.