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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

bwx;0Yv%ikFGszCjTqz; z)3avwMLgy9*4(L^mM}NwIt!oHleZh?qrOW=x;vhE85rvD`Jbxw!Hrk5ZtZ>a&O+co zzuVnfw@MGSZvWeCzD~>M=@{6~f5*ynkymU(fq$Dg^Wn||Vfi=Ow=pe7oD<8K80()o$h_E zgXvUqPn>i3MgAR^lY@D8dw;n3nrrLC5 ztx1S5@B3-Re_dwRR9HwPePiREBX->*q|GDXX>NlJck-DH$>|Y|mpd26CEdDt-EZ5! zX1R1GGwBT{-lizWMlRf~nsxfl3A4=Di15pwL_UiaDJ{AZpPe{8d$ry>xsY;qN0)&2 zoF%6hZk|0|)j@dU+;YbnpPqzG8-#hcH5EdQ&ti|1eb(SE?GY)ae2vad>)Eay(yu_cwgs!=TDVW(@?;Y*4RW`WB-pDPztSm!QY zyJLo#uJm@z=)$(pGc#>1c4%CajtnUhs45i-buhXWdHU3+uhYGDoZEkf$-uN+Z=SaE zUry6X`8&;5_4Ks9>rBx}%S?T+u(XLuVbz+Ca;nRw>KCmKxR`nGsi2-!U0PG=s>N3r zes}w(Znk$7`6}Mbb#!<82Nvd-2Rn||-7GB5*L!-fvAd`JNBbWko&19BGSjS^HWo+k z+MLe0arz#q=Nn>zQ#B;sdL%EG-m!Yu-opIM^xRzsq=TM3I{Qd-_RT$8s<+=tkL&LU zVrG?Cb>>9FU9MlM+@_U(4{ovBbg}0HH|zcV$F#+dh@BR&TK%74^0t!-*{8mIWNBe= zY2F*%UYo@t>vu_K!=+yq&8d^56=!AlZ8dL}J+76w^tj)~s||-f$vN2j7f$=+sD1U~ z<(chr4Vh1T)GJN|?bzbvaBSh6{|rx}I#}Y9etcwmGp*mQ!)oo!@LGQLf|eWIOjb;g(9d{bw5 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 a6eb0a5fb..7e42be391 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 000000000..e26038e2b --- /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 000000000..6806b2e7f --- /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 000000000..3e45d59ae --- /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 000000000..cb139daa1 --- /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 000000000..2febeb433 --- /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 000000000..e45fa8bfa --- /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 000000000..1fbd9337f --- /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 000000000..7a3b384ce --- /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 000000000..5001e3a8f --- /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 000000000..3d0724584 --- /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 000000000..084d142cb --- /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 000000000..42ce6b611 --- /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 000000000..a477155d3 --- /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 000000000..d1f237d8b --- /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 000000000..f2a21c44c --- /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 000000000..be7b7c686 --- /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 000000000..79854c669 --- /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 000000000..e753ee506 --- /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 000000000..c6d7b554e --- /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 000000000..4e4e89452 --- /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 000000000..584f35368 --- /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 23713856c..000000000 --- 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 a546d4f59..ed5a44161 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.