Building Studio in Public: How Open Source Collaboration Enhances Studio - EMEL

Latest

EMEL

Thursday, October 3, 2024

New

Building Studio in Public: How Open Source Collaboration Enhances Studio

Media Mamat Turbo October 03, 2024
It's now time for Part 3 of our "Building Studio in Public" series! In today's post, we'll explore how the Studio app connects with other open source projects, with a focus on its key relationship with WordPress Playground. We'll also dive into …
Read on blog or Reader
Site logo image WordPress.com News Read on blog or Reader

Building Studio in Public: How Open Source Collaboration Enhances Studio

By Carlos G. Prim on October 3, 2024

It's now time for Part 3 of our "Building Studio in Public" series! In today's post, we'll explore how the Studio app connects with other open source projects, with a focus on its key relationship with WordPress Playground. We'll also dive into the benefits and challenges of this symbiotic relationship, showing how both projects mutually benefit from improvements and bug fixes.

If you're following the series, be sure to check out past posts:

  • Using WordPress Components and Tailwind CSS in our Local Development App.
  • Maintaining High Performance in Our Local Development App for Enhanced UX

As a reminder, Studio is our free and open source local WordPress development app.

Download Studio for free

How Studio connects to other open source projects

Studio relies on various open source projects, with the primary one being WordPress Playground which provides a local WordPress server, handling everything from running PHP code to serving static files and managing a database. This allows developers to test WordPress sites, plugins, and themes in a local, sandboxed environment.

WordPress Playground utilizes Emscripten to compile the PHP interpreter to WebAssembly, enabling PHP to run in the browser and other platforms—a significant leap for WordPress development.

a screenshot of WordPress Playground with a site running Twenty Twenty Four on the right

By way of WordPress Playground, Studio also makes use of other open source tools like the SQLite integration plugin.

Studio itself is open source, which means the codebase is available for review, contribution, and forking by the community. This openness fosters collaboration, encourages innovation, and enables rapid identification and resolution of issues.

Because of the open source nature of Studio and the projects it uses like WordPress Playground, we are not blocked by missing or undesired behavior of our libraries but can instead help uncover issues or opportunities for enhancement in these projects and contribute the necessary fixes and improvements. Instead of building workarounds, we can directly enhance Studio's performance and capabilities by submitting fixes to the actual problems. 

This creates a virtuous cycle of improvement, showcasing how open source collaboration drives innovation and helps solve complex challenges.

Challenges we discovered working with WordPress Playground

WordPress Playground is powerful, but since it makes WordPress run in an unusual environment–the browser instead of a server–some things work differently than developers expect. While using it to power Studio allows us to achieve all the good things, like a fast setup, we also had to overcome some challenges:

  1. Cross-platform compatibility: Ensuring that WordPress Playground runs smoothly on different operating systems (Windows, macOS, Linux) and across browsers requires extensive testing and fine-tuning.
  2. Performance: Managing multiple resources (PHP interpreter, WordPress site, database, and file system) while running multiple sites in Studio can strain performance. You can learn more about how we maintain high performance in Studio here.
  1. Plugin and theme compatibility: Although WordPress Playground creates a full environment for running sites, some plugins and themes rely on extensions that are not included in WordPress Playground by default. Adjustments are often necessary to accommodate support for the different plugins and themes.
  2. Database handling: WordPress Playground uses an SQLite database instead of MySQL, fundamentally altering how WordPress operates. This shift requires adaptations for database queries and compatibility with plugins and themes.

These complexities sometimes lead to incompatibilities, bugs, or performance issues. However, we believe the benefits of WordPress Playground far outweigh the challenges, and we are committed to addressing them by contributing to the Playground project. Thus not only Studio works better, but everyone who uses Playground has a better experience.

In turn, Studio also benefits from contributions from other Playground users.

Our recent contributions to WordPress Playground and other open source projects

As part of our contributions to the Studio app, we recently focused on improving the compatibility of plugins, themes, and workflows in sites. The following are some of the fixes we made that contributed to the projects.

MySQL database compatibility

With a pull request, we helped improve the compatibility of sites connecting to MySQL databases, making Studio more flexible in handling various site configurations and expanding its capability to support more diverse WordPress setups.

Symlink support

We submitted two contributions (PR 1, PR 2) to add crucial support for handling symlinks in sites, greatly improving file system compatibility and flexibility. This enhancement significantly improves the development workflow, enabling developers to maintain cleaner project structures and more efficiently manage their themes and plugins across multiple projects. It also facilitates easier version control and collaboration by allowing links to external repositories without duplicating files.

Windows media upload fix

A fix resolved critical issues with uploading media on sites when using the Windows version of the Studio app, ensuring a smoother experience for Windows users. This contribution addressed a significant functionality gap, ensuring that Studio provides a consistent and reliable media management experience across all supported operating systems.

WordPress core and extension upgrades

Another contribution fixed the process of upgrading versions of WordPress, plugins, and themes. This improvement streamlined the update process within Studio, allowing developers to maintain their WordPress installations and associated extensions easily.

WooCommerce compatibility

This pull request significantly improved compatibility with the WooCommerce plugin, expanding Studio's utility for e-commerce development. This contribution addressed specific database queries and operations that were incompatible with the SQLite database used in sites created with Studio. The SQLite integration plugin involves different complexities to allow seamless integration with the WordPress ecosystem, and this contribution addresses one of the main pain points of using WooCommerce in local WordPress environments.

cURL extension compatibility

We contributed the ability to enable the cURL extension on PHP used with Playground which turned out to be a requirement by a significant number of plugins for external API calls or remote data fetching. This broadens the range of plugins that can be used effectively within Studio and WordPress Playground.

File creation compatibility

A fix improved compatibility with plugins that create files using umask to set file permissions, enhancing the file system operations. This was crucial for plugins that generate caches, create custom CSS or JavaScript files, or manage uploads in non-standard ways. By resolving these file operation issues, we ensured that a broader range of plugins could function correctly within Studio, providing a more accurate representation of how sites would behave in a production environment.

All the above examples demonstrate how collaborative contributions help Studio evolve, making it more compatible with the vast array of plugins and themes in the WordPress ecosystem.

a cursor clicking a blue Add demo site button under the Share tab on Studio by WordPress.com

How to contribute

If this post has inspired you to contribute to open source projects (we're big fans), here's how you can get involved with some of our favorite open source projects:

  • Contribute to the Studio app project
  • Contribute to the WordPress Playground project
  • Contribute to the WordPress project

Together we can build incredible tools for the community! 🙂

Ready to build?

If this information has piqued your interest, or if you're developing WordPress sites, start leveraging the power of Studio today. It's free, it's open source, and it seamlessly integrates into your development workflow.

Download Studio for free

After downloading Studio, connect it to your WordPress.com account (free or paid) to unlock features like Demo Sites.

Comment
You can also reply to this email to leave a comment.

WordPress.com News © 2024.
Manage your email settings or unsubscribe.

WordPress.com and Jetpack Logos

Get the Jetpack app

Subscribe, bookmark, and get real‑time notifications - all from one app!

Download Jetpack on Google Play Download Jetpack from the App Store
WordPress.com Logo and Wordmark title=

Automattic, Inc.
60 29th St. #343, San Francisco, CA 94110

Read more

Subscribe via email

Share This:
Facebook Twitter Google+ Pinterest Linkedin
Author Image

About Media Mamat Turbo
Templatesyard is a blogger resources site is a provider of high quality blogger template with premium looking layout and robust design. The main mission of templatesyard is to provide the best quality blogger templates.

By Media Mamat Turbo at October 03, 2024
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Newer Post Older Post Home
Subscribe to: Post Comments (Atom)

Popular

  • This Weeks New Digital Building Blog Post
    MAMAT, check out this weeks new Digital Building Blog. ...
  • 8 Must-Try AI Tools for Web Development (Build Faster & Smarter)
    8 Must-Try AI Tools for Web Development (Build Faster & Smarter)
    Artificial intelligence excels at automating repetitive tasks and streamlining t...
  • [New post] Level Up Your Author HQ With GoCreate.Me
    David Gaughran posted: " Author websites are an increasingly important tool, but one that can cause a lot of aggravation. W...
  • When Typepad Shut Down, We Helped 3,684 Blogs Find a New Home
    30 days' notice. Years of memories at stake. Here's how WordPress.com st...
  • Covid Turbulence – how countries got cancellations under control
    ...

Sponsor

Powered by Blogger.

Blog Archive

  • January 2026 (6)
  • December 2025 (16)
  • November 2025 (19)
  • October 2025 (11)
  • September 2025 (16)
  • August 2025 (22)
  • July 2025 (19)
  • June 2025 (13)
  • May 2025 (21)
  • April 2025 (32)
  • March 2025 (32)
  • February 2025 (20)
  • January 2025 (44)
  • December 2024 (15)
  • November 2024 (17)
  • October 2024 (14)
  • September 2024 (18)
  • August 2024 (19)
  • July 2024 (14)
  • June 2024 (21)
  • May 2024 (17)
  • April 2024 (24)
  • March 2024 (29)
  • February 2024 (24)
  • January 2024 (63)
  • December 2023 (32)
  • November 2023 (29)
  • October 2023 (25)
  • September 2023 (33)
  • August 2023 (21)
  • July 2023 (21)
  • June 2023 (29)
  • May 2023 (19)
  • April 2023 (14)
  • March 2023 (16)
  • February 2023 (18)
  • January 2023 (16)
  • December 2022 (20)
  • November 2022 (24)
  • October 2022 (22)
  • September 2022 (19)
  • August 2022 (24)
  • July 2022 (31)
  • June 2022 (34)
  • May 2022 (31)
  • April 2022 (37)
  • March 2022 (28)
  • February 2022 (31)
  • January 2022 (39)
  • December 2021 (35)
  • November 2021 (37)
  • October 2021 (32)
  • September 2021 (18)
  • August 2021 (48)
  • July 2021 (43)
  • June 2021 (44)
  • May 2021 (65)
  • April 2021 (72)
  • March 2021 (64)
  • February 2021 (50)
  • January 2021 (47)
  • December 2020 (47)
  • November 2020 (43)
  • October 2020 (96)
  • September 2020 (100)
  • August 2020 (128)
  • July 2020 (87)
  • June 2020 (108)
  • May 2020 (107)
  • April 2020 (90)
  • March 2020 (91)
  • February 2020 (77)
  • January 2020 (88)
  • December 2019 (105)
  • November 2019 (107)
  • October 2019 (102)
  • September 2019 (98)
  • August 2019 (118)
  • July 2019 (115)
  • June 2019 (99)
  • May 2019 (115)
  • April 2019 (103)
  • March 2019 (112)
  • February 2019 (118)
  • January 2019 (109)
  • December 2018 (106)
  • November 2018 (128)
  • October 2018 (97)
  • September 2018 (126)
  • August 2018 (59)
  • January 2013 (1)

Search This Blog

Popular Posts

  • This Weeks New Digital Building Blog Post
    This Weeks New Digital Building Blog Post
    MAMAT, check out this weeks new Digital Building Blog. ...
  • 8 Must-Try AI Tools for Web Development (Build Faster & Smarter)
    8 Must-Try AI Tools for Web Development (Build Faster & Smarter)
    Artificial intelligence excels at automating repetitive tasks and streamlining t...
  • [New post] Level Up Your Author HQ With GoCreate.Me
    [New post] Level Up Your Author HQ With GoCreate.Me
    David Gaughran posted: " Author websites are an increasingly important tool, but one that can cause a lot of aggravation. W...
  • When Typepad Shut Down, We Helped 3,684 Blogs Find a New Home
    When Typepad Shut Down, We Helped 3,684 Blogs Find a New Home
    30 days' notice. Years of memories at stake. Here's how WordPress.com st...
Crafted with by TemplatesYard