From 295ee1980d00fa47c7235443f043d7f5a5ce53b5 Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Fri, 2 Jun 2023 10:08:35 +0100 Subject: [PATCH] feat: add testimonials to the call page --- public/images/scott-euser.jpg | Bin 32041 -> 0 bytes src/components/Testimonials.astro | 34 +++++ src/content/config.ts | 13 ++ src/content/testimonial/adam-cuddihy.json | 7 + src/content/testimonial/alan-hatch.json | 7 + src/content/testimonial/anonymous.json | 7 + src/content/testimonial/brian-hartwell.json | 7 + src/content/testimonial/brian-healy.json | 7 + src/content/testimonial/chris-jarvis.json | 7 + src/content/testimonial/chris-knox.json | 7 + .../testimonial/daniel-easterbrook.json | 7 + src/content/testimonial/duncan-davidson.json | 7 + src/content/testimonial/ed-welsby.json | 7 + src/content/testimonial/holly-ross.json | 7 + src/content/testimonial/huw-davies.json | 7 + src/content/testimonial/james-chapman.json | 7 + src/content/testimonial/jon-hallett.json | 7 + src/content/testimonial/josh-mitchell.json | 7 + src/content/testimonial/leonie-watson.json | 7 + src/content/testimonial/marlon-duncanson.json | 7 + src/content/testimonial/michael-itkoff.json | 7 + src/content/testimonial/mick-felton.json | 7 + src/content/testimonial/owen-phillips.json | 7 + src/content/testimonial/scott-euser.json | 7 + src/data/recommendations.json | 125 ------------------ src/pages/call.mdx | 9 ++ src/pages/drupal-testing.mdx | 27 +--- 27 files changed, 207 insertions(+), 148 deletions(-) delete mode 100644 public/images/scott-euser.jpg create mode 100644 src/components/Testimonials.astro create mode 100644 src/content/testimonial/adam-cuddihy.json create mode 100644 src/content/testimonial/alan-hatch.json create mode 100644 src/content/testimonial/anonymous.json create mode 100644 src/content/testimonial/brian-hartwell.json create mode 100644 src/content/testimonial/brian-healy.json create mode 100644 src/content/testimonial/chris-jarvis.json create mode 100644 src/content/testimonial/chris-knox.json create mode 100644 src/content/testimonial/daniel-easterbrook.json create mode 100644 src/content/testimonial/duncan-davidson.json create mode 100644 src/content/testimonial/ed-welsby.json create mode 100644 src/content/testimonial/holly-ross.json create mode 100644 src/content/testimonial/huw-davies.json create mode 100644 src/content/testimonial/james-chapman.json create mode 100644 src/content/testimonial/jon-hallett.json create mode 100644 src/content/testimonial/josh-mitchell.json create mode 100644 src/content/testimonial/leonie-watson.json create mode 100644 src/content/testimonial/marlon-duncanson.json create mode 100644 src/content/testimonial/michael-itkoff.json create mode 100644 src/content/testimonial/mick-felton.json create mode 100644 src/content/testimonial/owen-phillips.json create mode 100644 src/content/testimonial/scott-euser.json delete mode 100644 src/data/recommendations.json diff --git a/public/images/scott-euser.jpg b/public/images/scott-euser.jpg deleted file mode 100644 index eb482906d3dcb92b5c77f6b1e61e26a49f98c3d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32041 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 Qn1D|+rl!OPm49ph9|VtOYybcN diff --git a/src/components/Testimonials.astro b/src/components/Testimonials.astro new file mode 100644 index 00000000..ec9191a3 --- /dev/null +++ b/src/components/Testimonials.astro @@ -0,0 +1,34 @@ +--- +import { getCollection, getEntries, getEntry } from 'astro:content'; +import _ from "lodash"; + +interface Props { + names: string[]; +} + +const names = _(Astro.props.names); +const testimonials = await getCollection('testimonial', ({ id }) => names.includes(id)); +const reversedTestimonials = _(testimonials).reverse() +--- + +{testimonials && ( +

What others have said

+ +
+ {reversedTestimonials.map(testimonial => ( +
+
+ +
+ {testimonial.data.name} - {testimonial.data.tagline} + + {testimonial.data.image && ( + + + + )} +
+
+ ))} +
+)} diff --git a/src/content/config.ts b/src/content/config.ts index a6eb0a5f..7e42be39 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -50,8 +50,21 @@ const talkCollection = defineCollection({ }), }); +const testimonialCollection = defineCollection({ + type: 'data', + schema: z.object({ + image: z.string().or(z.null()), + name: z.string(), + tagline: z.string(), + text: z.string(), + url: z.string().or(z.null()), + }), +}); + + export const collections = { "daily-email": dailyEmailCollection, blog: blogCollection, talk: talkCollection, + testimonial: testimonialCollection, }; diff --git a/src/content/testimonial/adam-cuddihy.json b/src/content/testimonial/adam-cuddihy.json new file mode 100644 index 00000000..e26038e2 --- /dev/null +++ b/src/content/testimonial/adam-cuddihy.json @@ -0,0 +1,7 @@ +{ + "name": "Adam Cuddihy", + "tagline": "Web Development Manager", + "text": "

A fantastic and highly knowledgeable Drupal Developer. Oliver saved a struggling Drupal project with his wealth of Drupal experience.

\n", + "image": "adam.jpeg", + "url": null +} diff --git a/src/content/testimonial/alan-hatch.json b/src/content/testimonial/alan-hatch.json new file mode 100644 index 00000000..6806b2e7 --- /dev/null +++ b/src/content/testimonial/alan-hatch.json @@ -0,0 +1,7 @@ +{ + "name": "Alan Hatch", + "tagline": "Senior Drupal Developer at Microserve", + "text": "

I have had the pleasure of working with Oliver on several projects at Microserve. He is a natural innovator and a great mentor who inspires others to explore new technologies and approaches. He is a highly knowledgeable professional with a passion for all things Drupal and the tenacity required to get the job done well.

\n", + "image": "alan.jpeg", + "url": null +} diff --git a/src/content/testimonial/anonymous.json b/src/content/testimonial/anonymous.json new file mode 100644 index 00000000..3e45d59a --- /dev/null +++ b/src/content/testimonial/anonymous.json @@ -0,0 +1,7 @@ +{ + "name": "Anonymous", + "tagline": "Marketing Strategist", + "text": "

We have only worked together for a short while but I can see Oliver is a Drupal expert.

\n

His technical knowledge means we have been able to make improvements to the sites we manage quickly and efficiently.

\n

If we have complex issues to contend with in the future I feel confident he will be able to deal with them.

\n", + "image": null, + "url": null +} diff --git a/src/content/testimonial/brian-hartwell.json b/src/content/testimonial/brian-hartwell.json new file mode 100644 index 00000000..cb139daa --- /dev/null +++ b/src/content/testimonial/brian-hartwell.json @@ -0,0 +1,7 @@ +{ + "name": "Brian Hartwell", + "tagline": "Interactive Creative Director", + "text": "

Oliver was great to work with. He has expert knowledge with Drupal and delivered exactly what we were looking for on time. He's understanding, friendly and easy to get along with. I would enjoy working with him again in the future.

\n", + "image": null, + "url": null +} diff --git a/src/content/testimonial/brian-healy.json b/src/content/testimonial/brian-healy.json new file mode 100644 index 00000000..2febeb43 --- /dev/null +++ b/src/content/testimonial/brian-healy.json @@ -0,0 +1,7 @@ +{ + "name": "Brian Healy", + "tagline": "Director of Business Development at Tincan", + "text": "

Oliver was fantastic to work with - pro-active and highly responsive, he worked well remotely and as part of a project team. His understanding of the project requirement(s) and ability to translate it into working code was essential and he delivered.

\n", + "image": "brian-healy.png", + "url": null +} diff --git a/src/content/testimonial/chris-jarvis.json b/src/content/testimonial/chris-jarvis.json new file mode 100644 index 00000000..e45fa8bf --- /dev/null +++ b/src/content/testimonial/chris-jarvis.json @@ -0,0 +1,7 @@ +{ + "name": "Chris Jarvis", + "tagline": "Developer at Microserve", + "text": "

Oliver is an amazing colleague, he's professional, full of knowledge and I could not recommend him more.

\n", + "image": "chris-jarvis.jpg", + "url": null +} diff --git a/src/content/testimonial/chris-knox.json b/src/content/testimonial/chris-knox.json new file mode 100644 index 00000000..1fbd9337 --- /dev/null +++ b/src/content/testimonial/chris-knox.json @@ -0,0 +1,7 @@ +{ + "name": "Chris Knox", + "tagline": "Creative Director", + "text": "

Oliver is a skilled and enthusiastic developer, always putting the clients interests first. His approach to work is diligent and confident and this makes working with him a pleasure!

\n", + "image": "chris-knox.jpeg", + "url": null +} diff --git a/src/content/testimonial/daniel-easterbrook.json b/src/content/testimonial/daniel-easterbrook.json new file mode 100644 index 00000000..7a3b384c --- /dev/null +++ b/src/content/testimonial/daniel-easterbrook.json @@ -0,0 +1,7 @@ +{ + "name": "Daniel Easterbrook", + "tagline": "Digital Strategy Consultant", + "text": "

Oliver is seasoned Drupal and all round highly skilled and experienced web developer. I have worked with Oliver on an important project where he was reliable, prompt and ensured strict client deadline delivery and confidentiality at all times.

\n", + "image": null, + "url": null +} diff --git a/src/content/testimonial/duncan-davidson.json b/src/content/testimonial/duncan-davidson.json new file mode 100644 index 00000000..5001e3a8 --- /dev/null +++ b/src/content/testimonial/duncan-davidson.json @@ -0,0 +1,7 @@ +{ + "name": "Duncan Davidson", + "tagline": "Director at Rohallion", + "url": "https://rohallion.agency", + "text": "

Oliver is a pleasure to work with, and I would engage him again without hesitation. He communicates regularly, ensures that he meets requirements, and suggests improvements to the potential solutions to the brief.

\n", + "image": "duncan.jpeg" +} diff --git a/src/content/testimonial/ed-welsby.json b/src/content/testimonial/ed-welsby.json new file mode 100644 index 00000000..3d072458 --- /dev/null +++ b/src/content/testimonial/ed-welsby.json @@ -0,0 +1,7 @@ +{ + "name": "Ed Welsby", + "tagline": "Senior Developer at Proctor & Stevenson", + "text": "

Oliver was great to work with, he has a solid knowledge of the various aspects of web development and never minded helping me out with Linux commands!

\n", + "image": "ed-welsby.png", + "url": null +} diff --git a/src/content/testimonial/holly-ross.json b/src/content/testimonial/holly-ross.json new file mode 100644 index 00000000..084d142c --- /dev/null +++ b/src/content/testimonial/holly-ross.json @@ -0,0 +1,7 @@ +{ + "name": "Holly Ross", + "tagline": "Executive Director at Drupal Association", + "url": "https://www.drupal.org/association", + "text": "

Oliver has been an outstanding contributor to the Drupal Association team. He is a talented developer who writes great code and applies his curiosity and love of learning to every project. He is also a fantastic team member, who gives to the team as much as he gets.

\n

Oliver is the embodiment of everything good about the Drupal community.

\n", + "image": "holly-ross.png" +} diff --git a/src/content/testimonial/huw-davies.json b/src/content/testimonial/huw-davies.json new file mode 100644 index 00000000..42ce6b61 --- /dev/null +++ b/src/content/testimonial/huw-davies.json @@ -0,0 +1,7 @@ +{ + "name": "Huw Davies", + "tagline": "Web Dev Manager / DevOps / Team Manager at Admiral Group Plc", + "url": "https://admiral.com", + "text": "

I had the pleasure of working with Oliver whilst building the first version of our drupal based intranet. His knowledge of Drupal and the wider infrastructure required to run a site was really invaluable.

\n

At the time, we were very new to Drupal, so it gave us a great platform to learn from and expand our own knowledge.

\n

He's the only external contractor that we've kept in touch with over the years, which goes to show how much we valued his input.

\n", + "image": "huw.jpeg" +} diff --git a/src/content/testimonial/james-chapman.json b/src/content/testimonial/james-chapman.json new file mode 100644 index 00000000..a477155d --- /dev/null +++ b/src/content/testimonial/james-chapman.json @@ -0,0 +1,7 @@ +{ + "name": "James Chapman", + "tagline": "Director at Development Done Right", + "text": "

We used Oliver on a number of occasions throughout 2012 and I have to say we've been delighted with his work. His skills working with Drupal are excellent particularly with custom module development and we wouldn’t hesitate to recommend him others.

\n", + "image": "james-chapman.png", + "url": null +} diff --git a/src/content/testimonial/jon-hallett.json b/src/content/testimonial/jon-hallett.json new file mode 100644 index 00000000..d1f237d8 --- /dev/null +++ b/src/content/testimonial/jon-hallett.json @@ -0,0 +1,7 @@ +{ + "name": "Jon Hallett", + "tagline": "Senior Systems Administrator at the University of Bristol", + "url": "https://bristol.ac.uk", + "text": "

We use Oliver for maintaining a couple of Drupal sites for which we no longer have the skills ourselves. We became aware of Oliver through his work in the Drupal community, and about a year ago we approached him to help us with the deep dive aspects of maintaining and developing Drupal sites. He's been really helpful and very responsive. Much appreciated!

\n", + "image": "jon-hallett.jpeg" +} diff --git a/src/content/testimonial/josh-mitchell.json b/src/content/testimonial/josh-mitchell.json new file mode 100644 index 00000000..f2a21c44 --- /dev/null +++ b/src/content/testimonial/josh-mitchell.json @@ -0,0 +1,7 @@ +{ + "name": "Josh Mitchell", + "tagline": "CTO at Drupal Association", + "url": "https://www.drupal.org/association", + "text": "

Oliver is a skilled Drupal developer with a passion for the Drupal community. As his direct supervisor, I was able to watch Oliver grow with the Drupal Association and contribute an amazing amount of effort and integrity to all of his work.

\n

Everything we have thrown at Oliver, he has approached with an open and flexible mind that has allowed him to work on a wide range of projects and features for Drupal products.

\n", + "image": "josh-mitchell.png" +} diff --git a/src/content/testimonial/leonie-watson.json b/src/content/testimonial/leonie-watson.json new file mode 100644 index 00000000..be7b7c68 --- /dev/null +++ b/src/content/testimonial/leonie-watson.json @@ -0,0 +1,7 @@ +{ + "name": "Léonie Watson", + "tagline": "Director of Accessibility at Nomensa", + "url": "https://www.nomensa.com", + "text": "

Oliver is a flexible and hardworking developer, with a terrific knowledge of Drupal. He promotes accessibility best practice within the Drupal community, and is always happy to share his knowledge with other people.

\n", + "image": "leonie-watson.jpg" +} diff --git a/src/content/testimonial/marlon-duncanson.json b/src/content/testimonial/marlon-duncanson.json new file mode 100644 index 00000000..79854c66 --- /dev/null +++ b/src/content/testimonial/marlon-duncanson.json @@ -0,0 +1,7 @@ +{ + "name": "Marlon Duncanson", + "tagline": "Brand & Web Specialist", + "text": "

Oliver is a great guy and really easy to work with. He really goes the extra mile to make sure the project is done properly. I would recommend him and will not hesitate to use him again in future.

\n", + "image": null, + "url": null +} diff --git a/src/content/testimonial/michael-itkoff.json b/src/content/testimonial/michael-itkoff.json new file mode 100644 index 00000000..e753ee50 --- /dev/null +++ b/src/content/testimonial/michael-itkoff.json @@ -0,0 +1,7 @@ +{ + "name": "Michael Itkoff", + "tagline": "Cofounder", + "url": "https://www.daylightbooks.org", + "text": "

For over a decade we have worked with Oliver on a number of different projects. Initially our collaboration consisted of web maintenance and troubleshooting but we soon tapped Oliver to design, build and maintain a custom awards site which includes both submission and judging functionality. Oliver has deep and wide-ranging skills and I would certainly recommend his services!

", + "image": "" +} diff --git a/src/content/testimonial/mick-felton.json b/src/content/testimonial/mick-felton.json new file mode 100644 index 00000000..c6d7b554 --- /dev/null +++ b/src/content/testimonial/mick-felton.json @@ -0,0 +1,7 @@ +{ + "name": "Mick Felton", + "tagline": "Publisher at Poetry Wales Press Ltd (Seren Books)", + "url": "https://www.serenbooks.com", + "text": "

Working with Oliver on the Seren website has been easy and beneficial. As well as providing general maintenance support, he built a new Drupal module which integrated with our partners Glassboxx so that we could sell ebooks directly from our website. Oliver worked closely with the team at Glassboxx to create the integration which needed to communicate with the Glassboxx app so that users could download their purchases. He was able to resolve issues which came up along the way in order to create a functioning module which we now use on our site.

Oliver has extensive knowledge of Drupal and his familiarity with the Seren site meant he was able to fix problems quickly and efficiently as they arose. He is reliable and has always been willing to discuss new ideas for how the site could function. We would recommend working with him for his invaluable knowledge and ability to find solutions to problems at short notice. It has been a pleasure to work with him over the years.

", + "image": null +} diff --git a/src/content/testimonial/owen-phillips.json b/src/content/testimonial/owen-phillips.json new file mode 100644 index 00000000..4e4e8945 --- /dev/null +++ b/src/content/testimonial/owen-phillips.json @@ -0,0 +1,7 @@ +{ + "name": "Owen Phillips", + "tagline": "Director at Operation Fitness Ltd", + "url": "https://www.operation-fitness.co.uk", + "text": "

I have been working to build and develop my website with Oliver over the last year and I couldn't recommend higher. His ideas, knowledge and completion are to a very high standard and I look forward to continuing my build with him.

\n", + "image": "owen-phillips.jpeg" +} diff --git a/src/content/testimonial/scott-euser.json b/src/content/testimonial/scott-euser.json new file mode 100644 index 00000000..584f3536 --- /dev/null +++ b/src/content/testimonial/scott-euser.json @@ -0,0 +1,7 @@ +{ + "name": "Scott Euser", + "tagline": "Head of Web Development", + "image": "scott-euser.jpg", + "text": "Oliver really knows his stuff. Whether you are just starting out or looking to take your knowledge to the next level, his patient and clear way of explaining will help get you there.", + "url": null +} diff --git a/src/data/recommendations.json b/src/data/recommendations.json deleted file mode 100644 index 23713856..00000000 --- a/src/data/recommendations.json +++ /dev/null @@ -1,125 +0,0 @@ -[ - { - "name": "Ed Welsby", - "tagline": "Senior Developer at Proctor & Stevenson", - "text": "

Oliver was great to work with, he has a solid knowledge of the various aspects of web development and never minded helping me out with Linux commands!

\n", - "image": "ed-welsby.png", - "hidden": true - }, - { - "name": "Brian Healy", - "tagline": "Director of Business Development at Tincan", - "text": "

Oliver was fantastic to work with - pro-active and highly responsive, he worked well remotely and as part of a project team. His understanding of the project requirement(s) and ability to translate it into working code was essential and he delivered.

\n", - "image": "brian-healy.png" - }, - { - "name": "Marlon Duncanson", - "tagline": "Brand & Web Specialist", - "text": "

Oliver is a great guy and really easy to work with. He really goes the extra mile to make sure the project is done properly. I would recommend him and will not hesitate to use him again in future.

\n", - "image": null - }, - { - "name": "Brian Hartwell", - "tagline": "Interactive Creative Director", - "text": "

Oliver was great to work with. He has expert knowledge with Drupal and delivered exactly what we were looking for on time. He's understanding, friendly and easy to get along with. I would enjoy working with him again in the future.

\n", - "image": null - }, - { - "name": "Daniel Easterbrook", - "tagline": "Digital Strategy Consultant", - "text": "

Oliver is seasoned Drupal and all round highly skilled and experienced web developer. I have worked with Oliver on an important project where he was reliable, prompt and ensured strict client deadline delivery and confidentiality at all times.

\n", - "image": null - }, - { - "name": "James Chapman", - "tagline": "Director at Development Done Right", - "text": "

We used Oliver on a number of occasions throughout 2012 and I have to say we've been delighted with his work. His skills working with Drupal are excellent particularly with custom module development and we wouldn’t hesitate to recommend him others.

\n", - "image": "james-chapman.png" - }, - { - "name": "Léonie Watson", - "tagline": "Director of Accessibility at Nomensa", - "url": "https://www.nomensa.com", - "text": "

Oliver is a flexible and hardworking developer, with a terrific knowledge of Drupal. He promotes accessibility best practice within the Drupal community, and is always happy to share his knowledge with other people.

\n", - "image": "leonie-watson.jpg" - }, - { - "name": "Holly Ross", - "tagline": "Executive Director at Drupal Association", - "url": "https://www.drupal.org/association", - "text": "

Oliver has been an outstanding contributor to the Drupal Association team. He is a talented developer who writes great code and applies his curiosity and love of learning to every project. He is also a fantastic team member, who gives to the team as much as he gets.

\n

Oliver is the embodiment of everything good about the Drupal community.

\n", - "image": "holly-ross.png" - }, - { - "name": "Josh Mitchell", - "tagline": "CTO at Drupal Association", - "url": "https://www.drupal.org/association", - "text": "

Oliver is a skilled Drupal developer with a passion for the Drupal community. As his direct supervisor, I was able to watch Oliver grow with the Drupal Association and contribute an amazing amount of effort and integrity to all of his work.

\n

Everything we have thrown at Oliver, he has approached with an open and flexible mind that has allowed him to work on a wide range of projects and features for Drupal products.

\n", - "image": "josh-mitchell.png" - }, - { - "name": "Chris Jarvis", - "tagline": "Developer at Microserve", - "text": "

Oliver is an amazing colleague, he's professional, full of knowledge and I could not recommend him more.

\n", - "image": "chris-jarvis.jpg", - "hidden": true - }, - { - "name": "Owen Phillips", - "tagline": "Director at Operation Fitness Ltd", - "url": "https://www.operation-fitness.co.uk", - "text": "

I have been working to build and develop my website with Oliver over the last year and I couldn't recommend higher. His ideas, knowledge and completion are to a very high standard and I look forward to continuing my build with him.

\n", - "image": "owen-phillips.jpeg" - }, - { - "name": "Chris Knox", - "tagline": "Creative Director", - "text": "

Oliver is a skilled and enthusiastic developer, always putting the clients interests first. His approach to work is diligent and confident and this makes working with him a pleasure!

\n", - "image": "chris-knox.jpeg" - }, - { - "name": "Jon Hallett", - "tagline": "Senior Systems Administrator at the University of Bristol", - "url": "https://bristol.ac.uk", - "text": "

We use Oliver for maintaining a couple of Drupal sites for which we no longer have the skills ourselves. We became aware of Oliver through his work in the Drupal community, and about a year ago we approached him to help us with the deep dive aspects of maintaining and developing Drupal sites. He's been really helpful and very responsive. Much appreciated!

\n", - "image": "jon-hallett.jpeg" - }, - { - "name": "Alan Hatch", - "tagline": "Senior Drupal Developer at Microserve", - "text": "

I have had the pleasure of working with Oliver on several projects at Microserve. He is a natural innovator and a great mentor who inspires others to explore new technologies and approaches. He is a highly knowledgeable professional with a passion for all things Drupal and the tenacity required to get the job done well.

\n", - "image": "alan.jpeg" - }, - { - "name": "Adam Cuddihy", - "tagline": "Web Development Manager", - "text": "

A fantastic and highly knowledgeable Drupal Developer. Oliver saved a struggling Drupal project with his wealth of Drupal experience.

\n", - "image": "adam.jpeg" - }, - { - "name": "Duncan Davidson", - "tagline": "Director at Rohallion", - "url": "https://rohallion.agency", - "text": "

Oliver is a pleasure to work with, and I would engage him again without hesitation. He communicates regularly, ensures that he meets requirements, and suggests improvements to the potential solutions to the brief.

\n", - "image": "duncan.jpeg" - }, - { - "name": "Anonymous", - "tagline": "Marketing Strategist", - "text": "

We have only worked together for a short while but I can see Oliver is a Drupal expert.

\n

His technical knowledge means we have been able to make improvements to the sites we manage quickly and efficiently.

\n

If we have complex issues to contend with in the future I feel confident he will be able to deal with them.

\n" - }, - { - "name": "Huw Davies", - "tagline": "Web Dev Manager / DevOps / Team Manager at Admiral Group Plc", - "url": "https://admiral.com", - "text": "

I had the pleasure of working with Oliver whilst building the first version of our drupal based intranet. His knowledge of Drupal and the wider infrastructure required to run a site was really invaluable.

\n

At the time, we were very new to Drupal, so it gave us a great platform to learn from and expand our own knowledge.

\n

He's the only external contractor that we've kept in touch with over the years, which goes to show how much we valued his input.

\n", - "image": "huw.jpeg" - }, - { - "name": "Mick Felton", - "tagline": "Publisher at Poetry Wales Press Ltd (Seren Books)", - "url": "https://www.serenbooks.com", - "text": "

Working with Oliver on the Seren website has been easy and beneficial. As well as providing general maintenance support, he built a new Drupal module which integrated with our partners Glassboxx so that we could sell ebooks directly from our website. Oliver worked closely with the team at Glassboxx to create the integration which needed to communicate with the Glassboxx app so that users could download their purchases. He was able to resolve issues which came up along the way in order to create a functioning module which we now use on our site.

Oliver has extensive knowledge of Drupal and his familiarity with the Seren site meant he was able to fix problems quickly and efficiently as they arose. He is reliable and has always been willing to discuss new ideas for how the site could function. We would recommend working with him for his invaluable knowledge and ability to find solutions to problems at short notice. It has been a pleasure to work with him over the years.

", - "image": "" - } -] diff --git a/src/pages/call.mdx b/src/pages/call.mdx index a546d4f5..ed5a4416 100644 --- a/src/pages/call.mdx +++ b/src/pages/call.mdx @@ -3,9 +3,16 @@ layout: ~/layouts/PageLayout.astro title: Book a 1-on-1 consulting call link: https://savvycal.com/opdavies/consulting-call price: 499 +testimonials: + - anonymous + - mick-felton + - michael-itkoff + - huw-davies + - scott-euser --- import Button from "~/components/Button.astro"; +import Testimonials from "~/components/Testimonials.astro"; ## How it works @@ -31,3 +38,5 @@ If you don’t find the call valuable, I’ll refund 100% of the cost.