{"id":2168,"date":"2024-05-14T16:10:34","date_gmt":"2024-05-14T22:10:34","guid":{"rendered":"https:\/\/frontendmasters.com\/blog\/?p=2168"},"modified":"2024-05-14T16:10:58","modified_gmt":"2024-05-14T22:10:58","slug":"studio","status":"publish","type":"post","link":"https:\/\/frontendmasters.com\/blog\/studio\/","title":{"rendered":"Studio"},"content":{"rendered":"\n<p>It&#8217;s worth noting that Automattic shipped a thing called <a href=\"https:\/\/developer.wordpress.com\/studio\/\">Studio<\/a>:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>&#8230; a fast, free way to develop locally with WordPress. Share your local sites with clients or colleagues and keep your local development process smooth and simple.<\/p>\n<\/blockquote>\n\n\n\n<p>It&#8217;s amazing to me that WordPress got to be as dominant as it is without any real answer to <em>&#8220;how do I run it locally?&#8221;<\/em> It&#8217;s non-trivial, as you need to run PHP, MySQL, and a web server, ideally in a way that mimics how your web host is doing it. I&#8217;ve been working with WordPress for a long time, and a lot of that time the answers to local dev environments have been some combination of expensive, janky, or complicated. Then tools like <a href=\"https:\/\/localwp.com\/\">Local<\/a> and <a href=\"https:\/\/forge.laravel.com\/docs\/sites\/the-basics.html#wordpress\">Laravel Forge<\/a> came along and made things better, but the more the merrier.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Here are <a href=\"https:\/\/developer.wordpress.com\/docs\/developer-tools\/studio\/#:~:text=A%20Studio%20site%20is%20a,on%20unlimited%20local%20WordPress%20websites.\">the docs<\/a>. It looks like it&#8217;s all tied into WordPress.com, and it sort of is, but you don&#8217;t have to host on WordPress.com for this to be useful. The tech behind it, as I understand it, is related to the <a href=\"https:\/\/wordpress.org\/playground\/\">Theme Playground<\/a> stuff, which is a lovely miracle of modern web development:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/wordpress.github.io\/wordpress-playground\/docs\/architecture\/wasm-php-overview\" target=\"_blank\" rel=\"noreferrer noopener\">PHP runs as a WebAssembly binary<\/a><\/li>\n\n\n\n<li>MySQL is replaced for SQLite via a&nbsp;<a href=\"https:\/\/github.com\/WordPress\/sqlite-database-integration\/\" target=\"_blank\" rel=\"noreferrer noopener\">WordPress plugin<\/a><\/li>\n\n\n\n<li>Web server is implemented in JavaScript&nbsp;<a href=\"https:\/\/wordpress.github.io\/wordpress-playground\/docs\/architecture\/browser-service-workers\" target=\"_blank\" rel=\"noreferrer noopener\">as a Service Worker<\/a><\/li>\n<\/ul>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s worth noting that Automattic shipped a thing called Studio: &#8230; a fast, free way to develop locally with WordPress. Share your local sites with clients or colleagues and keep your local development process smooth and simple. It&#8217;s amazing to me that WordPress got to be as dominant as it is without any real answer [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2169,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"sig_custom_text":"","sig_image_type":"featured-image","sig_custom_image":0,"sig_is_disabled":false,"inline_featured_image":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[29],"tags":[173],"class_list":["post-2168","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-the-beat","tag-wordpress"],"acf":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/05\/studio-thumb.jpg?fit=1000%2C500&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts\/2168","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/comments?post=2168"}],"version-history":[{"count":3,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts\/2168\/revisions"}],"predecessor-version":[{"id":2172,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts\/2168\/revisions\/2172"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/media\/2169"}],"wp:attachment":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/media?parent=2168"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/categories?post=2168"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/tags?post=2168"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}