Übersicht

Vorschläge max.2 pro Tag

Platz für Vorschläge, Fragen, Anderes

Wenn sie Antworten erhalten wollen tragen sie hier Kontaktdaten wie email-Adresse oder Telefonnummer oder Postanschrift ein

CAPTCHA
Sicherheitscheck: Tragen sie die abgebildeten Buchstaben und/oder Zahlen hier unter in das freie Feld ein.
Image CAPTCHA
Enter the characters shown in the image.

Linux - here we go

Umfrage

Wie gefällt euch/ihnen diese Seite:

Vorschläge und Wünsche bitte an: support@webjoke.de.

Benutzeranmeldung

CAPTCHA
Sicherheitscheck: Tragen sie die abgebildeten Buchstaben und/oder Zahlen hier unter in das freie Feld ein.
Image CAPTCHA
Enter the characters shown in the image.

Annertech: Annertech wins LocalGov Drupal developer position

Drupal News - Do, 06/05/2025 - 11:00

We've secured a new developer contract to support LocalGov Drupal, strengthening our ongoing commitment to the project and its community.

Kategorien: Drupal News

The Drop Times: DrupalCamp Poland 2025: What to Expect from the June 7 Conference in Warsaw

Drupal News - Mi, 06/04/2025 - 17:25
Get the full details on DrupalCamp Poland 2025, happening June 7 in Warsaw. Learn what’s planned for this one-day Drupal and PHP conference, including sessions, panels, community events, and how organisers are shaping it for today’s open-source ecosystem.
Kategorien: Drupal News

A Drupal Couple: Why Drupal's Global Community Needs More Than Good Intentions

Drupal News - Mi, 06/04/2025 - 01:44
Why Drupal's Global Community Needs More Than Good Intentions Image Image Article body

I've heard it countless times in Drupal community discussions: "I like that idea," "We need this," "This can really help." The enthusiasm is genuine, but here's what I've learned through my experience with community initiatives. Good intentions without action don't move the needle.

 

When we launched the IXP (Inexperienced developer) Initiative, the response was overwhelming. So many people reached out saying they wanted to help. Then we get busy, life happens, and the follow-through disappears. I've been guilty of this myself. In the end, it was just a few of us (Mike Anello, Ana Laura Coto, myself, and Tim Lehnen from the DA) who did the actual work of defining the program.

 

This pattern isn't unique to the IXP Initiative. It's something I see across our global Drupal community, especially when it comes to regional representation and authentic global participation. For our community to thrive globally, we need systematic change that benefits everyone.

The Numbers Tell a Story

When you look at Drupal.org's certified partners, the geographic concentration tells a story. The gap between regions is massive, with top-tier partners with 30,000+ contribution credits predominantly based in wealthier markets. There are different business models working in different regions. Some companies focus on local markets, while others depend on staff augmentation work for international clients. This dependency relationship means many regional companies may not know about partnership opportunities or can't access them.

 

In my February intervention at the Drupal Association board meeting, I shared some economic realities: minimum salary in countries like Colombia runs $200-300 per month, while in the United States, minimum wage is $7.25 per hour. With 40 weekly working hours, that's approximately $1,160 per month in the US. This total may exceed what many junior developers would make in Latin America. I speak about Latin America because it's what I know, but this economic reality translates to other regions as well.

 

As Tim Doyle noted in the board meeting, the Drupal Association (DA) does have regional pricing adjustments, but this needs to be better publicized so regional communities know these options exist.

From Franchise to Federation Support

I proposed a franchise schema for DrupalCon to the DA back in 2015. I'm glad to see elements of that concept being used now, but there's a fundamental problem: all the risk gets placed on the people interested in organizing a regional DrupalCon.

 

When I explored DrupalCon Latin America returning, I was told to find a fiscal sponsor. This requirement exists because of DA budget constraints - another example of the paradox.

 

This should be an intentional strategy from the Drupal Association or the emerging Federation initiative. During my experience helping organize DrupalCon Bogotá 2015, if we had continued building on that foundation, we'd have established regional DrupalCons by now.

 

The path forward requires building a cadence of regional events. Initially, organizers need well-known international speakers to attract local developers and gain government and business support. Eventually, they could become self-sustaining regional powerhouses. The goal would be genuinely regional conferences: by Latin Americans for Latin Americans, by Africans for Africans, creating local business opportunities and expertise.

 

In Latin America, we have trade show style events (what we call "ferias") - imagine a conference where each company booth potentially generates business revenue where companies pay for their spots and create sustainable business models around the conference itself. I believe DrupalCon should incorporate a well-balanced hybrid approach that includes some of this business-community balance. I also wish DrupalCamps could find this local business connections approach beneficial, especially if we can open the middle and bottom of the pyramid to smaller budget customers.

The Federation Opportunity

During recent community discussions about the Federation initiative, I've emphasized that we're dealing with multiple chicken-and-egg situations. Regional conferences need international speakers for credibility, the Marketplace initiative for accessible business models, the Federation for institutional support, and Drupal CMS for simplified access. Each depends on the others.

 

Here's the paradox: everyone is resource-constrained right now, and these initiatives might not immediately solve everyone's problems. Yet without building this interconnected system, regional communities will remain dependent on wealthier markets indefinitely. We need to build this interconnected ecosystem when resources are scarce, even though skeptical communities don't see immediate benefits. Recent Federation discussions highlighted this when community members raised concerns about representation gaps, including regions like Africa that currently lack formal inclusion.

 

The Federation initiative represents a historic opportunity to move beyond the "we should do this" conversations toward systematic structures that actually enable global participation. Regional DrupalCons need institutional support, not just permission to proceed.

 

Think about what this could look like: DrupalCon Asia, LATAM, and Africa as ongoing initiatives with proper Federation support. Regional certification pathways that make economic sense for local markets. Partnership models that work for companies serving their regional markets.

Beyond Good Intentions

When I participated in recent Federation discussions, I saw genuine enthusiasm for addressing these challenges. People acknowledge the need. The question is whether we're ready to move from recognition to action.

 

I've spent years working on regional community building. From helping organize DrupalCon Bogotá 2015 to participating in the Colombian Drupal Association to implementing the IXP Initiative. Each experience has taught me that community enthusiasm is necessary but not sufficient. You need systematic support, proper incentive alignment, and institutional commitment.

 

I'm committed to contributing to these solutions, not just identifying the problems. The community has the opportunity to shape this transition, but only if we move beyond good intentions. The community has shown it can innovate when we combine good intentions with proper structure and resource commitment. The question is whether we're ready to apply that same approach to global representation and regional development.

 

The Drupal community has always been about building together. Now we need to make sure "together" actually includes everyone, not just those who already have the resources to participate on terms designed for the wealthiest markets. That's going to take more than good intentions. It's going to take intentional action. Join the Federation Working Group discussions. Advocate for regional representation. Help turn good intentions into systematic change.

Subject of Beyond Makers and Takers: Being a Faker in Open Source Running for the Drupal Association Board Again Because the Work Isn't Finished About Community First, Business Second, Build Everything with Drupal IXP Graduates from Initiative to Program: Companies Can Start Using It Now! Rebuilding Drupal's Ecosystem Pyramid: A Path to Sustainable Growth The Future of Drupal: Overcoming Challenges with Community Initiatives Author Carlos Ospina Abstract Community enthusiasm without systematic support fails to enable authentic global participation. The Federation initiative represents a historic opportunity to move beyond good intentions toward structures that actually enable regional representation and sustainable development in Drupal's global ecosystem. Tags drupal Drupal Planet community drupalcon global-representation international-federation drupal-association-board community-development drupal-leadership latin-america-drupal ixp-initiative federation-initiative regional-conferences Rating Select ratingGive Why Drupal's Global Community Needs More Than Good Intentions 1/5Give Why Drupal's Global Community Needs More Than Good Intentions 2/5Give Why Drupal's Global Community Needs More Than Good Intentions 3/5Give Why Drupal's Global Community Needs More Than Good Intentions 4/5Give Why Drupal's Global Community Needs More Than Good Intentions 5/5Cancel rating No votes yet Leave this field blank Add new comment
Kategorien: Drupal News

Drupal Association blog: Board Election 2025 Candidate:Will Huggins

Drupal News - Mi, 06/04/2025 - 01:23

Who are you? (biography/background)

In 2009, I co-founded Zoocha, which has grown to become a global digital agency specialising in Drupal and working with clients including United Nations, University of Cambridge, Alzheimer’s Society and British Tourist Authority. With a team of over 90 incredible people, Zoocha is headquartered in the UK and has offices in Spain and Brazil.

Prior to Zoocha, I worked in digital product management and digital marketing, specialising in e-commerce.

I have been involved in the Drupal community for about 15 years and have been a regular speaker at Drupal events internationally. I have been a session reviewer for DrupalCons in Europe and North America for the last 5 years, more recently leading the Agency & Business track for DrupalCon Europe. I also lead the Drupal Swag Shop Working Group, am a director of Drupal England & Wales and DrupalCamp England and am active in the Network of European Drupal Agencies (NEDA), an initiative that is now collaborating with the DA on the plans for a ‘Drupal International Federation’.

I live in Cambridge (UK) with my wife, Anabel and our dog, Daisy. In my spare time, I play tennis and bridge.

https://www.drupal.org/u/zoocha-will

Why are you running for a board seat at the Drupal Association? (mission/motivation)

Growing the ‘Maker’ Community:
A significant contributor to Drupal’s success is the symbiotic relationship it has with digital agencies, and the Drupal Certified Partner (DCP) framework is a powerful enabler for future growth and success. With the launch of Drupal CMS and the initiative to scope a ‘marketplace’ platform, the maker community poised to enter a new era of growth and diversity. I am motivated by the desire to help answer 2 important questions:

  1. How can we extend the reach of the Drupal brand and proposition to drive growth for DCP’s and generate sustainable revenues for Drupal?
  2. What needs to happen to ensure ‘commercialization’ of Drupal does not negatively affect the community or the quality of the product?

Improving Transparency:
I count myself among the most passionate Drupal evangelists and believe the Drupal community to be a healthy, diverse and inclusive one. As the community grows and the governance of Drupal evolves, there will be new challenges to overcome and I am motivated by helping to overcome them. The challenges include:

  • How can we improve collaboration and transparency of decision making as responsibilities are increasingly split between paid team members at the DA and community volunteers?
  • Sharing the workload fairly. This is from two perspective:
    • not over burdening a small group of highly committed community members
    • not concentrating decision making and control in the hands of a few

Why should members vote for you? (qualifications)

The qualifications I want to highlight are centred around my industry and community insights. My experience in both client side (end user) and agency side roles gives me a rounded perspective of the CMS market, how it is navigated by buyers and how it is sold by agencies. Furthermore, with the UK (and Europe more widely) a significant market for Drupal, with strong growth prospects, I feel that representation on the board is important.

I also bring a community perspective, not only as one of the leaders of the Drupal community in England, but also through my leadership of teams in Spain and Brazil who are increasingly participating in their local Drupal communities.

File attachments:  willhuggins.jpg
Kategorien: Drupal News

Drupal Association blog: Board Election 2025 Candidate: Vladimir Roudakov

Drupal News - Mi, 06/04/2025 - 01:19

Who are you? (biography/background)

My name is Vladimir Roudakov. I'm from Brisbane, Australia, which has been home for over two decades. I'm a teacher, business owner, and software engineer.

I've been a strong advocate for open source for more than a decade, and I'm a co-organiser for local industry events like the WordPress meetup, Drupal code sprints, and DrupalSouth conferences. I'm an active contributor to Drupal's code, documentation, and community-building initiatives. You can see a list of my contributions on my  profile: https://www.drupal.org/u/vladimiraus.

I've also been working with local colleges to introduce the new generation to Drupal development and open source, leveraging the latest trends such as generative intelligence. I have a few insights on how we can better support open source newcomers.

I'm actively involved in other open source communities including Linux Australia, Gitlab, and WordPress, and I'm keen to share their ideas and approaches with the Drupal community.

Why are you running for a board seat at the Drupal Association? (mission/motivation)

My main motivation for running is to improve Drupal's educational impact and documentation. I'd love to have more resources at my disposal to bridge the gap between Drupal and academia, and I believe a board seat would provide the necessary access to those resources. This means building stronger awareness of the Drupal platform and its potential applications in educational settings, and of course, continuously improving Drupal's help resources.

Specifically, I'm passionate about:

  • Promoting Drupal as the technology of choice in academia: I've seen firsthand, as a teacher, the challenges and opportunities of bringing Drupal into colleges and universities. I want to make it easier for students and educators to get started and continue with Drupal.

  • Improving Drupal help and learning material: New students and teachers often struggle to find up-to-date Drupal tutorials, which is a major hurdle. I'm keen to tackle this head-on.

  • Researching how to improve documentation for generative intelligence tools: With  AI tools becoming more prevalent, we need to ensure Drupal documentation is not only compatible but also leveraged effectively to stay current and helpful.

Why should members vote for you? (qualifications)

I'm actively working on the above initiatives. Here's why I reckon members should vote for me:

  • Hands-on experience with documentation and education: I'm co-organising regular documentation and help sprints where teams are actively working to improve user guides, developer tutorials, and API documentation. I'm also working closely with local colleges to identify and address challenges in Drupal adoption within the academic environment.

  • Cross-community insights: Being an active contributor to other open-source communities like Gitlab and WordPress has given me a fresh perspective on different approaches to community building and contributor recognition. As a Gitlab Hero, I've seen various initiatives to recognise contributors, including special events and MVP announcements. I'm eager to explore how we can apply similar successful strategies to the Drupal community.

  • Understanding Drupal user needs: As an IT teacher, I get direct feedback from both teachers and students on what works and what doesn't when using Drupal and other CMS platforms. I use this insight to identify gaps in documentation and training materials, which I then work to improve.

  • Commitment to the community: I've been contributing to Drupal.org for many years as both developer, teacher and organiser, curating regular training sessions, local meetups, and code sprints.

File attachments:  VladimirRoudakov.jpg
Kategorien: Drupal News

Drupal Association blog: Board Election 2025 Candidate: Maya Schaeffer

Drupal News - Mi, 06/04/2025 - 01:12

Who are you? (biography/background)

Maya Schaeffer

Why are you running for a board seat at the Drupal Association? (mission/motivation)

I’m running for a seat on the board because I believe the Drupal community is in a powerful moment of transition—and opportunity. My mission is to contribute to a more inclusive and outward-facing Drupal ecosystem, where marketing, design, communications, and non-technical contributors feel a stronger sense of belonging.

As lead organizer of EvolveDrupal, I’ve helped rebuild the in-person side of the community post-pandemic, connecting over 1,000 attendees (40% from outside the traditional Drupal space) across eight events in Montreal, Ottawa, Toronto, Atlanta, NYC, and Boston (upcoming June 2025). These summits have demonstrated the demand for cross-functional community spaces that showcase Drupal’s relevance across sectors.

I also want to actively contribute to the Promote Drupal initiative and help shape a Drupal Association that prioritizes clear storytelling, accessible entry points, and a strong pipeline for the next generation of users and contributors.

Why should members vote for you? (qualifications)

While I am relatively new to the Drupal community, I believe that’s part of the strength I bring. I offer a fresh, user-focused perspective—one that reflects the experience of many organizations and individuals just beginning their Drupal journey. And in practice, I’ve worked closely with longtime community leaders to make this perspective actionable.

  • I’ve collaborated with Suzanne Dergacheva, a former DA board member and co-founder of Evolving Web, as well as partnered on community initiatives with Lynne Capozzi, Mike Herschel, and Nikhil Deshpande, among others.

  • I serve as the lead organizer of EvolveDrupal, a summit series supported by Pantheon, Acquia, and the Drupal Association, designed to grow Drupal’s visibility and invite new contributors into the fold.

  • At Evolving Web, a Drupal Certified Partner (Diamond Tier), I’ve represented the community at major industry events like Digital Collegium, while contributing to the broader mission of advancing multilingual, accessible, and open-source digital experiences.

If elected, I will bring community energy, strategic event leadership, and a deep commitment to building bridges—between disciplines, regions, and generations.

File attachments:  mayaheadshot.jpeg
Kategorien: Drupal News

Drupal Association blog: Board Election 2025 Candidate: Matt Glaman

Drupal News - Mi, 06/04/2025 - 01:07

Who are you? (biography/background)

Matt Glaman @mglaman

Mission/motivation 

My mission for joining the Drupal Association Board is to catalyze the growth and sustainability of the ecosystem by championing initiatives that empower open-source developers to build viable businesses, thereby ensuring Drupal's continued innovation and market relevance. A key, transformative driver for this is the successful implementation of a marketplace for Drupal site templates, as recently explored by Dries. This aligns perfectly with my long-held conviction that strong financial models for contributors are beneficial and essential for Drupal's future.

My motivation stems from a deep conviction that a robust financial model for contributors is critical for Drupal's future. This marketplace concept offers a powerful solution by:

  • Generating sustainable revenue for open-source developers: This addresses the long-standing challenge of funding open-source work, providing a clear path for developers to be compensated for their valuable contributions.
  • Attracting and retaining talent: When developers can build sustainable businesses around Drupal, the platform becomes a far more attractive choice for new and existing talent, fostering a vibrant and innovative community.

Qualifications/why

My 12 years of experience with Drupal, including six dedicated to Drupal Commerce and building a business directly funded by open-source development, gives me a unique perspective on the intersection of open source and commercial viability. I've personally experienced the challenges and opportunities in this space. Furthermore, my own exploration into solving open-source funding through gated releases, as documented on my blog, demonstrates my commitment to finding innovative solutions for the sustainability of our community.

I am eager to bring my practical experience and passionate advocacy for developer empowerment to the Drupal Association Board, working collaboratively to make the marketplace a reality and secure a prosperous future for Drupal.

Kategorien: Drupal News

Drupal Association blog: Board Election 2025 Candidate: Matthew Saunders

Drupal News - Mi, 06/04/2025 - 01:00

Matthew Saunders

Drupal.org username: MatthewS

Introduction

I’m Matthew Saunders, a technologist, storyteller, and Drupal evangelist. I’ve been a part of the Drupal community since 2006, attending my first DrupalCon in 2007. Atlanta 2025 was my 26th. I’m a former Board Member of the Drupal Association, Chair of Drupal Colorado, and a founder of Drupalcamp Colorado — the longest-running DrupalCamp in North America. My leadership spans community governance, digital strategy, and accessible technology, with a growing focus on AI and neurodiversity advocacy.

Vision and Impact

I’ve led significant work in the AI space through my role as AI Ambassador for amazee.io. I’ve been building demos, writing policy, and evangelizing data-sovereign, enterprise-grade AI tools for Drupal. I’m also organizing the first Drupal AI hackathon at Drupal GovCon and leading sessions at multiple camps to make AI practical and approachable for site builders.

Parallel to this, I’ve continued my public advocacy for neurodiverse inclusion in tech. My session “The Neurodivergency Superpower: How Diverse Teams Function Better” has been featured at DrupalCon and regional camps. I’ve created a YouTube series (“My Neurodivergent Brain”) and lead Pfizer’s internal podcast on neurodiversity, offering a lived-experience lens to build inclusive cultures in open-source.

Community Contributions

  • Co-founder and Chair of Drupalcamp Colorado (2007–present)
  • Volunteer for Drupal GovCon 2025
  • Founding member, Drupal Event Organizers Working Group (2019-2024)
  • Spoken at over 30 world-wide events including 10 Drupalcons and numerous camps
  • Former Director, Drupal Association Board (2013–2016)
  • Organizer of the first DrupalAI Hackathon (2025, Drupal GovCon)
  • Admin, Drupal Facebook group
  • CoC contact 
  • Contributor to community health initiatives

Current Roles

I currently work for amazee.io as their AI Ambassador on the Product Team. I’m Chair of Drupal Colorado. I’m a volunteer with Drupal GovCon. I’m an advisor to the Bluefly Collective. I’m a maintainer for 8 projects. You can see my LinkedIn profile here: https://www.linkedin.com/in/jmsaunders/ 

Why I’m Running Again

Drupal is at an inflection point. With the rapid adoption of AI and an urgent need for inclusive governance, the Drupal Association Board needs leaders with both technical insight and a strong community ethos. I bring both. I want to help shape our strategy around emerging technologies while reinforcing Drupal’s values of openness, accessibility, and shared growth.

Why Vote for Me?

I bring depth and breadth, from technical leadership to community-building, from nonprofit governance to enterprise-scale Drupal strategy. I’ve worked across agencies, startups, global corporations, and grassroots orgs. I’ve served on nonprofit boards, built digital teams, and shown up consistently for the Drupal community for nearly two decades. If elected, I’ll continue to be a connector, a challenger, and a champion for both innovation and inclusion.

File attachments:  MatthewSaunders.jpeg
Kategorien: Drupal News

Drupal Association blog: Board Election 2025 Candidate: Carlos Ospina

Drupal News - Mi, 06/04/2025 - 00:46

Who are you? (biography/background)

I am Carlos Ospina,

I've been working with Drupal for over a decade, spending nearly ten years as a Technical Account Manager at Acquia where I helped organizations solve complex implementation challenges.

Drupal.org username: camoa

Why are you running for a board seat at the Drupal Association? (mission/motivation)

I'm running because I believe Drupal needs board leadership that understands how to build sustainable communities globally, especially in regions that haven't had representation before.

I've spent years working within the Drupal community in both Latin America and the United States. I helped organize DrupalCon Latin America back in 2015, and honestly, I want to bring more opportunities like that to LATAM and other regions that get overlooked.

The thing I'm most proud of is co-creating the IXP Initiative. We saw this fundamental problem - new developers couldn't get hired without experience, but couldn't get experience without being hired. So we built something to fix it. Working with other community members and the Drupal Association, we turned this idea into a real program. Now we have companies actually participating, offering structured pathways for new developers, and getting 250 contribution credits for each successful engagement.

What drives me is seeing how regional economic differences create both challenges and huge opportunities for Drupal. At the recent board meeting, I brought up how a $1,000 partnership fee that works in the US becomes impossible in countries where monthly minimum wage is $200-300. These aren't just numbers - they represent talented developers who want to contribute but need different pathways.

I also understand we need a sustainable Drupal Association that balances community needs with business realities. For example, when I proposed bringing back DrupalCon Latin America, I suggested adapting the fair-style event model common in our region - where organizations pay for exhibition spots and actively invite end users, creating genuine business opportunities alongside community building.

I've been writing about ways to help make contribution more economically sustainable. I have some ideas about how Drupal.org could better connect businesses with service providers and how we might adapt programs to work better across different economic regions.

Why should members vote for you? (qualifications)

I've learned through my TAM experience that sustainable growth happens when you understand these realities and build systems that work across different contexts. The IXP Initiative proves we can create programs that strengthen the entire ecosystem while addressing real problems people face.

My qualifications include:

- Nearly a decade as Technical Account Manager at Acquia

- Co-creator and leader of the IXP Initiative (now a functional DA program)

- Community organizer (DrupalCon Latin America 2015, ongoing LATAM community work)

- Active contributor across multiple community initiatives

My focus as a board member would be supporting community development globally, expanding talent pipeline programs like IXP, and ensuring board decisions balance community sustainability with business needs. I want to help build the infrastructure that lets communities everywhere contribute and grow while keeping the association financially sustainable.

Kategorien: Drupal News

Drupal Association blog: Board Election 2025 Candidate: Alexander Varwijk

Drupal News - Mi, 06/04/2025 - 00:34

Who are you? (biography/background)

I am Alexander Varwijk (Kingdutch on Drupal.org), born north of Amsterdam and currently living in the Dutch city of Enschede, near the German border. My programming journey began at a young age after seeing how an au-pair used Perl to maintain a Drum & Bass fan website. My first creation was a simple terminal calculator in Perl, but I quickly discovered the magic of building websites, starting with Dreamweaver before adding interactivity using PHP 4.4.

My path with Drupal began in 2012: for the new website of a local sports association I was looking for a tool that allowed me to build overviews for club members, teams, and matches. After building the first features of the website using Drupal 7 I was eager to learn more about the framework and its community, which led me to DrupalCon Prague in 2013. There, by chance, I was connected to other people from Enschede: my future colleagues at Open Social.

At the same time as getting to know Drupal I started my study of Electrical Engineering. I ended up spending more time with various committees for my study association as well as a two year board membership as president of the Vestingbar – a student run bar open 364 days of the year.

In 2016 I dropped out of my Electrical Engineering study to make room for my entrepreneurial interests: I started a craft-beer subscription service called Ontdekbier (using Drupal Commerce for the website); I started a study of Business Administration, and I joined GoalGorilla during their transition from Drupal agency to the product company now known as Open Social.

My craft-beer subscription service is no longer around. After meeting the marketing manager from Heineken at a beer sommelier course and learning of their many millions of euros of funding for BeerWulf in a bid to capture the craft-beer e-commerce market, I decided that that was not a market player I could compete with.

I'm still with Open Social, where as Technical Architect at Open Social, I help power some of the world's most impactful organizations through Drupal-based collaborative platforms, including the European Commission, World Bank, United Nations, and Greenpeace International.

In my time off I still enjoy programming, such as introducing async capabilities to Drupal. Besides that I love airplanes, poker – a source of global friendships, reading, speaking at conferences, and travelling. Interests that complement each other well. When I'm back at home I enjoy cycling with friends and I volunteer my time to help organize a local music festival every year.

Why are you running for a board seat at the Drupal Association? (mission/motivation)

Drupal is an amazing framework for modern day connected applications. Its community is vibrant and chooses the direction of the project through choosing where it decides to contribute. The Drupal Association as I understand it plays a vital role in ensuring Drupal's longevity and ensuring a healthy community by supporting the community and its contributors.

Three main aspects that excite me and motivate me to join the Drupal Association board are: Developer Advocacy and promoting Drupal outside our community; increasing attractiveness of Drupal Association sponsorship for organizations using Drupal as a tool; and the forming of a federated system of Drupal Associations to coordinate global and local tasks in supporting and growing our community.

While talking with developers at conferences outside of the Drupal community, their image of Drupal often does not seem to reflect the current state our framework offers. At the same time, developers working with Drupal seem to underestimate their options of sharing our message with people outside of our community.

As a Drupal Association board member I would like to initiate or boost a developer advocacy program that connects the amazing speakers that we have within the Drupal community to great non-Drupal conferences. Expanding our outreach efforts promotes Drupal as a technical tool and helps modernise its image while simultaneously allowing our community to learn from other technologies and tools.

The Drupal Association pitch for sponsorship is currently focused in large part around visibility within the Drupal community as a Drupal service provider. As a Drupal Association board member I want to help expand the pitch with one that appeals to companies that use Drupal as a development framework but do not resell Drupal itself, thereby growing the funding for the Drupal Association and the Drupal project.

The International Drupal Federation Initiative provides exciting opportunities. Many local associations already exist that know how to engage their local communities and grow usage and contributions within those spaces. There are also tasks that transcend national borders and can benefit from global cooperation. Developer advocacy, as well as crafting a clear and compelling story of why the individual associations and an overarching international association are important to any organization using Drupal, are prime examples.

Why should members vote for you? (qualifications)

My 13 years of experience in the Drupal ecosystem have shown me both the community's incredible strengths and the areas where we can improve. My contribution would be a combination of open source development experience – inside and outside of Drupal, a business administration background and my drive and energy to promote Drupal. I am able to evaluate the work of the Drupal Association through a strategic lens and translate the community's needs into actionable plans. My journey from building a local sports club

website to architecting platforms for organizations like the UN and European Commission has given me perspective on the broad spectrum of Drupal users and their diverse needs.

As a conference speaker and (co-)maintainer of multiple Drupal projects, I try to give back to the community that has given me so much. As a member of the board of the Drupal Association I can use my experience of turning ideas into workable solutions to further contribute to the community's growth and longevity.

I believe I can contribute meaningfully to the challenges facing Drupal and the Drupal Association. As our framework competes in an increasingly complex landscape, we need thoughtful approaches to marketing, funding and community growth. My entrepreneurial and product experience, combined with deep community involvement, gives me tools to help navigate the balance between innovation and stability, between open-source values and practical sustainability, that the Drupal Association must maintain.

Kategorien: Drupal News

The Drop Times: Inside Drupal Autotesting: Expert Insights from Aliaksandr Shabanau

Drupal News - Di, 06/03/2025 - 17:06
Automated testing isn’t just for developers—it’s a strategic tool that speeds up releases, cuts bugs, and keeps your product solid. In this behind-the-scenes look at Drupal autotesting, Aliaksandr Shabanau, senior backend developer at Attico, shares real-world insights on how test automation transforms teams and reduces stress. Whether you're building, managing, or scaling a Drupal site, this article shows why testing is a must-have, not a nice-to-have.
Kategorien: Drupal News

The Drop Times: The Code and Commitment That Carries Drupal: A Conversation with David Bekker

Drupal News - Di, 06/03/2025 - 15:37
What makes Drupal fast for logged-in users? David Bekker has been chasing that question for over a decade. Known in the community as "daffie," he’s logged more than 700 core commits and helped shape Drupal's performance from the inside out. In this interview, he shares what drives his work, why database structure matters more than ever, and how Finalist supports his mission to make Drupal ready for whatever comes next.
Kategorien: Drupal News

Specbee: 9 Drupal AI modules that can make your website smarter

Drupal News - Di, 06/03/2025 - 10:04
Want to strengthen your Drupal website with AI? Read this blog to learn about the AI modules in Drupal’s library that help build powerful digital experiences.
Kategorien: Drupal News

Matt Glaman: Why I've self-nominated for the Drupal Association At-Large Board Seat at this moment

Drupal News - Mo, 06/02/2025 - 23:15

I had been considering a self-nomination for the Drupal Association At-Large Board Seat a few times. This year, I decided to throw my hat into the ring. I've been a bit busy with baseball season kicking off (three kids, three teams

Kategorien: Drupal News

Talking Drupal: Talking Drupal #505 - Custom Field Module

Drupal News - Mo, 06/02/2025 - 20:00

Today we are talking about the Custom Field Module, what it does, and why you might want to use it with guest Andy Marquis. We’ll also cover Facet Bot Blocker as our module of the week.

For show notes visit: https://www.talkingDrupal.com/505

Topics
  • Meet the Guest: Andy Marquee
  • Module of the Week: Facet Bot Blocker
  • Exploring the Custom Field Module
  • Benefits and Use Cases of Custom Field Module
  • Custom Field Module vs. Other Solutions
  • Advanced Features and Integrations
  • Reflecting on Past Projects and Key Value
  • Use Cases and Flexibility of Custom Fields
  • Advanced Features and Integrations
  • Challenges and Limitations
  • Future Roadmap and Improvements
Resources

Custom Field Module

Guests

Andy Marquis - drupal.org/project/custom_field apmsooner

Hosts

Nic Laflin - nLighteneddevelopment.com nicxvan John Picozzi - epam.com johnpicozzi Norah Medlin - tekNorah

MOTW Correspondent

Martin Anderson-Clutz - mandclu.com mandclu

  • Brief description:
    • Have you been looking for an inexpensive way to mitigate an upsurge of bot traffic on your Drupal site’s faceted search pages? There’s a module for that
  • Module name/project name:
  • Brief history
    • How old: created in Mar 2025, so about two months ago, by John Brandenburg (bburg) of Forum One
    • Versions available: 1.0.2 which support Drupal 10 and 11
  • Maintainership
    • Actively maintained
    • Security coverage
    • Number of open issues: 4 open issues, one of which is a bug, but it did have a fix merged 4 days ago
  • Usage stats:
    • 106 sites
  • Module features and usage
    • A number of sites are seeing a huge upswing in bot traffic, and quite often a big part of that bot traffic is on one or more pages with faceted search
    • Crawlers try to request every permutation of every possible combination of facets. If your page has multiple facets, and in particular facets that accept multiple values, the number of permutations becomes huge
    • Facet Bot Blocker works by allowing you to set a maximum number of facet requests to allow, what error to return, and a custom HTML message to return to blocked user agents
    • If you have Memcache or Redis available, it’s recommended to use the appropriate module, and Facet Bot Blocker will automatically store its settings there for reduced database reads
    • The project page is also clear that if you are able to use a true Web Application Firewall (like Cloudflare or Akamai), that would be a better strategy. But if you don’t have one available, Facet Bot Blocker can help to mitigate the surges in bot traffic that are causing problems for many Drupal sites, particularly those hosted on platforms that charge based on usage
Kategorien: Drupal News

The Drop Times: The Elephant Doesn’t Know It’s an Elephant

Drupal News - Mo, 06/02/2025 - 17:25

Dear Readers,

Drupal isn’t struggling because it’s weak. It’s struggling because it doesn’t know its true strength. Like an elephant nudged around by smaller animals, it forgets that it can knock down walls if it just turns and pushes. We have spent years celebrating flexibility, adaptability, and a proud open-source ethos. But in trying to be everything to everyone, Drupal often ends up being invisible to those who need it most.

As Alejandro Moreno López points out, Drupal’s real power lies in what it enables without custom code. It is a low-code platform that hides in plain sight, quietly powering some of the most complex digital experiences across various industries. However, without sharp, targeted messaging and tools that speak the language of business problems, that power remains locked behind a technical perception. Most people do not explore Drupal because they do not see what it solves. They see a CMS, not a solution.

What if that changed? What if Drupal led with pre-built, industry-specific solutions? What if it made the first five minutes inspiring instead of intimidating? The pieces are already there. The potential is proven. What Drupal needs now is to step into its strength with clarity, coordination, and a message that leaves no room for doubt. When the elephant finally moves with purpose, it will no longer be ignored.

INTERVIEWDISCOVER DRUPALEVENTSORGANIZATION NEWS

We acknowledge that there are more stories to share. However, due to selection constraints, we must pause further exploration for now.

To get timely updates, follow us on LinkedIn, Twitter and Facebook. You can also join us on Drupal Slack at #thedroptimes.

Thank you, 
Sincerely 
Alka Elizabeth 
Sub-editor, The DropTimes.

Kategorien: Drupal News

The Drop Times: How Drupal Events Like MidCamp 2025 Prioritize Accessibility and Inclusion in Tech Conferences

Drupal News - Mo, 06/02/2025 - 15:48
Discover how Drupal events like MidCamp 2025 are setting new standards for accessibility and inclusion in tech conferences. From live captioning to accessible venues and inclusive planning, this is how the Drupal community puts equity into action.
Kategorien: Drupal News

A Drupal Couple: Running for the Drupal Association Board Again Because the Work Isn't Finished

Drupal News - Fr, 05/30/2025 - 18:31
Running for the Drupal Association Board Again Because the Work Isn't Finished Image Image Article body

IXP Initiative Co-Creator | Technical Account Manager | Community Contributor

 

I'm running for the Drupal Association Board again because the work we started isn't finished. When I first nominated myself in 2023, I talked about the need for better regional representation and sustainable talent pipelines. Today, as several major DA initiatives directly address these challenges, we need to ensure they work for everyone - from small regional agencies to large global companies, from new developers to experienced contributors. If you're a member of the Drupal community who values global inclusion and sustainable growth, I'm asking for your support in this important moment of transformation.

The Global Community Vision

I have worked for years within the Drupal community in both Latin America and the United States. I helped organize DrupalCon Latin America back in 2015, and honestly, I want to bring more opportunities like that to LATAM and other regions that get overlooked.

 

But this isn't just about Latin America. It's about recognizing that Drupal's future depends on communities everywhere having pathways to contribute and grow.

 

We're in a chicken and egg situation across many areas - community growth, code contribution, sustainability, and business development. For Drupal to grow at all levels of the ecosystem pyramid, we need more popularity and adoption. But this requires support from larger agencies. At the same time, the DA needs to develop sustainable revenue beyond just big agencies and DrupalCon North America. The challenge is that we still need those larger players to help create realistic pathways for regional agencies to participate and thrive. Breaking this cycle requires action on multiple fronts at once.

 

The International Federation initiative offers a way to break through some of these interconnected challenges by creating structures where global communities can actually participate, potentially moving all these areas forward together.

Building Solutions, Not Just Identifying Problems

The thing I'm most proud of is co-creating the IXP Initiative. We saw this fundamental problem - new developers couldn't get hired without experience, but couldn't get experience without being hired. So we built something to fix it. Working with other members of the community and the Drupal Association, we turned this idea into a real program. Now we have companies actually participating, offering structured pathways for new developers, and getting 250 contribution credits for each successful engagement.

 

This proves we can move beyond just talking about problems to building actual solutions that strengthen the entire ecosystem.

Why Regional Perspective Matters Now

My experience working in both Colombia and the United States since moving to the US in 2007 taught me how regional economic differences create both challenges and huge opportunities for Drupal.

 

At a recent board meeting, I brought up how a $1,000 partnership fee that works in the US becomes impossible in countries where monthly minimum wage is $200-300. These aren't just numbers - they represent talented developers who want to contribute but need different pathways to participation.

 

The International Federation initiative—a concept currently being explored to potentially give regional Drupal communities more formal representation—creates exactly the framework we need to address this. This structured approach can transform regional participation by providing clear business value to local companies, creating a more accessible path to becoming Drupal Certified partners while strengthening DA revenue.

Why The Timing Is Perfect

Several major initiatives are reshaping Drupal's global landscape:

1. Drupal CMS: Democratizing Enterprise Functionality

Drupal CMS now delivers enterprise-grade functionality to smaller markets and diverse budget contexts. With out-of-the-box features that previously required expensive custom development and no CS degree needed, Drupal has become accessible to communities previously excluded from its benefits.

2. International Federation: Creating Global Governance

The International Federation initiative is creating formal structures for global governance. With the working group starting in June 2025, we need board members who understand regional economic realities and can help shape this federation to truly serve diverse communities.

3. Marketplace Initiative: Enabling New Business Models

The Marketplace initiative is analyzing the feasibility of creating a marketplace for templates and quick site deployment options. I believe having quick ways to spin off a site that makes it 70% ready with Drupal CMS, decent price hosting to start, and templates that bring functionality and design very quickly, opens new paths to new business models. Add IXP to that and you have the affordable workforce to work on lower budget situations.

 

All these initiatives are interconnected: Drupal CMS makes participation technically possible, the International Federation creates the governance structure, and the Marketplace opens business opportunities. Making them work together is how we'll create a balanced ecosystem that serves both community values and business sustainability.

Balance Between Community and Business

I understand we need a sustainable Drupal Association that balances community needs with business realities. I recognize the importance of balancing community, open source, and businesses, but the reality is today's Drupal global activities sometimes lack on the business part.

 

We can do better. When I proposed bringing back DrupalCon Latin America, I suggested adapting the fair-style event model common in our region. Organizations pay for exhibition spots and actively invite end users, creating genuine business opportunities alongside community building.

 

Another example is how IXP-trained resources could enable agencies to open a Drupal CMS line of business for smaller budget projects. This creates opportunities to serve clients with limited resources - whether they're smaller companies, organizations in developing markets, or even departments within large enterprises looking for internal solutions. This approach simultaneously develops talent, creates business opportunities, and expands Drupal's reach.

 

I've been writing about ways to help make contribution more economically sustainable, including authentic community contribution approaches and ideas about how Drupal.org could better connect businesses with service providers across different economic regions.

What I'd Focus On

As a board member, I'd focus on:

 

  • Ensuring the International Federation serves all regions - by making regional economic realities central to governance structures
  • Creating opportunities in underrepresented regions - by expanding IXP's successful model to build global talent pipelines
  • Generating economic value for regional developers - by supporting DA initiatives like the Marketplace for sustainable growth
  • Creating opportunities for the entire global community - by connecting diverse economic contexts to build meaningful bridges
The Work Continues

I've spent years contributing to the Drupal community and creating programs that develop new talent. I've written extensively about community-first approaches that create sustainable business value. Now I want to bring that same focus to board-level decision making as these critical initiatives unfold.

 

The future of Drupal depends on communities everywhere having real pathways to contribute and grow. With the International Federation, Drupal CMS accessibility, and Marketplace opportunities all developing simultaneously, the board needs to ensure these initiatives work together to build a truly global community where everyone (regardless of region or economic context) can participate meaningfully.

 

If you believe in this vision for a truly global Drupal, please:

 

  1. Cast your vote during the election period (June 15-30, 2025)
  2. Share this nomination with your colleagues who care about global representation
  3. Reach out to me with questions or ideas at carlos.ospina@palcera.com

 

Together, we can build a Drupal ecosystem that works for everyone, everywhere.

 

– Carlos

Subject of IXP Graduates from Initiative to Program: Companies Can Start Using It Now! Beyond Makers and Takers: Being a Faker in Open Source About IXP Graduates from Initiative to Program: Companies Can Start Using It Now! Beyond Makers and Takers: Being a Faker in Open Source Rethinking Custom Modules: How ECA Blew My Mind Building the Bridge: How Drupal CMS and IXP Could Empower Digital Agencies Simplifying Drupal Updates: A Structured Approach to Worry-Free Maintenance Author Carlos Ospina Abstract oard nomination statement presenting Carlos Ospina's vision for global Drupal community representation, highlighting experience with International Federation development, cross-cultural business expertise, and sustainable talent pipeline creation through the IXP Initiative. Advocates for balanced community-business sustainability. Tags drupal-association-board global-representation international-federation ixp-initiative community-development drupal-leadership latin-america-drupal sustainable-growth Drupal Planet Rating Select ratingGive Running for the Drupal Association Board Again Because the Work Isn't Finished 1/5Give Running for the Drupal Association Board Again Because the Work Isn't Finished 2/5Give Running for the Drupal Association Board Again Because the Work Isn't Finished 3/5Give Running for the Drupal Association Board Again Because the Work Isn't Finished 4/5Give Running for the Drupal Association Board Again Because the Work Isn't Finished 5/5Cancel rating Average: 5 (1 vote) Leave this field blank Add new comment
Kategorien: Drupal News

jofitz: Drupal AI: first steps

Drupal News - Fr, 05/30/2025 - 17:43

Artificial Intelligence has arrived in the Drupal ecosystem and it is already making huge waves. This is the first in a series of articles about my experiences as I dip a toe into these exciting waters.

The task

I was working on a large website with plenty of content dating back years, including numerous product reviews that required improved categorisation. The goal was to tag all of these review nodes with the relevant Make and Model.

The approach

I chose to write a custom Drush script to loop through all of the review nodes, using Artificial Intelligence to parse the Title and Body fields and return the make and model discussed therein.

public function reviewsMakeModel(): void { $fields = ['title', 'body']; foreach ($review_nodes as $review_node) { $data = []; foreach ($fields as $field) { $data[] = $review_node->get($field)->value; } $text = implode("\n", $data); $makeAndModel = $this->getMakeAndModel($text); // More to follow... } }The provider

I...

Read more
Kategorien: Drupal News

Four Kitchens: Creating depth and motion: A step-by-step guide to parallax

Drupal News - Fr, 05/30/2025 - 16:09

Mari Núñez

Frontend Engineer

Mari is a high-achieving Drupal frontend developer who has shown great proficiency in tackling complex frontend problems.

January 1, 1970

Crafting a visually engaging website isn’t just about eye-catching colors and typography — today it’s also about creating immersive experiences that captivate users as they scroll. One of the most compelling ways to achieve this is by using a parallax effect, where elements move at different speeds to create a sense of depth and motion.

With a thoughtful approach and some JavaScript, you can seamlessly add this effect to your site, enhancing storytelling and making your pages more dynamic.

This post will guide you through the process of integrating a custom parallax effect into your site. Whether building a feature-rich landing page or enhancing storytelling elements, this technique can bring your site to life. Let’s begin.

Building our component

Our example site was built in Drupal, but the overall concept would be the same in any CMS. First, we will need to build a component that has all the necessary fields that we want to display in our parallax. In this example, we will use Paragraph types and have two kinds of slides: one with an image and another without an image.

Parallax image slide

This slide will let us add an image, a title, and the caption or information we want to tell about that specific slide, the alignment of the information (left, center, or right), and an option if we want to hide the credit of the image or show it.


Parallax blank slide

This slide is similar to the previous one, but there are key differences. This one won’t include an image and anything else related to the image, and we allow a lot more text formatting on blank slides. This means that we can have the text on a blank slide take up much more of the available space without worrying about color contrast issues with advanced text formatting.

Once both paragraphs have been created, let’s create a ‘Parallax Slideshow’ paragraph that will only have a field that references the previous paragraphs created.

Connecting our component to the custom theme

Once our component is ready, the next step is to integrate it into our custom theme. In this example, we’re using Emulsify, our design system, as our custom theme, to ensure a consistent and modular approach to theming.

First, we will have our paragraph--parallax-slideshow.html.twig that will include a parallax-slideshow.twig, which has a JavaScript library called parallax-slideshow that is in charge of all logic to make our parallax effect work, and also some required styles.

{{ attach_library('your_theme/parallax-slideshow') }} {% set drupal = true %} {% include "@organisms/parallax-slideshow/parallax-slideshow.twig" with { 'slideshow_id': paragraph.id.0.value, 'slides': content.field_slide_items|render } %}

Here’s what our parallax-slideshow.twig looks like. Notice the empty <div class=””parallax-slideshow__image-wrapper””></div>. This is where the slide images will be rendered and where the fade-in and fade-out effects between images will occur.

{% set classes = [ paragraph.bundle|clean_class, "parallax-slideshow", ] %} <div{{ attributes.addClass(classes) }} data-id="{{ slideshow_id }}"> <div class="parallax-slideshow__wrapper"> <div class="parallax-slideshow__image-wrapper"></div> {{ slides }} </div> </div>

Then, we will have a paragraph--parallax-image-slide.html.twig and a paragraph--parallax-blank-slide.html.twig. Both files include a parallax-slide.twig, which is a molecule in the design system that organizes the content of each slide and adds all the needed styles. They are almost identical — the only difference being that the blank-slide will not pass the slide image to the parallax-slide.twig file.

{% include "@molecules/parallax-slide/parallax-slide.twig" with { 'slide_id': paragraph.id.0.value, 'slide_img': content.field_image|render, 'slide_title': paragraph.field_component_title.0.value, 'slide_caption': content.field_caption|render, 'slide_caption_alignment': paragraph.field_caption_alignment.0.value, 'slide_hide_credit': paragraph.field_hide_credit.0.value, 'slide_type': paragraph.type.0.value.target_id, } %}

Here’s what our parallax-slide.twig looks like:

{% set classes = [ 'parallax-slide', slide_caption_alignment ? 'parallax-slide--caption-' ~ slide_caption_alignment|lower : '', slide_type ? 'parallax-slide--' ~ slide_type|replace({'_': '-'}) : '', ] %} <div {{ attributes.addClass(classes) }} slide-data-id="{{ slide_id }}"> <div class="parallax-slide__info-wrapper"> <div class="parallax-slide__info-inner-wrapper full-width"> {% if slide_title %} <div class="parallax-slide__title-wrapper"> <h1 class="parallax-slide__title">{{ slide_title }}</h1> </div> {% endif %} {% if slide_caption %} <div class="parallax-slide__caption">{{ slide_caption }}</div> {% endif %} </div> </div> </div> Preloading parallax slideshow data

To prevent a visible delay between slides, the component needs to preload the first two images on page load. As the user begins scrolling, additional images are loaded dynamically in the background. This ensures a seamless transition between slides without noticeable lag and enhances the overall user experience.

We need to pass structured data from the backend to JavaScript. Below is a function that loads the data and attaches it to drupalSettings for use in a theme.

function your_theme_preprocess_paragraph_parallax_slideshow(&$variables) { $paragraph = $variables['paragraph']; $pid = $paragraph->id(); $lazy_load_data[$pid] = []; if ($paragraph->hasField('field_slide_items')) { $slide_items_ref = $paragraph->get('field_slide_items'); $slide_items = $slide_items_ref->referencedEntities(); foreach ($slide_items as $slide_id => $slide) { // Initial setup of array. $lazy_load_data[$pid][$slide_id] = [ 'id' => NULL, 'image' => NULL, ]; // ID. if ($slide->hasField('id') && !$slide->get('id')->isEmpty()) { $lazy_load_data[$pid][$slide_id]['id'] = $slide->get('id')->first()->getValue(); } // Responsive image markup. if ($slide->hasField('field_image') && !$slide->get('field_image')->isEmpty()) { $lazy_load_data[$pid][$slide_id]['image'] = _your_theme_get_rendered_slide_image($slide); } } } // Attach to JS JSON object to read in theme. $variables['#attached']['drupalSettings']['yourTheme']['parallaxSlideshowData'] = $lazy_load_data; $variables['#attached']['library'][] = 'your_theme/parallax-slideshow'; } function your_theme_get_rendered_slide_image($slide) { if ($slide->hasField('field_image') && !$slide->get('field_image')->isEmpty()) { $image_view = $slide->field_image->view('default'); $rendered_image = \Drupal::service('renderer')->render($image_view); return $rendered_image; } return NULL; }

Once the data is attached to drupalSettings in our JavaScript file, we can access parallaxSlideshowData to dynamically load images and control the parallax effect.

JavaScript implementation of the parallax slideshow

Below is a breakdown of how the JavaScript file works to bring the parallax slideshow to life.

Drupal.behaviors.parallaxSlideshow = { attach: function (context) { const parallaxSlideshowData = drupalSettings.yourTheme.parallaxSlideshowData; if (!parallaxSlideshowData) return; const slideshows = once('parallax-slideshow', '.parallax-slideshow', context); slideshows.forEach((slideshow) => { const loadedSlideIds = new Set(); const loadedImages = new Set(); initializeParallaxSlideshow(slideshow, parallaxSlideshowData, loadedSlideIds, loadedImages); }); }, };

Let’s start by retrieving the slideshow data from drupalSettings and ensuring the script only runs once per slideshow element. The function initializeParallaxSlideshow is responsible for setting up and managing the parallax slideshow experience by initializing each slideshow. By tracking which slides have been loaded, we prevent redundant loading:

const slideshowDataID = slideshow.getAttribute('data-id'); const slideshowData = parallaxSlideshowData[slideshowDataID]; if (!slideshowData) return;

Then, it calls a preloadSlides function, which likely preloads images or other resources for the first two slides to prevent a visible delay between slides.

function preloadSlides(slideshowData, slideshow, loadedSlideIds, loadedImages){ slideshowData.slice(0, 2).forEach((slideData, index) => { // Check if the slide has already been added if (loadedSlideIds.has(slideData.id)) return; // Mark the slide as loaded loadedSlideIds.add(slideData.id); if (slideData.image !== null) { createImageDiv(slideData.id, slideData.image, slideshow, loadedImages, index === 0); } }); }

Next, it calls a createImageDiv helper function that is responsible for creating and managing an image element within the parallax slideshow.

function createImageDiv(slideID, slideImage, slideshow, loadedImages, firstImage = false) { const imgDiv = document.createElement('div'); imgDiv.className = 'parallax-slideshow__image'; imgDiv.innerHTML = slideImage; if (firstImage) { const image = imgDiv.querySelector('img'); image.addEventListener('load', () => { const slideshowOverlay = slideshow.querySelector( '.parallax-slideshow__overlay', ); const slideshowWrapper = slideshow.querySelector( '.parallax-slideshow__wrapper', ); if (slideshowOverlay) { slideshowOverlay.classList.add('fade-out'); setTimeout(() => { document.body.style.overflow = ''; slideshowWrapper.removeChild(slideshowOverlay); }, 1000); } }); } // Add a custom attribute for the slide ID imgDiv.setAttribute('data-slide-image-id', slideID); loadedImages.add({ id: slideID, image: imgDiv, }); }

The reason why we check if there is a firstImage is that we want the initial slide to fade in from black when it’s fully loaded. Once the image loads, it finds the overlay and the slideshow wrapper, fades out the overlay, removes the overlay, and re-enables scrolling.

Let’s go back to the initializeParallaxSlideshow. After the preloadSlides function there’s a scroll event listener for the parallax effect that listens for scroll events to update the slideshow’s image position dynamically.

The idea is to let the image wrapper take the whole height of the viewport, but since there can be components before or after the parallax slideshow, at some point it is necessary to change the position of the image wrapper, to let the user scroll and interact with other components.

window.addEventListener('scroll', () => { const windowHeight = window.innerHeight; const top = slideshow.getBoundingClientRect().top; const bottom = slideshow.getBoundingClientRect().bottom; const slideshowImageWrapper = slideshow.querySelector( '.parallax-slideshow__image-wrapper', ); if (top < 0 && bottom > windowHeight) { slideshowImageWrapper.style.position = 'fixed'; slideshowImageWrapper.style.top = 0; } else { slideshowImageWrapper.style.position = 'absolute'; if (windowHeight > bottom) { slideshowImageWrapper.style.top = 'unset'; slideshowImageWrapper.style.bottom = 0; } if (windowHeight < top) { slideshowImageWrapper.style.top = 0; slideshowImageWrapper.style.bottom = 'unset'; } } });

The following logic is to set a scroll hijacking if the parallax slideshow is the first component of the page and if the first slide is an image.

// Check if slideshow is within a parent of .content-top const isContentTopParent = slideshow.closest('.content-top') !== null; // Get the first slide and check if it has the class `parallax-slide--parallax-image-slide` const firstSlide = slideshow.querySelector('.parallax-slide'); const isFirstSlideParallaxImageSlide = firstSlide && firstSlide.classList.contains('parallax-slide--parallax-image-slide'); // Lock scroll if .content-top is present and the first slide is of type image if (isContentTopParent && isFirstSlideParallaxImageSlide) { const overlay = document.createElement('div'); overlay.className = 'parallax-slideshow__overlay'; slideshow .querySelector('.parallax-slideshow__wrapper') .appendChild(overlay); document.body.style.overflow = 'hidden'; }

Then, there’s a piece of code that iterates through all slides in the slideshow and calls the initializeSlideObserver() function on each slide.

const slides = slideshow.querySelectorAll('.parallax-slide'); slides.forEach((slide, index) => { const infoInnerWrapper = slide.querySelector( '.parallax-slide__info-inner-wrapper', ); initializeSlideObserver(slideshow, infoInnerWrapper, slide, slideshowData, loadedSlideIds, loadedImages); // Add classes if first image is an slide if (index === 0) { slide.classList.add('initial-slide'); if (isFirstSlideParallaxImageSlide) { slide.classList.add('initial-slide-image'); } } });

Now let’s take a look at the initializeSlideObserver() function — the one that is responsible for setting up an Intersection Observer to track when a slide enters the viewport and dynamically updates the slideshow’s displayed image accordingly. It ensures that the slideshow loads the next image only when needed, preventing unnecessary rendering and improving performance.

// Initialize Intersection Observer for Slides function initializeSlideObserver(slideshow, infoInnerWrapper, slide, slideshowData, loadedSlideIds, loadedImages) { // Watches when infoInnerWrapper enters or exits the viewport, // and triggers a callback whenever visibility changes const observer = new IntersectionObserver( (entries) => { entries.forEach((entry) => { const slideshowWrapper = slideshow.querySelector( '.parallax-slideshow__wrapper', ); const slideshowImageWrapper = slideshowWrapper.querySelector( '.parallax-slideshow__image-wrapper', ); const slideID = slide.getAttribute('slide-data-id'); const slideImage = Array.from(loadedImages).find( (loadedImage) => loadedImage.id === slideID, ); const { isIntersecting } = entry; // Checks if the slide currently intersects the root if (isIntersecting) { const parent = slide.parentNode; const slides = Array.from( parent.querySelectorAll('.parallax-slide'), ); const index = slides.indexOf(slide); if (index !== 0) { // If not first slide, call the function to preload the next slide in advance. loadNextSlide(slideshowData, index, loadedSlideIds, loadedImages); } // Check if there is an existing image const previousImage = slideshowImageWrapper.querySelector( '.parallax-slideshow__image', ); if (slideImage) { slideImage.image.classList.add('fade-in'); slideshowImageWrapper.appendChild(slideImage.image); // If an existing image is found, remove fade-in class and remove it after a delay if (previousImage) { const previosImageID = previousImage.getAttribute( 'data-slide-image-id', ); if (previosImageID !== slideID) { setTimeout(() => { previousImage.classList.add('fade-out'); // Add fade-out class previousImage.classList.remove('fade-in'); // Remove fade-in class previousImage.classList.remove('fade-out'); // Remove fade-out class slideshowImageWrapper.removeChild(previousImage); }, 500); } } } else { if (previousImage) { const previosImageID = previousImage.getAttribute( 'data-slide-image-id', ); if (previosImageID !== slideID) { previousImage.classList.add('fade-out'); // Add fade-out class setTimeout(() => { previousImage.classList.remove('fade-out'); slideshowImageWrapper.removeChild(previousImage); }, 500); } } } } }); }, { // The callback triggers when at least 5% of infoInnerWrapper is visible. threshold: 0.05, }, ); observer.observe(infoInnerWrapper); }

Last but not least, there’s the loadNextSlide function that is responsible for preloading the next slide’s image to ensure a smooth transition when the user scrolls. This prevents unnecessary reloading of already loaded images. This function is very similar to the preloadSlides function.

function loadNextSlide(slideshowData, currentIndex, loadedSlideIds, loadedImages) { if (currentIndex + 1 < slideshowData.length) { const nextSlideData = slideshowData[currentIndex + 1]; // Check if the slide has already been added if (loadedSlideIds.has(nextSlideData.id)) return; // Mark the slide as loaded loadedSlideIds.add(nextSlideData.id); if (nextSlideData.image !== null) { createImageDiv(nextSlideData.id, nextSlideData.image, null, loadedImages); } } }

With these functions in place — handling image creation, slide observation, and preloading — you now have a dynamic and efficient parallax slideshow that seamlessly transitions between images as users scroll. By leveraging the Intersection Observer API, preloading logic, and smooth fade effects, the slideshow ensures a visually engaging experience without unnecessary performance overhead.

Once you’ve added the necessary styles to control positioning, animations, and transitions, your parallax slideshow should be fully functional across your site. This approach not only enhances the storytelling aspect of your content, but also keeps interactions smooth and lightweight.

Now, all that’s left is to fine-tune the visuals to match your design, and you’re set to create an immersive scrolling experience!

Kategorien: Drupal News