A sanitised case study of my first end-to-end WordPress and Divi client website project, covering discovery, planning, implementation, migration, troubleshooting, security, accessibility, SEO, launch and client handover.
Live website: tailormade-trips.com
Important
This repository is a curated public portfolio case study. It is not the live website's source-code repository, database, media library, Divi export, backup archive or operational documentation.
Sensitive configuration, private client discussions, credentials, account details, server information and internal support records have been excluded.
| Area | Summary |
|---|---|
| Client | Jasmina Becker |
| Brand | Tailor-Made Trips by Jasmina Becker |
| Website type | Personal travel-planning and lead-generation website |
| My role | Project lead and main implementer |
| Platform | WordPress and Divi |
| Development approach | LocalWP first, followed by migration to managed WordPress hosting |
| Hosting | Webempresa |
| Domain management | Squarespace |
| Languages | English and German |
| Current status | Live, handed over and client-operated |
| Delivery period | Core planning and build completed in approximately two weeks; migration, testing, snagging, launch and handover continued afterwards |
Responsive preview of the live Tailor-Made Trips website across desktop, laptop, tablet and mobile layouts.
Jasmina needed an elegant, personal and mobile-first website that would explain the value of her personalised travel-planning service, build trust, support English- and German-speaking visitors, and provide a clear route to enquiry.
The site also needed to remain manageable after handover. It was deliberately designed as a lean personal website rather than a large catalogue or booking platform.
I led the project from the initial brief through planning, implementation, migration, launch and handover.
My responsibilities included:
- translating the client's ideas into a controlled project brief;
- creating and maintaining the project source of truth;
- defining the information architecture and page structure;
- refining positioning and website copy;
- designing the mobile-first visual system;
- building the website in WordPress and Divi;
- implementing English and German content;
- selecting hosting through structured research and comparison;
- migrating the local build to managed hosting;
- troubleshooting WordPress, Divi, domain, SSL, caching and responsive-layout issues;
- implementing security, backup, cookie-consent, accessibility and SEO baselines;
- testing the site across languages, screen sizes and logged-out sessions;
- training Jasmina to publish and manage content;
- retaining responsibility for technical administration and support.
Jasmina supplied the business requirements, personal travel context, feedback and approvals. She also contributed to and validated the German-language content.
| Delivery and product | Technical implementation | Operations and governance |
|---|---|---|
| Client discovery | WordPress | Source-of-truth documentation |
| Requirements definition | Divi and Theme Builder | Scope and change control |
| Information architecture | LocalWP | Risk identification |
| Mobile-first design | TranslatePress | Blocker management |
| Content structuring | Responsive CSS | Backup and recovery planning |
| Copy refinement | Hosting migration | Least-privilege access |
| Client training | Domain and SSL troubleshooting | Maintenance documentation |
| Handover | Forms and content workflows | AI-assisted delivery |
flowchart LR
A[Client requirements and approvals] --> B[Project source of truth]
B --> C[LocalWP development environment]
C --> D[WordPress]
D --> E[Divi and Theme Builder]
D --> F[TranslatePress]
D --> G[Travel Journal content model]
E --> H[Responsive page layouts]
F --> H
G --> H
H --> I[Managed WordPress hosting]
I --> J[Live bilingual website]
K[Security, backups and consent controls] --> I
L[SEO and search monitoring] --> J
M[Jasmina: Author access] --> G
N[John: technical administration and support] --> D
N --> I
The diagram intentionally shows the logical structure rather than live infrastructure details.
The main platform and operational tools included:
- WordPress;
- Divi and Divi Theme Builder;
- LocalWP;
- Webempresa managed WordPress hosting;
- Squarespace domain management;
- TranslatePress;
- CookieYes;
- UpdraftPlus;
- Wordfence;
- two-factor authentication;
- Yoast SEO;
- Google Site Kit;
- targeted responsive CSS.
Exact software versions are excluded because they change over time and do not materially improve the case study.
I developed the site in LocalWP before activating the final hosting environment. This allowed the core structure, design, content and functionality to be agreed before hosting costs began. It also separated incomplete work from the production environment and created a stable version for migration.
Once the working version was approved, it was migrated to managed WordPress hosting for final-domain testing and launch.
The version-one structure was deliberately lean:
- Home;
- Meet Jasmina;
- How It Works;
- Travel Journal;
- Start Planning;
- supporting privacy and legal pages.
The homepage was structured around a clear visitor journey: understand the offer, recognise the planning problem, see how Jasmina helps, build trust, explore relevant trip types, understand the service and begin an enquiry.
The site was designed around a single-column mobile experience before wider layouts were finalised. Testing covered navigation, image cropping, card stacking, typography, form fields, tap targets and section spacing.
TranslatePress provides the English and German versions. The workflow was to establish the English structure, add the German translation with Jasmina's input, and recheck both languages after changes to shared pages, menus, forms and reusable Divi content.
The Travel Journal was designed so that Jasmina would not need to build individual articles with Divi.
The final approach used:
- a normal WordPress page for the Travel Journal listing;
- a Divi Blog module filtered to the Travel Journal category;
- the standard WordPress editor for post content;
- a Divi Theme Builder template for consistent article presentation;
- Author-level access for Jasmina.
This separated routine content publishing from site-wide technical administration.
An exploratory Divi AI layout for the How It Works page produced generic copy, inconsistent calls to action and no useful process. I returned to the brief, removed unsuitable sections and rebuilt the page around a clear six-step customer journey.
The Travel Journal had accidentally been assigned as WordPress's formal Posts page. Removing that assignment restored it as a normal editable Divi page while preserving the Blog-module and Theme Builder workflow.
The homepage and administration worked while internal pretty-permalink pages failed. Resaving the WordPress permalink structure regenerated the rewrite rules and restored the routes without database editing or a broad server workaround.
After migration, the mobile menu icon rendered incorrectly. Clearing Divi's generated/static CSS restored it without custom icon code or another plugin.
A Divi spacing preset was applied too broadly and created excessive padding. I removed the global preset and moved to explicitly reviewed local settings and reusable saved sections.
WordPress Site Health reported internal-request and cache-detection findings. I changed one variable at a time, documented what the evidence did and did not prove, and escalated host-level questions rather than applying speculative configuration workarounds.
ChatGPT and Claude were used throughout the project as collaborative planning, research, troubleshooting and documentation tools.
They supported requirements analysis, information architecture, copy refinement, design exploration, hosting comparison, troubleshooting hypotheses, test planning, accessibility work and documentation.
The AI tools did not independently build or approve the website. I provided the context, directed the work, assessed suggestions, made implementation decisions, tested the results and retained responsibility for the outcome.
See AI-Assisted Workflow.
The private working repository served as a documentation source of truth rather than a copy of the WordPress installation. It covered the brief, current state, blockers, roadmap, website structure, positioning boundaries, design system, platform decisions, security, maintenance and migration history.
A clear precedence rule prevented older drafts or chat discussions from overriding newer approved decisions. This reduced scope creep and preserved an audit trail through launch and handover.
The delivery used a proportionate baseline including:
- separate Administrator and Author responsibilities;
- least-privilege client access;
- two-factor authentication;
- controlled plugin installation;
- backups before material changes;
- deliberate rather than automatic major updates;
- logged-out testing after configuration changes;
- documented recovery and maintenance responsibilities;
- cookie consent and form-data review.
These measures describe technical implementation and governance. They are not formal legal certification or legal advice.
The delivery process included controlled milestones, client review, a snag list, migration preparation, final-domain checks, launch, WordPress training and ongoing technical support.
Jasmina now manages normal day-to-day content activity, while I retain responsibility for technical administration and support where required.
The project delivered:
- a live mobile-first WordPress and Divi website;
- English and German versions;
- a clear enquiry journey;
- an editable Travel Journal;
- a reusable single-post template;
- managed hosting and final-domain migration;
- responsive desktop, tablet and mobile layouts;
- client training and handover;
- a least-privilege client access model;
- documented backup, security and maintenance practices;
- ongoing technical support arrangements.
The case study focuses on verifiable delivery outcomes rather than broad performance or conversion claims.
This was my first complete WordPress and Divi client project. For a future project I would strengthen:
- staging-to-production deployment;
- structured regression checks;
- performance baselines;
- formal accessibility testing;
- CSS organisation and naming conventions;
- milestone acceptance criteria;
- browser and device test records;
- plugin lifecycle reviews;
- analytics goals defined before implementation.
| Document | Purpose |
|---|---|
| Project Overview | Brief, goals, scope, role and timeline |
| Delivery and Technology | Architecture, stack, build and migration approach |
| Challenges and Solutions | Detailed troubleshooting case studies |
| Security, Privacy and Maintenance | Access, backups, consent and operational controls |
| AI-Assisted Workflow | How ChatGPT and Claude supported the project |
| Client Delivery and Handover | Reviews, training, permissions and support |
| Lessons and Next Steps | Reflection and future improvements |
assets/ |
Approved public visual assets and diagram sources |
snippets/css/ |
Small, explained and sanitised CSS examples |
This repository is published as a portfolio case study and does not include an open-source licence.
Unless otherwise stated, the documentation and project-specific examples remain copyrighted. Publication does not grant permission to reuse client branding, website copy, photographs, screenshots or documentation.
Third-party product and company names remain the property of their respective owners.
