<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jos Velasco</title>
	<atom:link href="https://josvelasco.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://josvelasco.com/</link>
	<description>WordPress web consultant.</description>
	<lastBuildDate>Fri, 01 May 2026 18:04:32 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://josvelasco.com/wp-content/uploads/cropped-favicon-jos-velasco-32x32.png</url>
	<title>Jos Velasco</title>
	<link>https://josvelasco.com/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">6271731</site>	<item>
		<title>Here&#8217;s What I&#8217;ve Learned So Far as a WordPress Credits Mentor</title>
		<link>https://josvelasco.com/heres-what-ive-learned-so-far-as-a-wordpress-credits-mentor/</link>
					<comments>https://josvelasco.com/heres-what-ive-learned-so-far-as-a-wordpress-credits-mentor/#comments</comments>
		
		<dc:creator><![CDATA[JosVelasco]]></dc:creator>
		<pubDate>Fri, 01 May 2026 03:28:33 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://josvelasco.com/?p=15425</guid>

					<description><![CDATA[<p>My first time as a WP Credits mentor was harder than expected. Here's what three students taught me about open source and asking for help.</p>
<p>La entrada <a href="https://josvelasco.com/heres-what-ive-learned-so-far-as-a-wordpress-credits-mentor/">Here&#8217;s What I&#8217;ve Learned So Far as a WordPress Credits Mentor</a> se publicó primero en <a href="https://josvelasco.com">Jos Velasco</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>This was my first time mentoring a group of <a href="https://wordpress.org/education/credits/" target="_blank" rel="noreferrer noopener">WP Credits</a> students. It turned out harder and more rewarding than I expected, but not for the technical reasons.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>The program pairs students with community contributors who guide them through their first open-source contribution. I read the <a href="https://make.wordpress.org/handbook/wordpress-credits-contribution-internship-program/a-guide-for-wp-credits-mentors/">Mentor Guide</a> and submitted my application. When I learned I&#8217;d been accepted, I felt excited because, as a consultant, I enjoy working with people in small groups. This was a great opportunity to guide them the way I would have liked to be guided when I started learning WordPress.</p>



<p>I started with three mentees, all new to open-source contribution. WP Credits offers <a href="https://make.wordpress.org/handbook/pathways/" type="link" id="https://make.wordpress.org/handbook/pathways/">immediate contribution opportunities</a> and recommends choosing one to shape a project.</p>



<p>Here are some examples related to what may students chose:</p>



<blockquote class="wp-block-quote is-style-default is-layout-flow wp-block-quote-is-layout-flow">
<p class="has-medium-font-size"><strong>Become a Theme Reviewer</strong>&nbsp; – introduce yourself as contributor in #themes slack channel. Read the contributor guide in the <a href="https://github.com/WordPress/community-themes">repository</a> and requirements in the themes <a href="https://make.wordpress.org/themes/handbook/review/required/">team handbook</a>, then <a href="https://make.wordpress.org/themes/handbook/get-involved/become-a-reviewer/">follow these steps to review a theme</a>.</p>



<p class="has-medium-font-size"><strong>Contribute Photos</strong> – Create and upload at least 30 quality CC0-licensed photos of your campus, town, or meaningful surroundings to the WordPress Photo Directory. <em>(</em><a href="https://wordpress.org/photos/guidelines/"><em>Photos</em></a><em>)</em></p>



<p class="has-medium-font-size"><strong>Work on a Component</strong> – Learn about a <a href="https://make.wordpress.org/core/features/">feature</a> or <a href="https://make.wordpress.org/core/components/">component</a>, and work on it in a <a href="https://make.wordpress.org/core/handbook/testing/bug-gardening/">Bug Scrub</a> session. Read <a href="https://make.wordpress.org/core/handbook/contribute/">Contributing with Code</a> and each of the <a href="https://make.wordpress.org/core/handbook/best-practices/">Best Practices</a>, then contribute to a <a href="https://core.trac.wordpress.org/tickets/good-first-bugs">Good First Bug</a>. <em>(</em><a href="https://make.wordpress.org/core/handbook/contribute/"><em>Core</em></a><em>)</em></p>
</blockquote>



<p>Before choosing one, they learned WordPress and its community through a course on <a href="https://learn.wordpress.org/">Learn WordPress</a>. The onboarding phase provides curated lessons and the option to try the software in <a href="https://playground.wordpress.net/">Playground</a> sandboxes and quizzes. This seems so normal to us, as regular WordPress users, but it is amazing to see how far we&#8217;ve come in learning experiences with a single click. I was happy with how easy the platform was for them to use after the initial hiccups.</p>



<p>Unfortunately, this first phase took too long. There is a lot of material for students and mentors to learn, and a schedule to define. But the most difficult part is navigating the delicate balance between enabling students&#8217; potential without doing their work and not forcing them, since you have to accept that this is open source: Help them understand why they might be interested in donating their contributions, connecting, and building something bigger as a community for the community.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><a href="https://profiles.wordpress.org/gabihawkins/">Gabi</a> chose <a href="https://wordpress.org/photos/author/gabihawkins/">Photos</a>. She works as an IT technician and is making her way into web development. She was already working with WordPress, trying out plugins for other projects, so it was easy for her to choose something not necessarily related to her career but, in a sense, more about who she is — a really visual person interested in front-end work. You can see her sensibility in what she submitted — a Japanese pagoda lit at night, jellyfish in deep blue water, koi beside a rock-lined path. Not test submissions. Images from someone who has an eye. I really liked <a href="https://gabihawk.com/">her website</a>; it shows she spent a lot of time detailing it. I was kind of frustrated because, even though her project requirements were met on time, some final details needed extra time for the certificate to be delivered. She filled out a feedback form using a different email address than the one on their WP Credits profile, so the course system didn&#8217;t detect her completion. Sometimes, the person you think will be the first to obtain it is the last. Anyway, I guess it&#8217;s the price of being one of the first graduates.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a036deec5b14&quot;}" data-wp-interactive="core/image" data-wp-key="6a036deec5b14" class="wp-block-image aligncenter size-full wp-duotone-midnight-filter wp-lightbox-container"><img fetchpriority="high" decoding="async" width="1441" height="2048" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://josvelasco.com/wp-content/uploads/pagoda.avif" alt="" class="wp-image-15495" srcset="https://josvelasco.com/wp-content/uploads/pagoda.avif 1441w, https://josvelasco.com/wp-content/uploads/pagoda-422x600.jpg 422w, https://josvelasco.com/wp-content/uploads/pagoda-768x1092.jpg 768w, https://josvelasco.com/wp-content/uploads/pagoda-1081x1536.jpg 1081w" sizes="(max-width: 1441px) 100vw, 1441px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Enlarge"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption"><a href="https://creativecommons.org/publicdomain/zero/1.0/">CC0</a> licensed <a href="https://wordpress.org/photos/photo/25069e1ab4/">photo</a> by <a href="https://wordpress.org/photos/author/gabihawkins/">Gabriella Hawkins</a> from the <a href="https://wordpress.org/photos/">WordPress Photo Directory</a>.</figcaption></figure>



<p><a href="https://profiles.wordpress.org/tkaimonet/">T&#8217;Kai</a> chose Themes, but then changed to <a href="https://wordpress.org/photos/author/tkaimonet/">Photos</a> when time was running out. Smart! She&#8217;s a full-time student and a full-time mom, and her schedule was unpredictable in the way only a newborn makes it. Still, she kept showing up. Not necessarily in sync, but that was one of the lessons I wanted to share most: as a global community, the conversation will happen async!</p>



<p>She attended a WordPress meetup at 2:30 in the morning — not because she couldn&#8217;t sleep, but because she was already awake doing mom things and decided to make the most of it. She wrote about it on <a href="https://techinc.blog/">her blog</a> as if it were just a reasonable thing to do. I agree!</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a036deec6074&quot;}" data-wp-interactive="core/image" data-wp-key="6a036deec6074" class="wp-block-image size-full wp-duotone-midnight-filter wp-lightbox-container"><img decoding="async" width="2048" height="1536" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://josvelasco.com/wp-content/uploads/forest-snow.avif" alt="" class="wp-image-15497" srcset="https://josvelasco.com/wp-content/uploads/forest-snow.avif 2048w, https://josvelasco.com/wp-content/uploads/forest-snow-800x600.jpg 800w, https://josvelasco.com/wp-content/uploads/forest-snow-768x576.jpg 768w, https://josvelasco.com/wp-content/uploads/forest-snow-1536x1152.jpg 1536w" sizes="(max-width: 2048px) 100vw, 2048px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Enlarge"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption"><a href="https://creativecommons.org/publicdomain/zero/1.0/">CC0</a> licensed <a href="https://wordpress.org/photos/photo/1269e6dd38/">photo</a> by <a href="https://wordpress.org/photos/author/tkaimonet/">T&#8217;Kai Monet</a> from the <a href="https://wordpress.org/photos/">WordPress Photo Directory</a>.</figcaption></figure>



<p><a href="https://profiles.wordpress.org/noahmobes/">Noah</a> took a different direction. He spent real time early on trying to find a path that felt meaningful, not just one that was completable. After working on <a href="https://core.trac.wordpress.org/tickets/good-first-bugs">Good First Bugs</a> for Core, I helped him land on WordPress <a href="https://wordpress.github.io/wordpress-playground/blueprints/">Playground blueprints</a> — small files that spin up pre-configured WordPress environments instantly, with no hosting required. I had suggested blueprints as one possible direction. He made it his own, which is exactly what you want.</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-noah-039-s-site wp-block-embed-noah-039-s-site"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="ngW0Mt8ae2"><a href="https://noahmobes.com/hello-dolly/">Hello Dolly</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;Hello Dolly&#8221; &#8212; Noah&#039;s Site" src="https://noahmobes.com/hello-dolly/embed/#?secret=XNFYMWlmz2#?secret=ngW0Mt8ae2" data-secret="ngW0Mt8ae2" width="500" height="282" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div><figcaption class="wp-element-caption">This plugin continues to be an inspiration for where to start extending WordPress</figcaption></figure>



<p>In the meantime, T&#8217;Kai was submitting photos but not getting them approved. The Photo Directory has real standards — quality and description — and a long queue when everyone is rushing to finish at the same time or when big events collide. I tried links and documentation. What actually moved things was going to the Photos Team page on WordPress.org, finding the most active moderators listed there, and reaching out directly.</p>



<p>That was <a href="https://profiles.wordpress.org/michelleames/">Michelle Frechette</a>. She&#8217;s the Executive Director of Post Status, has contributed over 360 photos to the directory herself, and has been part of this community longer than some of my mentees have been using the internet. She responded immediately, explained exactly why the photos weren&#8217;t passing, and offered to review T&#8217;Kai&#8217;s submissions before she sent more.</p>



<p>That one conversation did what weeks of sharing links hadn&#8217;t.</p>



<p>The community has no boundaries — it&#8217;s global, generous, and people will help if you reach out to them. That&#8217;s the thing I should have led with. Instead, I learned it in the middle, and I&#8217;ll start there next time.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Noah kept working through the end. He created blueprints for Hello Dolly and Disable Comments, opened PRs on the official GitHub, and reached out to the authors. His blueprints weren&#8217;t merged before the program closed. He wrote about it without bitterness: <em>&#8220;this is certainly not the end for me in the WP ecosystem.&#8221;</em> He documented everything and gave a <a href="https://wordpress.tv/2026/04/16/wpcredits-wrap-up-presentation/">wrap-up presentation on WordPress.tv</a>. I think that matters.</p>



<p>They all graduated on the same day.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>If I&#8217;m honest about what I&#8217;d change, it&#8217;s the project scoping. Thirty photos gave us a finish line, and finish lines are useful. But a better version would have been: <em>contribute photos that WordPress meetup organizers can actually use.</em></p>



<p>Everything else I&#8217;d keep — especially the part where you show up at 2:30 a.m. if that&#8217;s what you have. Hours add up. Requirements get met. And somewhere along the way, you realize the community you&#8217;ve been contributing to is much bigger and more generous than you imagined.</p>



<p>Near the end I wrote to all three of them: the community will always be here, raising a hand on any channel will get you help, and I really hope you come back to it.</p>



<p>I meant it. I&#8217;m already thinking about next time. Now I&#8217;m ready, LOL.</p>



<p>Thanks to all the WP Credits team members who patiently helped us sort all kinds of issues: <a href="https://profiles.wordpress.org/peiraisotta/">Isotta Peira</a>, <a href="https://profiles.wordpress.org/celigaroe/">Celi Garoe</a>, <a href="https://profiles.wordpress.org/francescodicandia/">Francesco Di Candia</a>, <a href="https://profiles.wordpress.org/gomp/">Maciej Pilarski</a>, and contributors <a href="https://profiles.wordpress.org/evarlese/">@evarlese</a>, <a href="https://profiles.wordpress.org/nilovelez/">@nilovelez</a>, <a href="https://profiles.wordpress.org/roblesloaiza/">@roblesloaiza</a>. A lot of people are behind something that looks simple from the outside.</p>



<p>One thing I know for sure is that many people are interested in becoming WP Credits mentors, which shows a strong commitment to WordPress&#8217;s future and makes me happy.</p>



<p>Jos Velasco.</p>



<aside class="wp-block-group alignfull has-global-padding is-layout-constrained wp-container-core-group-is-layout-06ba7afb wp-block-group-is-layout-constrained" style="margin-top:0;margin-bottom:0;padding-top:50px;padding-right:var(--wp--preset--spacing--50);padding-bottom:50px;padding-left:var(--wp--preset--spacing--50)">
<div class="wp-block-group is-vertical is-content-justification-center is-layout-flex wp-container-core-group-is-layout-ce155fab wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-large-font-size">Related content</h3>
</div>



<div class="wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-4935966c wp-block-columns-is-layout-flex" style="padding-right:0;padding-left:0">
<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/why-would-you-return-something-to-wordpress/"><img loading="lazy" decoding="async" width="1200" height="675" src="https://josvelasco.com/wp-content/uploads/give-back.webp" alt="" class="wp-image-13632" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/give-back.webp 1200w, https://josvelasco.com/wp-content/uploads/give-back-1024x576.webp 1024w, https://josvelasco.com/wp-content/uploads/give-back-768x432.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-21d4e958 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/why-would-you-return-something-to-wordpress/">Why would you return something to WordPress?</a></h3>
</div>
</div>



<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/do-you-know-what-is-better-than-a-wordpress-events-organizer/"><img loading="lazy" decoding="async" width="1200" height="630" src="https://josvelasco.com/wp-content/uploads/wordpress-events-organizers.avif" alt="" class="wp-image-10271" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/wordpress-events-organizers.avif 1200w, https://josvelasco.com/wp-content/uploads/wordpress-events-organizers-1024x538.avif 1024w, https://josvelasco.com/wp-content/uploads/wordpress-events-organizers-768x403.avif 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-63bfd6c1 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/do-you-know-what-is-better-than-a-wordpress-events-organizer/">Do you know what is better than a WordPress events organizer?</a></h3>
</div>
</div>



<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/hosting-successful-wordpress-meetups-without-a-budget-tips-tricks/"><img loading="lazy" decoding="async" width="1200" height="630" src="https://josvelasco.com/wp-content/uploads/host-events-with-low-budget.avif" alt="" class="wp-image-10652" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/host-events-with-low-budget.avif 1200w, https://josvelasco.com/wp-content/uploads/host-events-with-low-budget-1024x538.avif 1024w, https://josvelasco.com/wp-content/uploads/host-events-with-low-budget-768x403.avif 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-63bfd6c1 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/hosting-successful-wordpress-meetups-without-a-budget-tips-tricks/">Hosting Successful WordPress Meetups Without a Budget | Tips &amp; Tricks</a></h3>
</div>
</div>
</div>
</aside>
<p>La entrada <a href="https://josvelasco.com/heres-what-ive-learned-so-far-as-a-wordpress-credits-mentor/">Here&#8217;s What I&#8217;ve Learned So Far as a WordPress Credits Mentor</a> se publicó primero en <a href="https://josvelasco.com">Jos Velasco</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://josvelasco.com/heres-what-ive-learned-so-far-as-a-wordpress-credits-mentor/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">15425</post-id>	</item>
		<item>
		<title>Connect the Blocks. Someone Has To.</title>
		<link>https://josvelasco.com/connect-the-blocks-someone-has-to/</link>
					<comments>https://josvelasco.com/connect-the-blocks-someone-has-to/#respond</comments>
		
		<dc:creator><![CDATA[JosVelasco]]></dc:creator>
		<pubDate>Wed, 15 Apr 2026 00:15:30 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://josvelasco.com/?p=15337</guid>

					<description><![CDATA[<p>Almost Ready Temporary Page is a WordPress plugin built entirely with native blocks. Here's how I built it with AI.</p>
<p>La entrada <a href="https://josvelasco.com/connect-the-blocks-someone-has-to/">Connect the Blocks. Someone Has To.</a> se publicó primero en <a href="https://josvelasco.com">Jos Velasco</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>People keep saying WordPress needs more. More features, more blocks, more flexibility baked into Core. And maybe they&#8217;re right — but I&#8217;ve started to think the real gap isn&#8217;t features. It&#8217;s connectors.</p>



<p>Someone has to look at what&#8217;s already there and say: <em>wait, these pieces fit together.</em></p>



<p><em>(Not</em> <a href="https://make.wordpress.org/core/2026/03/18/introducing-the-connectors-api-in-wordpress-7-0/"><em>these connectors</em></a><em>. Those are a different and genuinely exciting thing. I mean the human kind.)</em></p>



<p>That&#8217;s what this plugin is. Not a new idea. Not a framework. Not a page builder or a proprietary template or a settings panel with seventeen options you&#8217;ll configure once and never think about again. It&#8217;s two things Core already does, introduced to each other.</p>



<h2 class="wp-block-heading">Here&#8217;s the problem it solves, because it&#8217;s one you&#8217;ve definitely had.</h2>



<p>You&#8217;re working on a site. It&#8217;s not ready. Visitors are landing on it anyway — seeing unfinished pages, placeholder text, a theme that isn&#8217;t quite right yet. You need a friendly &#8220;we&#8217;re getting there&#8221; page in front of everything while you keep building behind it. Simple.</p>



<p>The existing solutions are, almost without exception, overkill. Branding splashes. Settings panels. Countdown timers. Asset bloat. Fonts that don&#8217;t match your theme. A footer credit pointing back to someone else&#8217;s website on <em>your</em> coming-soon page.</p>



<p>I didn&#8217;t want any of that. I wanted something that looked like the site it was protecting.</p>



<h2 class="wp-block-heading">So I built one. Sort of.</h2>



<p>I should be honest about what &#8220;I built&#8221; means here. I had the idea. I understood the problem. I knew, roughly, that WordPress has a way to intercept a visitor&#8217;s request before the page loads — and that if you catch it at the right moment, you can redirect everyone who isn&#8217;t logged in without touching the theme. I just didn&#8217;t know exactly how.</p>



<p>That&#8217;s where AI came in. Not to do the thinking. To explain things.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Think of it like having someone next to you who has read every piece of WordPress documentation ever written and will answer your questions without making you feel stupid for asking. You still have to ask the right questions. You still have to recognize when the answer is correct. But you&#8217;re not starting from zero every time you hit a wall.</p>



<p>— Claude (Sonnet 4.6)</p>
</blockquote>



<p>There were things I genuinely didn&#8217;t understand — how WordPress handles the redirect hook, how to create a page programmatically and clean up after yourself, why you escape output even when you wrote it yourself. I&#8217;d ask. I&#8217;d get an explanation. Then when the reviewer came back with notes and guidelines, I&#8217;d forward the feedback — and this time, the conversation was different. Not because the AI remembered anything. Because <em>I</em> did.</p>



<p>That&#8217;s the loop. The memory doesn&#8217;t live in the LLM. It lives in you. The AI explains; the reviewer teaches; you own the result.</p>



<p>And the most difficult part of the whole process? Finding a name that the plugin directory would accept. That took longer than the code.</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-plugin-directory wp-block-embed-plugin-directory"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="OgmiwJZnqt"><a href="https://wordpress.org/plugins/almost-ready-temporary-page/">Almost Ready Temporary Page</a></blockquote><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;Almost Ready Temporary Page&#8221; &#8212; Plugin Directory" src="https://wordpress.org/plugins/almost-ready-temporary-page/embed/#?secret=AiIsKq4WLf#?secret=OgmiwJZnqt" data-secret="OgmiwJZnqt" width="500" height="282" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<p>The plugin itself ended up beautifully small. So small, in fact, that it doesn&#8217;t need modern image formats. No AVIF, no WebP — just an ugly, completely customizable gradient that somehow looks intentional. That&#8217;s the whole aesthetic.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a036deec92fb&quot;}" data-wp-interactive="core/image" data-wp-key="6a036deec92fb" class="wp-block-image size-full has-custom-border wp-duotone-midnight-filter wp-lightbox-container"><img loading="lazy" decoding="async" width="1600" height="900" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://josvelasco.com/wp-content/uploads/screenshot-1.png" alt="" class="has-border-color has-contrast-border-color wp-image-15338" style="border-width:1px" srcset="https://josvelasco.com/wp-content/uploads/screenshot-1.png 1600w, https://josvelasco.com/wp-content/uploads/screenshot-1-1024x576.png 1024w, https://josvelasco.com/wp-content/uploads/screenshot-1-768x432.png 768w, https://josvelasco.com/wp-content/uploads/screenshot-1-1536x864.png 1536w" sizes="auto, (max-width: 1600px) 100vw, 1600px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Enlarge"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">The friendly temporary page that visitors see</figcaption></figure>



<p>Activate it, and it creates a WordPress page. Visitors get redirected there. Logged-in users see the normal site. Deactivate it, and the page becomes a draft — saved, not deleted, ready for next time. Nothing left behind.</p>



<p>The page uses native blocks. Your theme&#8217;s fonts. Your theme&#8217;s colors. You edit it the same way you&#8217;d edit any other page, because it <em>is</em> any other page. The social links block, if you leave the URL fields empty, renders nothing at all — so the default page works without customization, but rewards you if you take five minutes to personalize it.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a036deec9751&quot;}" data-wp-interactive="core/image" data-wp-key="6a036deec9751" class="wp-block-image size-full has-custom-border wp-duotone-midnight-filter wp-lightbox-container"><img loading="lazy" decoding="async" width="1600" height="900" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://josvelasco.com/wp-content/uploads/screenshot-2.png" alt="" class="has-border-color has-contrast-border-color wp-image-15340" style="border-width:1px" srcset="https://josvelasco.com/wp-content/uploads/screenshot-2.png 1600w, https://josvelasco.com/wp-content/uploads/screenshot-2-1024x576.png 1024w, https://josvelasco.com/wp-content/uploads/screenshot-2-768x432.png 768w, https://josvelasco.com/wp-content/uploads/screenshot-2-1536x864.png 1536w" sizes="auto, (max-width: 1600px) 100vw, 1600px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Enlarge"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Easy customization through WordPress&#8217;s native block editor</figcaption></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><a href="https://wordpress.org/plugins/almost-ready-temporary-page/?preview=1">Try it live — WordPress Playground demo →</a></p>
</blockquote>



<p>No settings panel. No configuration. No maintenance burden you&#8217;re signing up for without realizing it.</p>



<p>I want to say something about restraint, because I almost blew it.</p>



<p>At one point, I started exploring the Gutenberg Data Views API — <code>@wordpress/dataviews</code> — thinking I could build a nicer way to select templates from inside the plugin. Grid views, variants, the whole thing. It was genuinely interesting. It was also unnecessary for a plugin whose value proposition is that it requires no user decisions.</p>



<p>Even variants were too much. So I stopped.</p>



<p>This matters more than it might seem. There&#8217;s a version of this plugin I could build that would take weeks and require ongoing maintenance and slowly drift away from what makes it useful. The discipline isn&#8217;t in the building. It&#8217;s in the not-building. Don&#8217;t add something you can&#8217;t explain. Don&#8217;t add something you can&#8217;t maintain. If it starts to feel like overkill, it probably is.</p>



<h2 class="wp-block-heading">Core needs connectors, not competitors.</h2>



<p>The plugin <a href="https://wordpress.org/plugins/almost-ready-temporary-page/">Almost Ready Temporary Page</a> passed review, and it&#8217;s tested up to WordPress 7.0. The graphics were made with AI, which feels consistent with how everything else came together: human idea, machine assistance, something that actually ships.</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-plugin-directory wp-block-embed-plugin-directory"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="OgmiwJZnqt"><a href="https://wordpress.org/plugins/almost-ready-temporary-page/">Almost Ready Temporary Page</a></blockquote><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;Almost Ready Temporary Page&#8221; &#8212; Plugin Directory" src="https://wordpress.org/plugins/almost-ready-temporary-page/embed/#?secret=AiIsKq4WLf#?secret=OgmiwJZnqt" data-secret="OgmiwJZnqt" width="500" height="282" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<p>If you&#8217;ve had an idea sitting in your head for two years because you assumed you&#8217;d need to hire someone to build it — this is your sign to reconsider.</p>



<p>— Jos… and Claude.</p>



<aside class="wp-block-group alignfull has-global-padding is-layout-constrained wp-container-core-group-is-layout-06ba7afb wp-block-group-is-layout-constrained" style="margin-top:0;margin-bottom:0;padding-top:50px;padding-right:var(--wp--preset--spacing--50);padding-bottom:50px;padding-left:var(--wp--preset--spacing--50)">
<div class="wp-block-group is-vertical is-content-justification-center is-layout-flex wp-container-core-group-is-layout-ce155fab wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-large-font-size">Related content</h3>
</div>



<div class="wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-4935966c wp-block-columns-is-layout-flex" style="padding-right:0;padding-left:0">
<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/why-would-you-return-something-to-wordpress/"><img loading="lazy" decoding="async" width="1200" height="675" src="https://josvelasco.com/wp-content/uploads/give-back.jpg" alt="" class="wp-image-13629" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/give-back.jpg 1200w, https://josvelasco.com/wp-content/uploads/give-back-1024x576.jpg 1024w, https://josvelasco.com/wp-content/uploads/give-back-768x432.jpg 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-21d4e958 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/why-would-you-return-something-to-wordpress/">Why would you return something to WordPress?</a></h3>
</div>
</div>



<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/i-use-real-wordpress-block-plugins-only/"><img loading="lazy" decoding="async" width="1200" height="630" src="https://josvelasco.com/wp-content/uploads/real-blocks.jpg" alt="" class="wp-image-10329" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/real-blocks.jpg 1200w, https://josvelasco.com/wp-content/uploads/real-blocks-1024x538.jpg 1024w, https://josvelasco.com/wp-content/uploads/real-blocks-768x403.jpg 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-63bfd6c1 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/i-use-real-wordpress-block-plugins-only/">I use real WordPress block plugins only</a></h3>
</div>
</div>



<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/the-best-use-of-ai-for-building-wordpress-websites/"><img loading="lazy" decoding="async" width="1792" height="1024" src="https://josvelasco.com/wp-content/uploads/the-best-use-of-ai-for-building-wordpress-websites.jpg" alt="" class="wp-image-10408" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/the-best-use-of-ai-for-building-wordpress-websites.jpg 1792w, https://josvelasco.com/wp-content/uploads/the-best-use-of-ai-for-building-wordpress-websites-1024x585.jpg 1024w, https://josvelasco.com/wp-content/uploads/the-best-use-of-ai-for-building-wordpress-websites-768x439.jpg 768w, https://josvelasco.com/wp-content/uploads/the-best-use-of-ai-for-building-wordpress-websites-1536x878.jpg 1536w" sizes="auto, (max-width: 1792px) 100vw, 1792px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-63bfd6c1 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/the-best-use-of-ai-for-building-wordpress-websites/">The best use of AI for building WordPress websites</a></h3>
</div>
</div>
</div>
</aside>
<p>La entrada <a href="https://josvelasco.com/connect-the-blocks-someone-has-to/">Connect the Blocks. Someone Has To.</a> se publicó primero en <a href="https://josvelasco.com">Jos Velasco</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://josvelasco.com/connect-the-blocks-someone-has-to/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">15337</post-id>	</item>
		<item>
		<title>AI Can&#8217;t Save the World. But It Saved One I Know.</title>
		<link>https://josvelasco.com/ai-cant-save-the-world-but-it-saved-one-i-know/</link>
					<comments>https://josvelasco.com/ai-cant-save-the-world-but-it-saved-one-i-know/#respond</comments>
		
		<dc:creator><![CDATA[JosVelasco]]></dc:creator>
		<pubDate>Tue, 14 Apr 2026 03:13:38 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://josvelasco.com/?p=15306</guid>

					<description><![CDATA[<p>People die all the time, but when someone who owns a digital magazine passes away unexpectedly, what is the best way to handle the situation?</p>
<p>La entrada <a href="https://josvelasco.com/ai-cant-save-the-world-but-it-saved-one-i-know/">AI Can&#8217;t Save the World. But It Saved One I Know.</a> se publicó primero en <a href="https://josvelasco.com">Jos Velasco</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>This is a story I&#8217;ve lived through, so I thought I was prepared to face it. Now that everything seems to be over, I&#8217;m finally ready to start over.</p>



<p>People die all the time, but when someone who owns a digital magazine passes away unexpectedly, what is the best way to handle the situation?</p>



<p>They leave the physical world, and their digital one remains intact, as if nothing happened. That is, until the bills come due.</p>



<p>His friend asked me for guidance:</p>



<p><em>&#8211; Have you saved a Digital World before?<br>&#8211; Sadly, yes. Let&#8217;s request server access from them. I&#8217;m sure they will cooperate to preserve Hers.</em></p>



<p>They didn&#8217;t.</p>



<p>We gathered a group of her friends who posted regularly on <em>The World</em>. They cared about her and her creation, or at least about their collaborations: Writers. We contacted her family as politely as possible and began waiting.</p>



<p>Days passed. Then weeks, then more than a month.</p>



<p>They weren&#8217;t ready.</p>



<p>I was surprised the site was still working, frozen at her last update, serving fresh JavaScript ads, and waiting for her Goddess to update it.</p>



<p>However, it happened—<em>the Host</em> suspended the site. I know data can be deleted according to policy, so I reached out to them.</p>



<p>They were sorry for our loss, <em>yeah, right,</em> and offered to <strong>extend the time</strong> to delete the data for a limited period so we could recover access to the account&#8230;</p>



<figure class="wp-block-image size-full wp-duotone-midnight-filter"><img loading="lazy" decoding="async" width="960" height="720" src="https://josvelasco.com/wp-content/uploads/its-something.avif" alt="" class="wp-image-15319" srcset="https://josvelasco.com/wp-content/uploads/its-something.avif 960w, https://josvelasco.com/wp-content/uploads/its-something-800x600.jpg 800w, https://josvelasco.com/wp-content/uploads/its-something-768x576.jpg 768w" sizes="auto, (max-width: 960px) 100vw, 960px" /></figure>



<p>My friend let the family know about this extension. Eventually, they blocked him, even though he was extremely polite. My guess is they were suspicious because of one thing:</p>



<p>Money.</p>



<p>Why would we really care so much about finding an eternal home for <em>The World</em>?</p>



<p>Isn&#8217;t that something very expensive? Not really.</p>



<p>Cultural digital magazines and their creators seem to be incompatible with making money! The cultural world doesn&#8217;t like to be saved, which is something hard and weird to explain. Or is it?</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>And yet, before all of that becomes possible — before a site can accumulate a decade&#8217;s worth of editorial work, before it can become the kind of archive worth fighting to preserve — someone has to build it. Post by post, hour by hour.</p>



<p>Think about what that actually means in practice. A mid-sized independent cultural magazine, one main editor, a handful of regular contributors. Literature, cinema, music, human rights. More than ten thousand published pieces over the years. At a conservative average of two and a half hours per post — research, writing, editing, publishing — you arrive at somewhere between 20,000 and 30,000 human hours. Ten to fifteen full-time work-years, living inside a domain name.</p>



<p>And most of it came from one person. One editorial voice deciding what mattered, who deserved to be interviewed, which story needed to be told. Time seems to expand around that kind of commitment. Because behind every published piece is not just the writing time but years of accumulated knowledge: relationships with sources, a trained instinct for the right question, a worldview refined through thousands of conversations.</p>



<p>This is exactly what makes the loss so hard to explain to a family that associates a website with a monthly bill and nothing more. The hours are invisible. The cultural weight is invisible. What remains visible is a suspended account and a technical problem that looks, from the outside, like an inheritance dispute.</p>



<p>It isn&#8217;t. It&#8217;s closer to watching a library burn slowly, one unpaid invoice at a time.</p>



<p>When multiple voices gather around a single editorial project — when contributors post regularly, when a community forms — something shifts. The site stops being one person&#8217;s creation and becomes a shared record. A memory that belongs to more than one person. That is, in theory, what makes it survivable.</p>



<p>In practice, survivability requires someone who knows where the servers are.</p>



<p>— Sonnet 4.6</p>
</blockquote>



<p>You know what probably saved <em>The World</em>? Publishing about it to get other media&#8217;s attention, especially the bigger commercial media! Getting them to know that we cared! And never stop working.</p>



<blockquote class="wp-block-quote is-style-default is-layout-flow wp-block-quote-is-layout-flow">
<p>The digital shift leveled the <strong>cost</strong> playing field but widened the <strong>revenue</strong> gap. Commercial magazines lost print ad money and are fighting to recover it online. Cultural magazines lost nothing in ads (they never had them) — but they also gained nothing from digital beyond survival at lower cost.</p>



<p>— Claude?</p>
</blockquote>



<p>So, in parallel:</p>



<p>Saving<em> The World</em> did not happen all at once. It happened in fragments, over days, with AI-generated scripts running quietly in the background while life continued elsewhere.</p>



<p>Our hope was the Wayback Machine — the Internet Archive&#8217;s snapshot service that had been crawling <em>The World</em> over the years, probably without its creator knowing. A script queried its catalog, identified the best available snapshot, then began downloading the articles, one by one, rewriting internal links. It regulated its own speed, backing off when the Archive&#8217;s servers pushed back and gradually regaining its pace when they relented. A separate pass collected images, CSS, JavaScript, and fonts. A final cleanup removed tracking scripts and Archive toolbar injections from every page.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="is-style-text-display is-style-text-display--1">The real question is this: was all this legal? Absolutely fucking not. But we were making more money than we knew what do with.</p>



<h2 class="wp-block-heading">The Wolf of Wall Street</h2>
</blockquote>



<p>What remained incomplete was the gap between the snapshot and the site&#8217;s final days. But at least we had something! A broken but more navigable and dignified version!</p>



<p>Then something unexpected happened: the family paid the bills. <em>The World</em> came back online — not restored or rebuilt, just resumed, exactly where it had left off. And so we thought: how much time until it gets attacked if they don&#8217;t maintain it properly?</p>



<figure class="wp-block-image aligncenter size-full wp-duotone-midnight-filter"><img loading="lazy" decoding="async" width="498" height="306" src="https://josvelasco.com/wp-content/uploads/dont-know-what-im-doing.gif" alt="" class="wp-image-15328"/></figure>



<p>This new opportunity changed what was possible. The scripts ran again, this time against the live site, faster and quietly filling gaps in the server itself: the articles the Archive had never captured, the images that had returned errors in every snapshot, and the final weeks of posts that existed nowhere. We made adjustments with the help of AI, showing that <strong>technology can be cheaper and faster for what matters</strong>.</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-plugin-directory wp-block-embed-plugin-directory"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="TfLf5KpBqN"><a href="https://wordpress.org/plugins/internet-archive-wayback-machine-link-fixer/">Internet Archive Wayback Machine Link Fixer</a></blockquote><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;Internet Archive Wayback Machine Link Fixer&#8221; &#8212; Plugin Directory" src="https://wordpress.org/plugins/internet-archive-wayback-machine-link-fixer/embed/#?secret=f8UUW8QKlW#?secret=TfLf5KpBqN" data-secret="TfLf5KpBqN" width="500" height="282" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div><figcaption class="wp-element-caption">Did you know there is a plugin that helps preserve the legacy of WordPress sites?</figcaption></figure>



<p>A restructuring pass then rebuilt the entire archive into a clean directory that any hosting provider or local machine could serve directly. Asset paths were simplified, archive timestamps were removed from URLs, and every page received a noindex tag to prevent search engines from confusing the copy with the original, just in case. The result was a self-contained folder that depends on no database, no WordPress installation, no plugin updates, and no monthly invoice — sort of.</p>



<p>The same infrastructure that had let the site lapse — hosting fees, maintenance overhead, and the quiet administrative cost of keeping a WordPress site alive — is exactly what the archive eliminates. A static site has no expiration date. It will serve the last post as faithfully in twenty years as it does today, <strong>as long as someone remembers or agrees to keep the lights on</strong>. Or store it in a time capsule for other worlds to see&#8230;</p>



<p>— Jos&#8230; and Claude.</p>



<aside class="wp-block-group alignfull has-global-padding is-layout-constrained wp-container-core-group-is-layout-06ba7afb wp-block-group-is-layout-constrained" style="margin-top:0;margin-bottom:0;padding-top:50px;padding-right:var(--wp--preset--spacing--50);padding-bottom:50px;padding-left:var(--wp--preset--spacing--50)">
<div class="wp-block-group is-vertical is-content-justification-center is-layout-flex wp-container-core-group-is-layout-ce155fab wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-large-font-size">Related content</h3>
</div>



<div class="wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-4935966c wp-block-columns-is-layout-flex" style="padding-right:0;padding-left:0">
<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/the-best-use-of-ai-for-building-wordpress-websites/"><img loading="lazy" decoding="async" width="1792" height="1024" src="https://josvelasco.com/wp-content/uploads/the-best-use-of-ai-for-building-wordpress-websites.avif" alt="" class="wp-image-10407" srcset="https://josvelasco.com/wp-content/uploads/the-best-use-of-ai-for-building-wordpress-websites.avif 1792w, https://josvelasco.com/wp-content/uploads/the-best-use-of-ai-for-building-wordpress-websites-1024x585.avif 1024w, https://josvelasco.com/wp-content/uploads/the-best-use-of-ai-for-building-wordpress-websites-768x439.avif 768w, https://josvelasco.com/wp-content/uploads/the-best-use-of-ai-for-building-wordpress-websites-1536x878.avif 1536w" sizes="auto, (max-width: 1792px) 100vw, 1792px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-21d4e958 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/the-best-use-of-ai-for-building-wordpress-websites/">The best use of AI for building WordPress websites</a></h3>
</div>
</div>



<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/how-to-use-staging-in-wordpress-for-safer-updates-and-testing/"><img loading="lazy" decoding="async" width="1200" height="675" src="https://josvelasco.com/wp-content/uploads/staging-mirror-wordpress.avif" alt="" class="wp-image-12303" srcset="https://josvelasco.com/wp-content/uploads/staging-mirror-wordpress.avif 1200w, https://josvelasco.com/wp-content/uploads/staging-mirror-wordpress-1024x576.jpg 1024w, https://josvelasco.com/wp-content/uploads/staging-mirror-wordpress-768x432.jpg 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-63bfd6c1 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/how-to-use-staging-in-wordpress-for-safer-updates-and-testing/">How to Use Staging in WordPress for Safer Updates and Testing</a></h3>
</div>
</div>



<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/optimizing-server-cache-for-news-websites-to-serve-fresh-content/"><img loading="lazy" decoding="async" width="1200" height="630" src="https://josvelasco.com/wp-content/uploads/server-cache-optimize.avif" alt="" class="wp-image-11265" srcset="https://josvelasco.com/wp-content/uploads/server-cache-optimize.avif 1200w, https://josvelasco.com/wp-content/uploads/server-cache-optimize-1024x538.jpg 1024w, https://josvelasco.com/wp-content/uploads/server-cache-optimize-768x403.jpg 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-63bfd6c1 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/optimizing-server-cache-for-news-websites-to-serve-fresh-content/">Optimizing Server Cache for News Websites to serve fresh content</a></h3>
</div>
</div>
</div>
</aside>
<p>La entrada <a href="https://josvelasco.com/ai-cant-save-the-world-but-it-saved-one-i-know/">AI Can&#8217;t Save the World. But It Saved One I Know.</a> se publicó primero en <a href="https://josvelasco.com">Jos Velasco</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://josvelasco.com/ai-cant-save-the-world-but-it-saved-one-i-know/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">15306</post-id>	</item>
		<item>
		<title>Simplifying WordPress Plugin Development with Telex</title>
		<link>https://josvelasco.com/simplifying-wordpress-plugin-development-with-telex/</link>
					<comments>https://josvelasco.com/simplifying-wordpress-plugin-development-with-telex/#comments</comments>
		
		<dc:creator><![CDATA[JosVelasco]]></dc:creator>
		<pubDate>Mon, 24 Nov 2025 17:51:04 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://josvelasco.com/?p=13991</guid>

					<description><![CDATA[<p>Learn how to build simple, efficient WordPress plugins and blocks directly in the browser using Telex. Discover practical tips for testing, updating with AI, improving compatibility, and keeping development lightweight—without complex local environments.</p>
<p>La entrada <a href="https://josvelasco.com/simplifying-wordpress-plugin-development-with-telex/">Simplifying WordPress Plugin Development with Telex</a> se publicó primero en <a href="https://josvelasco.com">Jos Velasco</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>One reason I like WordPress is that you can accomplish a lot without setting up local environments. This isn&#8217;t very difficult nowadays, but I still prefer working online. I love that with <a href="https://telex.automattic.ai/" target="_blank" rel="noreferrer noopener">Telex</a>, you can build plugins in your browser and keep them online for ongoing updates.</p>



<p>I prefer to keep things simple, so I&#8217;ve been focusing on building websites with hardly any plugins or using the ones that appear more popular or reliable.</p>



<p>Sometimes that&#8217;s not possible, and that&#8217;s when plugins or custom snippets can help. But even those require constant maintenance. Creating a block with Telex and the ability to update it with AI is awesome.</p>



<p>Here is a list of tips, ideas and considerations:</p>



<ul class="wp-block-list">
<li>You can update the code yourself by switching to the code tab. However, I find it more effective to ask the AI for modifications, or even to provide code in the chat or paste it from other open-source libraries.</li>



<li>Playground still occasionally gives errors, so it can be helpful to download the zip and install your plugin in a <a href="https://josvelasco.com/how-to-use-staging-in-wordpress-for-safer-updates-and-testing/">different environment.</a> I prefer to run it on a testing site online.</li>



<li>Try requesting multiple changes at once in the chat, since it may take a while for the plugin to update.</li>



<li>You can communicate with the tool in Spanish and probably in other languages.</li>



<li>This is mainly intended for simple blocks, but you could also create small, separate plugins that work together.</li>



<li>You can ask the tool to generate a shortcode for your plugin to improve its compatibility with other builders.</li>



<li>You can ask it to increase the version and even add a changelog to the documentation.</li>



<li>Telex is particularly effective at utilizing WordPress components and APIs. It doesn&#8217;t perform as well when extending Core blocks yet, but it&#8217;s suitable for creating new ones.</li>
</ul>



<p>I hope this information helps!</p>



<p>Jos Velasco.</p>



<aside class="wp-block-group alignfull has-global-padding is-layout-constrained wp-container-core-group-is-layout-06ba7afb wp-block-group-is-layout-constrained" style="margin-top:0;margin-bottom:0;padding-top:50px;padding-right:var(--wp--preset--spacing--50);padding-bottom:50px;padding-left:var(--wp--preset--spacing--50)">
<div class="wp-block-group is-vertical is-content-justification-center is-layout-flex wp-container-core-group-is-layout-ce155fab wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-large-font-size">Related content</h3>
</div>



<div class="wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-4935966c wp-block-columns-is-layout-flex" style="padding-right:0;padding-left:0">
<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/what-human-touches-can-be-implemented-to-improve-your-ai-generated-websites/"><img loading="lazy" decoding="async" width="1200" height="675" src="https://josvelasco.com/wp-content/uploads/human-touch.webp" alt="" class="wp-image-14188" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/human-touch.webp 1200w, https://josvelasco.com/wp-content/uploads/human-touch-1024x576.webp 1024w, https://josvelasco.com/wp-content/uploads/human-touch-768x432.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-21d4e958 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/what-human-touches-can-be-implemented-to-improve-your-ai-generated-websites/">What human touches can be implemented to improve your AI-generated websites?</a></h3>
</div>
</div>



<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/how-to-make-a-website-without-knowing-how-to-code/"><img loading="lazy" decoding="async" width="1200" height="630" src="https://josvelasco.com/wp-content/uploads/create-website-no-code-1.avif" alt="" class="wp-image-9857" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/create-website-no-code-1.avif 1200w, https://josvelasco.com/wp-content/uploads/create-website-no-code-1-1024x538.avif 1024w, https://josvelasco.com/wp-content/uploads/create-website-no-code-1-768x403.avif 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-63bfd6c1 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/how-to-make-a-website-without-knowing-how-to-code/">How to make a website without knowing how to code</a></h3>
</div>
</div>



<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/how-to-use-staging-in-wordpress-for-safer-updates-and-testing/"><img loading="lazy" decoding="async" width="1200" height="675" src="https://josvelasco.com/wp-content/uploads/staging-mirror-wordpress.avif" alt="" class="wp-image-12303" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/staging-mirror-wordpress.avif 1200w, https://josvelasco.com/wp-content/uploads/staging-mirror-wordpress-1024x576.jpg 1024w, https://josvelasco.com/wp-content/uploads/staging-mirror-wordpress-768x432.jpg 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-63bfd6c1 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/how-to-use-staging-in-wordpress-for-safer-updates-and-testing/">How to Use Staging in WordPress for Safer Updates and Testing</a></h3>
</div>
</div>
</div>
</aside>
<p>La entrada <a href="https://josvelasco.com/simplifying-wordpress-plugin-development-with-telex/">Simplifying WordPress Plugin Development with Telex</a> se publicó primero en <a href="https://josvelasco.com">Jos Velasco</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://josvelasco.com/simplifying-wordpress-plugin-development-with-telex/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">13991</post-id>	</item>
		<item>
		<title>Basic Web Design and Color Theory Tips</title>
		<link>https://josvelasco.com/basic-web-design-and-color-theory-tips/</link>
					<comments>https://josvelasco.com/basic-web-design-and-color-theory-tips/#respond</comments>
		
		<dc:creator><![CDATA[JosVelasco]]></dc:creator>
		<pubDate>Wed, 15 Oct 2025 00:54:10 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://josvelasco.com/?p=13821</guid>

					<description><![CDATA[<p>Ideally, you'd have brand guidelines with everything defined, but sometimes you only have a few pieces or design clues, like a brochure or a logo.</p>
<p>La entrada <a href="https://josvelasco.com/basic-web-design-and-color-theory-tips/">Basic Web Design and Color Theory Tips</a> se publicó primero en <a href="https://josvelasco.com">Jos Velasco</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>I am not a designer, but something has stuck with me over the years.</p>



<h2 class="wp-block-heading">Start from what you already have</h2>



<p>Ideally, you&#8217;d have brand guidelines with everything defined, but sometimes you only have a few pieces or design clues, like a brochure or a logo.</p>



<h3 class="wp-block-heading">Do you have a logo available?</h3>



<p>That is an immense quality asset that gives you a lot of information about the brand vibe, colors,  shapes, textures, and fonts.</p>



<p>If you don&#8217;t know how to read these, ask AI to help you analyze them.</p>



<p>For example, the IKEA<strong> </strong>logo teaches web designers:</p>



<ul class="wp-block-list">
<li>Use <strong>color intentionally</strong> — blue for trust, yellow for warmth.</li>



<li>Keep <strong>typography bold and legible</strong>.</li>



<li>Favor <strong>structure and simplicity</strong> over ornament.</li>



<li>Maintain <strong>consistency</strong> for lasting recognition.</li>



<li>Design for <strong>everyone</strong>, not just aesthetics.</li>
</ul>



<figure class="wp-block-image alignwide size-full wp-duotone-midnight-filter"><img loading="lazy" decoding="async" width="2560" height="1396" src="https://josvelasco.com/wp-content/uploads/ikea-scaled.avif" alt="" class="wp-image-13906" srcset="https://josvelasco.com/wp-content/uploads/ikea-scaled.avif 2560w, https://josvelasco.com/wp-content/uploads/ikea-1024x558.jpg 1024w, https://josvelasco.com/wp-content/uploads/ikea-768x419.jpg 768w, https://josvelasco.com/wp-content/uploads/ikea-1536x838.jpg 1536w, https://josvelasco.com/wp-content/uploads/ikea-2048x1117.jpg 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></figure>



<p>If you don&#8217;t incorporate your design elements, they will stay disconnected and not be part of the website.</p>



<p>If you only have a basic mood and don&#8217;t dedicate enough time, you&#8217;ll probably create a generic website.</p>



<p>Aim for the elements to build a unified experience.</p>



<h3 class="wp-block-heading">Do you have any text or media?</h3>



<p>Custom text, images, or video can tell you a story. </p>



<p>Slogans can help you with how the brand wants to sound. Serious? Friendly? Professional? Classic?</p>



<p>Listen to that voice to decide how web elements will look. For example, consider the text&#8217;s uppercase or lowercase, personal or corporate typography, and rounded or sharp shapes. Thin, bold, large or small, colorful or vintage.</p>



<p>If the website mainly showcases media, make it stand out! Use full-width images, background videos, or galleries with big thumbnails.</p>



<p>If you&#8217;re redesigning, consider how you can better present the elements. Provide more space or rearrange them.</p>



<p>If images look very similar, don&#8217;t present them on the same page; that can be boring. Every image deserves its place.</p>



<h3 class="wp-block-heading">If you don&#8217;t have anything, you&#8217;ll always have patterns</h3>



<p>Well-designed patterns can help you start solidly.</p>



<p><a href="https://wordpress.org/patterns/" target="_blank" rel="noreferrer noopener">Design patterns</a> give you a reliable foundation when you’re unsure where to begin. They provide structure, consistency, and balance, helping you focus on what matters — content and clarity.</p>



<figure class="wp-block-image alignwide size-full wp-duotone-midnight-filter"><img loading="lazy" decoding="async" width="2152" height="1282" src="https://josvelasco.com/wp-content/uploads/patterns.avif" alt="" class="wp-image-13911" srcset="https://josvelasco.com/wp-content/uploads/patterns.avif 2152w, https://josvelasco.com/wp-content/uploads/patterns-1007x600.jpg 1007w, https://josvelasco.com/wp-content/uploads/patterns-768x458.jpg 768w, https://josvelasco.com/wp-content/uploads/patterns-1536x915.jpg 1536w, https://josvelasco.com/wp-content/uploads/patterns-2048x1220.jpg 2048w" sizes="auto, (max-width: 2152px) 100vw, 2152px" /></figure>



<p>Well-designed patterns don’t limit creativity; they support it. By following proven layouts, spacing systems, and visual rhythms, you create harmony that feels intentional. Once that structure is in place, you can adapt, experiment, and let your unique style emerge with confidence.</p>



<p>If it&#8217;s not broken, don&#8217;t move it.</p>



<h2 class="wp-block-heading">Use an accent color to make elements stand out</h2>



<p>Set the accent color to something different from the primary color. The goal is to highlight elements, such as the background color of buttons, to make these calls to action stand out!</p>



<p>Whenever you list elements, use this accent color to make them noticeable and remind your users they are part of the brand.</p>



<p>Just remember not to overuse the accent color. If everything is highlighted, nothing will stand out.</p>



<figure class="wp-block-image alignwide size-full wp-duotone-midnight-filter"><img loading="lazy" decoding="async" width="2560" height="1402" src="https://josvelasco.com/wp-content/uploads/shakeshack-scaled.avif" alt="" class="wp-image-13900" srcset="https://josvelasco.com/wp-content/uploads/shakeshack-scaled.avif 2560w, https://josvelasco.com/wp-content/uploads/shakeshack-1024x561.jpg 1024w, https://josvelasco.com/wp-content/uploads/shakeshack-768x421.jpg 768w, https://josvelasco.com/wp-content/uploads/shakeshack-1536x841.jpg 1536w, https://josvelasco.com/wp-content/uploads/shakeshack-2048x1121.jpg 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /><figcaption class="wp-element-caption">Even the accept Cookie Notice uses the green accent color, which is the same as the logo. Easy.</figcaption></figure>



<h2 class="wp-block-heading">Use a logo that is easy to read</h2>



<p>If the logo is too small to read, increase its size.</p>



<p>You might be using a logo version in the wrong place. Is it too tall for a space better suited for horizontal layouts? This can create awkward empty areas.</p>



<p>Does the logo include a slogan? It shouldn&#8217;t, but if it&#8217;s hard to read, consider removing it or using a proper version.</p>



<h2 class="wp-block-heading">Use good quality images</h2>



<p>Even in these AI times, it can be harder to enlarge a small pixelated image than to downscale a larger one.</p>



<p>Does it look sharp? Does it look pixelated?</p>



<p>Is it too dark? If it is a photograph, is it well-lit?</p>



<p>Does it seem like part of the group?</p>



<p>A simple trick is to apply a filter to the images if they don&#8217;t look very similar. You could use one of the primary colors to help them feel like part of the whole.</p>



<h2 class="wp-block-heading">Dark or bright colors? Why not both?</h2>



<p>Using dark colors can help reduce eye strain and make elements look more cinematic and dramatic.</p>



<p>White suggests openness, transparency, and minimalism, making it easier to read long texts on a bright background.</p>



<p>If you can use both options, that can be interesting. Big brands like Apple use dark colors for their iPhone Pro models and white for other products like the Air.</p>



<figure class="wp-block-image alignwide size-full wp-duotone-midnight-filter"><img loading="lazy" decoding="async" width="2550" height="1424" src="https://josvelasco.com/wp-content/uploads/iPhone-pro-light.avif" alt="" class="wp-image-13897" srcset="https://josvelasco.com/wp-content/uploads/iPhone-pro-light.avif 2550w, https://josvelasco.com/wp-content/uploads/iPhone-pro-light-1024x572.jpg 1024w, https://josvelasco.com/wp-content/uploads/iPhone-pro-light-768x429.jpg 768w, https://josvelasco.com/wp-content/uploads/iPhone-pro-light-1536x858.jpg 1536w, https://josvelasco.com/wp-content/uploads/iPhone-pro-light-2048x1144.jpg 2048w" sizes="auto, (max-width: 2550px) 100vw, 2550px" /><figcaption class="wp-element-caption">They use dark and bright even on the same page.</figcaption></figure>



<h2 class="wp-block-heading">Let the elements breath</h2>



<p>Think about proper spacing, padding, and margins. Don&#8217;t be afraid of emptiness.</p>



<p>Space makes text easier to read and helps the eye rest.</p>



<p>Whitespace directs attention and makes key elements stand out.</p>



<p>Spacious layouts look confident and elegant, like Apple or Chanel.</p>



<p>Clean designs feel organized, intentional, and trustworthy.</p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>I hope this information helps.</strong></p>



<p>Jos Velasco.</p>



<aside class="wp-block-group alignfull has-global-padding is-layout-constrained wp-container-core-group-is-layout-06ba7afb wp-block-group-is-layout-constrained" style="margin-top:0;margin-bottom:0;padding-top:50px;padding-right:var(--wp--preset--spacing--50);padding-bottom:50px;padding-left:var(--wp--preset--spacing--50)">
<div class="wp-block-group is-vertical is-content-justification-center is-layout-flex wp-container-core-group-is-layout-ce155fab wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-large-font-size">Related content</h3>
</div>



<div class="wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-4935966c wp-block-columns-is-layout-flex" style="padding-right:0;padding-left:0">
<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/what-human-touches-can-be-implemented-to-improve-your-ai-generated-websites/"><img loading="lazy" decoding="async" width="1200" height="675" src="https://josvelasco.com/wp-content/uploads/human-touch.jpg" alt="" class="wp-image-13581" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/human-touch.jpg 1200w, https://josvelasco.com/wp-content/uploads/human-touch-1024x576.jpg 1024w, https://josvelasco.com/wp-content/uploads/human-touch-768x432.jpg 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-21d4e958 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/what-human-touches-can-be-implemented-to-improve-your-ai-generated-websites/">What human touches can be implemented to improve your AI-generated websites?</a></h3>
</div>
</div>



<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/what-is-the-best-way-to-build-a-website-for-a-client/"><img loading="lazy" decoding="async" width="1200" height="675" src="https://josvelasco.com/wp-content/uploads/jos-velasco-wordpress.webp" alt="" class="wp-image-13383" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/jos-velasco-wordpress.webp 1200w, https://josvelasco.com/wp-content/uploads/jos-velasco-wordpress-1024x576.webp 1024w, https://josvelasco.com/wp-content/uploads/jos-velasco-wordpress-768x432.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-63bfd6c1 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/what-is-the-best-way-to-build-a-website-for-a-client/">What is the best way to build a website for a client?</a></h3>
</div>
</div>



<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/my-stack-for-creating-wordpress-websites/"><img loading="lazy" decoding="async" width="1200" height="630" src="https://josvelasco.com/wp-content/uploads/My-stack-for-creating-WordPress-websites.jpg" alt="" class="wp-image-11067" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/My-stack-for-creating-WordPress-websites.jpg 1200w, https://josvelasco.com/wp-content/uploads/My-stack-for-creating-WordPress-websites-1024x538.jpg 1024w, https://josvelasco.com/wp-content/uploads/My-stack-for-creating-WordPress-websites-768x403.jpg 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-63bfd6c1 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/my-stack-for-creating-wordpress-websites/">My stack for creating WordPress websites in 2025</a></h3>
</div>
</div>
</div>
</aside>
<p>La entrada <a href="https://josvelasco.com/basic-web-design-and-color-theory-tips/">Basic Web Design and Color Theory Tips</a> se publicó primero en <a href="https://josvelasco.com">Jos Velasco</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://josvelasco.com/basic-web-design-and-color-theory-tips/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">13821</post-id>	</item>
		<item>
		<title>Why would you return something to WordPress?</title>
		<link>https://josvelasco.com/why-would-you-return-something-to-wordpress/</link>
					<comments>https://josvelasco.com/why-would-you-return-something-to-wordpress/#comments</comments>
		
		<dc:creator><![CDATA[JosVelasco]]></dc:creator>
		<pubDate>Tue, 16 Sep 2025 01:14:55 +0000</pubDate>
				<category><![CDATA[Event organizers]]></category>
		<guid isPermaLink="false">https://josvelasco.com/?p=13622</guid>

					<description><![CDATA[<p>By giving back to the tools you love, you support the community. It can be hard to realize or even think about, but it is true.</p>
<p>La entrada <a href="https://josvelasco.com/why-would-you-return-something-to-wordpress/">Why would you return something to WordPress?</a> se publicó primero en <a href="https://josvelasco.com">Jos Velasco</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>By giving back to the tools you love, you support the community. It can be hard to realize or even think about, but it is true.</p>



<p>There are many ways to <a href="https://wordpress.org/five-for-the-future/" target="_blank" rel="noreferrer noopener">contribute to WordPress</a>. I want to discuss the one I am most familiar with.</p>



<p>When you become a meetup organizer, amazing things happen immediately. You realize that people in your local community start recognizing you as someone associated with WordPress, meaning whenever someone needs a website, they look for you first.</p>



<p>A similar thing happens with speakers; some of them do it specifically to promote their services or products.</p>



<p>But what occurs when everyone in your local community already knows you? What happens if it doesn&#8217;t expand enough for everyone to gain directly?</p>



<p>Some people stop contributing and no longer serve as organizers or speakers because it amounts to unpaid work that could be used to gain customers elsewhere.</p>



<p>So doing it solely for direct benefits isn&#8217;t the best idea.</p>



<p>Understanding that giving back to a project like WordPress is something we should do even if we don&#8217;t get paid for a specific effort can sound even crazy.</p>



<p>Personally, I have been grateful for WordPress ever since I decided to build sites exclusively with it, as it has allowed me to travel, meet amazing customers and friends, and even my wife.</p>



<p>But I realize that not everyone has been as fortunate as I.</p>



<p>Every time someone new shows up at a local meetup, and tells me they saw the event on their dashboard, and that they have been using WordPress and are happy to connect with others, that feels like magic to me.</p>



<p>Just like I do, enabling people who otherwise wouldn&#8217;t have met and are grateful for the platform, I encourage you to give back and make others happy.</p>



<p>Whether you&#8217;re translating, answering support questions, teaching someone how to use WordPress, or creating a plugin, just do your thing!</p>



<p>That alone sometimes is enough reward and worth doing for everyone.</p>



<p>Jos Velasco.</p>



<p><a href="https://creativecommons.org/publicdomain/zero/1.0/">CC0</a> licensed <a href="https://wordpress.org/photos/photo/7166620f3c/">photo</a> by <a href="https://wordpress.org/photos/author/samalderson/">Sam Alderson</a> from the <a href="https://wordpress.org/photos/">WordPress Photo Directory</a>.</p>



<aside class="wp-block-group alignfull has-global-padding is-layout-constrained wp-container-core-group-is-layout-06ba7afb wp-block-group-is-layout-constrained" style="margin-top:0;margin-bottom:0;padding-top:50px;padding-right:var(--wp--preset--spacing--50);padding-bottom:50px;padding-left:var(--wp--preset--spacing--50)">
<div class="wp-block-group is-vertical is-content-justification-center is-layout-flex wp-container-core-group-is-layout-ce155fab wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-large-font-size">Related content</h3>
</div>



<div class="wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-4935966c wp-block-columns-is-layout-flex" style="padding-right:0;padding-left:0">
<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/things-we-forget-as-wordpress-in-person-event-organizers/"><img loading="lazy" decoding="async" width="1200" height="630" src="https://josvelasco.com/wp-content/uploads/wordcamp-bogota-2024-family.avif" alt="" class="wp-image-10533" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/wordcamp-bogota-2024-family.avif 1200w, https://josvelasco.com/wp-content/uploads/wordcamp-bogota-2024-family-1024x538.avif 1024w, https://josvelasco.com/wp-content/uploads/wordcamp-bogota-2024-family-768x403.avif 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-63bfd6c1 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/things-we-forget-as-wordpress-in-person-event-organizers/">Things we forget as WordPress in-person event organizers</a></h3>
</div>
</div>



<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/strengthening-skills-and-community-an-analogy-between-gym-memberships-and-wordpress-communities/"><img loading="lazy" decoding="async" width="1200" height="630" src="https://josvelasco.com/wp-content/uploads/community.webp" alt="" class="wp-image-13635" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/community.webp 1200w, https://josvelasco.com/wp-content/uploads/community-1024x538.webp 1024w, https://josvelasco.com/wp-content/uploads/community-768x403.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-21d4e958 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/strengthening-skills-and-community-an-analogy-between-gym-memberships-and-wordpress-communities/">Strengthening Skills and Community: An Analogy Between Gym Memberships and WordPress Communities</a></h3>
</div>
</div>



<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/hosting-successful-wordpress-meetups-without-a-budget-tips-tricks/"><img loading="lazy" decoding="async" width="1200" height="630" src="https://josvelasco.com/wp-content/uploads/host-events-with-low-budget.avif" alt="" class="wp-image-10652" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/host-events-with-low-budget.avif 1200w, https://josvelasco.com/wp-content/uploads/host-events-with-low-budget-1024x538.avif 1024w, https://josvelasco.com/wp-content/uploads/host-events-with-low-budget-768x403.avif 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-63bfd6c1 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/hosting-successful-wordpress-meetups-without-a-budget-tips-tricks/">Hosting Successful WordPress Meetups Without a Budget | Tips &amp; Tricks</a></h3>
</div>
</div>
</div>
</aside>
<p>La entrada <a href="https://josvelasco.com/why-would-you-return-something-to-wordpress/">Why would you return something to WordPress?</a> se publicó primero en <a href="https://josvelasco.com">Jos Velasco</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://josvelasco.com/why-would-you-return-something-to-wordpress/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">13622</post-id>	</item>
		<item>
		<title>What human touches can be implemented to improve your AI-generated websites?</title>
		<link>https://josvelasco.com/what-human-touches-can-be-implemented-to-improve-your-ai-generated-websites/</link>
					<comments>https://josvelasco.com/what-human-touches-can-be-implemented-to-improve-your-ai-generated-websites/#comments</comments>
		
		<dc:creator><![CDATA[JosVelasco]]></dc:creator>
		<pubDate>Tue, 09 Sep 2025 21:19:51 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://josvelasco.com/?p=13555</guid>

					<description><![CDATA[<p>Let's assume you have strong content to work from, so you fed your AI generator very well. What can you do to help AI make your sites feel more professional?</p>
<p>La entrada <a href="https://josvelasco.com/what-human-touches-can-be-implemented-to-improve-your-ai-generated-websites/">What human touches can be implemented to improve your AI-generated websites?</a> se publicó primero en <a href="https://josvelasco.com">Jos Velasco</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Let&#8217;s assume you have strong content to work from, so you fed your AI generator very well. What can <strong>you do</strong> to help AI make your sites feel more professional?</p>



<h2 class="wp-block-heading">The looks</h2>



<p>If your site resembles a template or has an AI-like feel, that&#8217;s the most obvious and easiest way to start. However, I&#8217;m focusing more on the fine details here, where things become so personal that it can be difficult for AI to bring something unique.</p>



<p>The kind of thing you ask AI, and it comes back with something corny and unusable.</p>



<p>This is where you can shine! But I&#8217;m not talking about making the logo bigger; I&#8217;m referring to what you can see beyond what AI can do <strong>if you don&#8217;t ask it</strong>: Does the logo look sharp enough? Is it taking too much vertical space? Is it readable?</p>



<p>When you see a piece of art, there is a balance that is not always solvable programmatically. The naked eye can be the most powerful tool to find balance among elements.</p>



<p>Zooming out, literally, helps you sense the harmony and identify where the design is too generic or which pieces you should remove.</p>



<p>There are patterns and color palettes that can take you closer to most cases using AI, but ultimately, the more appealing details are those that you can feel and add <strong>from your experience</strong>, like an original photo, or grabbing a small detail from the logo to replicate it as a separator, or as the background of a section to increase cohesion.</p>



<p>If you don&#8217;t have the official brand colors, you can use a color picker to get a closer match. If the logo has a primary color, that could be your accent color for some elements, like buttons or headings. Just don&#8217;t make everything use that color, because if you do, it won&#8217;t stand out.</p>



<p>Take information from AI, but expand it with your insights. For example, analyze the logo to find fonts that work well for your headings, matching the site&#8217;s tone if it&#8217;s fun or more serious.</p>



<p>Ask the customer what they want to communicate with their brand and imagine yourself in their position.</p>



<p>For example, for something fun, you could round the buttons or choose a bold font without serifs for headings. For something more serious, consider darker, elegant colors for backgrounds and square buttons.</p>



<p>Sometimes AI can guide you with these kinds of decisions, but it still doesn&#8217;t always implement them for you.</p>



<h2 class="wp-block-heading">But don&#8217;t change it too much</h2>



<p>Changing too many things at once makes it challenging to keep everything in balance.</p>



<p>The goal is not to redo what AI has done, but to build upon it.</p>



<p><strong>Limiting</strong> the number of colors or fonts can help to define the system. Asking the AI builder to work on a limited set of patterns can help with maintenance and enable users to better understand how the elements interact with each other.</p>



<p>Removing what you didn&#8217;t customize or that doesn&#8217;t make sense is better than having an always-under-construction page.</p>



<p>Remember, you can always go back to your pattern library to work privately.</p>



<p>Rather than always adding, create variations of your current assets to accommodate better your templates—for example, a compact horizontal logo, custom icons, etc.</p>



<h2 class="wp-block-heading">Remember websites are alive</h2>



<p>People who used to design books or other design applications often think websites should be built in one go and then remain unchanged forever.</p>



<p>I have to admit I have a few customers who haven&#8217;t updated their design in years because of this. Or maybe it&#8217;s because they’re not very invested in their own website.</p>



<p>Try to visit your website from time to time to give it some love. Just as you would with old plugins, consider removing your AI assistant if you no longer need it.</p>



<p>Try new ones. Nowadays, AI assistants are compatible with CMSs like WordPress, offering a wide range of services, from building to SEO, and everything in between.</p>



<p>But the most crucial part is not forgetting that these assist, and that you are the one who controls and decides. They often struggle to recall what to do without being given context.</p>



<p>You should be the one hallucinating with new ideas.</p>



<p>Jos Velasco.</p>



<p>This isn&#8217;t an ad, but a suggestion: if you&#8217;re interested in trying AI builders for WordPress, <a href="https://www.dreamhost.com/features/ai-website-builder/">Liftoff</a> is a great option. And if you need assistance, I&#8217;m happy to help.</p>



<p><a href="https://creativecommons.org/publicdomain/zero/1.0/">CC0</a> licensed <a href="https://wordpress.org/photos/photo/18766211b5/">photo</a> by <a href="https://wordpress.org/photos/author/samalderson/">Sam Alderson</a> from the <a href="https://wordpress.org/photos/">WordPress Photo Directory</a>.</p>



<aside class="wp-block-group alignfull has-global-padding is-layout-constrained wp-container-core-group-is-layout-06ba7afb wp-block-group-is-layout-constrained" style="margin-top:0;margin-bottom:0;padding-top:50px;padding-right:var(--wp--preset--spacing--50);padding-bottom:50px;padding-left:var(--wp--preset--spacing--50)">
<div class="wp-block-group is-vertical is-content-justification-center is-layout-flex wp-container-core-group-is-layout-ce155fab wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-large-font-size">Related content</h3>
</div>



<div class="wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-4935966c wp-block-columns-is-layout-flex" style="padding-right:0;padding-left:0">
<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/what-is-the-best-way-to-build-a-website-for-a-client/"><img loading="lazy" decoding="async" width="1200" height="675" src="https://josvelasco.com/wp-content/uploads/jos-velasco-wordpress.webp" alt="" class="wp-image-13383" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/jos-velasco-wordpress.webp 1200w, https://josvelasco.com/wp-content/uploads/jos-velasco-wordpress-1024x576.webp 1024w, https://josvelasco.com/wp-content/uploads/jos-velasco-wordpress-768x432.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-21d4e958 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/what-is-the-best-way-to-build-a-website-for-a-client/">What is the best way to build a website for a client?</a></h3>
</div>
</div>



<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/my-stack-for-creating-wordpress-websites/"><img loading="lazy" decoding="async" width="1200" height="630" src="https://josvelasco.com/wp-content/uploads/My-stack-for-creating-WordPress-websites-1.avif" alt="" class="wp-image-13584" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/My-stack-for-creating-WordPress-websites-1.avif 1200w, https://josvelasco.com/wp-content/uploads/My-stack-for-creating-WordPress-websites-1-1024x538.jpg 1024w, https://josvelasco.com/wp-content/uploads/My-stack-for-creating-WordPress-websites-1-768x403.jpg 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-63bfd6c1 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/my-stack-for-creating-wordpress-websites/">My stack for creating WordPress websites in 2025</a></h3>
</div>
</div>



<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/the-best-use-of-ai-for-building-wordpress-websites/"><img loading="lazy" decoding="async" width="1792" height="1024" src="https://josvelasco.com/wp-content/uploads/the-best-use-of-ai-for-building-wordpress-websites.avif" alt="" class="wp-image-10407" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/the-best-use-of-ai-for-building-wordpress-websites.avif 1792w, https://josvelasco.com/wp-content/uploads/the-best-use-of-ai-for-building-wordpress-websites-1024x585.avif 1024w, https://josvelasco.com/wp-content/uploads/the-best-use-of-ai-for-building-wordpress-websites-768x439.avif 768w, https://josvelasco.com/wp-content/uploads/the-best-use-of-ai-for-building-wordpress-websites-1536x878.avif 1536w" sizes="auto, (max-width: 1792px) 100vw, 1792px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-63bfd6c1 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/the-best-use-of-ai-for-building-wordpress-websites/">The best use of AI for building WordPress websites</a></h3>
</div>
</div>
</div>
</aside>
<p>La entrada <a href="https://josvelasco.com/what-human-touches-can-be-implemented-to-improve-your-ai-generated-websites/">What human touches can be implemented to improve your AI-generated websites?</a> se publicó primero en <a href="https://josvelasco.com">Jos Velasco</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://josvelasco.com/what-human-touches-can-be-implemented-to-improve-your-ai-generated-websites/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">13555</post-id>	</item>
		<item>
		<title>What is the best way to build a website for a client?</title>
		<link>https://josvelasco.com/what-is-the-best-way-to-build-a-website-for-a-client/</link>
					<comments>https://josvelasco.com/what-is-the-best-way-to-build-a-website-for-a-client/#comments</comments>
		
		<dc:creator><![CDATA[JosVelasco]]></dc:creator>
		<pubDate>Fri, 22 Aug 2025 19:04:11 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://josvelasco.com/?p=13377</guid>

					<description><![CDATA[<p>The best way to build a website depends on who you ask.<br />
To me, that is WordPress.</p>
<p>La entrada <a href="https://josvelasco.com/what-is-the-best-way-to-build-a-website-for-a-client/">What is the best way to build a website for a client?</a> se publicó primero en <a href="https://josvelasco.com">Jos Velasco</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>There are many ways to build a website nowadays.</p>



<p>The best way to build a website depends on who you ask.</p>



<p>To me, that is WordPress.</p>



<p>Sometimes it&#8217;s not about the technology, but the person building with it.</p>



<p>I could build a website with other CMSs like Drupal, but I am too invested in WordPress.</p>



<p>WordPress is so big, if I can&#8217;t build something specific, there&#8217;s a plugin for that.</p>



<p>But to be honest, I have been using fewer and fewer plugins.</p>



<p>So using fewer plugins is better for me.</p>



<p>Let&#8217;s explore further. WordPress is so extensive that there are many reliable builders to choose from!</p>



<p>Which one is the best?</p>



<p>To me, Gutenberg. That&#8217;s the builder included inside WordPress.</p>



<p>I&#8217;m no longer trying to persuade people about what to use.</p>



<p>Instead, I mainly stick to the Core, and that&#8217;s pretty much it. I just let WordPress generate the code.</p>



<p>But that&#8217;s boring, isn&#8217;t it? Where&#8217;s the custom code? The staging? The versioning code? The pushing to production? Working locally? Where are the custom post types? The custom fields?</p>



<p>I mainly create brochure sites using default custom post types and no extra fields. But I&#8217;ve managed to create more complex sites with a few plugins.</p>



<p>I enjoy the GUI for adding custom responsive fonts and images, as well as modifying global styles, patterns, and other visual static content.</p>



<p>I enjoy using WordPress. I&#8217;m one of those people.</p>



<p>Limited? Yes. But I am truly grateful for what&#8217;s possible now, even the small things like not having to install anything for the favicon.</p>



<p>It has been a good investment to learn the system. I always use the latest default theme to access the new, stable Gutenberg features.</p>



<p>I&#8217;m more focused on content, modern image formats, accessibility, and simplicity than on coding.</p>



<p>I know the Site Editor is still confusing to use. Still, back in my days, the enormous amount of CSS and custom PHP functions I had to add to make a design pixel-perfect and compatible with other browsers made me realize there’s no point in spending so much time on trends.</p>



<p>All the builders, whether open or closed, follow the same direction, utilizing blocks and a way to define a consistent global style.</p>



<p>The best way to build a website is one that allows you to do more with less, and is integrated into the Core of what you use.</p>



<p>It&#8217;s for others to continue focusing on extreme performance and defining highly specific user roles and personalization, even if it leads to unnecessary additional costs.</p>



<p>There are easier ways if we don&#8217;t underestimate our clients. They can pick up WordPress quickly if we set things up nicely for them.</p>



<p>Jos Velasco.</p>



<aside class="wp-block-group alignfull has-global-padding is-layout-constrained wp-container-core-group-is-layout-06ba7afb wp-block-group-is-layout-constrained" style="margin-top:0;margin-bottom:0;padding-top:50px;padding-right:var(--wp--preset--spacing--50);padding-bottom:50px;padding-left:var(--wp--preset--spacing--50)">
<div class="wp-block-group is-vertical is-content-justification-center is-layout-flex wp-container-core-group-is-layout-ce155fab wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-large-font-size">Related content</h3>
</div>



<div class="wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-4935966c wp-block-columns-is-layout-flex" style="padding-right:0;padding-left:0">
<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/my-stack-for-creating-wordpress-websites/"><img loading="lazy" decoding="async" width="1200" height="630" src="https://josvelasco.com/wp-content/uploads/My-stack-for-creating-WordPress-websites.jpg" alt="" class="wp-image-11067" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/My-stack-for-creating-WordPress-websites.jpg 1200w, https://josvelasco.com/wp-content/uploads/My-stack-for-creating-WordPress-websites-1024x538.jpg 1024w, https://josvelasco.com/wp-content/uploads/My-stack-for-creating-WordPress-websites-768x403.jpg 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-21d4e958 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/my-stack-for-creating-wordpress-websites/">My stack for creating WordPress websites in 2025</a></h3>
</div>
</div>



<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><a href="https://josvelasco.com/the-best-use-of-ai-for-building-wordpress-websites/"><img loading="lazy" decoding="async" width="1792" height="1024" src="https://josvelasco.com/wp-content/uploads/the-best-use-of-ai-for-building-wordpress-websites.jpg" alt="" class="wp-image-10408" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/the-best-use-of-ai-for-building-wordpress-websites.jpg 1792w, https://josvelasco.com/wp-content/uploads/the-best-use-of-ai-for-building-wordpress-websites-1024x585.jpg 1024w, https://josvelasco.com/wp-content/uploads/the-best-use-of-ai-for-building-wordpress-websites-768x439.jpg 768w, https://josvelasco.com/wp-content/uploads/the-best-use-of-ai-for-building-wordpress-websites-1536x878.jpg 1536w" sizes="auto, (max-width: 1792px) 100vw, 1792px" /></a></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-63bfd6c1 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/the-best-use-of-ai-for-building-wordpress-websites/">The best use of AI for building WordPress websites</a></h3>
</div>
</div>



<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><img loading="lazy" decoding="async" width="1200" height="630" src="https://josvelasco.com/wp-content/uploads/create-website-no-code.jpg" alt="" class="wp-image-8359" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/create-website-no-code.jpg 1200w, https://josvelasco.com/wp-content/uploads/create-website-no-code-1024x538.jpg 1024w, https://josvelasco.com/wp-content/uploads/create-website-no-code-768x403.jpg 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-63bfd6c1 wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-medium-font-size wp-container-content-32e3a40d"><a href="https://josvelasco.com/how-to-make-a-website-without-knowing-how-to-code/">How to make a website without knowing how to code</a></h3>
</div>
</div>
</div>
</aside>
<p>La entrada <a href="https://josvelasco.com/what-is-the-best-way-to-build-a-website-for-a-client/">What is the best way to build a website for a client?</a> se publicó primero en <a href="https://josvelasco.com">Jos Velasco</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://josvelasco.com/what-is-the-best-way-to-build-a-website-for-a-client/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">13377</post-id>	</item>
		<item>
		<title>How to Record a Smooth Multi-Person Panel Video Using Just Two Phones</title>
		<link>https://josvelasco.com/how-to-record-a-smooth-multi-person-panel-video-using-just-two-phones/</link>
					<comments>https://josvelasco.com/how-to-record-a-smooth-multi-person-panel-video-using-just-two-phones/#comments</comments>
		
		<dc:creator><![CDATA[JosVelasco]]></dc:creator>
		<pubDate>Mon, 05 May 2025 18:22:00 +0000</pubDate>
				<category><![CDATA[Event organizers]]></category>
		<guid isPermaLink="false">https://josvelasco.com/?p=12556</guid>

					<description><![CDATA[<p>This approach delivers crisp sound and fluid conversation while avoiding the cost and complexity of using mixers or professional microphones.</p>
<p>La entrada <a href="https://josvelasco.com/how-to-record-a-smooth-multi-person-panel-video-using-just-two-phones/">How to Record a Smooth Multi-Person Panel Video Using Just Two Phones</a> se publicó primero en <a href="https://josvelasco.com">Jos Velasco</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Creating a high-quality, multi-participant video doesn’t have to break the bank. In this post, I’ll share a simple yet powerful setup for recording a small roundtable discussion panel with just <strong>two smartphones</strong>—one for <strong>video</strong> and one for <strong>audio</strong>. This approach delivers <strong>crisp sound</strong> and <strong>fluid conversation flow</strong>, while avoiding the cost and complexity of using mixers or professional microphones.</p>



<h2 class="wp-block-heading">Why Use This Setup?</h2>



<p>When recording in-person panel discussions, many creators either:</p>



<ul class="wp-block-list">
<li>Use a bunch of microphones with a mixer (expensive and complicated),</li>



<li>Rely solely on a phone&#8217;s internal mic (easy but poor audio), or</li>



<li>Face issues with overlapping voices, mic handling noise, or audio sync problems.</li>
</ul>



<p>This setup avoids all of that by <strong>combining simplicity and quality</strong>.</p>



<h2 class="wp-block-heading">The Gear You Need</h2>



<ol class="wp-block-list">
<li><strong>Phone #1 – Video Camera</strong>
<ul class="wp-block-list">
<li>Set this phone to record the full shot of your panel.</li>



<li>Place it on a tripod or a stable surface for a steady view, or move it around to focus on the active participant.</li>
</ul>
</li>



<li><strong>Phone #2 – Audio Recorder</strong>
<ul class="wp-block-list">
<li>Use the built-in voice recording app.</li>



<li>Hold it like a mic: each participant speaks into it during their turn.</li>
</ul>
</li>
</ol>



<figure class="wp-block-image size-large wp-duotone-midnight-filter"><img loading="lazy" decoding="async" width="1024" height="576" src="https://josvelasco.com/wp-content/uploads/example-phone-record-1024x576.jpg" alt="" class="wp-image-12564" srcset="https://josvelasco.com/wp-content/uploads/example-phone-record-1024x576.jpg 1024w, https://josvelasco.com/wp-content/uploads/example-phone-record-768x432.jpg 768w, https://josvelasco.com/wp-content/uploads/example-phone-record-1536x864.jpg 1536w, https://josvelasco.com/wp-content/uploads/example-phone-record.jpg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">The Smart Audio Trick</h2>



<p>Here’s the key idea: instead of using a central mic or lapels, you <strong>pass the recording phone around</strong>—not constantly, just subtly. The person speaking holds it lightly or has it in front of them.</p>



<p>Benefits:</p>



<ul class="wp-block-list">
<li><strong>Better sound quality</strong> because they’re close to the mic.</li>



<li><strong>Less crosstalk</strong>, since people are encouraged to speak in turn.</li>



<li><strong>Avoids mic rustle</strong> from clipped-on devices or desk-mounted options.</li>
</ul>



<p>It also adds a rhythm to the conversation that makes it more engaging.</p>



<h2 class="wp-block-heading">Post-Production: Syncing in Final Cut Pro or similar</h2>



<p>Once you&#8217;re done recording:</p>



<ol class="wp-block-list">
<li>Import both files into <strong>Final Cut Pro</strong>.</li>



<li>Use the <strong>automatic sync</strong> function (or manually align waveforms).</li>



<li>Mute the video’s original audio, and use the cleaner audio from Phone #2.</li>
</ol>



<p>Final Cut Pro and most modern video editors like DaVinci Resolve or Premiere Pro handle this very well.</p>



<h2 class="wp-block-heading">Budget-Friendly and Effective</h2>



<p>This method is:</p>



<ul class="wp-block-list">
<li><strong>Cost-efficient</strong>: No mixers, no XLR mics.</li>



<li><strong>Simple</strong>: Anyone with two smartphones can do it.</li>



<li><strong>Flexible</strong>: Works in coffee shops, co-working spaces, or home studios.</li>
</ul>



<p>You get <strong>professional-sounding audio</strong>, <strong>clean video</strong>, and a <strong>natural debate format</strong> that encourages turn-taking and clarity.</p>



<h2 class="wp-block-heading">Final Tips</h2>



<ul class="wp-block-list">
<li>Do a 5-second countdown before you start, so syncing is easier.</li>



<li>Ask guests not to tap or grip the phone tightly.</li>



<li>Test for ambient noise and choose a quiet spot if possible.</li>



<li>Make sure both phones have enough batteries and space and don&#8217;t auto-lock.</li>
</ul>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Whether you’re filming a podcast, a local panel, or a behind-the-scenes discussion, this two-phone method is a game-changer. It keeps your production lightweight and focused on conversation, not on gear.</p>



<h2 class="wp-block-heading">Example video</h2>



<figure class="wp-block-embed is-type-video is-provider-wordpress-tv-embed wp-block-embed-wordpress-tv-embed wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="VideoPress Video Player" aria-label='VideoPress Video Player' width='500' height='281' src='https://video.wordpress.com/embed/MBTo0kc4?hd=1&amp;cover=1' frameborder='0' allowfullscreen allow='clipboard-write'></iframe><script src='https://v0.wordpress.com/js/next/videopress-iframe.js?m=1739540970'></script>
</div><figcaption class="wp-element-caption"><a href="https://wordpress.tv/2025/05/05/tecnologias-obsoletas-con-wordpress-panel-de-discusion/">Tecnologías obsoletas con WordPress – Panel de discusión</a></figcaption></figure>



<p>Jos Velasco.</p>



<p><a href="https://creativecommons.org/publicdomain/zero/1.0/">CC0</a> licensed <a href="https://wordpress.org/photos/photo/813633deeb/">photo</a> by <a href="https://wordpress.org/photos/author/mdburnette/">mdburnette</a> from the <a href="https://wordpress.org/photos/">WordPress Photo Directory</a>.</p>



<p>If you want a more advanced setup, I suggest <a href="https://wordpress.tv/2025/04/14/how-to-record-a-live-talk/">watching this video</a>:</p>



<figure class="wp-block-embed is-type-video is-provider-wordpress-tv-embed wp-block-embed-wordpress-tv-embed wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="VideoPress Video Player" aria-label='VideoPress Video Player' width='500' height='281' src='https://video.wordpress.com/embed/f9Xnnysx?hd=1&amp;cover=1' frameborder='0' allowfullscreen allow='clipboard-write'></iframe><script src='https://v0.wordpress.com/js/next/videopress-iframe.js?m=1739540970'></script>
</div></figure>



<p>Subscribe to my blog for more tips on WordPress and organizing events.</p>
<p>La entrada <a href="https://josvelasco.com/how-to-record-a-smooth-multi-person-panel-video-using-just-two-phones/">How to Record a Smooth Multi-Person Panel Video Using Just Two Phones</a> se publicó primero en <a href="https://josvelasco.com">Jos Velasco</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://josvelasco.com/how-to-record-a-smooth-multi-person-panel-video-using-just-two-phones/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">12556</post-id>	</item>
		<item>
		<title>How to Use Staging in WordPress for Safer Updates and Testing</title>
		<link>https://josvelasco.com/how-to-use-staging-in-wordpress-for-safer-updates-and-testing/</link>
					<comments>https://josvelasco.com/how-to-use-staging-in-wordpress-for-safer-updates-and-testing/#comments</comments>
		
		<dc:creator><![CDATA[JosVelasco]]></dc:creator>
		<pubDate>Sun, 30 Mar 2025 17:30:44 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://www.josvelasco.com/?p=11924</guid>

					<description><![CDATA[<p>Learn how to use Staging in WordPress to safely test updates, redesigns, or new features without breaking your live site. Ideal for non-dev users.</p>
<p>La entrada <a href="https://josvelasco.com/how-to-use-staging-in-wordpress-for-safer-updates-and-testing/">How to Use Staging in WordPress for Safer Updates and Testing</a> se publicó primero en <a href="https://josvelasco.com">Jos Velasco</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>If you run a small business site, blog, or community project using WordPress, this guide is for you.</p>



<p>While consulting clients with WordPress websites and dealing with support, I&#8217;ve learned that <strong>Staging can be challenging</strong> to understand.</p>



<p>Having a copy of your data to play around with is magical because it enables non-technical users to try updating plugins or snippets without risking the appearance or functionality of their website.</p>



<h2 class="wp-block-heading">WordPress can be complicated</h2>



<p>WordPress for regular projects means using the CMS, the plugins that extend it, and themes. This is mainly <strong>using the community code</strong> rather than building something from the ground up.</p>



<p>You won&#8217;t need a version control system if you are not building your plugins or a custom theme.</p>



<p>Changelogs can be hard to read, but since most of the changes will probably not affect your website, they can help you understand what is happening with its components.</p>



<p>That’s why I think that for a regular site, having a Staging version where you can update everything at once to detect incompatibilities is the <strong>fastest and safest way</strong> to update or explore new functions.</p>



<p>If you know me, I prefer to enable auto-updates for everything. That is because I know which robust plugins to use.</p>



<p>That being said, Autoupdates are often not available in Staging environments. So, how would you know if something is going to break?</p>



<p>Sometimes, turning off auto-updates for critical plugins and manually test updates is best.</p>



<p>Or you could <strong>create a mirror</strong> of your site in a public folder and hide it from indexing and behind a wall, for example, for registered users only.</p>



<p>I’m talking from theory since I only enable auto-updates for non-critical sites with low budgets. I always have an established way to restore or have someone help if there is an emergency.</p>



<h2 class="wp-block-heading">Changing a theme or redesigning in Staging</h2>



<p>In general, Staging works well for <strong>testing quick things</strong>.</p>



<p>Suppose your redesign takes more than a few hours, or the site is critical. In that case, I don’t suggest using a staging environment but rather a mirror: a separate WordPress instance, even on another server.</p>



<p>In my case, I like <strong>working on my own server</strong> since I know exactly how it behaves. When the development is ready, I migrate it to the production server, always having enough time to test, maybe even in a subdomain or subfolder.</p>



<p>Consider that for most Staging environments, you’d need to have a way to backup your work if your hosting doesn’t support backing up your Staging. You could use a plugin for this. Remember that staging is not meant to back up your production site but rather explore or test features. </p>



<p>Also, if your theme stores configuration mainly in the database rather than files, like block themes, you could lose information when synchronizing to the production staging. There are always workarounds like exporting all your changes to files with plugins like the <a href="https://wordpress.org/plugins/create-block-theme/">Create Block theme</a>.</p>



<h2 class="wp-block-heading">There are no shortcuts or magic plugins</h2>



<p>Even with powerful tools like <a href="https://wp-cli.org/">WP-CLI</a> to manipulate the database, avoiding synchronizing is the best strategy to reduce risk.</p>



<p>The consequences of working on a Staging site can add up. <strong>Keep it simple</strong>, and if possible, apply changes to production. Try to keep your staging and production databases aligned to ensure smoother deployments.</p>



<p>This will require <strong>working as a team</strong>, not only on the technical side but also on the content side, so both versions are ready to deploy in case something goes wrong.</p>



<p>If you’re curious about staging environments or want to try one yourself, check out <a href="https://www.dreamhost.com/wordpress/managed/"><strong>DreamPress Managed Hosting</strong></a> — or <a href="https://www.josvelasco.com/contact/">contact me</a>. I’d be happy to help.</p>



<p><em>Jos Velasco.</em></p>



<p><a href="https://creativecommons.org/publicdomain/zero/1.0/">CC0</a>&nbsp;licensed&nbsp;<a href="https://wordpress.org/photos/photo/836634d991/">photo</a>&nbsp;by&nbsp;<a href="https://wordpress.org/photos/author/michelleames/">Michelle Frechette</a>&nbsp;from the&nbsp;<a href="https://wordpress.org/photos/">WordPress Photo Directory</a>.</p>



<aside class="wp-block-group alignfull has-global-padding is-layout-constrained wp-container-core-group-is-layout-06ba7afb wp-block-group-is-layout-constrained" style="margin-top:0;margin-bottom:0;padding-top:50px;padding-right:var(--wp--preset--spacing--50);padding-bottom:50px;padding-left:var(--wp--preset--spacing--50)">
<div class="wp-block-group is-vertical is-content-justification-center is-layout-flex wp-container-core-group-is-layout-ce155fab wp-block-group-is-layout-flex">
<h3 class="wp-block-heading has-text-align-center has-large-font-size">Related content</h3>
</div>



<div class="wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-4935966c wp-block-columns-is-layout-flex" style="padding-right:0;padding-left:0">
<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><img loading="lazy" decoding="async" width="1200" height="630" src="https://www.josvelasco.com/wp-content/uploads/not-develop-locally.avif" alt="" class="wp-image-9939" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/not-develop-locally.avif 1200w, https://josvelasco.com/wp-content/uploads/not-develop-locally-1024x538.avif 1024w, https://josvelasco.com/wp-content/uploads/not-develop-locally-768x403.avif 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-63bfd6c1 wp-block-group-is-layout-flex">
<p class="has-text-align-center has-medium-font-size"><a href="https://www.josvelasco.com/why-i-dont-develop-wordpress-websites-locally/"><strong>Why I don’t develop WordPress websites locally</strong></a></p>
</div>
</div>



<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><img loading="lazy" decoding="async" width="1200" height="630" src="https://www.josvelasco.com/wp-content/uploads/My-stack-for-creating-WordPress-websites.avif" alt="" class="wp-image-11267" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/My-stack-for-creating-WordPress-websites.avif 1200w, https://josvelasco.com/wp-content/uploads/My-stack-for-creating-WordPress-websites-1024x538.jpg 1024w, https://josvelasco.com/wp-content/uploads/My-stack-for-creating-WordPress-websites-768x403.jpg 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-63bfd6c1 wp-block-group-is-layout-flex">
<p class="has-text-align-center has-medium-font-size"><a href="https://www.josvelasco.com/my-stack-for-creating-wordpress-websites/"><strong>My stack for creating WordPress websites in 2025</strong></a></p>
</div>
</div>



<div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-a77db08e wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-style-default wp-duotone-midnight-filter" style="margin-bottom:0;padding-bottom:var(--wp--preset--spacing--20)"><img loading="lazy" decoding="async" width="1200" height="630" src="https://www.josvelasco.com/wp-content/uploads/server-cache-optimize.avif" alt="" class="wp-image-11265" style="aspect-ratio:16/9;object-fit:cover" srcset="https://josvelasco.com/wp-content/uploads/server-cache-optimize.avif 1200w, https://josvelasco.com/wp-content/uploads/server-cache-optimize-1024x538.jpg 1024w, https://josvelasco.com/wp-content/uploads/server-cache-optimize-768x403.jpg 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>



<div class="wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-21d4e958 wp-block-group-is-layout-flex">
<p class="has-text-align-center has-medium-font-size"><a href="https://www.josvelasco.com/optimizing-server-cache-for-news-websites-to-serve-fresh-content/"><strong>Optimizing Server Cache for News Websites to serve fresh content</strong></a></p>
</div>
</div>
</div>
</aside>
<p>La entrada <a href="https://josvelasco.com/how-to-use-staging-in-wordpress-for-safer-updates-and-testing/">How to Use Staging in WordPress for Safer Updates and Testing</a> se publicó primero en <a href="https://josvelasco.com">Jos Velasco</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://josvelasco.com/how-to-use-staging-in-wordpress-for-safer-updates-and-testing/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">11924</post-id>	</item>
	</channel>
</rss>
