Vincenzo Gambino: A Drupal Architect from Palermo

A Drupal Architect from Palermo: Vincenzo Gambino
Comment

Vincenzo Gambino’s journey from Palermo to becoming a leading Drupal architect and senior React developer, who now contracts via Striped Codex, a limited company, is remarkable. With over 12 years of experience and a passion for both back-end and front-end development, he has worked on complex projects for global giants like Cambridge University and Pearson. A deep love for open-source technologies and an insatiable curiosity have driven Vincenzo to continuously push the boundaries of web development, whether it’s building headless systems, integrating AI, or speaking at top Drupal events worldwide.

In this exclusive interview, Vincenzo shares his early encounters with Drupal, dating back to version 6, and reflects on how the platform has evolved to meet the demands of modern web development. He delves into the challenges of working on large-scale projects, the role of Drupal in headless architectures, and the future of the platform in an ever-changing tech landscape.

The conversation also reveals how Vincenzo's technical expertise and community contributions go hand-in-hand, from co-authoring 'Jumpstart Jamstack Development' to presenting cutting-edge AI integrations with Drupal. His thoughts on the flexibility of Drupal, especially in high-traffic environments, offer a fresh perspective on its adaptability and resilience in today’s web ecosystem.

Whether you're a seasoned developer or new to Drupal, this interview with Vincenzo is packed with insights that span technical mastery, project management, and the creative problem-solving required in the fast-paced world of web development.

TDT [1]: Can you tell us about your initial encounter with Drupal? What drew you to focus on this platform over others in web development?

Vincenzo Gambino: This question brings me back to 14 years ago. It was the beginning of 2010, and I had just moved from Palermo to Birmingham. Things were different back then. The economy was recovering from the 2008 recession, and we did not know the sound of a Vuvuzela (if you followed at least one football match of the World Cup South Africa, you should know it). The PSP was the most used device on the buses and in the London tube before being replaced by smartphones. It was an easy life for front-end developers, where the only issue is to build IE-compatible CSS. Motools was still around, GitHub had paid private repo plans, Sublime Text (v1) and Notepadd++ were widely used, Facebook was still using PHP, and it was easy to be a real full-stack developer. 

Back then, I already had a couple of years of experience in web development, mainly with Joomla!

My first job in the UK was housekeeping at The Hatter Hostel in Birmingham. Then, I got a job as a web developer, building an e-commerce website using Joomla! And VirtueMart.

I have been looking for other frameworks or CMS to learn in my spare time. I was looking at the Zend Framework, Yii, and Moodle.

At some point, I came across Drupal. I installed it in my local server environment, MAMP, and it wasn’t the usual CMS. It was between a CMS and a framework. Compared to WP and Joomla! Drupal wasn’t giving much in terms of ready-to-use functionalities, but I could extend it very easily through the hooks!

I created my first content type, blocks, and menus and installed and modified the Marinelli theme. Something was still missing. 

Then I discovered CCK and Views! After installing these two modules, I wanted to learn more about Drupal. I then found other modules such as LoginTobbogan, Token, WYSIWYG, and IMCE, among other field modules.

I understood that Drupal and most of its core and contrib modules were giving me just the usability of a functionality, not concentrating much on visuals. It was up to me to extend it and customize it based on my needs. It has the functionality of a CMS with the extendability of a framework. I loved it,

...and this love landed me a job in London at IMI Publishing (now EM360) in mid-2010. With lots of hope and excitement and with the Vuvuzelas sound still fresh echoing in my ears, I moved to London and started my career as a Junior Drupal Developer.

Vincenzo Gambino
Vincenzo Gambino

TDT [2]: Reflecting on your vast experience with Drupal, how do you believe the platform has evolved since you first started working with it?

Vincenzo Gambino: Absolutely. I began using Drupal with version 6 and have witnessed significant improvements up to the latest version, 10. Security has always been a cornerstone of Drupal, making it a preferred choice for government departments. From version 6 to 7, we saw the introduction of more APIs, the Field and Entity systems, a revamped Media system, and the new admin theme, Seven.

With Drupal 8, the adoption of Symfony as its foundation and the Twig templating engine allowed Drupal to stay modern. This version brought significant improvements to entity management and translation. Configuration management became a core feature, whereas previously, it relied on the Features module for import/export. The built-in RESTful APIs work seamlessly, and the inclusion of CKEditor made the content editing experience better. 

From Drupal 8, we finally did not need to do a complete site rebuild on each major version upgrade, simplifying the upgrade process. Performance and Security have also been improved in Drupal 9 and 10. Including the JSON:API module in core has made it easier to create headless applications with Drupal as the backend. I have built an Umami Demo using Astro as the front end and Drupal as the back end, using only the JSON:API core module.

Of all the five Drupal versions I have used, my favorite was the 7. It was so easy to build applications. Drupal 7 was all procedural code inside a .module file, all in one place, with hooks and functions for everything. From Drupal 8, we now use modern OOP, PSR-4 autoload, dependency injection, etc. Apart from the fact that we saw considerable improvements in performance and security, making Drupal more robust and reliable at the enterprise level, I think that the best improvements we saw in Drupal 8 were two: The Views module has been added to core, and the Overlay module was no longer installed by default!

Vincenzo Gambino at DrupalCamp London
Vincenzo Gambino at DrupalCamp London

TDT [3]: During your time in London, you've had the privilege of working with high-profile clients such as Cambridge University and Pearson. How has Drupal facilitated your work in these large-scale, high-traffic projects?

Vincenzo Gambino: Yes, especially during my six years of experience at BrightLemon, I had the great privilege of working with many high-profile clients, such as Cambridge University, Pearson Education, the University of Damman, MSF, the London Gov Authority, MPS, and HMRC.

The flexible nature of Drupal, its being more of a Content Management Framework that gives you the starting point to build your CMS, and its flexibility, security, and community made Drupal the best choice at that time. It was, and I think it is, the best fit for all of these projects, which are totally different from each other.

I have used Drupal as a blog, a News site, a CRM, an HR Management tool, and a risk management tool. One of the critical points in the Drupal projects I've built has been how easily external custom services can be integrated.

In one project, I used Drupal as the primary identity provider and integrated two additional applications, including a Moodle application, as service providers. Drupal managed user authentication for both applications, enabling users to utilize Single Sign-On (SSO) through SimpleSAMLphp.

For the University of Damman, we used the Panopoly distribution, and through the Panel API, we built many custom and configurable Panels for the client. Drupal's amazing translation feature allowed me to fully translate the application into English and Arabic and use Solr search for both languages.

Another project was an HR Management system where around fifty thousand employees could raise hundreds of different requests. Each request had to go through a specific workflow and managed by specific line managers. This was easily achievable using Drupal entities, Workflow contrib module, and most of the core APIs provided by Drupal for email and user management.

Aside from backend implementation, I have added React to the Drupal theme and modules, providing a better user experience and overcoming some of PHP's weaknesses. I have embedded React into Drupal or used Drupal as a headless CMS, sometimes both. In one of my e-commerce projects, Drupal served as the bridge between ElasticPath, a headless e-commerce solution, and the iOS and Android apps. In this project, ElasticPath handled basic product information such as SKU, price, and quantity. At the same time, Drupal displayed these products on the desktop side with additional information such as titles, descriptions, categories, and images. The whole e-commerce experience in Drupal was built in React, from the listing page to the checkout passing through the cart. Then, using JSON:API, the product data were sent from Drupal to the iOS and Android apps.

Drupal's evolution makes it a great and strong solution for many monolithic and headless applications, especially high-traffic and enterprise applications.

Vincenzo Gambino at DrupalJam
Vincenzo Gambino at DrupalJam

TDT [4]: In the modern web ecosystem, concepts like Jamstack and MACH architecture are gaining traction for their speed, scalability, and flexibility. As an author of 'Jumpstart Jamstack Development' and a contributor to Drupal, how do you view the role of Drupal in this? Specifically, can you discuss Drupal's adaptability and potential synergies with modern architectural approaches? Additionally, could you share your insights on how Drupal might evolve in tandem with these emerging technologies?

Vincenzo Gambino: We are witnessing a revolution in the CMS ecosystem, and Drupal is managing to refine its capabilities to stay in the market. As I said previously, it’s still a great and strong solution for complex, high-traffic, and enterprise applications. 

As a veteran Drupal developer and author of 'Jumpstart Jamstack Development', I have built a few applications using Drupal as the backend and React or NextJS as the front end, and I have also built an Alexa skill connecting to Drupal. Drupal Core JSON:API provides almost all you need to create decoupled or headless applications. The module SimpleOauth provides an easy way to log in from external applications using Oauth2, and many other modules extend the JSON:API ecosystem to other entities such as menus, flags, image style, paragraphs, etc… Views provide the option to create Rest views and the Drupal caching system makes an SSR app work like a charm.

The community also contributed a lot to providing examples and starter kits. I personally built an Umami Demo using Drupal as the content provider and Astro as the front-end. I presented it at DrupalCamp Florida, and it is available under my GitHub account. ChapterThree did an astonishing job building the starter kit for NextJS and Drupal, which I also used for my session last year at the Drupal Dev Days in Vienna. There is also the project Druxt, which integrates Nuxt and Drupal.

However, Drupal's flexibility, security, and performance come with complexity and cost on the build and maintenance side. The new JavaScript Headless CMS will get the part of the market where Drupal complexity is unnecessary.

I think Drupal is still the best choice if you need user and content management, workflow, permissions, and different and more complex entities.

However, a Headless CMS is not always the right solution. In a headless environment, the editors lose control over the content's output. In a monolithic application like Drupal, the editors have more control over the page output, can create pages using Layout Builder (or Panels in Drupal 7), and can see the changes right after they press the save button.

The editors do not have this control in a headless ecosystem due to the build time. Depending on the amount of content, it always takes 2 to 5 minutes before they can see the change they have made, and most of all, they cannot create the page layout as they want. I suggest the Headless approach only if there are multiple sources for content and users because Drupal with Varnish beats any SSG application in terms of speed and security.

Drupal will continue to adapt, possibly by improving integration with various JavaScript frameworks and streamlining the editorial experience in headless configurations. These improvements will ensure Drupal remains a top choice for complex web ecosystems, balancing traditional strengths with modern flexibility.

VincenzoGambino at MountainCamp
Vincenzo Gambino at Mountin DrupalCamp 2024

TDT [5]: You have presented on "ChatGPT for Drupal content editors" at MidCamp 2024. How was the session received by the audience?

Vincenzo Gambino: This is the session I have presented at many Drupal events; so far, I have given it seven times over the past year. I started at Drupaljam 2023, then moved on to Drupal Meetup London, PHP Meetup Orlando, Drupal Mountain Camp 2024, Drupal MidCamp 2024, Drupal WebCamp Stanford 2024, and again at Drupaljam 2024.

It’s one of my favorite topics, and the audience shows great interest. I have some teaching experience, and even though my sessions are technical, I always start from the basics by going through the terminology and providing context before diving into the technical part. The audience appreciates this approach because everyone is on the same page when I start talking about the embeddings or token limit.

Over the past year, I have evolved this talk, adding a new feature to the OpenAI Drupal module each time. I began with simple content creation. Now, my session covers RAG, content creation, image creation, indexing content and PDFs in a vector database, and configuring the Search API to create a ChatGPT-like search form.

The audience is also more aware of AI capabilities. Many people who join my sessions have used AI in their projects. Sometimes, I like to ask the audience to share their experiences during the Q&A.

AI will be more integrated with the CMS system. So far, it can assist content editors in the content creation process. For example, you can create a ChatGPT-like search experience based on your application content using Search API, embeddings, and a vector database. This is really useful for improving the FAQ section, customer service, and product searches on an e-commerce site or for searching within a library of PDF files.

PS: Obviously I have used ChatGTP to answer this question.

TDT [6]: The community seems to be a significant aspect of your career, from your Drupal contributions to playing football with Italia Wasteels FC. How important is community engagement in your professional growth, particularly within the Drupal ecosystem?

Vincenzo Gambino: I think the Community is what makes Drupal great. Personally, I have created three Drupal modules that are available on Drupal.org and contributed with a couple of patches to other contributed modules. I started contributing to Drupal Events in 2015 when I took the Beginner Site Builder course at Drupal Camp London. After that, I co-presented a session regarding Drupal 7 and SimpleSAMLphp with my colleague David Scales at DrupalCamp London 2016. After that, I found my favorite way to contribute back to Drupal: running sessions at Drupal Events.

Attending an event as a Speaker is a totally different experience. First of all, you don’t fully enjoy the event until you give your session. You spend your time reviewing the slides, practicing, and thinking about possible questions and last-minute changes. You exchange ideas and methodologies with other speakers. After the session, people come to you to talk about your topic with more questions and ideas. This is when I learn more.

So far, I have presented 16 sessions on various topics at DrupalCamps, Meetups, and Drupal Dev Days in the EU and the US. I have spoken regarding SingleSignOn, Server and Ansible configuration, Building an Alexa Skill and getting content from Drupal, integration with OpenAI, and a headless system using Drupal and different frontend frameworks such as React, NextJS, and Astro.

Regarding Astro and Drupal, I have created a starter kit based on the Drupal Umami Demo. Anyone can contribute to this project through the GitHub repo https://github.com/VincenzoGambino/astrojs-drupal-umami . The main reason I created this starter kit is that...

I was having a look at new front-end frameworks when I came across Astro. Looking at their documentation, I noticed that Drupal needed to be added under the CMS Integration section. Sanity, Contentful, Strapi, WordPress, and others were all there. Only Drupal was missing. I took this opportunity to study Astro and promote Drupal at the same time.

I have presented this integration at DrupalCamp Florida 2024, my first US event (in person).

When I think about the community, I always think about an Einstein quote:

“A hundred times every day I remind myself that my inner and outer life depend on the labours of other men, living and dead, and that I must exert myself in order to give in the same measure as I have received and am still receiving.”

I am not too sure if I could contribute back as much as other Drupal contributors, but I hope my sessions inspire and help other people.

Vincenzo Gambino at DrupalCamp Poland 2024
Vincenzo Gambino at DrupalCamp Poland 2024

TDT [7]: You mentioned your love for both back-end and front-end development. How has Drupal enabled you to blend these interests, and what challenges have you encountered along the way?

Vincenzo Gambino: I first got into Drupal back in 2010, when being a full-stack developer was a bit more straightforward, and you could comfortably handle both the back-end and front-end. As front-end development started getting more complex around 2012, thanks to the rise of mobile and tablet designs, I leaned more towards the back-end. I’ve been focusing on server configuration and Drupal custom module development and dabbling in frameworks like Laravel, Node.js, React, Next.js, and, most recently, Astro.

Even though my main focus has shifted to the back-end, I’ve never completely stepped away from the front-end. Drupal’s monolithic nature has been a great help, making it easier to work across both areas. And with the move towards headless architecture, I’ve had the chance to get my hands dirty with modern JavaScript frameworks like Next.js, Astro, and Gatsby. In fact, I even wrote a book on Sanity and Gatsby, which was a fantastic experience.

The biggest challenge has been keeping up with the fast-paced front-end development changes while deepening my back-end skills. But thanks to Drupal, I’ve kept a foot in both worlds, combining my love for full-stack development with a focus on the back-end.

Vincenzo Gambino Vienna 2017 BrightLemon Team+Dries
Vincenzo Gambino and LemonBright Team at Vienna, 2017 with Dries Buytaert

TDT [8]: Finally, looking ahead, where do you see Drupal's future going, and how do you plan to adapt to or influence these changes within the community and your own professional practices?

Vincenzo Gambino:  I’m confident that Drupal’s future is looking bright, especially with the recent release of Drupal Starshot, which shows that the platform continues evolving. The Drupal community is busy with exciting initiatives, from headless solutions like Next.js for Drupal and the JS Drupal client to innovative projects like NodeHive and advancements in Artificial Intelligence. These efforts are helping Drupal carve out its place in all these new trends and technologies.

Looking ahead, I plan to keep doing what I love: diving into new technologies and applying them in my work. Over the years, I’ve explored and implemented modern JavaScript frameworks like React, Next.js, Gatsby, and Astro in various projects. Recently, I’ve been delving into AI, figuring out how to use it to enhance client projects, and even contributing to the AI module within Drupal. On top of that, I’ve also written some Python APIs for manipulating Drupal data, which has been a fantastic way to blend my back-end skills with some hands-on scripting.

One thing that excites me is the JS Drupal client initiative, which is pushing the boundaries of what we can do with headless solutions. I’m looking forward to seeing how this develops and finding ways to incorporate it into my work.

I’m also passionate about sharing what I learn with the community. Whether it’s through contributing to open-source projects or speaking at Drupal events, I believe it’s important to give back and help shape the future of Drupal together with others. I’m excited to continue learning, sharing, and growing alongside the community.

Disclaimer: The information provided about the interviewee has been gathered from publicly available resources. The responsibility for the responses shared in the interview solely rests with the featured individual.

Note: The vision of this web portal is to help promote news and stories around the Drupal community and promote and celebrate the people and organizations in the community. We strive to create and distribute our content based on these content policy. If you see any omission/variation on this please let us know in the comments below and we will try to address the issue as best we can.

Related Organizations

Related People

Advertisement Here

Upcoming Events

Latest Opportunities

Advertisement Here