Planet Drupal
Bounteous.com: Connecting PHPStorm and Lando Databases for Highly Productive Drupal Development
Bounteous.com: Migrating Your Drupal 8 Site to Acquia Cloud Platform Hosting
Bounteous.com: How We Built and Launched a Website in Ten Days Using Acquia Site Studio
BRAINSUM: How AI Raised Our Efficiency by 27%
We’ve been using multiple AI tools since their inception. We subscribed to ChatGPT and Midjourney and found them extremely useful in many scenarios. While ChatGPT proved its capabilities as a general writing assistant it wasn’t that accurate and up-to-date in coding. Midjourney turned out to be the best generator of illustration images - just check the one generated for this post. Now I’m writing about Github Copilot, the "AI pair programmer". Our initial goal was to experiment and evaluate to learn what’s the real value behind the hype.
LN Webworks: How to use Ultimenu in Drupal
Ultimenu is the UltimatelyDeadSimple megamenu ever with dynamic region creation. An Ultimenu block is based on a menu. mainly we used Ultimenu to create the mobile menus. Ultimenu regions are based on the menu items. The result is a block contains regions containing blocks, as opposed to a region contains blocks.
How do we install Ultimenu?Install the module with composer:
run command:
composer require 'drupal/ultimenu:^2.11'
After downloading, click extend and enable the module. No further dependencies are required.
LostCarPark Drupal Blog: Drupal Advent Calendar day 21 - PHP Attributes
It’s day 21, and our stockings are warming over the fireplace. Joe Shindelar (eojthebrave) joins us to open today’s door, and for the PHP developers among us, it will make a nice little stocking filler.
As of PHP 8.1, the PHP language has native support for attributes that are compatible with Drupal’s plugin system use case. As a result, Drupal will transition from the use of annotations to PHP attributes, to supply metadata and configuration for plugins. This will require developers to learn the new PHP attributes syntax, and update their existing code to use it. For now Drupal will continue…
TagsSymphony Blog: Compress images before uploading in Drupal using DropzoneJS
When we was implementing a customer relationship management for a local client using Drupal, we faced this challege:
- The client wanted to manage records of his patients with many treatment images captured by his iPhone
- Each iPhone images can be large, 5 to 10MB depending on resolutions
- While we can't hold so many large images to the web server, the disk space will soon run out
So we have to find a way to resize and compress images quality on the client side before uploading so they won't place burdens to the web server.
LN Webworks: How to Migrate From WebSphere to Drupal 10
With the evolution of technology, businesses are actively transitioning to more efficient, reliable, and flexible solutions for their web platforms. Migrating from WebSphere to a cutting-edge CMS like Drupal 10 is a new trend stirred by the urge to adopt advanced technologies. If you wonder what makes Drupal 10 development a popular choice today, the answer lies in the CMS’s incredible features, flexibility, and scalability. Its top-notch cyber-security tools and supportive community also set the platform apart from the crowd. If you also aspire to ride the wave of technological advancement by migrating to Drupal 10, you’ll need to know the steps involved in the process.
LostCarPark Drupal Blog: Drupal Advent Calendar day 20 - Event Organizers Working Group (EOWG)
Once again, welcome back to the Drupal Advent Calendar. It’s day 20, and time to open our next door. Today Leslie Glynn (leslieg) joins us to talk about the Event Organizers Working Group (EOWG).
I bet a lot of you learned about Drupal and the awesome Drupal Community at a local Drupal event. I went to the Western Massachusetts Drupal Camp back in 2011 after I was assigned a Drupal website to support at work and had no idea what Drupal even was. I attended many great sessions, met a lot of folks in the local Drupal community and even purchased the “Definitive Guide to Drupal 7” (remember all…
TagsPromet Source: Ask Us Anything about Drupal 10 Webinar Recap
Tag1 Consulting: Unraveling the ETL Process: Extract
Our latest episode of Tag1 Team Talks is an insightful guide through the Extract phase of the ETL (Extract, Transform, Load) process in Drupal migrations. Hosted by Janez Urevc, the episode features experts Mike Ryan and Benji Fisher, who offer a deep understanding of data extraction relevant to migrations from older versions of Drupal (6,7,8) or other CMS platforms altogether and more.
Read more janez Tue, 12/19/2023 - 04:47SeanB: Introducing YAML Bundles: The easiest way to maintain your content types!
Let’s face it — manually creating and maintaining a lot of content types in Drupal can be a real pain. The repetitive nature of tasks, inconsistencies in field creation, and the time-consuming process of updating settings across multiple content types are familiar struggles for developers working in teams.
At TwelveBricks, we maintain sites with very different content models. Too much time was spent setting up and maintaining those models, so we finally decided to do something about it!
Enter YAML Bundles: A Developer’s new best friendYAML Bundles is a pragmatic approach to streamlining content type management through YAML-based Drupal plugins. It allows developers to define fields and content types from custom modules, making it a lot easier to add or update fields and content types.
The module defines 3 important plugin types:
- Field types
By defining common field types and their form/display settings (like widgets and formatters), you can remove repetitive configuration from the bundle definitions. - Entity types
You can define common settings for entity types to remove even more repetitive configurations from the bundle definitions. We have also integrated support for a bunch of other contrib modules we often use, to save even more time. - Entity bundles
You can use the defined fields in entity bundles, complete with customizable form and display settings that can be overridden on a field-by-field basis. The default settings of the entity types can also be overridden if you need to.
The module ships with defaults for the most common field and entity types, but you can easily override them. We have tests, which we also used to document all the available plugin settings and options. You can check out the documentation in the plugin definitions of the yaml_bundles_test module.
YAML Bundles’ Drush ToolsTo use the power of YAML bundles, we’ve added a couple of helpful Drush commands that will revolutionize your content type management.
drush yaml-bundles:create-bundles
This command uses the defined plugins to (re)create all the specified bundles, fields, and settings. Whether you’re starting from scratch or optimizing an existing configuration, this command ensures the seamless generation of all your content types with a single command.
drush yaml-bundles:create-bundle
You don’t have to use the bundle plugins if you don’t want to. For those who prefer a more hands-on approach, this command offers the flexibility to create a new content type directly through Drush.
drush yaml-bundles:create-field
This command simplifies the process of adding new fields to existing content types using default plugin configurations. With the ability to customize form and view displays, this command makes adding fields to different content types much easier.
YAML Bundles comes with out-of-the-box support for several popular Drupal modules, including:
- Pathauto: Define path aliases for entities and bundles effortlessly.
- Content Translation: Translate fields, labels, and settings into multiple languages.
- Content Moderation: Integrate content types into existing workflows.
- Field Group: Group fields for your content type directly from the YAML plugins.
- Simple Sitemap: Ensure your entity/bundle is included in the sitemap.
- Maxlength: Define maximum lengths for text fields if needed.
- Layout Builder: Utilize layout builder for your entity/bundle.
- Search API: Index entities/bundles and defined fields using the powerful Search API.
To define default settings and fields for an entity type in your custom module, create a [mymodule].yaml_bundles.entity_type.yml file. In this file, you can create all the defaults you need for the entity type.
# Add the default settings and fields for node types.node:
description: ''
langcode: en
# Make sure our plugin gets preference over the yaml_bundle plugin.
weight: 1
# Default content type settings.
new_revision: true
preview_mode: 0
display_submitted: false
# Enable content translation.
content_translation:
enabled: true
bundle_settings:
untranslatable_fields_hide: '1'
language_alterable: true
default_langcode: current_interface
# Add the content to the sitemap by default.
sitemap:
index: true
priority: 0.5
changefreq: 'weekly'
include_images: false
# Enable layout builder.
layout_builder: true
# Enable content moderation.
workflow: content
# Add the content to the default search index.
search_indexes:
- default
# Create the full and teaser view displays.
view_displays:
- teaser
# Add the default fields.
fields:
langcode:
label: Language
weight: -100
form_displays:
- default
title:
label: Title
search: true
search_boost: 20
weight: -98
form_displays:
- default
field_meta_description:
label: Meta description
type: text_plain
search: true
search_boost: 20
maxlength: 160
maxlength_label: 'The content is limited to @limit characters, remaining: <strong>@remaining</strong>'
weight: -25
form_displays:
- default
# Translate the default fields.
translations:
nl:
fields:
langcode:
label: Taal
title:
label: Titel
field_meta_description:
label: Metabeschrijving
maxlength_label: 'De inhoud is beperkt tot @limit tekens, resterend: <strong>@remaining</strong>'
de:
fields:
langcode:
label: Sprache
title:
label: Titel
field_meta_description:
label: Meta-Beschreibung
maxlength_label: 'Der Inhalt ist auf @limit-Zeichen beschränkt, verbleibend: <strong>@remaining</strong>'
To define a content type in your custom module, create a [mymodule].yaml_bundles.bundle.yml file. In this file, you can create all the bundle definitions you need for the bundle.
node.news:label: News
description: A description for the news type.
langcode: en
# Add generic node type settings.
help: Help text for the news bundle.
# Enable a custom path alias for the bundle. Requires the pathauto module to
# be enabled.
path: 'news/[node:title]'
# Configure the simple_sitemap settings for the bundle. Requires the
# simple_sitemap module to be enabled.
sitemap:
priority: 0.5
# Configure the search API index boost for the bundle. Requires the
# search_indexes to be configured and the search_api module to be enabled.
boost: 1.5
# Configure the fields for the bundle. For base fields, the field only needs
# a label. For custom fields, the type needs to be specified. The type
# configuration from the yaml_bundles.field_type plugins will be merged with
# the field configuration to allow the definition to be relatively simple.
# Generic defaults for a field type can be configured in the
# yaml_bundles.field_type plugins.
#
# See yaml_bundles.yaml_bundles.field_type.yml for the list of supported
# field types and their configuration properties.
fields:
field_date:
type: datetime
label: Date
required: false
search: true
search_boost: 1
cardinality: 1
field_default_value:
-
default_date_type: now
default_date: now
form_displays:
- default
view_displays:
- full
- teaser
field_body:
type: text_long
label: Text
required: true
search: true
search_boost: 1
form_displays:
- default
view_displays:
- full
field_image:
type: image
label: Image
required: true
search: true
form_displays:
- default
view_displays:
- full
- teaser
field_category:
type: list_string
label: Category
required: false
search: true
options:
category_1: Category 1
category_2: Category 2
form_displays:
- default
view_displays:
- full
- teaser
field_link:
type: link
label: Link
required: true
search: true
cardinality: 2
form_displays:
- default
view_displays:
- full
- teaserThat’s all folks!
We’re excited about the potential YAML Bundles brings to the Drupal ecosystem, and we can’t wait for you to experience the difference it makes in your projects. Please check it out and let us know what you think!
Download YAML Bundles | Documentation | Example plugins
Sponsored by TwelveBricks — The easiest CMS for your businessBuilding a new website can be a time-consuming and expensive process, but it doesn’t have to be. TwelveBricks offers an affordable and easy-to-use (Award-winning!) Content Management System (CMS) for a fixed monthly price.
We’ve optimized the workflow for editors so they can fully focus on their content without worrying about the appearance. With built-in analytics and extensive SEO tools, optimizing content becomes even easier. Each website can be delivered in just 2 days!
If you’re looking for a new website and don’t want to wait for months, spend a fortune, or compromise on quality, check out our website at https://www.twelvebricks.com/en.
LostCarPark Drupal Blog: Drupal Advent Calendar day 19 - ECA Commerce
Welcome back to the Drupal Advent calendar for another door opening! Today Nic Laflin (nicxvan) is here to tell us about the ECA Commerce module.
Today's module integrates two important Drupal ecosystems Commerce and ECA!
In Drupal 7 if you were building a commerce site then the Rules module was essential to set up notifications and pricing changes. Rules had a rich ecosystem and you could react to almost any event, check some conditions, and perform some action in Drupal. Even though Rules is currently available for Drupal 9 and 10, the jump to 8 took some time and the ecosystem lost some of...
TagsPreviousNext: Improving Drupal with the help of your clients
Our client, ServiceNSW, is a committed open-source contributor, working closely with us to improve their customer experience while sharing these advances with the Drupal community.
by adam.bramley / 19 December 2023How is client-backed contribution made possible?It helps when you work with a client that understands the value of contributing development time back to the Drupal community. ServiceNSW are members of Drupal and have co-presented with us at DrupalSouth, so they’re truly invested.
Solutions to client challenges, such as core patches or contributor modules, require upfront work. Doing this in a community setting is far more beneficial, allowing everyone to contribute and further improve it. That’s why SNSW recognises the future benefits of investing in the work done now.
We also put a lot of focus on performance and security. This means SNSW receives the latest upgrades for both Drupal core and contributed modules, helping move issues along and ensuring they have the latest and greatest, including being one of our first clients to move to Drupal 10.1. In fact, during the lead-up to the release of Drupal 10.1, we committed over a dozen large core issues in collaboration with the SNSW development team.
The patches we worked on pre Drupal 10.1 upgradeOver a period of three months, in the lead-up to Drupal 10.1, we targeted patches that were large and/or conflicted with other patches we were using. These were becoming increasingly hard to maintain. SNSW understood that these fixes would be a net gain to developer productivity and an improvement for the community.
- Issue #3198868: Add delay to queue suspend
- Issue #2867001: Don't treat suspending of a queue as erroneous
- Issue #2745179: Uncaught exception in link formatter if a link field has malformed data (a 7-year-old bug!)
- Issue #3059026: Catch and handle exceptions in PathFieldItemList
- Issue #3311595: Html::transformRootRelativeUrlsToAbsolute() replaces "\r\n" with " \n"
- Issue #2859042: Impossible to update an entity revision if the field value you are updating matches the default revision
- Issue #2791693: Remove sample date from date field error message and title attribute (another 7 year old one!)
- Issue #2831233: Field tokens for "historical data" fields (revisions) contain a hyphen, breaking twig templates and throwing an assertion error
- Issue #3007424: Multiple usages of FieldPluginBase::getEntity do not check for NULL, leading to WSOD
One of our largest pieces of work was Implementing a generic revision UI
Originally opened in 2014, this issue paved the way for one of the most sought-after features from our client - having Revisions for all entity types and a consistent user experience for them.
This was originally committed to the SNSW codebase in July of 2018 using this patch when we added a Block Content Type for a Notice feature on the website.
~3.5 years, ~250 comments, and a huge effort from PreviousNext and SNSW developers, along with many other community members and it was committed to 10.1.x.
This spawned several other core issues for other entity types:
- Block Content - This was also committed to 10.1 alpha.
- Media - which is committed and will be available in 10.2.0!
- Taxonomy terms - which is currently RTBC and looking promising for 10.3!
Plus contributed projects to extend contributed module entity types with revisioning support, such as Micro-content Revision UI.
The patches committed to Drupal 10.1 that we were able to removeWith all this pre-work, we were well positioned when the 10.1 upgrade came around. As you may have noticed, we like to get the ball rolling early, and we had a Pull Request going for the 10.1 upgrade in late June (the day 10.1.0 was released, in fact). This allowed us to figure out which modules needed help, what patches needed re-rolling, and to catch any bugs early.
It wasn't until mid-August when that PR was finally merged, with multiple developers touching it every now and then, when there was some movement.
Here's a full list of Drupal core patches we were able to remove, thanks to the contributions from SNSW.
- Issue #2350939: Implement a generic revision UI
- Issue #2809291: Add "edit block $type" permissions
- Issue #1984588: Add Block Content revision UI
- Issue #3315042: Remaining tasks for "edit block $type" permissions
- Issue #2859042: Impossible to update an entity revision if the field value you are updating matches the default revision
- Issue #3311595: Html::transformRootRelativeUrlsToAbsolute() replaces "\r\n" with " \n"
- Issue #3007424: Multiple usages of FieldPluginBase::getEntity do not check for NULL, leading to WSOD
- Issue #2831233: Field tokens for "historical data" fields (revisions) contain a hyphen, breaking twig templates and throwing an assertion error
- Issue #3059955: It is possible to overflow the number of items allowed in Media Library
- Issue #3123666: Custom classes for pager links do not work with Claro theme
- Issue #2867001: Dont treat suspending of a queue as erroneous
- Issue #3198868: Add delay to queue suspend
- Issue #2984504: Access to 'Reset to alphabetical' denied for users without administer permission
- Issue #3309157: RevisionLogInterface is typehinted as always returning entity/ids, but cannot guarantee set/existing values
- Issue #2634022: ViewsPluginInterface::create() inherits from nothing, breaking PHPStan-strict
- Issue #3349507: DateTimePlus::createFromDateTime should accept DateTimeInterface
Service NSW has (at the time of writing this post) contributed to 19 Drupal core issues that were committed over the past three months.
We look forward to continuing this incredible partnership and contributing in the coming months!
Drupal Association blog: The DrupalCon Nonprofit Summit is back in 2024: Unlocking the Power of Drupal for Social Good
When I joined the Drupal Association in July, I underestimated how moved I would be by the collective power of the community. A throwback to my organizing roots, I reveled in the eclectic excitement surrounding the innovation and collaboration of the application, evolution, and marketing of Drupal.
I remember discovering open source software myself, over 10 years ago. The worker’s center I worked for housed an instance of CiviCRM in Drupal and we used it to track our members — as we served a vulnerable population, it was paramount to keep the data safe and away from clandestine subpoenas and prying eyes.
Drupal responds to a fundamental need in the nonprofit sector – the ability to own, control, and share data. Joining the Drupal Association as the Director of Philanthropy allows me to work within the nonprofit sector to leverage the power of Drupal for greater impact, and I yearned for an opportunity to collaborate with others with the same perspective.
The Drupal Association was remiss to let the Nonprofit Summit lapse at DrupalCon Pittsburgh, but… I am thrilled to reintroduce the Nonprofit Summit at DrupalCon Portland!
The network of nonprofits in the Drupal Community is strong and vibrant and has been a joy to work with and learn from. Judging by the extraordinary talent represented by its organizers, Jess Snyder and Johanna Bates, the Nonprofit Summit will be a dynamic and inspiring one-day event bringing together passionate professionals from the nonprofit sector to delve into the transformative potential of Drupal.
Join us for a day of discovery, collaboration, and inspiration as we collectively unlock the full potential of Drupal for social good. Facilitated discussions, round table group sessions, and an opportunity to learn and inspire one another are just a few of the features we plan to bring to the summit this year.
The Nonprofit Summit will be on Thursday, 9 May, the 4th day of DrupalCon, after three days of expert speakers, networking, and contribution. Tickets go on sale 6 February. And we’re especially pleased to announce that the Drupal Association will subsidize the cost of tickets for those in the nonprofit sector, offering special pricing for the conference and summit! The conference rate for nonprofits is $395 and includes the summit.
Mark your calendars, spread the word, and get ready to be part of a community dedicated to making a lasting impact. The Nonprofit Drupal Summit is back and ready to shape the future of digital philanthropy. See you there!
Talking Drupal: Talking Drupal #429 - The Drupal Association Board
Today we are talking about the Drupal Association Board, Its Strategic Initiatives, and The Future of Drupal with guest Baddý Sonja Breidert. We’ll also cover Advent Calendar as our module of the week.
For show notes visit: www.talkingDrupal.com/429
Topics- Former member of Board of Drupal Association
- What does the board do
- How does the board operate
- Are there term limits
- How does someone get on the board
- Strategic Initiatives
- Innovation
- Marketing
- Fundraising
- Now that you are no longer on the board what’s next
- CEO of 1xInternet
- How did you get started with Drupal
Baddý Sonja Breidert - 1xinternet.de/en baddysonja
HostsNic Laflin - nLighteneddevelopment.com nicxvan John Picozzi - epam.com johnpicozzi Ron Northcutt - community.appsmith.com rlnorthcutt
MOTW CorrespondentMartin Anderson-Clutz - @mandclu Advent Calendar
- Brief description:
- Have you ever wanted to reveal content a day-at-a-time, in an interactive advent calendar? There’s a module for that.
- Brief history
- How old: created less than month ago in Nov 2023 by listener James Shields, whose drupal.org username is lostcarpark
- Versions available: 1.0.0-beta3 release, which works with Drupal 10.1 and newer
- Maintainership
- Actively maintained, latest release made earlier today
- Test coverage
- Number of open issues: 5, 3 of which are bugs, but all but one are now marked as fixed
- Usage stats:
- 6 sites
- Module features and usage
- James actually created a Drupal advent calendar a year ago, on his website lostcarpark.com. The idea was to showcase a new module every day, similar to advent calendars that provide a chocolate or a toy each day, hidden behind a cardboard door
- James’ initial version displayed the content in a traditional calendar format, using the Calendar View module. What he really wanted, however, was a way to present the content using clickable doors to reveal new entries
- The new Advent Calendar module provides a new view display, so you can configure what content type or other filters to apply, and use fields to specify what information to show
- The module uses a Single Directory Component for display, hence the 10.1 requirement
- There is also an “Advent Calendar Quickstart” submodule that sets up everything for you, including a content type, view, and 24 nodes to populate it for you
- Each site visitor gets to “open” the door to new content as it is published each day. For authenticated users, which doors have been opened is stored as user data, and for anonymous users it’s kept in local storage via Javascript
- In addition to this being an interesting module in its own right, the advent calendar James has created this year is also a community effort. He’s managed to enlist a wide variety of contributors to write about modules or aspects of the Drupal community that they’re passionate about, so it’s a great way to up your Drupal game. You can open a new door yourself every day at https://lostcarpark.com/advent-calendar-2023
The Drop Times: Once Upon a Time...
Dear Readers,
It's that time of the year when everyone brushes off the cobwebs of the long 11 months to gather them in a corner of retrospection. We are searching out planners and diaries to create to-do lists, write down resolutions, and set goals, all while peering back at 2023 before we bid farewell.
In the grand narrative of the year, one acronym echoed across the globe, shaping industries and transforming the way we work: AI. And has it made my work easier? Certainly! It's no longer only about working hard but working smart. I sought the assistance of AI to write about Drupal, and interestingly, it offered me a story on Drupal in a very old-fashioned way.
"Once upon a time in the world of web development, an ambitious individual namely Dries Buytaert ventured into the creation of Drupal. Later, Dries along with a community of passionate individuals came together under the banner of open-source technology and their journey transformed Drupal into a powerful platform that empowered countless businesses and organizations to build and manage their online presence with ease."
Our world has expanded and contracted, all within the grasp of our fingertips. A robust online presence has become indispensable for the growth of any venture, and Drupal has emerged as a stalwart, now embodied in its latest iteration, Drupal 10.2. This update brings enhanced features, fortified security, and many opportunities for developers and users alike.
Milestones are not conquered in isolation; they are a testament to the collective effort. Hence, The DropTimes introduces a new segment dedicated to spotlighting the stories of organizations that embody innovation and unwavering commitment to the open-source community and Drupal. In the inaugural edition of Spotlight, we shine the light on SparkFabrik. Elma John, our sub-editor, combined SparkFabrik's rich history of success, open-source commitment, and vision for the future into a comprehensive feature.
In an exclusive interview by Kazima Abbas, Andrew Berry shares his experiences from Evolve Drupal Toronto, insights into Drupal's unique community spirit, and the story behind his contributions to Lullabot. Kazima also had the opportunity to correspond with Brian Perry, coordinator of API Client Initiative, to gain more insights about the initiative. The DropTimes was fortunate to publish Ignacio Díaz-Roncero Fraile's detailed overview of the Component-Based Design using Single Directory Components (SDC) in Drupal.
Fame often comes with a baggage of criticisms and opinions and it's not unlikely for people to have polarising opinions. Recently, one such demonstration occupied the front page of Hacker News, followed by a revisit by Dries Buytaert to a 16-year-old blog that announced his 16-year-old start-up, Acquia and I was able to capture the essence of that discussion into a recent article.
The program schedule for DrupalCon Portland 2024 has been unveiled, offering a comprehensive overview of the conference's daily activities. The Drupal France and Francophonie association has announced its eleventh DrupalCamp, which is set to take place at the Maison des Associations in Rennes from March 28 to March 30, 2024. Axess hosts a webinar on Drupal 10.2 Features & DrupalCon Lille Highlights on December 19, 2023. Also, look at the list of events that will keep the Drupalers engaged this week.
Meanwhile, after the announcement of Drupal 10.2, Adam Bramley has been appointed as a new co-maintainer in the Drupal Core. Drupal Association published blog posts announcing the addition of Lenny Moskalyk to the Drupal Board and progress updates on the EU Cyber Resiliency Act response.
There are more stories available out there. But the compulsion to limit the selection of stories is forcing us to put a hard break on further exploration—happy Drupaling folks.
To get timely updates, follow us on LinkedIn, Twitter and Facebook.
Thank you,
Sincerely
Alka Elizabeth
Sub-Editor, TheDropTimes
LN Webworks: Why is Drupal the Top Choice for Big Organizations: Top 8 Reasons
The way people use the internet is changing, and they want websites to be faster, more personalized, user-friendly, and secure. The content on a website is crucial for its success. To keep up with the ever-evolving needs of customers, your business requires a web content management system (CMS) that fits the bill. When it comes to content-focused CMS solutions, Drupal for Large Organizations is the perfect fit.
According to W3Techs, Drupal is the chosen CMS for 2.4% of all websites. It's not just for big enterprises; even small companies find Drupal development services to be a highly useful CMS.
Specbee: Strategic Drupal Partnerships: The Michael J Fox Foundation's Drupal Story
LostCarPark Drupal Blog: Drupal Advent Calendar day 18 - The Mentoring Initiative
Once again, welcome to Day 18 of the Drupal Advent Calendar. Today we are joined by AmyJune Hineline (volkswagenchick), who is here to tell us about the Mentoring Initiative.
I am AmyJune Hineline, volkswagenchick on Drupal.org. I have been mentoring in the open source space since 2017 and was folded into the Drupal Mentor Coordination team in 2020. I have the privilege of being a non-code developer and have always advocated that non-code contributions are as important to the project as code.
I started in Drupal mentoring by presenting a version of the First Time Contributor Workshop at the...