<?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>Web Design &amp; Development &#8211; Tilted Chair</title>
	<atom:link href="https://tiltedchair.co/category/web-design-web-development/feed/" rel="self" type="application/rss+xml" />
	<link>https://tiltedchair.co</link>
	<description>Rescuing Heritage Restaurants With Smart Branding</description>
	<lastBuildDate>Tue, 06 Oct 2026 12:50:51 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>

<image>
	<url>https://tiltedchair.co/wp-content/uploads/2026/09/cropped-TC-Logo-2024-Profile_Word-Stack-White-BG-copy-6-32x32.webp</url>
	<title>Web Design &amp; Development &#8211; Tilted Chair</title>
	<link>https://tiltedchair.co</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>10 Things I Hate About Webflow (And a Few Things I Really Love, Too)</title>
		<link>https://tiltedchair.co/10-things-i-hate-about-webflow-and-a-few-things-i-really-love-too/</link>
		
		<dc:creator><![CDATA[Jamie Rodriguez]]></dc:creator>
		<pubDate>Mon, 21 Apr 2025 21:55:05 +0000</pubDate>
				<category><![CDATA[Web Design & Development]]></category>
		<category><![CDATA[Webflow]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://tiltedchair.co/?p=12404</guid>

					<description><![CDATA[As much as we love WordPress over here at Tilted Chair, there might come a day when WordPress’ dominance on the web wanes. (And for his part, WordPress creator Matt Mullenweg isn’t exactly instilling confidence in the platform by exploring astounding new frontiers of petulance virtually every week. That, of course, is neither here nor [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>As much as we love WordPress over here at Tilted Chair, there might come a day when WordPress’ dominance on the web wanes. (And for his part, WordPress creator Matt Mullenweg isn’t exactly instilling confidence in the platform by <a href="https://www.searchenginejournal.com/mullenweg-considers-delaying-wordpress-releases-through-2027/541821/" target="_blank" rel="noopener">exploring astounding new frontiers of petulance</a> virtually every week. That, of course, is neither here nor there&#8230;)</p>
<p>As such, we spend a good amount of time exploring modern and emerging alternative website platforms. We’re on the cutting edge over here at TC. We’re <em>hip</em>, as the kids say.</p>
<p>One platform that keeps popping up over and over is Webflow. And we’re not going to lie: it’s <em>dazzling</em>. (Just look at that <a href="https://webflow.com" target="_blank" rel="noopener">homepage</a>.)</p>
<p>Webflow just feels like a big idea: it’s basically what would happen if a more refined and controlled WordPress made a baby with a SaaS product. Look at those animations. Look at those beautiful hover behaviors. Look at those transitions. Wow.</p>
<h2>Nothing is perfect, though, and that’s kind of the point of this article.</h2>
<p>Webflow, despite its amazing current state, does have some issues. And we wouldn’t be so brash as to assume that the Webflow product team might read this, but in the event that someone who is considering the platform does, we hope that this evaluation provides some good insights into what some of the limitations of the platform might be.</p>
<h2>So, without further ado: here are 10 things I hate about Webflow.</h2>
<h3>#1: No “deep” class stacking</h3>
<p>This is the most complicated of our list of grievances, so please, bear with us.</p>
<p>Finsweet’s Client-First has published <a href="https://finsweet.com/client-first/docs/classes-strategy-1" target="_blank" rel="noopener">comprehensive documentation</a> about Webflow development best-practices, and in it, they cover the concept of class stacking. (Don’t worry if you’re unfamiliar with Finsweet&#8230;we’ll get back to them later.) <em>Class stacking</em> is the practice of “stacking” CSS classes on top of HTML elements. Some amount of class stacking is required in Webflow to avoid having unbearably complex individual classes, and lots of them. Client-First covers the necessity for and proper use of class stacks (or as Finsweet calls them, “combo classes”) in the aforementioned article about combo classes:</p>
<blockquote><p>We define the &#8220;base class&#8221; as the first class in our list of stacked combo classes in a combo class. We add a class on top of the base class to create a unique variation.</p>
<p>The added class that gives the unique variation uses the class prefix of is-.</p>
<p>The stacked combo class will only work when combined with the base class(es) before it. In the video below, understand that is-brand does not work alone. It only works as an addition to the base button class.</p></blockquote>
<p>However, here’s the hangup: the order in which classes are stacked on an element <em>matters</em>, and it’s the very reason that deep class stacking isn’t possible/useful in Webflow.</p>
<p>If, for instance, you tried to go the deep stacking route—something we do in WordPress all the time—and stacked seven classes, one after another on an HTML element, it’s not possible to go delete the fourth element without deleting the three elements that come after it in the CSS class list.</p>
<h4>If this is getting a little abstract and complicated, let’s switch to a real-world example.</h4>
<p>Here’s a stack of classes pulled directly from the <em>article</em> HTML element containing the very text you’re reading right now:</p>
<p><img decoding="async" src="https://tiltedchair.co/wp-content/uploads/2025/04/wordpress-class-stacking.webp" alt="Demonstration of “deep” class stacking in WordPress." width="100%" height="auto" /></p>
<p>This is deep class stacking at its finest.</p>
<p>Each of the listed classes does <em>one thing</em>: the <em>grid-50</em> class is a global class that gives that element a width of 50% on desktop, the <em>tablet-grid-50</em> class does the same thing but on the tablet viewport, the <em>mobile-grid-100</em> says that at 767px and smaller, assume 100% of the viewport width, <em>article-body</em> is a custom class that allows us target that element specifically, and <em>padding-top-0</em> is one last global class that kills the padding at the top of that element.</p>
<p>Furthermore, all of these classes can be removed or re-ordered with no complications whatsoever.</p>
<h4>This is not possible in Webflow.</h4>
<p>Here is the same set up of classes, but in Webflow:</p>
<p><img decoding="async" src="https://tiltedchair.co/wp-content/uploads/2025/04/deep-class-stacking-on-webflow.webp" alt="Ineffective “deep” class stacking in Webflow." width="100%" height="auto" /></p>
<p>This same approach in Webflow effectively creates one giant combo class comprising all six classes listed here. Meaning, whatever styling changes I make to this arrangement of CSS classes applies only when all six of these classes are present together, and in this order. Furthermore, you can’t eliminate a class in the middle without first eliminating the classes that come after it.</p>
<p>Meaning, if I wanted to go in and change the <em>mobile-grid-100</em> glass to <em>mobile-grid-50</em>, I would have to delete <em>padding-top-0</em> and <em>article-body</em> to get to the <em>mobile-grid-100</em> class to delete it and then add the <em>mobile-grid-50</em> class as a replacement.</p>
<p>This is not a challenge that exists when writing raw CSS (like we do in WordPress).</p>
<h3>#2: No repeater fields in CMS libraries</h3>
<p>When building in WordPress, we use repeater fields—or as they’re called in Carbon Fields, <em>complex</em> fields—literally all the time. Here’s an example of that feature in use on our own website:</p>
<p><img decoding="async" src="https://tiltedchair.co/wp-content/uploads/2025/04/complex-fields-wordpress-carbon-fields.webp" alt="Example of Carbon Fields custom fields feature as used in the Tilted Chair Website." width="100%" height="auto" /></p>
<p>The <em>complex</em> field allows us to render an undefined number of elements.</p>
<p>You see that little “+” tab next to the “3”? That means we can continue to add as many more tabs as we like without informing the website of just how many there will be. Carbon Fields doesn’t care, it will simply render as many as are activated and populated.</p>
<h4>There is no such feature in Webflow’s CMS libraries:</h4>
<p><img decoding="async" src="https://tiltedchair.co/wp-content/uploads/2025/04/custom-fields-webflow.webp" alt="Absence of repeater or complex fields in Webflow’s CMS library custom fields menu." width="100%" height="auto" /></p>
<p>It’s something that’s been asked for repeatedly by Webflow users for <a href="https://wishlist.webflow.com/ideas/WEBFLOW-I-240" target="_blank" rel="noopener">nearly a decade now</a>, and yet, still has not been added yet.</p>
<h3>#3: Can’t really use complex <em>:nth-child</em> pseudo-class</h3>
<p><em>nth-child</em> is a super useful CSS pseudo-class that allows us to add styling to repeated elements of a more complex HTML component. To avoid elongating the article any more than absolutely necessary, <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-child" target="_blank" rel="noopener">we’ll allow Mozilla to explain</a>.</p>
<h4>How and when are <em>nth-child</em> pseudo-classes used?</h4>
<p><a href="https://cercadomain.com/availability/" target="_blank" rel="noopener">Here’s a great example</a> of a simple <em>nth-child</em> pseudo-class being used on the WordPress website we built for Cerca at the Domain.</p>
<p>As it turns out, Webflow <a href="https://webflow.com/updates/style-first-last-even-and-odd-items-in-collection-lists" target="_blank" rel="noopener">has added support</a> for the most simple uses of <em>nth-child</em> pseudo-class—first, last, even, odd—which is great.</p>
<p>However, more complex <em>nth-child</em> formulas are not possible in the Webflow Designer menu.</p>
<p>Let’s say, for instance, that you wanted every third <em>p</em> element to have a light gray background color based on its position in the sequence relative to the other <em>p</em> elements in the component. Using the <em>nth-child</em> pseudo-class, you could implement something like this:</p>
<p><code>p:nth-child(3n+3) { background-color: var(--light-gray); }</code><code></code></p>
<p>The formula dictates that every third p element gets specific styling:</p>
<p>3*0=0, 0+3=3</p>
<p>3*1=3, 3+3=6</p>
<p>3*2=6, 6+3=9</p>
<p>etc.</p>
<p>This can be an incredibly useful and powerful instantiation of the <em>nth-child</em> pseudo-class.</p>
<p>In Webflow, to define something this complex, you would have to add custom code to the head of either the page or the global site, which means you wouldn’t be able to define nor see the styling when building. Which kind of defeats the purpose of the Designer to begin with.</p>
<p>Small gripe, but something we would love Webflow to do something about.</p>
<h3>#4: Can’t have two people in “Designer” mode at one time</h3>
<p>Pretty self-explanatory, and seems rather easy to solve: just lock/make inaccessible any pages, CMS libraries, or template files that are currently being accessed by any other user logged in via Designer. (We’re not product people, so if this isn’t as simple as we’re making it seem, please forgive us.)</p>
<h3>#5: CMS library limits</h3>
<p>The most basic, <a href="https://webflow.com/pricing" target="_blank" rel="noopener">entry-level</a>, paid Webflow plan doesn’t even include CMS libraries, so the limit is irrelevant there. However, the next step up—the CMS level—does include CMS library functionality, but limits your CMS entries to 2,000.</p>
<p>This may seem like a lot, but we could see some SEO-intensive websites exhausting that limit pretty quickly.</p>
<p>In addition, having a cap on the sheer number of CMS libraries you can employ can be tough if you get handsy with the incredibly useful <em>reference</em> and <em>multi-reference</em> features of the Webflow CMS libraries.</p>
<p>At the end of the day, Webflow has <em>limits</em>.</p>
<h3>#6: You don’t really own your website</h3>
<p>One of the things we love about WordPress is that you own your website in a way that you simply don’t for sites built on other platforms—and that includes Webflow.</p>
<p>Think about it: with a WordPress website, you could theoretically set up a server in your closet and host your website only for the cost of the electricity it takes to run the server. (If you have solar panels, you could theoretically host your website for <em>free</em>.)</p>
<p>Obviously, that’s not possible in Webflow. (Nor is it possible in Squarespace, Wix, Framer, Hubspot, or any other of the newer website building platforms.)</p>
<p>Webflow deserves a nod here for at least offering the ability to <a href="https://help.webflow.com/hc/en-us/articles/33961386739347-Code-export" target="_blank" rel="noopener">download your site</a>. You absolutely can do that, but what gets exported is a bunch of static files. You effectively have the plain markup of your website, but unconnected to a CMS database.</p>
<p>But—and this leads directly into the following sub-complaint—that means you have to be <em>on</em> Webflow to actually use Webflow.</p>
<h4>#6b: It’s more of a SaaS than a CMS</h4>
<p>That’s really what it comes down to: Webflow is more of a SaaS than a true CMS (Content Management System).</p>
<p>Another way to put it: WordPress’ open source nature makes it more like Android, while Webflow’s locked-down platform makes it more like iOS.</p>
<h3>7. Support suuuucks</h3>
<p>For lower-end tiers, there is no phone or web-based support.</p>
<p>That’s right. If you run into trouble with your Webflow website, your only course of action is to reach out to Webflow via email and await their response (which is not always timely).</p>
<p>Take this from someone who’s run into problems on a Webflow website during a highly stressful launch: email-based support isn’t really support, it’s a company pen pal.</p>
<h3>#8: Hideous (i.e. SEO-unfriendly) image filenames</h3>
<p>Google reads filenames. Don’t take my word for it—<a href="https://developers.google.com/search/docs/appearance/google-images" target="_blank" rel="noopener">take Google’s</a>.</p>
<p>Uploading images to Webflow publishes those images in a CDN. This, in turn, butchers the exported filename by prepending it with a bunch of randomized characters.</p>
<p>For example, Here’s the HTML of one of the images from this very article as rendered by WordPress:</p>
<p><img decoding="async" src="https://tiltedchair.co/wp-content/uploads/2025/04/wordpress-filename-fidelity.webp" alt="Clean, SEO-friendly filenames of images." width="100%" height="auto" /></p>
<p>Nice and clean: “https://tiltedchair.co/wp-content/uploads/2025/04/wordpress-class-stacking.webp”. Now, that image represents one more instance of the phrase “wordpress class stacking” contained within the web page’s contents, and that word combination is relatively close to the root domain that we are ultimately trying to optimize for.</p>
<p>Here’s that same image uploaded to a Webflow project:</p>
<p><img fetchpriority="high" decoding="async" src="https://tiltedchair.co/wp-content/uploads/2025/04/webflow-filename-infidelity.webp" alt="" width="1952" height="266" /></p>
<p>A folder name made of a bunch of nasty, randomized characters plus a whole bunch more before the original filename. Google has to sift through all of that data before it gets to the filename itself.</p>
<p>Small but valid complaint.</p>
<h3>#9: Expense</h3>
<p>Very simply, <a href="https://webflow.com/pricing" target="_blank" rel="noopener">it can get expensive fast</a>, especially when you start adding collaborators, large volumes of content, and additional sites.</p>
<h3>#10: A lot of what makes Webflow great is furnished by companies <em>other</em> than Webflow</h3>
<p>And that’s not really a dig at Webflow. If anything, it speaks to the masterful job Webflow has done setting the table—it’s just that Webflow doesn’t cook and serve the meal.</p>
<p>Which brings us to the next section of the article&#8230;</p>
<h2>Enough negativity. Onto some of the good stuff:</h2>
<h3>#1: It is SO clean</h3>
<p>I mean, just look at that interface:</p>
<p><img decoding="async" src="https://tiltedchair.co/wp-content/uploads/2025/04/nautical-commerce-webflow-home.webp" alt="Webflow Designer interface for Tilted Chair client Nautical Commerce." width="100%" height="auto" /></p>
<p>It wouldn’t be hyperbole to say that Webflow has basically mastered the creation of visual controls of HTML/CSS elements. The Designer editor is very nearly perfect.</p>
<h3>#2: Finsweet</h3>
<p>Finsweet is Webflow on steroids, basically. From <a href="https://finsweet.com/components" target="_blank" rel="noopener">Components</a> to <a href="https://finsweet.com/attributes" target="_blank" rel="noopener">Attributes</a> to its <a href="https://finsweet.com/client-first" target="_blank" rel="noopener">Client-First</a> CSS framework, Finsweet has created Webflow-extending features and functions that are basically indispensable at this point. There isn’t a single Webflow project we’ve worked on where we haven’t used Finsweet for one thing or another.</p>
<h3>#3: Relume</h3>
<p><a href="https://www.relume.io" target="_blank" rel="noopener">Relume</a> is another performance-enhancing drug for Webflow projects that has also quickly made its offerings invaluable. From sitemaps to wireframes to the Relume components library, Relume is a Webflow companion we just couldn’t do without.</p>
<h2>The Webflow present is bright. The future is even brighter.</h2>
<p>Like any good product, Webflow is always getting better. Which leads this author to believe that the current version of Webflow is probably the weakest one, and it’s still amazing.</p>
<p>I’ll look forward to revisiting this article in a couple of years to see where the platform ended up.</p>
<p>My guess is, it’ll be somewhere really great.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Local vs. Offshore Website Agencies: Which One’s Right for Your Brand?</title>
		<link>https://tiltedchair.co/local-vs-offshore-website-agencies-which-ones-right-for-your-brand/</link>
		
		<dc:creator><![CDATA[Erik Hernandez]]></dc:creator>
		<pubDate>Tue, 11 Mar 2025 14:46:47 +0000</pubDate>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Web Design & Development]]></category>
		<category><![CDATA[Ad Agency]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Digital Media]]></category>
		<category><![CDATA[Website Design]]></category>
		<category><![CDATA[Website Development]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://tiltedchair.co/?p=12213</guid>

					<description><![CDATA[So, your brand needs a new website. Not just any website—a conversion-driving, SEO-dominating, jaw-droppingly beautiful digital experience. You’re ready to hire an agency, but now you’re stuck on a big decision: Do you go with a local U.S.-based agency, or do you hire a team in India to build it? On one hand, you’ve got [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>So, your brand needs a new website. Not just any website—a conversion-driving, SEO-dominating, jaw-droppingly beautiful digital experience. You’re ready to hire an agency, but now you’re stuck on a big decision: Do you go with a local U.S.-based agency, or do you hire a team in India to build it?</p>
<p>On one hand, you’ve got the comfort of working with a team in your own backyard. On the other, there’s a promise of cost savings (sometimes a LOT of savings) if you offshore the project.</p>
<p><em>Before you swipe that corporate card, let’s break down the real pros and cons of each option, so you don’t end up with a website that looks like it was built in 2007.</em></p>
<p><img decoding="async" src="https://tiltedchair.co/wp-content/uploads/2025/03/local-vs-offshore-website-agencies-table-png.webp" alt="Local vs Offshore agency comparison table." width="100%" height="auto" /></p>
<h2>The Case for a U.S.-Based Agency</h2>
<h3>Pros: The Good Stuff</h3>
<p><strong>1. Seamless Communication &amp; Collaboration</strong><br />
No weird time zones, no waking up at 5 a.m. to hop on a Zoom call. A U.S.-based agency works when you work, which means faster responses, smoother project management, and fewer email chains lost in translation.<br />
Visual Idea: An image of two people discussing a website project over a laptop in a well-lit office, representing smooth collaboration.<br />
<strong>2. They Get Your Audience</strong><br />
Your U.S. customers expect a certain level of UX, brand voice, and functionality that an American agency naturally understands. They also know compliance rules (hello, ADA and GDPR) that keep you from getting a nasty lawsuit.<br />
<strong>3. Face-to-Face Meetings (If You’re Into That)</strong><br />
Sometimes, it’s just easier to meet in person, whiteboard out ideas, and make sure they understand your brand vision before a single line of code is written.<br />
<strong>4. Higher Accountability &amp; Legal Protection</strong><br />
If things go sideways, U.S.-based agencies are easier to hold accountable. Contracts are more enforceable, and there’s less risk of an agency ghosting you mid-project.</p>
<h3>Cons: The Not-So-Good Stuff</h3>
<p><strong>1. Costs Can Be Brutal</strong><br />
Expect to pay anywhere from $10,000 to $100,000+ for a solid website. If you’re looking for premium branding and design, get ready to dip into that marketing budget.<br />
<strong>2. Longer Turnaround Times</strong><br />
Because of structured workflows and multiple client projects, U.S. agencies may take longer—especially if you want pixel-perfect, UX-driven work.<br />
<strong>3. No 24/7 Availability</strong><br />
Your website doesn’t sleep, but most U.S. agencies do. Unless you’re paying for an extended support package, you won’t get midnight bug fixes or instant updates.</p>
<h2>The Case for an Indian-Based Agency</h2>
<h3>Pros: The Good Stuff</h3>
<p><strong>1. Major Cost Savings</strong><br />
An Indian agency can deliver a website for 50-70% less than a U.S. agency. We’re talking $3,000 to $25,000 for a high-quality site. If budget is your #1 priority, this is a serious advantage.<br />
<strong>2. Faster Development Turnaround</strong><br />
With larger teams and around-the-clock workflows, many offshore agencies deliver projects faster than U.S. firms—especially if it’s a development-heavy site.<br />
<strong>3. 24/7 Support</strong><br />
Since India is 10+ hours ahead of the U.S., you could send requests at night and wake up to progress. Some agencies even offer round-the-clock monitoring for peace of mind.<br />
<strong>4. Strong Tech Expertise</strong><br />
India is a global leader in software development, meaning you’ll find plenty of agencies skilled in WordPress, Shopify, custom web apps, and even AI-driven website builds.</p>
<h3>Cons: The Not-So-Good Stuff</h3>
<p><strong>1. Communication Can Be Tricky</strong><br />
The time zone gap means delayed feedback loops. If you need daily check-ins and rapid-fire revisions, this could get frustrating fast.<br />
<strong>2. Varying Quality Levels</strong><br />
There are incredible agencies in India, and there are… let’s just say, some sketchy ones. You’ll need to vet portfolios, check reviews, and ask for a paid test project before committing.<br />
<strong>3. Less Familiarity with U.S. Market Expectations</strong><br />
Some offshore agencies don’t fully grasp American branding, UX preferences, and SEO standards, which can result in a website that feels… off.<br />
<strong>4. Potential Hidden Costs</strong><br />
Some offshore agencies quote rock-bottom prices, but then charge extra for revisions, support, or additional features. Read the fine print.</p>
<h2>So, Which One’s Right for You?</h2>
<p><strong>Here’s the deal:</strong><br />
Go with a U.S. agency if you need high-end design, strong branding, seamless collaboration, and local expertise. If your brand thrives on premium storytelling and user experience, it’s worth the investment.<br />
Go with an Indian agency if you’re on a budget, need a development-heavy site, and don’t mind some communication hurdles. You can get great work—just do your homework on who you’re hiring.<br />
Hybrid Approach? Some companies use a U.S. agency for strategy and design, then outsource development offshore to save money. Best of both worlds? Maybe.</p>
<p>Whatever you choose, don’t just look at the price tag. Think about your brand’s needs, workflow preferences, and long-term website goals. Your website isn’t just a digital brochure—it’s your most important marketing asset. Choose wisely.<br />
Need a second opinion before signing that agency contract? <a href="https://tiltedchair.co/contact/">Hit me up</a>—We’ve seen enough website disasters to know what to avoid.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WordPress 101: How to Publish &#038; Customize a WordPress Author Page (Without Plugins)</title>
		<link>https://tiltedchair.co/wordpress-101-how-to-publish-customize-a-wordpress-author-page-without-plugins/</link>
		
		<dc:creator><![CDATA[Jamie Rodriguez]]></dc:creator>
		<pubDate>Wed, 12 Mar 2025 06:00:44 +0000</pubDate>
				<category><![CDATA[Web Design & Development]]></category>
		<category><![CDATA[Website Design]]></category>
		<category><![CDATA[Website Development]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://tiltedchair.co/?p=12125</guid>

					<description><![CDATA[WordPress plugins suck/rule. Those who have had the pleasure of sitting through a discovery or web visioneering meeting with Tilted Chair’s Creative/Interactive Director Jamie Rodriguez are probably tired of hearing it, but the truth is, WordPress is made great—and terrible—by its plugin library. Plugins are powerful They can help make really complex functionality possible within [&#8230;]]]></description>
										<content:encoded><![CDATA[<h2>WordPress plugins suck/rule.</h2>
<p>Those who have had the pleasure of sitting through a discovery or web visioneering meeting with Tilted Chair’s Creative/Interactive Director Jamie Rodriguez are probably tired of hearing it, but the truth is, WordPress is made great—and terrible—by its plugin library.</p>
<h3>Plugins are powerful</h3>
<p>They can help make really complex functionality possible within the WordPress environment.</p>
<p>At the same time, novice WordPress warriors go plugin-crazy downloading a new plugin for every simple piece of functionality desired. And, every added plugin represents a potential security or functionality vulnerability.</p>
<p>Not to mention, the more plugins you add, the more upgrade promos you have to deal with, which many times result in the top of your WordPress dashboard looking like this:</p>
<p><img data-dominant-color="abc4bb" data-has-transparency="false" style="--dominant-color: #abc4bb;" decoding="async" class="alignnone size-full wp-image-12085 not-transparent" src="https://tiltedchair.co/wp-content/uploads/2025/03/messy-wordpress-dashboard-with-updates-and-lots-of-notifications.webp" alt="Messy looking WordPress dashboard" width="100%" height="auto" srcset="https://tiltedchair.co/wp-content/uploads/2025/03/messy-wordpress-dashboard-with-updates-and-lots-of-notifications.webp 1440w, https://tiltedchair.co/wp-content/uploads/2025/03/messy-wordpress-dashboard-with-updates-and-lots-of-notifications-300x225.webp 300w, https://tiltedchair.co/wp-content/uploads/2025/03/messy-wordpress-dashboard-with-updates-and-lots-of-notifications-1024x768.webp 1024w, https://tiltedchair.co/wp-content/uploads/2025/03/messy-wordpress-dashboard-with-updates-and-lots-of-notifications-768x576.webp 768w" sizes="(max-width: 1440px) 100vw, 1440px" /></p>
<p>Now, you could clean that mess up&#8230;<a href="https://wordpress.org/plugins/disable-wp-notification/" target="_blank" rel="noopener">by adding another plugin</a>! Aye yi yi&#8230;</p>
<p>Instead, one of the measures of an elegant and professional WordPress website build is just how few plugins must be used to achieve desired functionality. Or as we in Tilted Chair’s interactive department like to say: <em>plugins only as a last resort</em>.</p>
<h3>Author pages</h3>
<p>One commonly requested piece of functionality is author pages, i.e., a dedicated archive page for each blog author. This objective often leads users to download and install a WordPress plugin just to accomplish this simple task, <a href="https://wordpress.org/plugins/publishpress-authors/" target="_blank" rel="noopener">something like this</a>. (And no offense is intended to the creators of said plugin; it has excellent reviews, and seems to offer some advanced functionality, which many WordPress website owners might find useful.)</p>
<p>Those—like us here at Tilted Chair—who are loathe to install yet another plugin, boy do we have some good news for you: author pages are native to WordPress, right out of the box!</p>
<h4>Template hierarchy</h4>
<p>By default, author pages are automatically generated by the built-in files that already exist in most WordPress websites.</p>
<p>Referring to the <a href="https://codex.wordpress.org/Author_Templates" target="_blank" rel="noopener">WordPress documentation</a>, you’ll see a template called <em>archive.php</em>. Nearly all WordPress installations include this template in their file structure natively. However, as you can see, the <em>archive.php</em> template is only fourth in the author template hierarchy.</p>
<p>Meaning, if one were to add any one of the other three templates in addition to the <em>archive.php</em> file, WordPress would never get to the <em>archive.php</em> file, instead opting to render any one of the three templates that precede the <em>archive.php</em> file hierarchically.</p>
<h3>Which template to choose</h3>
<p>That depends.</p>
<p>If you’re already using the <em>archive.php</em> file for other purposes—say, for instance, to render blog posts in a specific tag or category taxonomy—then our advice would be to create an <em>author.php</em> file in addition to the <em>archive.php</em> file.</p>
<p>This would leave the archive.php file to render taxonomical archives, while allowing the <em>author.php</em> file to render just author archives.</p>
<p>Here’s a link to a Tilted Chair-created <a href="https://sourceday.com/blog/author/donna/" target="_blank" rel="noopener">author page</a>, and here’s what that page ends up looking like:</p>
<p><img data-dominant-color="c7c2c1" data-has-transparency="false" style="--dominant-color: #c7c2c1;" decoding="async" class="alignnone size-full wp-image-12127 not-transparent" src="https://tiltedchair.co/wp-content/uploads/2025/03/example-of-an-author-page-png.webp" alt="Example of a WordPress author archive page." width="100%" height="auto" srcset="https://tiltedchair.co/wp-content/uploads/2025/03/example-of-an-author-page-png.webp 2879w, https://tiltedchair.co/wp-content/uploads/2025/03/example-of-an-author-page-png-300x171.webp 300w, https://tiltedchair.co/wp-content/uploads/2025/03/example-of-an-author-page-png-1024x583.webp 1024w, https://tiltedchair.co/wp-content/uploads/2025/03/example-of-an-author-page-png-768x437.webp 768w, https://tiltedchair.co/wp-content/uploads/2025/03/example-of-an-author-page-png-1536x874.webp 1536w, https://tiltedchair.co/wp-content/uploads/2025/03/example-of-an-author-page-png-2048x1166.webp 2048w" sizes="(max-width: 2879px) 100vw, 2879px" /></p>
<h3>Code for the author.php file</h3>
<p>We’re not going to give you the whole file, but here are the relevant pieces:</p>
<h4>Author name</h4>
<p><code>php get_the_author_meta( 'display_name' );</code></p>
<p>This php command pulls whatever is selected from the “Display name publicly as&#8230;” dropdown selector in the author’s WordPress user profile:</p>
<p><img data-dominant-color="97989f" data-has-transparency="false" style="--dominant-color: #97989f;" decoding="async" class="alignnone size-full wp-image-12129 not-transparent" src="https://tiltedchair.co/wp-content/uploads/2025/03/display-name-publicly-as-wordpress-png.webp" alt="" width="1234" height="264" srcset="https://tiltedchair.co/wp-content/uploads/2025/03/display-name-publicly-as-wordpress-png.webp 1234w, https://tiltedchair.co/wp-content/uploads/2025/03/display-name-publicly-as-wordpress-png-300x64.webp 300w, https://tiltedchair.co/wp-content/uploads/2025/03/display-name-publicly-as-wordpress-png-1024x219.webp 1024w, https://tiltedchair.co/wp-content/uploads/2025/03/display-name-publicly-as-wordpress-png-768x164.webp 768w" sizes="(max-width: 1234px) 100vw, 1234px" /></p>
<h4>Author bio</h4>
<p><code>php get_the_author_meta( 'description' );</code></p>
<p>This command renders whatever text is populated in the “Biographical Info” text area in the author’s WordPress user profile:</p>
<p><img data-dominant-color="d4d4d6" data-has-transparency="false" style="--dominant-color: #d4d4d6;" decoding="async" class="alignnone size-full wp-image-12130 not-transparent" src="https://tiltedchair.co/wp-content/uploads/2025/03/user-wordpress-biographical-info-text-area-png.webp" alt="" width="1950" height="416" srcset="https://tiltedchair.co/wp-content/uploads/2025/03/user-wordpress-biographical-info-text-area-png.webp 1950w, https://tiltedchair.co/wp-content/uploads/2025/03/user-wordpress-biographical-info-text-area-png-300x64.webp 300w, https://tiltedchair.co/wp-content/uploads/2025/03/user-wordpress-biographical-info-text-area-png-1024x218.webp 1024w, https://tiltedchair.co/wp-content/uploads/2025/03/user-wordpress-biographical-info-text-area-png-768x164.webp 768w, https://tiltedchair.co/wp-content/uploads/2025/03/user-wordpress-biographical-info-text-area-png-1536x328.webp 1536w" sizes="(max-width: 1950px) 100vw, 1950px" /></p>
<h4>Author avatar</h4>
<p>This is another commonly requested element, and it’s just as easy as the others. Here’s the code:</p>
<p><code>echo get_avatar( get_the_author_meta( 'ID' ) , 96 ); </code></p>
<p>There are other fields and data that can be pulled from an author’s profile, but these are definitely two of the big ones. The complete list of values can be found in the <a href="https://developer.wordpress.org/reference/functions/get_the_author_meta/" target="_blank" rel="noopener">WordPress Codex</a>.</p>
<h3>Linking to the WordPress author pag<span style="font-size: medium;">e</span></h3>
<p>Couldn’t be simpler:</p>
<p><code>php echo get_the_author_link();</code></p>
<p>That’s right: this one line generates both the markup (HTML), link destination, and link label. God bless you, WordPress.</p>
<p>So there ya go: you can have your author page and eat it, too.</p>
<p>Save the plugins for the toaster!</p>
<script>
var gform;gform||(document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),document.addEventListener("gform/theme/scripts_loaded",function(){gform.themeScriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,themeScriptsLoaded:!1,isFormEditor:()=>"function"==typeof InitializeEditor,callIfLoaded:function(o){return!(!gform.domLoaded||!gform.scriptsLoaded||!gform.themeScriptsLoaded&&!gform.isFormEditor()||(gform.isFormEditor()&&console.warn("The use of gform.initializeOnLoaded() is deprecated in the form editor context and will be removed in Gravity Forms 3.1."),o(),0))},initializeOnLoaded:function(o){gform.callIfLoaded(o)||(document.addEventListener("gform_main_scripts_loaded",()=>{gform.scriptsLoaded=!0,gform.callIfLoaded(o)}),document.addEventListener("gform/theme/scripts_loaded",()=>{gform.themeScriptsLoaded=!0,gform.callIfLoaded(o)}),window.addEventListener("DOMContentLoaded",()=>{gform.domLoaded=!0,gform.callIfLoaded(o)}))},hooks:{action:{},filter:{}},addAction:function(o,r,e,t){gform.addHook("action",o,r,e,t)},addFilter:function(o,r,e,t){gform.addHook("filter",o,r,e,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,r){gform.removeHook("action",o,r)},removeFilter:function(o,r,e){gform.removeHook("filter",o,r,e)},addHook:function(o,r,e,t,n){null==gform.hooks[o][r]&&(gform.hooks[o][r]=[]);var d=gform.hooks[o][r];null==n&&(n=r+"_"+d.length),gform.hooks[o][r].push({tag:n,callable:e,priority:t=null==t?10:t})},doHook:function(r,o,e){var t;if(e=Array.prototype.slice.call(e,1),null!=gform.hooks[r][o]&&((o=gform.hooks[r][o]).sort(function(o,r){return o.priority-r.priority}),o.forEach(function(o){"function"!=typeof(t=o.callable)&&(t=window[t]),"action"==r?t.apply(null,e):e[0]=t.apply(null,e)})),"filter"==r)return e[0]},removeHook:function(o,r,t,n){var e;null!=gform.hooks[o][r]&&(e=(e=gform.hooks[o][r]).filter(function(o,r,e){return!!(null!=n&&n!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][r]=e)}});
</script>

                <div class='gf_browser_unknown gform_wrapper gform-theme gform-theme--foundation gform-theme--framework gform-theme--orbital' data-form-theme='orbital' data-form-index='0' id='gform_wrapper_4' ><style>#gform_wrapper_4[data-form-index="0"].gform-theme{--gf-color-primary: #204ce5;--gf-color-primary-rgb: 32, 76, 229;--gf-color-primary-contrast: #fff;--gf-color-primary-contrast-rgb: 255, 255, 255;--gf-color-primary-darker: #001AB3;--gf-color-primary-lighter: #527EFF;--gf-color-secondary: #fff;--gf-color-secondary-rgb: 255, 255, 255;--gf-color-secondary-contrast: #112337;--gf-color-secondary-contrast-rgb: 17, 35, 55;--gf-color-secondary-darker: #F5F5F5;--gf-color-secondary-lighter: #FFFFFF;--gf-color-out-ctrl-light: rgba(17, 35, 55, 0.1);--gf-color-out-ctrl-light-rgb: 17, 35, 55;--gf-color-out-ctrl-light-darker: rgba(104, 110, 119, 0.35);--gf-color-out-ctrl-light-lighter: #F5F5F5;--gf-color-out-ctrl-dark: #585e6a;--gf-color-out-ctrl-dark-rgb: 88, 94, 106;--gf-color-out-ctrl-dark-darker: #112337;--gf-color-out-ctrl-dark-lighter: rgba(17, 35, 55, 0.65);--gf-color-in-ctrl: #fff;--gf-color-in-ctrl-rgb: 255, 255, 255;--gf-color-in-ctrl-contrast: #112337;--gf-color-in-ctrl-contrast-rgb: 17, 35, 55;--gf-color-in-ctrl-darker: #F5F5F5;--gf-color-in-ctrl-lighter: #FFFFFF;--gf-color-in-ctrl-primary: #204ce5;--gf-color-in-ctrl-primary-rgb: 32, 76, 229;--gf-color-in-ctrl-primary-contrast: #fff;--gf-color-in-ctrl-primary-contrast-rgb: 255, 255, 255;--gf-color-in-ctrl-primary-darker: #001AB3;--gf-color-in-ctrl-primary-lighter: #527EFF;--gf-color-in-ctrl-light: rgba(17, 35, 55, 0.1);--gf-color-in-ctrl-light-rgb: 17, 35, 55;--gf-color-in-ctrl-light-darker: rgba(104, 110, 119, 0.35);--gf-color-in-ctrl-light-lighter: #F5F5F5;--gf-color-in-ctrl-dark: #585e6a;--gf-color-in-ctrl-dark-rgb: 88, 94, 106;--gf-color-in-ctrl-dark-darker: #112337;--gf-color-in-ctrl-dark-lighter: rgba(17, 35, 55, 0.65);--gf-radius: 3px;--gf-font-size-secondary: 14px;--gf-font-size-tertiary: 13px;--gf-icon-ctrl-number: url("data:image/svg+xml,%3Csvg width='8' height='14' viewBox='0 0 8 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4 0C4.26522 5.96046e-08 4.51957 0.105357 4.70711 0.292893L7.70711 3.29289C8.09763 3.68342 8.09763 4.31658 7.70711 4.70711C7.31658 5.09763 6.68342 5.09763 6.29289 4.70711L4 2.41421L1.70711 4.70711C1.31658 5.09763 0.683417 5.09763 0.292893 4.70711C-0.0976311 4.31658 -0.097631 3.68342 0.292893 3.29289L3.29289 0.292893C3.48043 0.105357 3.73478 0 4 0ZM0.292893 9.29289C0.683417 8.90237 1.31658 8.90237 1.70711 9.29289L4 11.5858L6.29289 9.29289C6.68342 8.90237 7.31658 8.90237 7.70711 9.29289C8.09763 9.68342 8.09763 10.3166 7.70711 10.7071L4.70711 13.7071C4.31658 14.0976 3.68342 14.0976 3.29289 13.7071L0.292893 10.7071C-0.0976311 10.3166 -0.0976311 9.68342 0.292893 9.29289Z' fill='rgba(17, 35, 55, 0.65)'/%3E%3C/svg%3E");--gf-icon-ctrl-select: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0.292893 0.292893C0.683417 -0.097631 1.31658 -0.097631 1.70711 0.292893L5 3.58579L8.29289 0.292893C8.68342 -0.0976311 9.31658 -0.0976311 9.70711 0.292893C10.0976 0.683417 10.0976 1.31658 9.70711 1.70711L5.70711 5.70711C5.31658 6.09763 4.68342 6.09763 4.29289 5.70711L0.292893 1.70711C-0.0976311 1.31658 -0.0976311 0.683418 0.292893 0.292893Z' fill='rgba(17, 35, 55, 0.65)'/%3E%3C/svg%3E");--gf-icon-ctrl-search: url("data:image/svg+xml,%3Csvg width='640' height='640' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M256 128c-70.692 0-128 57.308-128 128 0 70.691 57.308 128 128 128 70.691 0 128-57.309 128-128 0-70.692-57.309-128-128-128zM64 256c0-106.039 85.961-192 192-192s192 85.961 192 192c0 41.466-13.146 79.863-35.498 111.248l154.125 154.125c12.496 12.496 12.496 32.758 0 45.254s-32.758 12.496-45.254 0L367.248 412.502C335.862 434.854 297.467 448 256 448c-106.039 0-192-85.962-192-192z' fill='rgba(17, 35, 55, 0.65)'/%3E%3C/svg%3E");--gf-label-space-y-secondary: var(--gf-label-space-y-md-secondary);--gf-ctrl-border-color: #686e77;--gf-ctrl-size: var(--gf-ctrl-size-md);--gf-ctrl-label-color-primary: #112337;--gf-ctrl-label-color-secondary: #112337;--gf-ctrl-choice-size: var(--gf-ctrl-choice-size-md);--gf-ctrl-checkbox-check-size: var(--gf-ctrl-checkbox-check-size-md);--gf-ctrl-radio-check-size: var(--gf-ctrl-radio-check-size-md);--gf-ctrl-btn-font-size: var(--gf-ctrl-btn-font-size-md);--gf-ctrl-btn-padding-x: var(--gf-ctrl-btn-padding-x-md);--gf-ctrl-btn-size: var(--gf-ctrl-btn-size-md);--gf-ctrl-btn-border-color-secondary: #686e77;--gf-ctrl-btn-bg-color-hover-tertiary: #EBEBEB;--gf-field-img-choice-size: var(--gf-field-img-choice-size-md);--gf-field-img-choice-card-space: var(--gf-field-img-choice-card-space-md);--gf-field-img-choice-check-ind-size: var(--gf-field-img-choice-check-ind-size-md);--gf-field-img-choice-check-ind-icon-size: var(--gf-field-img-choice-check-ind-icon-size-md);--gf-field-pg-steps-number-color: rgba(17, 35, 55, 0.8);}</style>
                        <div class='gform_heading'>
                            <h2 class="gform_title">Non-Restaurants</h2>
                            <p class='gform_description'></p>
                        </div><form method='post' enctype='multipart/form-data'  id='gform_4'  action='/category/web-design-web-development/feed/' data-formid='4' novalidate>
        <div id='gf_progressbar_wrapper_4' class='gf_progressbar_wrapper' data-start-at-zero=''>
        	<p class="gf_progressbar_title">Step <span class='gf_step_current_page'>1</span> of <span class='gf_step_page_count'>3</span><span class='gf_step_page_name'></span>
        	</p>
            <div class='gf_progressbar gf_progressbar_blue' aria-hidden='true'>
                <div class='gf_progressbar_percentage percentbar_blue percentbar_33' style='width:33%;'><span>33%</span></div>
            </div></div>
                        <div class='gform-body gform_body'><div id='gform_page_4_1' class='gform_page ' data-js='page-field-id-0' >
					<div class='gform_page_fields'><div id='gform_fields_4' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id="field_4_19" class="gfield gfield--type-honeypot gform_validation_container field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible gfield--honeypot"  data-field-class="gfield--honeypot" ><label class='gfield_label gform-field-label' for='input_4_19'><span class='gform-field-label__text'>LinkedIn</span></label><div class='ginput_container'><input name='input_19' id='input_4_19' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_4_19'>This field is for validation purposes and should be left unchanged.</div></div><div id="field_4_1" class="gfield gfield--type-email gfield--input-type-email gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible gfield--email gfield--large"  data-field-class="gfield--email gfield--large" ><label class='gfield_label gform-field-label' for='input_4_1'><span class='gform-field-label__text'>First, what’s a good email address to reach you?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_email'>
                            <input name='input_1' id='input_4_1' type='email' value='' class='large'   placeholder='Your email address' aria-required="true" aria-invalid="false"  />
                        </div></div><fieldset id="field_4_18" class="gfield gfield--type-name gfield--input-type-name gfield--width-full gfield_contains_required field_sublabel_above gfield--no-description field_description_below field_validation_below gfield_visibility_visible gfield--name gfield--large"  data-field-class="gfield--name gfield--large" ><legend class='gfield_label gform-field-label gfield_label_before_complex' ><span class='gform-field-label__text'>What’s your name?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></legend><div class='ginput_complex ginput_container ginput_container--name no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gform-grid-row' id='input_4_18'>
                            
                            <span id='input_4_18_3_container' class='name_first gform-grid-col gform-grid-col--size-auto' >
                                                    <label for='input_4_18_3' class='gform-field-label gform-field-label--type-sub '>First</label>
                                                    <input type='text' name='input_18.3' id='input_4_18_3' value=''   aria-required='true'     />
                                                </span>
                            
                            <span id='input_4_18_6_container' class='name_last gform-grid-col gform-grid-col--size-auto' >
                                                            <label for='input_4_18_6' class='gform-field-label gform-field-label--type-sub '>Last</label>
                                                            <input type='text' name='input_18.6' id='input_4_18_6' value=''   aria-required='true'     />
                                                        </span>
                            
                        </div></fieldset></div>
                    </div>
                    <div class='gform-page-footer gform_page_footer top_label'>
                         <button type='button' id='gform_next_button_4_3' class='gform_next_button gform-theme-button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='next' >Next</button> 
                    </div>
                </div>
                <div id='gform_page_4_2' class='gform_page' data-js='page-field-id-3' style='display:none;'>
                    <div class='gform_page_fields'>
                        <div id='gform_fields_4_2' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id="field_4_4" class="gfield gfield--type-select gfield--input-type-select gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible gfield--select gfield--large"  data-field-class="gfield--select gfield--large" ><label class='gfield_label gform-field-label' for='input_4_4'><span class='gform-field-label__text'>Which of these best describes you?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_select'><select name='input_4' id='input_4_4' class='large gfield_select'    aria-required="true" aria-invalid="false" ><option value='Business owner/leader' >Business owner/leader</option><option value='Marketing leader/manager' >Marketing leader/manager</option><option value='Other' >Other</option></select></div></div><div id="field_4_16" class="gfield gfield--type-text gfield--input-type-text gfield--width-full gfield_contains_required field_sublabel_below gfield--has-description field_description_above field_validation_below gfield_visibility_visible gfield--text gfield--large"  data-field-class="gfield--text gfield--large" ><label class='gfield_label gform-field-label' for='input_4_16'><span class='gform-field-label__text'>Where can we can you out online?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='gfield_description' id='gfield_description_4_16'>Your website is preferred, but social channels work, too.</div><div class='ginput_container ginput_container_text'><input name='input_16' id='input_4_16' type='text' value='' class='large'  aria-describedby="gfield_description_4_16"   aria-required="true" aria-invalid="false"   /></div></div></div>
                    </div>
                    <div class='gform-page-footer gform_page_footer top_label'>
                        <button type='button' id='gform_previous_button_4_10' class='gform_previous_button gform-theme-button gform-theme-button--secondary button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='previous' >Previous</button> <button type='button' id='gform_next_button_4_10' class='gform_next_button gform-theme-button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='next' >Next</button> 
                    </div>
                </div>
                <div id='gform_page_4_3' class='gform_page' data-js='page-field-id-10' style='display:none;'>
                    <div class='gform_page_fields'>
                        <div id='gform_fields_4_3' class='gform_fields top_label form_sublabel_below description_below validation_below'><fieldset id="field_4_9" class="gfield gfield--type-radio gfield--type-choice gfield--input-type-radio gfield--width-half gfield_contains_required field_sublabel_below gfield--has-description field_description_above field_validation_below gfield_visibility_visible gfield--choice-align-vertical gfield--radio gfield--large"  data-field-class="gfield--radio gfield--large" ><legend class='gfield_label gform-field-label' ><span class='gform-field-label__text'>Let’s talk turkey...</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></legend><div class='gfield_description' id='gfield_description_4_9'>What is your budget for this initiative?</div><div class='ginput_container ginput_container_radio'><div class='gfield_radio' id='input_4_9'>
			<div class='gchoice gchoice_4_9_0'>
					<input class='gfield-choice-input' name='input_9' type='radio' value='$25,000-50,000'  id='choice_4_9_0' onchange='gformToggleRadioOther( this )' aria-describedby="gfield_description_4_9"   />
					<label for='choice_4_9_0' id='label_4_9_0' class='gform-field-label gform-field-label--type-inline'>$25,000-50,000</label>
			</div>
			<div class='gchoice gchoice_4_9_1'>
					<input class='gfield-choice-input' name='input_9' type='radio' value='$50,000-100,000'  id='choice_4_9_1' onchange='gformToggleRadioOther( this )'    />
					<label for='choice_4_9_1' id='label_4_9_1' class='gform-field-label gform-field-label--type-inline'>$50,000-100,000</label>
			</div>
			<div class='gchoice gchoice_4_9_2'>
					<input class='gfield-choice-input' name='input_9' type='radio' value='$100,000+'  id='choice_4_9_2' onchange='gformToggleRadioOther( this )'    />
					<label for='choice_4_9_2' id='label_4_9_2' class='gform-field-label gform-field-label--type-inline'>$100,000+</label>
			</div></div></div></fieldset><div id="field_4_13" class="gfield gfield--type-phone gfield--input-type-phone gfield--phone-format-standard gfield--width-half gfield_contains_required field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible gfield--phone gfield--large"  data-field-class="gfield--phone gfield--large" ><label class='gfield_label gform-field-label' for='input_4_13'><span class='gform-field-label__text'>What’s your cell number?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_phone'><input name='input_13' id='input_4_13' type='tel' value='' class='large'  placeholder='(999) 999-9999' aria-required="true" aria-invalid="false" aria-describedby="gfield_description_4_13"  data-mask="(999) 999-9999" /></div><div class='gfield_description' id='gfield_description_4_13'>By providing your phone number, you consent to receiving text messages from Tilted Chair.</div></div></div></div>
        <div class='gform-page-footer gform_page_footer top_label'><button type='submit' id='gform_previous_button_4' class='gform_previous_button gform-theme-button gform-theme-button--secondary button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='previous' >Previous</button> <button type='submit' id='gform_submit_button_4' class='gform_button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' >Submit</button> <input type='hidden' class='gform_hidden' name='gform_submission_speeds' value='{&quot;pages&quot;:[]}' />
            <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_4' value='postback' />
            <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_4' id='gform_theme_4' value='orbital' />
            <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_4' id='gform_style_settings_4' value='[]' />
            <input type='hidden' class='gform_hidden' name='is_submit_4' value='1' />
            <input type='hidden' class='gform_hidden' name='gform_submit' value='4' />
            
            <input type='hidden' class='gform_hidden' name='gform_currency' data-currency='USD' value='KYjODdYb5OcLdRji48aiAa1ii3p6lZvAdIDpRS25ioMtbMsSe5S4eahy7ko9SjjpQfg3rgbRAWTpzqrfXcbnRIvLYU3Aex9AEgc6AxpMbHTa6sM=' />
            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' />
            <input type='hidden' class='gform_hidden' name='state_4' value='WyJ7XCI0XCI6W1wiNWZmMmQ0M2E4YWJjZWZjNzA2MGQ2MGFlNzQyN2YzNzlcIixcImRmODA4MDA2NjJhNDkzYmZjYjBkMWVlOTg4NTA0NTg0XCIsXCI3YWE0NjA5NGFjNjdmNGY0Mzk5MmExOWUzNjg5YjY3MFwiXSxcIjlcIjpbXCJlNDE2NGY2NTNkYjA3MzNhZDZiNGFjYTQ1MTdiNzU5NVwiLFwiZDM4MjJjZGFlOGNlYmRkNTU4M2JkZTFmYzhiMWU3ZmRcIixcImE5YzY3YjQ5MDczNzA5MTAyZTVjOTczNjFiOGMxMzg3XCJdLFwiZ2Zvcm1fc3VibWlzc2lvbl9tZXRob2RcIjpbXCIzOWJlMzc4NWI2NGMyN2NjYzBlNWY5Y2FhYWFjMmExZFwiLFwiZDM1OTI5MWMwOTU2YzIyMWUxMjY1NmE2MDQ0ZWYyYWVcIl0sXCJnZm9ybV90aGVtZVwiOlwiZDUzYWU2NWEzY2Q1ZTViOWIyNDcxMGM3YzU1ZTc5OTVcIixcImdmb3JtX3N0eWxlX3NldHRpbmdzXCI6XCI3MDBjYzY2MzU2MDBkOGQyMGQzYmJjYTZiY2I0OGIwN1wiLFwiZm9ybV9pZFwiOlwiNjE2M2I5OTY2ZTFjMGZhMWI3YTE2ZGY0YjBlNjJkZmFcIixcInVybFwiOlwiNGRhNWFiYmI5MjVhMzg4NDM2Mjc0Y2JkNDY1ZTcyNjZcIixcInN0YXRlX3RpbWVzdGFtcFwiOlwiYmNjMjhkZWQ4YmM2YjVjMTgxZmJmZTBlYjU0MjVmMWNcIn0iLCIyYjM0MzEwNDVmNjQ5OGNlMDFlZjRjMTJkZGNlNGM0MCIsMTc5MTMxNTY5MF0=' />
            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_4' id='gform_target_page_number_4' value='2' />
            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_4' id='gform_source_page_number_4' value='1' />
            <input type='hidden' name='gform_field_values' value='' />
            
        </div>
             </div></div>
                        </form>
                        </div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How Much Does a WordPress Website Cost?</title>
		<link>https://tiltedchair.co/how-much-does-a-wordpress-website-cost/</link>
		
		<dc:creator><![CDATA[Jamie Rodriguez]]></dc:creator>
		<pubDate>Wed, 05 Mar 2025 19:34:11 +0000</pubDate>
				<category><![CDATA[Web Design & Development]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://tiltedchair.co/?p=11912</guid>

					<description><![CDATA[How much should a professional WordPress website build cost? Well, how much time do you have? (If you have 10-12 minutes, depending on how fast you read, we have an answer.) When it comes to hiring an agency or freelancer to boost your company’s visibility, some costs feel pretty straightforward. But when you’re hiring someone [&#8230;]]]></description>
										<content:encoded><![CDATA[<h2>How much should a professional WordPress website build cost?</h2>
<h3>Well, how much time do you have? (If you have 10-12 minutes, depending on how fast you read, we have an answer.)</h3>
<p>When it comes to hiring an agency or freelancer to boost your company’s visibility, some costs feel pretty straightforward. But when you’re hiring someone to build your website, things can get a bit more convoluted, with all sorts of factors to consider and price ranges that aren’t always easy to navigate.</p>
<p>Never fret: Tilted Chair has approximately 500 WordPress website installs under its belt, so, you’re in good hands. All that experience has equipped us with the data and knowledge to compile exactly who and what it takes to get your company’s corner of the World Wide Web to an ideal and impactful state that matches your aspirations for your brand and—perhaps more importantly—helps set you and your business up to market more efficiently.</p>
<h4>DISCLAIMER: This pricing approach doesn’t apply to e-commerce websites. While many of the budgeting principles remain the same, because the primary conversion instance on an e-commerce website is a sale, the considerations change rather dramatically. What follows should be considered a great way to budget for a brand or marketing website with no e-commerce component.</h4>
<p><img decoding="async" src="https://tiltedchair.co/wp-content/uploads/2025/02/austin-website-design-wordpress-development-automated-check-in-check-out.webp" alt="Virdee website homepage." width="100%" height="auto" /></p>
<h2>The Who</h2>
<p>Before we get into the nitty-gritty, it’s important to acknowledge that no one person can do it all, and you shouldn’t hire anyone who says they can. (Well, you’re free to hire them, just don’t believe them.) Different specialists focus on various parts of the process, so here’s a quick look at who’s involved in the planning, design, and development of a WordPress website:</p>
<ul>
<li><strong>Content Strategist:</strong> The content strategist leads the development of the site’s information architecture. They handle the creation of the sitemap and wireframes (with the help of Relume, of course), ensuring the content flows just right. They should be well-versed in understanding user behavior, they should have experience developing user personas, and they should generally be knowledgeable about how to connect business objectives with information structures and hierarchies to maximize the odds of successful outcomes.</li>
<li><strong>(At least one) Web Designer:</strong> Web designers are the visual experts who bring your site to life, working on layouts, color schemes, typography, and all the other visual elements. Many times they’re called <em>UI designers</em> (especially when working on digital products rather than website designs), but at Tilted Chair, the web designers are tasked with interpreting the wireframes handed down by the content strategist and articulating what those screens should look like visually, while also taking cues from a broader brand strategy, definitions, standards, and uses document. (Which you definitely have ironed-out and documented, right? RIGHT?!) At Tilted Chair, web designers work almost exclusively in Figma.</li>
<li><strong>Web Content Copywriter:</strong> These wordsmiths create the messaging, ensuring it aligns with your brand voice and gets your point across. They should also be well-acquainted with personas, including how to answer common objections posed by the various stakeholder personas. They should be adept at headline writing—very important for making pages “scannable”—and, they get bonus points if they have at least a working knowledge of SEO concepts, including how to craft copy with descending headers, keyword density, and general copy length.</li>
<li><strong>WordPress Developers:</strong> Usually, 2-3 developers handle the front-end and back-end coding to make sure everything works properly. At Tilted Chair, co-founder <a href="https://tiltedchair.co/leadership/jamie-rodriguez/" target="_blank" rel="noopener">Jamie Rodriguez</a> leads the development of the front-end system, starting with a base CSS framework which has been painstakingly refined over 14 years of working on WordPress websites. In addition to the front-end developer, Tilted Chair employs a back-end specialist who helps with PHP and javascript assets which pair the front-end with the WordPress back-end. Together, this crack team of website devs bring the static Figma files to life in the form a WordPress website.</li>
<li><strong>Project Manager:</strong> This is the coordinator of it all, keeping everything on track and ensuring deadlines are met. The project manager should have excellent written and verbal communications skills paired with a penchant for organization.</li>
</ul>
<h3>When you buy a professional WordPress website design and development process, these are the people—and skills—you’re paying for.</h3>
<h2>The What</h2>
<p>Now that you know who’s usually working behind the scenes, let’s talk about how much it’s going to cost.</p>
<p>Website costs can vary for every project, depending on how complex the job is and the level of expertise required to make it land. So, what exactly makes up a fair price in our opinion?</p>
<p>Let’s break it down.</p>
<h3>Key Considerations</h3>
<p>When building a WordPress website, several factors contribute to the overall cost. Below is a breakdown of key considerations and their associated costs. We’ve shared details from two previous projects below to give you a clear idea of how different scenarios can lead to varying costs.</p>
<p><img decoding="async" class="alignnone size-full wp-image-11836" src="https://tiltedchair.co/wp-content/uploads/2025/03/how-many-pages.webp" alt="How many pages are there on the site?" width="100%" height="auto" /></p>
<h4>Number of Pages</h4>
<p>The number of pages on your website directly impacts both design and development time. Each page may need to be customized with its own structure, content, and functionality. It’s not rocket science, but it does take time. More pages = more work = higher costs.</p>
<div class="ul-container grid-100 tablet-grid-100 mobile-grid-100 padding-global-half">
<ul>
<li><strong>Project 1 Consideration:</strong> How many pages does the website have?</li>
<li><strong>Project 1 Data:</strong> 102 pages</li>
<li><strong>Project 1 Associated Cost:</strong> $7,650.00</li>
</ul>
</div>
<div class="ul-container-even grid-100 tablet-grid-100 mobile-grid-100 padding-global-half">
<ul>
<li><strong>Project 2 Consideration:</strong> How many pages does the website have?</li>
<li><strong>Project 2 Data:</strong> 10</li>
<li><strong>Project 2 Associated Cost:</strong> $750.00</li>
</ul>
</div>
<p><img decoding="async" class="alignnone size-full wp-image-11836" src="https://tiltedchair.co/wp-content/uploads/2025/03/how-systematized.webp" alt="How well-defined &amp; systematized is the brand?" width="100%" height="auto" /></p>
<h4>Brand Systemization</h4>
<p>Every client’s brand is in a different condition—some are super well-defined and others, well&#8230;not so much.</p>
<p>Understandably, website projects that work with rudimentary brand systems take more time to develop visuals because there’s more exploration required. Assets tend to not be as well-organized and easy to work with. So, clients with better-organized and documented brands are rewarded with lower associated costs. (We use a 5-point scale for this piece, with 5 being “super well-systematized.” Our long-time client <a href="https://atlassian.design" target="_blank" rel="noopener">Atlassian</a> would represent a perfect 5 here, with any client starting from scratch being a 1 on the other end.)</p>
<p><em>*It should also be noted that, if a brand truly is starting from scratch, it often times makes more sense to perform a dedicated brand development exercise before ever even starting on a website project, because frankly, we’re not ready for web yet if the brand is truly nascent. Luckily for you, <a href="https://tiltedchair.co/services/branding-agency-austin/" target="_blank" rel="noopener">brand development and design</a> just happens to be one of our other specialties! And of course, after our branding phase is done, we’d plop a 5 into the data field for this line item.</em></p>
<div class="ul-container grid-100 tablet-grid-100 mobile-grid-100 padding-global-half">
<ul>
<li><strong>Project 1 Consideration:</strong> How well-defined/systematized is the brand?</li>
<li><strong>Project 1 Data:</strong> 5</li>
<li><strong>Project 1 Associated Cost:</strong> $00.00</li>
</ul>
</div>
<div class="ul-container-even grid-100 tablet-grid-100 mobile-grid-100 padding-global-half">
<ul>
<li><strong>Project 2 Consideration:</strong> How well-defined/systematized is the brand?</li>
<li><strong>Project 2 Data:</strong> 2</li>
<li><strong>Project 2 Associated Cost:</strong> $3,375.00</li>
</ul>
</div>
<p><img decoding="async" class="alignnone size-full wp-image-11836" src="https://tiltedchair.co/wp-content/uploads/2025/03/how-many-unique-page-templates.webp" alt="How many unique template types?" width="100%" height="auto" /></p>
<h4>Unique Template Types</h4>
<p>Each unique template (like homepage, product listings, or contact pages) requires custom design and development. More unique templates mean more work and higher costs for the design and development teams.</p>
<div class="ul-container grid-100 tablet-grid-100 mobile-grid-100 padding-global-half">
<ul>
<li><strong>Project 1 Consideration:</strong> How many unique template types will be required?</li>
<li><strong>Project 1 Data:</strong> 10</li>
<li><strong>Project 1 Associated Cost:</strong> $9,000.00</li>
</ul>
</div>
<div class="ul-container-even grid-100 tablet-grid-100 mobile-grid-100 padding-global-half">
<ul>
<li><strong>Project 2 Consideration:</strong> How many unique template types will be required?</li>
<li><strong>Project 2 Data:</strong> 5</li>
<li><strong>Project 2 Associated Cost:</strong> $4,500.00</li>
</ul>
</div>
<p>(Note: Standard pages like &#8220;Terms of Service&#8221; or &#8220;Privacy Policy&#8221; are excluded unless they require custom layouts.)</p>
<p><img decoding="async" class="alignnone size-full wp-image-11836" src="https://tiltedchair.co/wp-content/uploads/2025/03/how-many-blog-posts-and-where-are-they.webp" alt="How many blog posts are there...and where are they?" width="100%" height="auto" /></p>
<h4>Blog Posts</h4>
<p>If your website includes a blog, the number of blog posts will affect migration complexity and setup costs. If the posts are not already in WordPress, additional costs will apply for migration.</p>
<div class="ul-container grid-100 tablet-grid-100 mobile-grid-100 padding-global-half">
<ul>
<li><strong>Project 1 Consideration:</strong> How many blog posts does the website have?</li>
<li><strong>Project 1 Data:</strong> 55 posts</li>
<li><strong>Project 1 Associated Cost:</strong> $4,125.00</li>
<li><strong>Project 1 Are the posts already in WordPress?:</strong> No</li>
<li><strong>Project 1 Associated Migration Cost:</strong> $500.00</li>
</ul>
</div>
<div class="ul-container-even grid-100 tablet-grid-100 mobile-grid-100 padding-global-half">
<ul>
<li><strong>Project 2 Consideration:</strong> How many blog posts does the website have?</li>
<li><strong>Project 2 Data:</strong> 0</li>
<li><strong>Project 2 Associated Cost:</strong> $0.00 (if the posts are already created)</li>
<li><strong>Project 2 Are the posts already in WordPress?:</strong> Yes</li>
<li><strong>Project 2 Associated Migration Cost:</strong> $0.00</li>
</ul>
</div>
<p><img decoding="async" class="alignnone size-full wp-image-11836" src="https://tiltedchair.co/wp-content/uploads/2025/03/how-custom-post-types.webp" alt="How many custom post types are there?" width="100%" height="auto" /></p>
<h4>Custom Post Types (CPT)</h4>
<p>Custom post types are used for managing unique content structures, such as events, team members, and FAQs. More custom post types mean more development resources are needed, especially in cases where additional CPTs require dedicated pages and are expected to be used as landing pages in their own right.</p>
<div class="ul-container grid-100 tablet-grid-100 mobile-grid-100 padding-global-half">
<ul>
<li><strong>Project 1 Consideration:</strong> How many custom post types (CPT) are required?</li>
<li><strong>Project 1 Data:</strong> 7</li>
<li><strong>Project 1 Associated Cost:</strong> $6,300.00</li>
</ul>
</div>
<div class="ul-container-even grid-100 tablet-grid-100 mobile-grid-100 padding-global-half">
<ul>
<li><strong>Project 2 Consideration:</strong> How many custom post types (CPT) are required?</li>
<li><strong>Project 2 Data:</strong> 2</li>
<li><strong>Project 2 Associated Cost:</strong> $1,800.00</li>
</ul>
</div>
<p><img decoding="async" class="alignnone size-full wp-image-11836" src="https://tiltedchair.co/wp-content/uploads/2025/03/how-many-spot-graphics.webp" alt="How many custom spot graphics are there?" width="100%" height="auto" /></p>
<h4>Custom Spot Graphics</h4>
<p>Custom graphics, like banners, icons, or illustrations, are essential for a visually engaging website. More unique graphics will increase design costs.</p>
<p>We’ve found that it’s common for tech companies to require a great deal of time during the spot graphic design phase simply because most technology companies have myriad interfaces that need to be incorporated into graphic compositions. More products or solutions = more spot graphics.</p>
<div class="ul-container grid-100 tablet-grid-100 mobile-grid-100 padding-global-half">
<ul>
<li><strong>Project 1 Consideration:</strong> How many unique spot graphics need to be created?</li>
<li><strong>Project 1 Data:</strong> 25</li>
<li><strong>Project 1 Associated Cost:</strong> $11,250.00</li>
</ul>
</div>
<div class="ul-container-even grid-100 tablet-grid-100 mobile-grid-100 padding-global-half">
<ul>
<li><strong>Project 2 Consideration:</strong> How many unique spot graphics need to be created?</li>
<li><strong>Project 2 Data:</strong> 10</li>
<li><strong>Project 2 Associated Cost:</strong> $4,500.00</li>
</ul>
</div>
<h4>Technology Integrations</h4>
<p>Websites often need integrations with third-party tools (like CRM systems, email marketing, etc.). Each integration represents additional structural complexity, and thus, must be accounted for.</p>
<div class="ul-container grid-100 tablet-grid-100 mobile-grid-100 padding-global-half">
<ul>
<li><strong>Project 1 Consideration:</strong> How many technology integrations are needed?</li>
<li><strong>Project 1 Data:</strong> 3</li>
<li><strong>Project 1 Associated Cost:</strong> $2,025.00</li>
</ul>
</div>
<div class="ul-container-even grid-100 tablet-grid-100 mobile-grid-100 padding-global-half">
<ul>
<li><strong>Project 2 Consideration:</strong> How many technology integrations are needed?</li>
<li><strong>Project 2 Data:</strong> 0</li>
<li><strong>Project 2 Associated Cost:</strong> $0.00</li>
</ul>
</div>
<p><img data-dominant-color="fed8e8" data-has-transparency="false" style="--dominant-color: #fed8e8;" decoding="async" class="alignnone size-full wp-image-12079 not-transparent" src="https://tiltedchair.co/wp-content/uploads/2025/03/sourceday-rive-animation.gif" alt="Animated GIF of a Rive animation demonstrating an advanced website feature." width="100%" height="auto" /></p>
<h4>Advanced Features (like maps, custom website animations, etc.)</h4>
<p>If your website requires maps or location pins (e.g., for store locations or events), Rive or GSAP animations, or more sophisticated javascript/jQuery features, this will require additional development and API integrations.</p>
<div class="ul-container grid-100 tablet-grid-100 mobile-grid-100 padding-global-half">
<ul>
<li><strong>Project 1 Consideration:</strong> Does the site require advanced features?</li>
<li><strong>Project 1 Data:</strong> Yes</li>
<li><strong>Project 1 Details:</strong> Pin-based map system for multiple service locations</li>
<li><strong>Project 1 Associated Cost:</strong> $2,000.00</li>
</ul>
</div>
<div class="ul-container-even grid-100 tablet-grid-100 mobile-grid-100 padding-global-half">
<ul>
<li><strong>Project 2 Consideration:</strong> Does the site require advanced features?</li>
<li><strong>Project 2 Data:</strong> Yes</li>
<li><strong>Project 2 Details:</strong> Interactive Rive animated infographic</li>
<li><strong>Project 2 Associated Cost:</strong> $4,000</li>
</ul>
</div>
<h2>The Total</h2>
<p>For those with their calculators out, you might be looking at some totals that look like this:</p>
<div class="ul-container grid-100 tablet-grid-100 mobile-grid-100 padding-global-half">
<h3>Project 1: $42,850.00</h3>
<ul>
<li><strong>Pages:</strong> $7,650.00</li>
<li><strong>Brand Systematization:</strong> $00.00</li>
<li><strong>Unique Templates:</strong> $9,000.00</li>
<li><strong>Blog Posts:</strong> $4,625.00</li>
<li><strong>Custom Post Types:</strong> $6,300.00</li>
<li><strong>Custom Spot Graphics:</strong> $11,250.00</li>
<li><strong>Technology Integrations:</strong> $2,025.00</li>
<li><strong>Advanced Features:</strong> $2,000.00</li>
</ul>
</div>
<div class="ul-container-even grid-100 tablet-grid-100 mobile-grid-100 padding-global-half">
<h3>Project 2: $18,925.00</h3>
<ul>
<li><strong>Pages:</strong> $750.00</li>
<li><strong>Brand Systematization:</strong> $3,375.00</li>
<li><strong>Unique Templates:</strong> $4,500.00</li>
<li><strong>Blog Posts:</strong> $0.00</li>
<li><strong>Custom Post Types:</strong> $1,800.00</li>
<li><strong>Custom Spot Graphics:</strong> $4,500.00</li>
<li><strong>Technology Integrations:</strong> $0.00</li>
<li><strong>Advanced Features:</strong> $4,000.00</li>
</ul>
</div>
<h2>Why price a WordPress website build this way?</h2>
<h3>Why not just estimate hours across all of the various roles/disciplines mentioned above?</h3>
<p><strong>Great question.</strong></p>
<p>The answer is, after 15 years and nearly 500 WordPress websites built, we’ve found that structuring the pricing of the WordPress website project in alignment without how the project itself is structured makes the most sense.</p>
<p>For example, charging based on the number of post types corresponds directly to the time and effort it takes to set up custom posts types within the WordPress environment. Charging based on spot graphics matches perfectly with how we set up our Figma files for graphics delivery. The time required to execute on each of the project roles and phases is embedded in the cost of each of those line items. (Time which we have data-backed ways of justifying.)</p>
<h2>A well-crafted website comes with a price, and that’s a good thing.</h2>
<p>If we had a dollar for every time we popped open a WordPress installation and saw this&#8230;</p>
<p><img data-dominant-color="a9c3bb" data-has-transparency="false" style="--dominant-color: #a9c3bb;" decoding="async" class="alignnone size-full wp-image-12081 not-transparent" src="https://tiltedchair.co/wp-content/uploads/2025/03/messy-wordpress-dashboard-with-updates-and-lots-of-notifications.webp" alt="A messy WordPress dashboard." width="100%" height="auto" /></p>
<p>&#8230;we’d have a lot of dollars. To design and develop in WordPress is simple, but to design and develop in WordPress <em>professionally</em> is a whole other ball of beeswax.</p>
<p>Our process for building world-class WordPress websites—and the cost associated with it—reflects the quality and work that goes into it. Understanding the details behind its potential costs can help you make an informed decision for your business.</p>
<p>By recognizing factors like page count, custom designs, and integrations, you’ll be able to better assess the value of the work. This clarity lets you prioritize what matters most for your site and ensures you get the best return.</p>
<p>Here’s to building a site that works as hard as you do!</p>

                <div class='gf_browser_unknown gform_wrapper gform-theme gform-theme--foundation gform-theme--framework gform-theme--orbital' data-form-theme='orbital' data-form-index='0' id='gform_wrapper_4' ><style>#gform_wrapper_4[data-form-index="0"].gform-theme{--gf-color-primary: #204ce5;--gf-color-primary-rgb: 32, 76, 229;--gf-color-primary-contrast: #fff;--gf-color-primary-contrast-rgb: 255, 255, 255;--gf-color-primary-darker: #001AB3;--gf-color-primary-lighter: #527EFF;--gf-color-secondary: #fff;--gf-color-secondary-rgb: 255, 255, 255;--gf-color-secondary-contrast: #112337;--gf-color-secondary-contrast-rgb: 17, 35, 55;--gf-color-secondary-darker: #F5F5F5;--gf-color-secondary-lighter: #FFFFFF;--gf-color-out-ctrl-light: rgba(17, 35, 55, 0.1);--gf-color-out-ctrl-light-rgb: 17, 35, 55;--gf-color-out-ctrl-light-darker: rgba(104, 110, 119, 0.35);--gf-color-out-ctrl-light-lighter: #F5F5F5;--gf-color-out-ctrl-dark: #585e6a;--gf-color-out-ctrl-dark-rgb: 88, 94, 106;--gf-color-out-ctrl-dark-darker: #112337;--gf-color-out-ctrl-dark-lighter: rgba(17, 35, 55, 0.65);--gf-color-in-ctrl: #fff;--gf-color-in-ctrl-rgb: 255, 255, 255;--gf-color-in-ctrl-contrast: #112337;--gf-color-in-ctrl-contrast-rgb: 17, 35, 55;--gf-color-in-ctrl-darker: #F5F5F5;--gf-color-in-ctrl-lighter: #FFFFFF;--gf-color-in-ctrl-primary: #204ce5;--gf-color-in-ctrl-primary-rgb: 32, 76, 229;--gf-color-in-ctrl-primary-contrast: #fff;--gf-color-in-ctrl-primary-contrast-rgb: 255, 255, 255;--gf-color-in-ctrl-primary-darker: #001AB3;--gf-color-in-ctrl-primary-lighter: #527EFF;--gf-color-in-ctrl-light: rgba(17, 35, 55, 0.1);--gf-color-in-ctrl-light-rgb: 17, 35, 55;--gf-color-in-ctrl-light-darker: rgba(104, 110, 119, 0.35);--gf-color-in-ctrl-light-lighter: #F5F5F5;--gf-color-in-ctrl-dark: #585e6a;--gf-color-in-ctrl-dark-rgb: 88, 94, 106;--gf-color-in-ctrl-dark-darker: #112337;--gf-color-in-ctrl-dark-lighter: rgba(17, 35, 55, 0.65);--gf-radius: 3px;--gf-font-size-secondary: 14px;--gf-font-size-tertiary: 13px;--gf-icon-ctrl-number: url("data:image/svg+xml,%3Csvg width='8' height='14' viewBox='0 0 8 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4 0C4.26522 5.96046e-08 4.51957 0.105357 4.70711 0.292893L7.70711 3.29289C8.09763 3.68342 8.09763 4.31658 7.70711 4.70711C7.31658 5.09763 6.68342 5.09763 6.29289 4.70711L4 2.41421L1.70711 4.70711C1.31658 5.09763 0.683417 5.09763 0.292893 4.70711C-0.0976311 4.31658 -0.097631 3.68342 0.292893 3.29289L3.29289 0.292893C3.48043 0.105357 3.73478 0 4 0ZM0.292893 9.29289C0.683417 8.90237 1.31658 8.90237 1.70711 9.29289L4 11.5858L6.29289 9.29289C6.68342 8.90237 7.31658 8.90237 7.70711 9.29289C8.09763 9.68342 8.09763 10.3166 7.70711 10.7071L4.70711 13.7071C4.31658 14.0976 3.68342 14.0976 3.29289 13.7071L0.292893 10.7071C-0.0976311 10.3166 -0.0976311 9.68342 0.292893 9.29289Z' fill='rgba(17, 35, 55, 0.65)'/%3E%3C/svg%3E");--gf-icon-ctrl-select: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0.292893 0.292893C0.683417 -0.097631 1.31658 -0.097631 1.70711 0.292893L5 3.58579L8.29289 0.292893C8.68342 -0.0976311 9.31658 -0.0976311 9.70711 0.292893C10.0976 0.683417 10.0976 1.31658 9.70711 1.70711L5.70711 5.70711C5.31658 6.09763 4.68342 6.09763 4.29289 5.70711L0.292893 1.70711C-0.0976311 1.31658 -0.0976311 0.683418 0.292893 0.292893Z' fill='rgba(17, 35, 55, 0.65)'/%3E%3C/svg%3E");--gf-icon-ctrl-search: url("data:image/svg+xml,%3Csvg width='640' height='640' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M256 128c-70.692 0-128 57.308-128 128 0 70.691 57.308 128 128 128 70.691 0 128-57.309 128-128 0-70.692-57.309-128-128-128zM64 256c0-106.039 85.961-192 192-192s192 85.961 192 192c0 41.466-13.146 79.863-35.498 111.248l154.125 154.125c12.496 12.496 12.496 32.758 0 45.254s-32.758 12.496-45.254 0L367.248 412.502C335.862 434.854 297.467 448 256 448c-106.039 0-192-85.962-192-192z' fill='rgba(17, 35, 55, 0.65)'/%3E%3C/svg%3E");--gf-label-space-y-secondary: var(--gf-label-space-y-md-secondary);--gf-ctrl-border-color: #686e77;--gf-ctrl-size: var(--gf-ctrl-size-md);--gf-ctrl-label-color-primary: #112337;--gf-ctrl-label-color-secondary: #112337;--gf-ctrl-choice-size: var(--gf-ctrl-choice-size-md);--gf-ctrl-checkbox-check-size: var(--gf-ctrl-checkbox-check-size-md);--gf-ctrl-radio-check-size: var(--gf-ctrl-radio-check-size-md);--gf-ctrl-btn-font-size: var(--gf-ctrl-btn-font-size-md);--gf-ctrl-btn-padding-x: var(--gf-ctrl-btn-padding-x-md);--gf-ctrl-btn-size: var(--gf-ctrl-btn-size-md);--gf-ctrl-btn-border-color-secondary: #686e77;--gf-ctrl-btn-bg-color-hover-tertiary: #EBEBEB;--gf-field-img-choice-size: var(--gf-field-img-choice-size-md);--gf-field-img-choice-card-space: var(--gf-field-img-choice-card-space-md);--gf-field-img-choice-check-ind-size: var(--gf-field-img-choice-check-ind-size-md);--gf-field-img-choice-check-ind-icon-size: var(--gf-field-img-choice-check-ind-icon-size-md);--gf-field-pg-steps-number-color: rgba(17, 35, 55, 0.8);}</style>
                        <div class='gform_heading'>
                            <h2 class="gform_title">Non-Restaurants</h2>
                            <p class='gform_description'></p>
                        </div><form method='post' enctype='multipart/form-data'  id='gform_4'  action='/category/web-design-web-development/feed/' data-formid='4' novalidate>
        <div id='gf_progressbar_wrapper_4' class='gf_progressbar_wrapper' data-start-at-zero=''>
        	<p class="gf_progressbar_title">Step <span class='gf_step_current_page'>1</span> of <span class='gf_step_page_count'>3</span><span class='gf_step_page_name'></span>
        	</p>
            <div class='gf_progressbar gf_progressbar_blue' aria-hidden='true'>
                <div class='gf_progressbar_percentage percentbar_blue percentbar_33' style='width:33%;'><span>33%</span></div>
            </div></div>
                        <div class='gform-body gform_body'><div id='gform_page_4_1' class='gform_page ' data-js='page-field-id-0' >
					<div class='gform_page_fields'><div id='gform_fields_4' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id="field_4_19" class="gfield gfield--type-honeypot gform_validation_container field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible gfield--honeypot"  data-field-class="gfield--honeypot" ><label class='gfield_label gform-field-label' for='input_4_19'><span class='gform-field-label__text'>Phone</span></label><div class='ginput_container'><input name='input_19' id='input_4_19' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_4_19'>This field is for validation purposes and should be left unchanged.</div></div><div id="field_4_1" class="gfield gfield--type-email gfield--input-type-email gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible gfield--email gfield--large"  data-field-class="gfield--email gfield--large" ><label class='gfield_label gform-field-label' for='input_4_1'><span class='gform-field-label__text'>First, what’s a good email address to reach you?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_email'>
                            <input name='input_1' id='input_4_1' type='email' value='' class='large'   placeholder='Your email address' aria-required="true" aria-invalid="false"  />
                        </div></div><fieldset id="field_4_18" class="gfield gfield--type-name gfield--input-type-name gfield--width-full gfield_contains_required field_sublabel_above gfield--no-description field_description_below field_validation_below gfield_visibility_visible gfield--name gfield--large"  data-field-class="gfield--name gfield--large" ><legend class='gfield_label gform-field-label gfield_label_before_complex' ><span class='gform-field-label__text'>What’s your name?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></legend><div class='ginput_complex ginput_container ginput_container--name no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gform-grid-row' id='input_4_18'>
                            
                            <span id='input_4_18_3_container' class='name_first gform-grid-col gform-grid-col--size-auto' >
                                                    <label for='input_4_18_3' class='gform-field-label gform-field-label--type-sub '>First</label>
                                                    <input type='text' name='input_18.3' id='input_4_18_3' value=''   aria-required='true'     />
                                                </span>
                            
                            <span id='input_4_18_6_container' class='name_last gform-grid-col gform-grid-col--size-auto' >
                                                            <label for='input_4_18_6' class='gform-field-label gform-field-label--type-sub '>Last</label>
                                                            <input type='text' name='input_18.6' id='input_4_18_6' value=''   aria-required='true'     />
                                                        </span>
                            
                        </div></fieldset></div>
                    </div>
                    <div class='gform-page-footer gform_page_footer top_label'>
                         <button type='button' id='gform_next_button_4_3' class='gform_next_button gform-theme-button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='next' >Next</button> 
                    </div>
                </div>
                <div id='gform_page_4_2' class='gform_page' data-js='page-field-id-3' style='display:none;'>
                    <div class='gform_page_fields'>
                        <div id='gform_fields_4_2' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id="field_4_4" class="gfield gfield--type-select gfield--input-type-select gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible gfield--select gfield--large"  data-field-class="gfield--select gfield--large" ><label class='gfield_label gform-field-label' for='input_4_4'><span class='gform-field-label__text'>Which of these best describes you?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_select'><select name='input_4' id='input_4_4' class='large gfield_select'    aria-required="true" aria-invalid="false" ><option value='Business owner/leader' >Business owner/leader</option><option value='Marketing leader/manager' >Marketing leader/manager</option><option value='Other' >Other</option></select></div></div><div id="field_4_16" class="gfield gfield--type-text gfield--input-type-text gfield--width-full gfield_contains_required field_sublabel_below gfield--has-description field_description_above field_validation_below gfield_visibility_visible gfield--text gfield--large"  data-field-class="gfield--text gfield--large" ><label class='gfield_label gform-field-label' for='input_4_16'><span class='gform-field-label__text'>Where can we can you out online?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='gfield_description' id='gfield_description_4_16'>Your website is preferred, but social channels work, too.</div><div class='ginput_container ginput_container_text'><input name='input_16' id='input_4_16' type='text' value='' class='large'  aria-describedby="gfield_description_4_16"   aria-required="true" aria-invalid="false"   /></div></div></div>
                    </div>
                    <div class='gform-page-footer gform_page_footer top_label'>
                        <button type='button' id='gform_previous_button_4_10' class='gform_previous_button gform-theme-button gform-theme-button--secondary button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='previous' >Previous</button> <button type='button' id='gform_next_button_4_10' class='gform_next_button gform-theme-button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='next' >Next</button> 
                    </div>
                </div>
                <div id='gform_page_4_3' class='gform_page' data-js='page-field-id-10' style='display:none;'>
                    <div class='gform_page_fields'>
                        <div id='gform_fields_4_3' class='gform_fields top_label form_sublabel_below description_below validation_below'><fieldset id="field_4_9" class="gfield gfield--type-radio gfield--type-choice gfield--input-type-radio gfield--width-half gfield_contains_required field_sublabel_below gfield--has-description field_description_above field_validation_below gfield_visibility_visible gfield--choice-align-vertical gfield--radio gfield--large"  data-field-class="gfield--radio gfield--large" ><legend class='gfield_label gform-field-label' ><span class='gform-field-label__text'>Let’s talk turkey...</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></legend><div class='gfield_description' id='gfield_description_4_9'>What is your budget for this initiative?</div><div class='ginput_container ginput_container_radio'><div class='gfield_radio' id='input_4_9'>
			<div class='gchoice gchoice_4_9_0'>
					<input class='gfield-choice-input' name='input_9' type='radio' value='$25,000-50,000'  id='choice_4_9_0' onchange='gformToggleRadioOther( this )' aria-describedby="gfield_description_4_9"   />
					<label for='choice_4_9_0' id='label_4_9_0' class='gform-field-label gform-field-label--type-inline'>$25,000-50,000</label>
			</div>
			<div class='gchoice gchoice_4_9_1'>
					<input class='gfield-choice-input' name='input_9' type='radio' value='$50,000-100,000'  id='choice_4_9_1' onchange='gformToggleRadioOther( this )'    />
					<label for='choice_4_9_1' id='label_4_9_1' class='gform-field-label gform-field-label--type-inline'>$50,000-100,000</label>
			</div>
			<div class='gchoice gchoice_4_9_2'>
					<input class='gfield-choice-input' name='input_9' type='radio' value='$100,000+'  id='choice_4_9_2' onchange='gformToggleRadioOther( this )'    />
					<label for='choice_4_9_2' id='label_4_9_2' class='gform-field-label gform-field-label--type-inline'>$100,000+</label>
			</div></div></div></fieldset><div id="field_4_13" class="gfield gfield--type-phone gfield--input-type-phone gfield--phone-format-standard gfield--width-half gfield_contains_required field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible gfield--phone gfield--large"  data-field-class="gfield--phone gfield--large" ><label class='gfield_label gform-field-label' for='input_4_13'><span class='gform-field-label__text'>What’s your cell number?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_phone'><input name='input_13' id='input_4_13' type='tel' value='' class='large'  placeholder='(999) 999-9999' aria-required="true" aria-invalid="false" aria-describedby="gfield_description_4_13"  data-mask="(999) 999-9999" /></div><div class='gfield_description' id='gfield_description_4_13'>By providing your phone number, you consent to receiving text messages from Tilted Chair.</div></div></div></div>
        <div class='gform-page-footer gform_page_footer top_label'><button type='submit' id='gform_previous_button_4' class='gform_previous_button gform-theme-button gform-theme-button--secondary button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='previous' >Previous</button> <button type='submit' id='gform_submit_button_4' class='gform_button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' >Submit</button> <input type='hidden' class='gform_hidden' name='gform_submission_speeds' value='{&quot;pages&quot;:[]}' />
            <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_4' value='postback' />
            <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_4' id='gform_theme_4' value='orbital' />
            <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_4' id='gform_style_settings_4' value='[]' />
            <input type='hidden' class='gform_hidden' name='is_submit_4' value='1' />
            <input type='hidden' class='gform_hidden' name='gform_submit' value='4' />
            
            <input type='hidden' class='gform_hidden' name='gform_currency' data-currency='USD' value='17/6cjY5BbJYzcsMojlmmxR+l7Phd0obWODGS1wvndZmUt558vyb3i+BXpns4c+qESqiNhElCCfuTeq2o07Hynkqg+sJPLuVQqiOrTXhPTBEcmY=' />
            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' />
            <input type='hidden' class='gform_hidden' name='state_4' value='WyJ7XCI0XCI6W1wiNWZmMmQ0M2E4YWJjZWZjNzA2MGQ2MGFlNzQyN2YzNzlcIixcImRmODA4MDA2NjJhNDkzYmZjYjBkMWVlOTg4NTA0NTg0XCIsXCI3YWE0NjA5NGFjNjdmNGY0Mzk5MmExOWUzNjg5YjY3MFwiXSxcIjlcIjpbXCJlNDE2NGY2NTNkYjA3MzNhZDZiNGFjYTQ1MTdiNzU5NVwiLFwiZDM4MjJjZGFlOGNlYmRkNTU4M2JkZTFmYzhiMWU3ZmRcIixcImE5YzY3YjQ5MDczNzA5MTAyZTVjOTczNjFiOGMxMzg3XCJdLFwiZ2Zvcm1fc3VibWlzc2lvbl9tZXRob2RcIjpbXCIzOWJlMzc4NWI2NGMyN2NjYzBlNWY5Y2FhYWFjMmExZFwiLFwiZDM1OTI5MWMwOTU2YzIyMWUxMjY1NmE2MDQ0ZWYyYWVcIl0sXCJnZm9ybV90aGVtZVwiOlwiZDUzYWU2NWEzY2Q1ZTViOWIyNDcxMGM3YzU1ZTc5OTVcIixcImdmb3JtX3N0eWxlX3NldHRpbmdzXCI6XCI3MDBjYzY2MzU2MDBkOGQyMGQzYmJjYTZiY2I0OGIwN1wiLFwiZm9ybV9pZFwiOlwiNjE2M2I5OTY2ZTFjMGZhMWI3YTE2ZGY0YjBlNjJkZmFcIixcInVybFwiOlwiNGRhNWFiYmI5MjVhMzg4NDM2Mjc0Y2JkNDY1ZTcyNjZcIixcInN0YXRlX3RpbWVzdGFtcFwiOlwiYmNjMjhkZWQ4YmM2YjVjMTgxZmJmZTBlYjU0MjVmMWNcIn0iLCIyYjM0MzEwNDVmNjQ5OGNlMDFlZjRjMTJkZGNlNGM0MCIsMTc5MTMxNTY5MF0=' />
            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_4' id='gform_target_page_number_4' value='2' />
            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_4' id='gform_source_page_number_4' value='1' />
            <input type='hidden' name='gform_field_values' value='' />
            
        </div>
             </div></div>
                        </form>
                        </div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WordPress Wars &#038; a Bulletproof Alternative to ACF (Advanced Custom Fields)</title>
		<link>https://tiltedchair.co/wordpress-wars-bulletproof-alternative-to-acf-advanced-custom-fields/</link>
		
		<dc:creator><![CDATA[Jamie Rodriguez]]></dc:creator>
		<pubDate>Mon, 14 Oct 2024 18:39:24 +0000</pubDate>
				<category><![CDATA[Web Design & Development]]></category>
		<category><![CDATA[ACF]]></category>
		<category><![CDATA[Carbon Fields]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://tiltedchair.co/?p=11348</guid>

					<description><![CDATA[WordPress battles WP Engine, removes ACF from its plugin directory The web wars between WordPress creator and Automattic CEO Matt Mullenweg and the WordPress-unaffiliated web hosting provider WP Engine escalated to new heights this weekend, as Matt and WordPress.org commandeered WP Engine’s plugin Advanced Custom Fields (also known as ACF) and renamed it “Secure Custom [&#8230;]]]></description>
										<content:encoded><![CDATA[<h2>WordPress battles WP Engine, removes ACF from its plugin directory</h2>
<p>The web wars between WordPress creator and Automattic CEO Matt Mullenweg and the WordPress-unaffiliated web hosting provider WP Engine escalated to new heights <a href="https://www.theverge.com/2024/10/12/24268637/wordpress-org-matt-mullenweg-acf-fork-secure-custom-fields-wp-engine" target="_blank" rel="noopener">this weekend</a>, as Matt and WordPress.org commandeered WP Engine’s plugin Advanced Custom Fields (also known as ACF) and renamed it “Secure Custom Fields.”</p>
<p>The takeover removed the ability of users of ACF’s free version from updating their plugin via the normal WordPress.org interface.</p>
<p>This was an unprecedented move, and is in direct conflict with WordPress.org’s open source origins/nature. It’s being perceived as an entirely retaliatory response on the part of Mullenweg &amp; WordPress to strike back at WP Engine after the web host sent Automattic a <a href="https://techcrunch.com/2024/09/23/wp-engine-sends-cease-and-desist-letter-to-automattic-over-mullenwegs-comments/" target="_blank" rel="noopener">cease-and-desist letter</a> last week.</p>
<p>The tl;dr version of this whole thing: it’s a mess.</p>
<p><a href="https://www.advancedcustomfields.com/blog/installing-and-upgrading-to-the-latest-version-of-acf/" target="_blank" rel="noopener">It should be noted that ACF Pro users were unaffected by the conflict</a>.</p>
<h3>Does Tilted Chair build with ACF?</h3>
<h4>No.</h4>
<p>Tilted Chair does and always has preferred to build in WordPress using <a href="https://carbonfields.net" target="_blank" rel="noopener">Carbon Fields</a>. We absolutely love Carbon Fields: we’ve used it to build and launch satire blogs like <a href="https://cfbnewsnow.com" target="_blank" rel="noopener">CFB News Now</a>, and we’ve used it to deploy presidential campaigns, like Pete Buttigieg’s 2020 <a href="https://pete.tiltedchair.co" target="_blank" rel="noopener">campaign website</a>.</p>
<p>Why?</p>
<p><strong>We prefer Carbon Fields for a number of reasons:</strong></p>
<ul>
<li>Carbon Fields isn’t a plugin. It can be installed via WordPress’s plugin interface (but even then, it’s still not a plugin in the traditional sense), but Tilted Chair prefers to install via npm, Yarn, or Composer.</li>
<li>As such, Carbon Fields doesn&#8217;t require nor ever receive plugin updates.</li>
<li>It’s totally free. (Not freemium, FREE. All advanced features are available to everyone, totally free.)</li>
<li>We know and have an open line of communications with the Carbon Fields creators over at <a href="https://htmlburger.com" target="_blank" rel="noopener">HTMLBurger</a>.</li>
<li>Its syntax is remarkably logical and elegant.</li>
</ul>
<h3>Can we help convert your site from ACF to Carbon Fields?</h3>
<p><strong>Yes!</strong> We can</p>
<p>If you and your business have been impacted by the WordPress/WP Engine spat, and you want to realize some stability within the WordPress platform via Carbon Fields, contact us right away.</p>

                <div class='gf_browser_unknown gform_wrapper gform-theme gform-theme--foundation gform-theme--framework gform-theme--orbital' data-form-theme='orbital' data-form-index='0' id='gform_wrapper_4' ><style>#gform_wrapper_4[data-form-index="0"].gform-theme{--gf-color-primary: #204ce5;--gf-color-primary-rgb: 32, 76, 229;--gf-color-primary-contrast: #fff;--gf-color-primary-contrast-rgb: 255, 255, 255;--gf-color-primary-darker: #001AB3;--gf-color-primary-lighter: #527EFF;--gf-color-secondary: #fff;--gf-color-secondary-rgb: 255, 255, 255;--gf-color-secondary-contrast: #112337;--gf-color-secondary-contrast-rgb: 17, 35, 55;--gf-color-secondary-darker: #F5F5F5;--gf-color-secondary-lighter: #FFFFFF;--gf-color-out-ctrl-light: rgba(17, 35, 55, 0.1);--gf-color-out-ctrl-light-rgb: 17, 35, 55;--gf-color-out-ctrl-light-darker: rgba(104, 110, 119, 0.35);--gf-color-out-ctrl-light-lighter: #F5F5F5;--gf-color-out-ctrl-dark: #585e6a;--gf-color-out-ctrl-dark-rgb: 88, 94, 106;--gf-color-out-ctrl-dark-darker: #112337;--gf-color-out-ctrl-dark-lighter: rgba(17, 35, 55, 0.65);--gf-color-in-ctrl: #fff;--gf-color-in-ctrl-rgb: 255, 255, 255;--gf-color-in-ctrl-contrast: #112337;--gf-color-in-ctrl-contrast-rgb: 17, 35, 55;--gf-color-in-ctrl-darker: #F5F5F5;--gf-color-in-ctrl-lighter: #FFFFFF;--gf-color-in-ctrl-primary: #204ce5;--gf-color-in-ctrl-primary-rgb: 32, 76, 229;--gf-color-in-ctrl-primary-contrast: #fff;--gf-color-in-ctrl-primary-contrast-rgb: 255, 255, 255;--gf-color-in-ctrl-primary-darker: #001AB3;--gf-color-in-ctrl-primary-lighter: #527EFF;--gf-color-in-ctrl-light: rgba(17, 35, 55, 0.1);--gf-color-in-ctrl-light-rgb: 17, 35, 55;--gf-color-in-ctrl-light-darker: rgba(104, 110, 119, 0.35);--gf-color-in-ctrl-light-lighter: #F5F5F5;--gf-color-in-ctrl-dark: #585e6a;--gf-color-in-ctrl-dark-rgb: 88, 94, 106;--gf-color-in-ctrl-dark-darker: #112337;--gf-color-in-ctrl-dark-lighter: rgba(17, 35, 55, 0.65);--gf-radius: 3px;--gf-font-size-secondary: 14px;--gf-font-size-tertiary: 13px;--gf-icon-ctrl-number: url("data:image/svg+xml,%3Csvg width='8' height='14' viewBox='0 0 8 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4 0C4.26522 5.96046e-08 4.51957 0.105357 4.70711 0.292893L7.70711 3.29289C8.09763 3.68342 8.09763 4.31658 7.70711 4.70711C7.31658 5.09763 6.68342 5.09763 6.29289 4.70711L4 2.41421L1.70711 4.70711C1.31658 5.09763 0.683417 5.09763 0.292893 4.70711C-0.0976311 4.31658 -0.097631 3.68342 0.292893 3.29289L3.29289 0.292893C3.48043 0.105357 3.73478 0 4 0ZM0.292893 9.29289C0.683417 8.90237 1.31658 8.90237 1.70711 9.29289L4 11.5858L6.29289 9.29289C6.68342 8.90237 7.31658 8.90237 7.70711 9.29289C8.09763 9.68342 8.09763 10.3166 7.70711 10.7071L4.70711 13.7071C4.31658 14.0976 3.68342 14.0976 3.29289 13.7071L0.292893 10.7071C-0.0976311 10.3166 -0.0976311 9.68342 0.292893 9.29289Z' fill='rgba(17, 35, 55, 0.65)'/%3E%3C/svg%3E");--gf-icon-ctrl-select: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0.292893 0.292893C0.683417 -0.097631 1.31658 -0.097631 1.70711 0.292893L5 3.58579L8.29289 0.292893C8.68342 -0.0976311 9.31658 -0.0976311 9.70711 0.292893C10.0976 0.683417 10.0976 1.31658 9.70711 1.70711L5.70711 5.70711C5.31658 6.09763 4.68342 6.09763 4.29289 5.70711L0.292893 1.70711C-0.0976311 1.31658 -0.0976311 0.683418 0.292893 0.292893Z' fill='rgba(17, 35, 55, 0.65)'/%3E%3C/svg%3E");--gf-icon-ctrl-search: url("data:image/svg+xml,%3Csvg width='640' height='640' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M256 128c-70.692 0-128 57.308-128 128 0 70.691 57.308 128 128 128 70.691 0 128-57.309 128-128 0-70.692-57.309-128-128-128zM64 256c0-106.039 85.961-192 192-192s192 85.961 192 192c0 41.466-13.146 79.863-35.498 111.248l154.125 154.125c12.496 12.496 12.496 32.758 0 45.254s-32.758 12.496-45.254 0L367.248 412.502C335.862 434.854 297.467 448 256 448c-106.039 0-192-85.962-192-192z' fill='rgba(17, 35, 55, 0.65)'/%3E%3C/svg%3E");--gf-label-space-y-secondary: var(--gf-label-space-y-md-secondary);--gf-ctrl-border-color: #686e77;--gf-ctrl-size: var(--gf-ctrl-size-md);--gf-ctrl-label-color-primary: #112337;--gf-ctrl-label-color-secondary: #112337;--gf-ctrl-choice-size: var(--gf-ctrl-choice-size-md);--gf-ctrl-checkbox-check-size: var(--gf-ctrl-checkbox-check-size-md);--gf-ctrl-radio-check-size: var(--gf-ctrl-radio-check-size-md);--gf-ctrl-btn-font-size: var(--gf-ctrl-btn-font-size-md);--gf-ctrl-btn-padding-x: var(--gf-ctrl-btn-padding-x-md);--gf-ctrl-btn-size: var(--gf-ctrl-btn-size-md);--gf-ctrl-btn-border-color-secondary: #686e77;--gf-ctrl-btn-bg-color-hover-tertiary: #EBEBEB;--gf-field-img-choice-size: var(--gf-field-img-choice-size-md);--gf-field-img-choice-card-space: var(--gf-field-img-choice-card-space-md);--gf-field-img-choice-check-ind-size: var(--gf-field-img-choice-check-ind-size-md);--gf-field-img-choice-check-ind-icon-size: var(--gf-field-img-choice-check-ind-icon-size-md);--gf-field-pg-steps-number-color: rgba(17, 35, 55, 0.8);}</style>
                        <div class='gform_heading'>
                            <h2 class="gform_title">Non-Restaurants</h2>
                            <p class='gform_description'></p>
                        </div><form method='post' enctype='multipart/form-data'  id='gform_4'  action='/category/web-design-web-development/feed/' data-formid='4' novalidate>
        <div id='gf_progressbar_wrapper_4' class='gf_progressbar_wrapper' data-start-at-zero=''>
        	<p class="gf_progressbar_title">Step <span class='gf_step_current_page'>1</span> of <span class='gf_step_page_count'>3</span><span class='gf_step_page_name'></span>
        	</p>
            <div class='gf_progressbar gf_progressbar_blue' aria-hidden='true'>
                <div class='gf_progressbar_percentage percentbar_blue percentbar_33' style='width:33%;'><span>33%</span></div>
            </div></div>
                        <div class='gform-body gform_body'><div id='gform_page_4_1' class='gform_page ' data-js='page-field-id-0' >
					<div class='gform_page_fields'><div id='gform_fields_4' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id="field_4_19" class="gfield gfield--type-honeypot gform_validation_container field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible gfield--honeypot"  data-field-class="gfield--honeypot" ><label class='gfield_label gform-field-label' for='input_4_19'><span class='gform-field-label__text'>X/Twitter</span></label><div class='ginput_container'><input name='input_19' id='input_4_19' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_4_19'>This field is for validation purposes and should be left unchanged.</div></div><div id="field_4_1" class="gfield gfield--type-email gfield--input-type-email gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible gfield--email gfield--large"  data-field-class="gfield--email gfield--large" ><label class='gfield_label gform-field-label' for='input_4_1'><span class='gform-field-label__text'>First, what’s a good email address to reach you?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_email'>
                            <input name='input_1' id='input_4_1' type='email' value='' class='large'   placeholder='Your email address' aria-required="true" aria-invalid="false"  />
                        </div></div><fieldset id="field_4_18" class="gfield gfield--type-name gfield--input-type-name gfield--width-full gfield_contains_required field_sublabel_above gfield--no-description field_description_below field_validation_below gfield_visibility_visible gfield--name gfield--large"  data-field-class="gfield--name gfield--large" ><legend class='gfield_label gform-field-label gfield_label_before_complex' ><span class='gform-field-label__text'>What’s your name?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></legend><div class='ginput_complex ginput_container ginput_container--name no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gform-grid-row' id='input_4_18'>
                            
                            <span id='input_4_18_3_container' class='name_first gform-grid-col gform-grid-col--size-auto' >
                                                    <label for='input_4_18_3' class='gform-field-label gform-field-label--type-sub '>First</label>
                                                    <input type='text' name='input_18.3' id='input_4_18_3' value=''   aria-required='true'     />
                                                </span>
                            
                            <span id='input_4_18_6_container' class='name_last gform-grid-col gform-grid-col--size-auto' >
                                                            <label for='input_4_18_6' class='gform-field-label gform-field-label--type-sub '>Last</label>
                                                            <input type='text' name='input_18.6' id='input_4_18_6' value=''   aria-required='true'     />
                                                        </span>
                            
                        </div></fieldset></div>
                    </div>
                    <div class='gform-page-footer gform_page_footer top_label'>
                         <button type='button' id='gform_next_button_4_3' class='gform_next_button gform-theme-button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='next' >Next</button> 
                    </div>
                </div>
                <div id='gform_page_4_2' class='gform_page' data-js='page-field-id-3' style='display:none;'>
                    <div class='gform_page_fields'>
                        <div id='gform_fields_4_2' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id="field_4_4" class="gfield gfield--type-select gfield--input-type-select gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible gfield--select gfield--large"  data-field-class="gfield--select gfield--large" ><label class='gfield_label gform-field-label' for='input_4_4'><span class='gform-field-label__text'>Which of these best describes you?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_select'><select name='input_4' id='input_4_4' class='large gfield_select'    aria-required="true" aria-invalid="false" ><option value='Business owner/leader' >Business owner/leader</option><option value='Marketing leader/manager' >Marketing leader/manager</option><option value='Other' >Other</option></select></div></div><div id="field_4_16" class="gfield gfield--type-text gfield--input-type-text gfield--width-full gfield_contains_required field_sublabel_below gfield--has-description field_description_above field_validation_below gfield_visibility_visible gfield--text gfield--large"  data-field-class="gfield--text gfield--large" ><label class='gfield_label gform-field-label' for='input_4_16'><span class='gform-field-label__text'>Where can we can you out online?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='gfield_description' id='gfield_description_4_16'>Your website is preferred, but social channels work, too.</div><div class='ginput_container ginput_container_text'><input name='input_16' id='input_4_16' type='text' value='' class='large'  aria-describedby="gfield_description_4_16"   aria-required="true" aria-invalid="false"   /></div></div></div>
                    </div>
                    <div class='gform-page-footer gform_page_footer top_label'>
                        <button type='button' id='gform_previous_button_4_10' class='gform_previous_button gform-theme-button gform-theme-button--secondary button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='previous' >Previous</button> <button type='button' id='gform_next_button_4_10' class='gform_next_button gform-theme-button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='next' >Next</button> 
                    </div>
                </div>
                <div id='gform_page_4_3' class='gform_page' data-js='page-field-id-10' style='display:none;'>
                    <div class='gform_page_fields'>
                        <div id='gform_fields_4_3' class='gform_fields top_label form_sublabel_below description_below validation_below'><fieldset id="field_4_9" class="gfield gfield--type-radio gfield--type-choice gfield--input-type-radio gfield--width-half gfield_contains_required field_sublabel_below gfield--has-description field_description_above field_validation_below gfield_visibility_visible gfield--choice-align-vertical gfield--radio gfield--large"  data-field-class="gfield--radio gfield--large" ><legend class='gfield_label gform-field-label' ><span class='gform-field-label__text'>Let’s talk turkey...</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></legend><div class='gfield_description' id='gfield_description_4_9'>What is your budget for this initiative?</div><div class='ginput_container ginput_container_radio'><div class='gfield_radio' id='input_4_9'>
			<div class='gchoice gchoice_4_9_0'>
					<input class='gfield-choice-input' name='input_9' type='radio' value='$25,000-50,000'  id='choice_4_9_0' onchange='gformToggleRadioOther( this )' aria-describedby="gfield_description_4_9"   />
					<label for='choice_4_9_0' id='label_4_9_0' class='gform-field-label gform-field-label--type-inline'>$25,000-50,000</label>
			</div>
			<div class='gchoice gchoice_4_9_1'>
					<input class='gfield-choice-input' name='input_9' type='radio' value='$50,000-100,000'  id='choice_4_9_1' onchange='gformToggleRadioOther( this )'    />
					<label for='choice_4_9_1' id='label_4_9_1' class='gform-field-label gform-field-label--type-inline'>$50,000-100,000</label>
			</div>
			<div class='gchoice gchoice_4_9_2'>
					<input class='gfield-choice-input' name='input_9' type='radio' value='$100,000+'  id='choice_4_9_2' onchange='gformToggleRadioOther( this )'    />
					<label for='choice_4_9_2' id='label_4_9_2' class='gform-field-label gform-field-label--type-inline'>$100,000+</label>
			</div></div></div></fieldset><div id="field_4_13" class="gfield gfield--type-phone gfield--input-type-phone gfield--phone-format-standard gfield--width-half gfield_contains_required field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible gfield--phone gfield--large"  data-field-class="gfield--phone gfield--large" ><label class='gfield_label gform-field-label' for='input_4_13'><span class='gform-field-label__text'>What’s your cell number?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_phone'><input name='input_13' id='input_4_13' type='tel' value='' class='large'  placeholder='(999) 999-9999' aria-required="true" aria-invalid="false" aria-describedby="gfield_description_4_13"  data-mask="(999) 999-9999" /></div><div class='gfield_description' id='gfield_description_4_13'>By providing your phone number, you consent to receiving text messages from Tilted Chair.</div></div></div></div>
        <div class='gform-page-footer gform_page_footer top_label'><button type='submit' id='gform_previous_button_4' class='gform_previous_button gform-theme-button gform-theme-button--secondary button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='previous' >Previous</button> <button type='submit' id='gform_submit_button_4' class='gform_button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' >Submit</button> <input type='hidden' class='gform_hidden' name='gform_submission_speeds' value='{&quot;pages&quot;:[]}' />
            <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_4' value='postback' />
            <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_4' id='gform_theme_4' value='orbital' />
            <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_4' id='gform_style_settings_4' value='[]' />
            <input type='hidden' class='gform_hidden' name='is_submit_4' value='1' />
            <input type='hidden' class='gform_hidden' name='gform_submit' value='4' />
            
            <input type='hidden' class='gform_hidden' name='gform_currency' data-currency='USD' value='I1p4EOz3NNj8FoIFS6FMR05GAm8s/aGqO5+cp+6lODr08EThvaew9bhVrkTrHvGKkaNBbt+3LcSyhGlHCGRequPJa9lUcfdOxNnhC96h8i7JLBg=' />
            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' />
            <input type='hidden' class='gform_hidden' name='state_4' value='WyJ7XCI0XCI6W1wiNWZmMmQ0M2E4YWJjZWZjNzA2MGQ2MGFlNzQyN2YzNzlcIixcImRmODA4MDA2NjJhNDkzYmZjYjBkMWVlOTg4NTA0NTg0XCIsXCI3YWE0NjA5NGFjNjdmNGY0Mzk5MmExOWUzNjg5YjY3MFwiXSxcIjlcIjpbXCJlNDE2NGY2NTNkYjA3MzNhZDZiNGFjYTQ1MTdiNzU5NVwiLFwiZDM4MjJjZGFlOGNlYmRkNTU4M2JkZTFmYzhiMWU3ZmRcIixcImE5YzY3YjQ5MDczNzA5MTAyZTVjOTczNjFiOGMxMzg3XCJdLFwiZ2Zvcm1fc3VibWlzc2lvbl9tZXRob2RcIjpbXCIzOWJlMzc4NWI2NGMyN2NjYzBlNWY5Y2FhYWFjMmExZFwiLFwiZDM1OTI5MWMwOTU2YzIyMWUxMjY1NmE2MDQ0ZWYyYWVcIl0sXCJnZm9ybV90aGVtZVwiOlwiZDUzYWU2NWEzY2Q1ZTViOWIyNDcxMGM3YzU1ZTc5OTVcIixcImdmb3JtX3N0eWxlX3NldHRpbmdzXCI6XCI3MDBjYzY2MzU2MDBkOGQyMGQzYmJjYTZiY2I0OGIwN1wiLFwiZm9ybV9pZFwiOlwiNjE2M2I5OTY2ZTFjMGZhMWI3YTE2ZGY0YjBlNjJkZmFcIixcInVybFwiOlwiNGRhNWFiYmI5MjVhMzg4NDM2Mjc0Y2JkNDY1ZTcyNjZcIixcInN0YXRlX3RpbWVzdGFtcFwiOlwiYmNjMjhkZWQ4YmM2YjVjMTgxZmJmZTBlYjU0MjVmMWNcIn0iLCIyYjM0MzEwNDVmNjQ5OGNlMDFlZjRjMTJkZGNlNGM0MCIsMTc5MTMxNTY5MF0=' />
            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_4' id='gform_target_page_number_4' value='2' />
            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_4' id='gform_source_page_number_4' value='1' />
            <input type='hidden' name='gform_field_values' value='' />
            
        </div>
             </div></div>
                        </form>
                        </div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>CSS: How to Add It, Edit It, &#038; Organize It in WordPress (The Right Way)</title>
		<link>https://tiltedchair.co/css-how-to-add-it-edit-it-organize-it-in-wordpress-the-right-way/</link>
		
		<dc:creator><![CDATA[Jamie Rodriguez]]></dc:creator>
		<pubDate>Wed, 09 Oct 2024 12:12:31 +0000</pubDate>
				<category><![CDATA[Web Design & Development]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://tiltedchair.co/?p=11304</guid>

					<description><![CDATA[When it comes to building a scalable, systematized website in WordPress, it’s essential to keep things organized. CSS is one thing that—when configured improperly—can get disorganized fast. At Tilted Chair, we’re turning the corner on 500 WordPress websites in almost 15 years of business. Over that time, we’ve developed a great system for organizing and [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><strong>When it comes to building a scalable, systematized website in WordPress, it’s essential to keep things organized.</strong></p>
<p>CSS is one thing that—when configured improperly—can get disorganized fast.</p>
<p>At Tilted Chair, we’re turning the corner on 500 WordPress websites in almost 15 years of business. Over that time, we’ve developed a great system for organizing and editing CSS that keeps things nice and tidy—and fast.</p>
<h2>What is CSS?</h2>
<p>“CSS” stands for “Cascading Style Sheets.” The key word here is <em>cascading</em>.</p>
<p>This essentially means that CSS selectors that appear later in a stylesheet override selectors that precede them. This is very important: if there are conflicting CSS directives, the one that appears last in the file is the one that will render. (There’s an important exception here: if the property “!important” appends the first CSS directive, that one will still prevail. The conflicting directive—even though it appears later in the stylesheet—will be ignored.)</p>
<h3>The wrong ways to add/edit CSS in WordPress</h3>
<p>The curious WordPress users have probably found two ways of adding/editing CSS that might seem reasonable. But there are good reasons that they are not.</p>
<h4>Appearance &gt; Customize &gt; Additional CSS</h4>
<p><img data-dominant-color="6657b6" data-has-transparency="false" style="--dominant-color: #6657b6;" loading="lazy" decoding="async" class="alignnone size-full wp-image-11311 not-transparent" src="https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-customize-additional-css-interface-jpg.webp" alt="" width="1280" height="667" srcset="https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-customize-additional-css-interface-jpg.webp 1280w, https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-customize-additional-css-interface-jpg-300x156.webp 300w, https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-customize-additional-css-interface-jpg-1024x534.webp 1024w, https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-customize-additional-css-interface-jpg-768x400.webp 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></p>
<p>While enticing, this option does nothing but plop the CSS into the &lt;head&gt;&lt;/head&gt; of the website. This is effectively inline styling of web elements, which defeats the purpose of using external CSS stylesheets completely. This also simply adds heft to your CSS, because it doesn’t eliminate the CSS that’s present in the theme’s stylesheets. It writes over those CSS directives, creating unnecessary conflicts.</p>
<p>Lastly, adding CSS here doesn’t allow for the styling to be divided into more manageable and logical sections. (More on that later.)</p>
<h4>Appearance &gt; Theme File Editor &gt; Stylesheet</h4>
<p><img data-dominant-color="e5e5e6" data-has-transparency="false" style="--dominant-color: #e5e5e6;" loading="lazy" decoding="async" class="alignnone size-full wp-image-11312 not-transparent" src="https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-theme-file-editor-style-css-jpg.webp" alt="" width="1280" height="667" srcset="https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-theme-file-editor-style-css-jpg.webp 1280w, https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-theme-file-editor-style-css-jpg-300x156.webp 300w, https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-theme-file-editor-style-css-jpg-1024x534.webp 1024w, https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-theme-file-editor-style-css-jpg-768x400.webp 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></p>
<p>When building a vanilla HTML/CSS website (one not integrated into WordPress), this is customarily where the CSS would be added/edited. But notice when you open this file for the first time in WordPress, you get a warning that there’s no need to edit CSS here:</p>
<p><img data-dominant-color="808181" data-has-transparency="false" style="--dominant-color: #808181;" loading="lazy" decoding="async" class="alignnone size-full wp-image-11313 not-transparent" src="https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-heads-up-theme-editor-warning-jpg.webp" alt="" width="1666" height="1176" srcset="https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-heads-up-theme-editor-warning-jpg.webp 1666w, https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-heads-up-theme-editor-warning-jpg-300x212.webp 300w, https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-heads-up-theme-editor-warning-jpg-1024x723.webp 1024w, https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-heads-up-theme-editor-warning-jpg-768x542.webp 768w, https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-heads-up-theme-editor-warning-jpg-1536x1084.webp 1536w" sizes="auto, (max-width: 1666px) 100vw, 1666px" /></p>
<p>You have to click “I understand” to bypass this warning and edit the default style.css file.</p>
<p>For a lot of the same reasons that adding/editing CSS in the <em>Additional CSS</em> interface above is a bad idea, it’s a bad idea to do so here as well: it’s not divisible into smaller/logical groups of CSS, it adds to the aggregate size of CSS data rendered on the site, it creates CSS redundancies, etc.</p>
<h3>The right way to add, edit, and organize CSS in WordPress</h3>
<p>Which brings us to the right way to organize, configure, and generate CSS in WordPress. (Or at least,<em> our way</em> of doing it.)</p>
<h4>Step 1: dividing our CSS into more logical/manageable chunks</h4>
<p>Either through SFTP or through a plugin like <a href="https://wordpress.org/plugins/wp-file-manager/" target="_blank" rel="noopener">WP File Manager</a>, we create a bunch of stylesheets that allow us to organize our CSS data in a more logical and manageable way. Here are the files we create when building websites:</p>
<ul>
<li>color.css</li>
<li>buttons.css</li>
<li>flex-box.css</li>
<li>forms.css</li>
<li>layout.css</li>
<li>padding.css</li>
<li>reset.css</li>
<li>style.css</li>
<li>typography.css</li>
<li>zos.css</li>
</ul>
<p>To better organize things, we put these into an “assets” folder, where we also put other global assets (like images, fonts, and javascript files).</p>
<p>The content of each of these is pretty logical/obvious:</p>
<ul>
<li><span style="text-decoration: underline;">Color</span>: contains global selectors related to color</li>
<li><span style="text-decoration: underline;">Buttons</span>: contains global styling of buttons throughout the site</li>
<li><span style="text-decoration: underline;">Flex-Box</span>: contains semantic selectors that pertain to the alignment of elements using the flex-box CSS technology</li>
<li><span style="text-decoration: underline;">Forms</span>: gives us a dedicated place to style up the form elements throughout the site</li>
<li><span style="text-decoration: underline;">Layout</span>: contains the percentage-based base layout system (based on the trusty and bulletproof <a href="https://unsemantic.com" target="_blank" rel="noopener">Unsemantic framework</a>) which allow us to layout markup elements in a predictable and semantic way</li>
<li><span style="text-decoration: underline;">Padding</span>: contains global classes that can be used to add padding to elements throughout the site</li>
<li><span style="text-decoration: underline;">Reset</span>: contains some important reset styling which creates a predictable style baseline across browsers</li>
<li><span style="text-decoration: underline;">Style</span>: the one file that can be used to target specific/one-of-a-kind elements throughout the website; importantly, these CSS selectors should be able to override more generic/global selectors found elsewhere throughout the CSS structure</li>
<li><span style="text-decoration: underline;">Typography</span>: defines the styling of type, including the loading of custom (not-third party) fonts, style of different typographic elements (like headings, list items, paragraphs, block quotes, etc.)</li>
<li><span style="text-decoration: underline;">ZOS</span>: contains animate-on-scroll CSS animations that can be used throughout the site</li>
</ul>
<p>Your options here are unlimited. If you can imagine other ways to better organize your styling, go for it. The point is to divide your stylesheets into logical, predictable chunks so that finding and editing styling is as easy as possible.</p>
<h4>Step 2: enqueuing stylesheets via functions.php</h4>
<p>The functions.php file is like the godfather of your WordPress website. It is a massively powerful, theme-specific file that gives you a place to extend the site’s functionality.</p>
<p>Of course, with great power comes great responsibility. So, edit carefully! Because you can—and <em>will</em>—take down your entire website if you do this wrong*.</p>
<blockquote><p>*Important note: if you’re using a WordPress theme that requires updating, you don’t want to edit the main functions.php file, because those changes will be overwritten as soon as the theme updates. <a href="https://developer.wordpress.org/themes/advanced-topics/child-themes/" target="_blank" rel="noopener">Instead, use a child theme to write custom extensions</a>. At Tilted Chair, we build custom/tailored websites that don’t rely on updates, so this isn’t an issue for us. But for those who bought or customized using a theme or a builder (like Beaver Builder, Divi, or Elementor), this is a very important note.</p></blockquote>
<p>With that disclaimer out of the way, let’s take a look at how we render those stylesheets in WordPress.</p>
<p>Open the functions.php file, return to create a new line, and drop the following into the file:</p>
<p><img data-dominant-color="eeebeb" data-has-transparency="false" style="--dominant-color: #eeebeb;" decoding="async" class="alignnone size-full wp-image-11340 not-transparent" src="https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-css-functions-enqueue-stylesheets-png.webp" alt="Screenshot of functions.php file showing stylesheets enqueued." width="100%" height="auto" srcset="https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-css-functions-enqueue-stylesheets-png.webp 1610w, https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-css-functions-enqueue-stylesheets-png-300x128.webp 300w, https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-css-functions-enqueue-stylesheets-png-1024x438.webp 1024w, https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-css-functions-enqueue-stylesheets-png-768x328.webp 768w, https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-css-functions-enqueue-stylesheets-png-1536x656.webp 1536w" sizes="(max-width: 1610px) 100vw, 1610px" /></p>
<p>What’s going on here? We’re using the WordPress <em>enqueue scripts</em> function to call those custom stylesheets into the &lt;head&gt;&lt;/head&gt; of the website.</p>
<p><strong>Bonus:</strong> the third action here (“wp_dequeue_style&#8230;”) deactivates any other legacy/latent stylesheets that might still be hanging around from our base/default WordPress theme. It also eliminates any unnecessary/superfluous CSS that our new CSS would overwrite anyway. This reduces the amount of CSS that gets read, and eliminates any potential CSS conflicts that might have otherwise occurred.</p>
<h2>Boom!</h2>
<p>Open your hand and pat yourself on the back, because you just enqueued (a fun word, too) CSS in a WordPress website the correct (or at least, the <em>Tilted Chair</em>) way.</p>
<h3>One problem&#8230;</h3>
<p>Having too many CSS stylesheets can have adverse effects on your site’s performance with regards to SEO.</p>
<h3>Don’t worry!</h3>
<p>This is where our CSS organization structure pays dividends, because it gives us the best of both worlds.</p>
<p>One other feature of the Tilted Chair approach to developing websites is that we build with minimal reliance on plugins. One of those, however, that we’ve found to be essential and that always seems to make the cut is WP Fastest Cache.</p>
<p><strong>Why do we love it?</strong> Well, for a couple of reasons. WP Fastest Cache allows you to:</p>
<ol>
<li>Combine CSS into a single file</li>
<li>Minify CSS</li>
</ol>
<p><img data-dominant-color="cfd3d1" data-has-transparency="false" style="--dominant-color: #cfd3d1;" loading="lazy" decoding="async" class="alignnone size-full wp-image-11319 not-transparent" src="https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-wp-fastest-cache-settings-jpg.webp" alt="" width="1280" height="1146" srcset="https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-wp-fastest-cache-settings-jpg.webp 1280w, https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-wp-fastest-cache-settings-jpg-300x269.webp 300w, https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-wp-fastest-cache-settings-jpg-1024x917.webp 1024w, https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-wp-fastest-cache-settings-jpg-768x688.webp 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></p>
<p>As you can now see, the Tilted Chair way of adding and organizing CSS in a WordPress website lets us have it all: for building/editing, our site’s styling is broken out into smaller, more accessible chunks that are easy to find, understand, and alter.</p>
<p>At the same time, that styling is then re-combined and minified into one teeny, tiny stylesheet with minimal impact on our site’s performance.</p>
<p>The result is that the site’s CSS is among the smallest pieces of our site’s entire data weight:</p>
<p><img data-dominant-color="f1f7f1" data-has-transparency="false" style="--dominant-color: #f1f7f1;" loading="lazy" decoding="async" class="alignnone size-full wp-image-11321 not-transparent" src="https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-content-size-by-type-jpg.webp" alt="" width="1280" height="855" srcset="https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-content-size-by-type-jpg.webp 1280w, https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-content-size-by-type-jpg-300x200.webp 300w, https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-content-size-by-type-jpg-1024x684.webp 1024w, https://tiltedchair.co/wp-content/uploads/2024/10/tilted-chair-content-size-by-type-jpg-768x513.webp 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></p>
<p>Once all of this is properly configured, think about how much easier it’s going to be to go back and add new styles to the system. Need to add a background color + text color combination? Head on over to color.css. Need to add a new font size for a particular media query? Go to typography.css. Need to fine-tune a form element? Locate the forms.css stylesheet.</p>
<p>The possibilities are endless, and when done right, the disorganization of styling is not.</p>
<h3>Looking for a partner to help you get organized?</h3>

                <div class='gf_browser_unknown gform_wrapper gform-theme gform-theme--foundation gform-theme--framework gform-theme--orbital' data-form-theme='orbital' data-form-index='0' id='gform_wrapper_4' ><style>#gform_wrapper_4[data-form-index="0"].gform-theme{--gf-color-primary: #204ce5;--gf-color-primary-rgb: 32, 76, 229;--gf-color-primary-contrast: #fff;--gf-color-primary-contrast-rgb: 255, 255, 255;--gf-color-primary-darker: #001AB3;--gf-color-primary-lighter: #527EFF;--gf-color-secondary: #fff;--gf-color-secondary-rgb: 255, 255, 255;--gf-color-secondary-contrast: #112337;--gf-color-secondary-contrast-rgb: 17, 35, 55;--gf-color-secondary-darker: #F5F5F5;--gf-color-secondary-lighter: #FFFFFF;--gf-color-out-ctrl-light: rgba(17, 35, 55, 0.1);--gf-color-out-ctrl-light-rgb: 17, 35, 55;--gf-color-out-ctrl-light-darker: rgba(104, 110, 119, 0.35);--gf-color-out-ctrl-light-lighter: #F5F5F5;--gf-color-out-ctrl-dark: #585e6a;--gf-color-out-ctrl-dark-rgb: 88, 94, 106;--gf-color-out-ctrl-dark-darker: #112337;--gf-color-out-ctrl-dark-lighter: rgba(17, 35, 55, 0.65);--gf-color-in-ctrl: #fff;--gf-color-in-ctrl-rgb: 255, 255, 255;--gf-color-in-ctrl-contrast: #112337;--gf-color-in-ctrl-contrast-rgb: 17, 35, 55;--gf-color-in-ctrl-darker: #F5F5F5;--gf-color-in-ctrl-lighter: #FFFFFF;--gf-color-in-ctrl-primary: #204ce5;--gf-color-in-ctrl-primary-rgb: 32, 76, 229;--gf-color-in-ctrl-primary-contrast: #fff;--gf-color-in-ctrl-primary-contrast-rgb: 255, 255, 255;--gf-color-in-ctrl-primary-darker: #001AB3;--gf-color-in-ctrl-primary-lighter: #527EFF;--gf-color-in-ctrl-light: rgba(17, 35, 55, 0.1);--gf-color-in-ctrl-light-rgb: 17, 35, 55;--gf-color-in-ctrl-light-darker: rgba(104, 110, 119, 0.35);--gf-color-in-ctrl-light-lighter: #F5F5F5;--gf-color-in-ctrl-dark: #585e6a;--gf-color-in-ctrl-dark-rgb: 88, 94, 106;--gf-color-in-ctrl-dark-darker: #112337;--gf-color-in-ctrl-dark-lighter: rgba(17, 35, 55, 0.65);--gf-radius: 3px;--gf-font-size-secondary: 14px;--gf-font-size-tertiary: 13px;--gf-icon-ctrl-number: url("data:image/svg+xml,%3Csvg width='8' height='14' viewBox='0 0 8 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4 0C4.26522 5.96046e-08 4.51957 0.105357 4.70711 0.292893L7.70711 3.29289C8.09763 3.68342 8.09763 4.31658 7.70711 4.70711C7.31658 5.09763 6.68342 5.09763 6.29289 4.70711L4 2.41421L1.70711 4.70711C1.31658 5.09763 0.683417 5.09763 0.292893 4.70711C-0.0976311 4.31658 -0.097631 3.68342 0.292893 3.29289L3.29289 0.292893C3.48043 0.105357 3.73478 0 4 0ZM0.292893 9.29289C0.683417 8.90237 1.31658 8.90237 1.70711 9.29289L4 11.5858L6.29289 9.29289C6.68342 8.90237 7.31658 8.90237 7.70711 9.29289C8.09763 9.68342 8.09763 10.3166 7.70711 10.7071L4.70711 13.7071C4.31658 14.0976 3.68342 14.0976 3.29289 13.7071L0.292893 10.7071C-0.0976311 10.3166 -0.0976311 9.68342 0.292893 9.29289Z' fill='rgba(17, 35, 55, 0.65)'/%3E%3C/svg%3E");--gf-icon-ctrl-select: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0.292893 0.292893C0.683417 -0.097631 1.31658 -0.097631 1.70711 0.292893L5 3.58579L8.29289 0.292893C8.68342 -0.0976311 9.31658 -0.0976311 9.70711 0.292893C10.0976 0.683417 10.0976 1.31658 9.70711 1.70711L5.70711 5.70711C5.31658 6.09763 4.68342 6.09763 4.29289 5.70711L0.292893 1.70711C-0.0976311 1.31658 -0.0976311 0.683418 0.292893 0.292893Z' fill='rgba(17, 35, 55, 0.65)'/%3E%3C/svg%3E");--gf-icon-ctrl-search: url("data:image/svg+xml,%3Csvg width='640' height='640' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M256 128c-70.692 0-128 57.308-128 128 0 70.691 57.308 128 128 128 70.691 0 128-57.309 128-128 0-70.692-57.309-128-128-128zM64 256c0-106.039 85.961-192 192-192s192 85.961 192 192c0 41.466-13.146 79.863-35.498 111.248l154.125 154.125c12.496 12.496 12.496 32.758 0 45.254s-32.758 12.496-45.254 0L367.248 412.502C335.862 434.854 297.467 448 256 448c-106.039 0-192-85.962-192-192z' fill='rgba(17, 35, 55, 0.65)'/%3E%3C/svg%3E");--gf-label-space-y-secondary: var(--gf-label-space-y-md-secondary);--gf-ctrl-border-color: #686e77;--gf-ctrl-size: var(--gf-ctrl-size-md);--gf-ctrl-label-color-primary: #112337;--gf-ctrl-label-color-secondary: #112337;--gf-ctrl-choice-size: var(--gf-ctrl-choice-size-md);--gf-ctrl-checkbox-check-size: var(--gf-ctrl-checkbox-check-size-md);--gf-ctrl-radio-check-size: var(--gf-ctrl-radio-check-size-md);--gf-ctrl-btn-font-size: var(--gf-ctrl-btn-font-size-md);--gf-ctrl-btn-padding-x: var(--gf-ctrl-btn-padding-x-md);--gf-ctrl-btn-size: var(--gf-ctrl-btn-size-md);--gf-ctrl-btn-border-color-secondary: #686e77;--gf-ctrl-btn-bg-color-hover-tertiary: #EBEBEB;--gf-field-img-choice-size: var(--gf-field-img-choice-size-md);--gf-field-img-choice-card-space: var(--gf-field-img-choice-card-space-md);--gf-field-img-choice-check-ind-size: var(--gf-field-img-choice-check-ind-size-md);--gf-field-img-choice-check-ind-icon-size: var(--gf-field-img-choice-check-ind-icon-size-md);--gf-field-pg-steps-number-color: rgba(17, 35, 55, 0.8);}</style>
                        <div class='gform_heading'>
                            <h2 class="gform_title">Non-Restaurants</h2>
                            <p class='gform_description'></p>
                        </div><form method='post' enctype='multipart/form-data'  id='gform_4'  action='/category/web-design-web-development/feed/' data-formid='4' novalidate>
        <div id='gf_progressbar_wrapper_4' class='gf_progressbar_wrapper' data-start-at-zero=''>
        	<p class="gf_progressbar_title">Step <span class='gf_step_current_page'>1</span> of <span class='gf_step_page_count'>3</span><span class='gf_step_page_name'></span>
        	</p>
            <div class='gf_progressbar gf_progressbar_blue' aria-hidden='true'>
                <div class='gf_progressbar_percentage percentbar_blue percentbar_33' style='width:33%;'><span>33%</span></div>
            </div></div>
                        <div class='gform-body gform_body'><div id='gform_page_4_1' class='gform_page ' data-js='page-field-id-0' >
					<div class='gform_page_fields'><div id='gform_fields_4' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id="field_4_19" class="gfield gfield--type-honeypot gform_validation_container field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible gfield--honeypot"  data-field-class="gfield--honeypot" ><label class='gfield_label gform-field-label' for='input_4_19'><span class='gform-field-label__text'>Email</span></label><div class='ginput_container'><input name='input_19' id='input_4_19' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_4_19'>This field is for validation purposes and should be left unchanged.</div></div><div id="field_4_1" class="gfield gfield--type-email gfield--input-type-email gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible gfield--email gfield--large"  data-field-class="gfield--email gfield--large" ><label class='gfield_label gform-field-label' for='input_4_1'><span class='gform-field-label__text'>First, what’s a good email address to reach you?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_email'>
                            <input name='input_1' id='input_4_1' type='email' value='' class='large'   placeholder='Your email address' aria-required="true" aria-invalid="false"  />
                        </div></div><fieldset id="field_4_18" class="gfield gfield--type-name gfield--input-type-name gfield--width-full gfield_contains_required field_sublabel_above gfield--no-description field_description_below field_validation_below gfield_visibility_visible gfield--name gfield--large"  data-field-class="gfield--name gfield--large" ><legend class='gfield_label gform-field-label gfield_label_before_complex' ><span class='gform-field-label__text'>What’s your name?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></legend><div class='ginput_complex ginput_container ginput_container--name no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gform-grid-row' id='input_4_18'>
                            
                            <span id='input_4_18_3_container' class='name_first gform-grid-col gform-grid-col--size-auto' >
                                                    <label for='input_4_18_3' class='gform-field-label gform-field-label--type-sub '>First</label>
                                                    <input type='text' name='input_18.3' id='input_4_18_3' value=''   aria-required='true'     />
                                                </span>
                            
                            <span id='input_4_18_6_container' class='name_last gform-grid-col gform-grid-col--size-auto' >
                                                            <label for='input_4_18_6' class='gform-field-label gform-field-label--type-sub '>Last</label>
                                                            <input type='text' name='input_18.6' id='input_4_18_6' value=''   aria-required='true'     />
                                                        </span>
                            
                        </div></fieldset></div>
                    </div>
                    <div class='gform-page-footer gform_page_footer top_label'>
                         <button type='button' id='gform_next_button_4_3' class='gform_next_button gform-theme-button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='next' >Next</button> 
                    </div>
                </div>
                <div id='gform_page_4_2' class='gform_page' data-js='page-field-id-3' style='display:none;'>
                    <div class='gform_page_fields'>
                        <div id='gform_fields_4_2' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id="field_4_4" class="gfield gfield--type-select gfield--input-type-select gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible gfield--select gfield--large"  data-field-class="gfield--select gfield--large" ><label class='gfield_label gform-field-label' for='input_4_4'><span class='gform-field-label__text'>Which of these best describes you?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_select'><select name='input_4' id='input_4_4' class='large gfield_select'    aria-required="true" aria-invalid="false" ><option value='Business owner/leader' >Business owner/leader</option><option value='Marketing leader/manager' >Marketing leader/manager</option><option value='Other' >Other</option></select></div></div><div id="field_4_16" class="gfield gfield--type-text gfield--input-type-text gfield--width-full gfield_contains_required field_sublabel_below gfield--has-description field_description_above field_validation_below gfield_visibility_visible gfield--text gfield--large"  data-field-class="gfield--text gfield--large" ><label class='gfield_label gform-field-label' for='input_4_16'><span class='gform-field-label__text'>Where can we can you out online?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='gfield_description' id='gfield_description_4_16'>Your website is preferred, but social channels work, too.</div><div class='ginput_container ginput_container_text'><input name='input_16' id='input_4_16' type='text' value='' class='large'  aria-describedby="gfield_description_4_16"   aria-required="true" aria-invalid="false"   /></div></div></div>
                    </div>
                    <div class='gform-page-footer gform_page_footer top_label'>
                        <button type='button' id='gform_previous_button_4_10' class='gform_previous_button gform-theme-button gform-theme-button--secondary button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='previous' >Previous</button> <button type='button' id='gform_next_button_4_10' class='gform_next_button gform-theme-button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='next' >Next</button> 
                    </div>
                </div>
                <div id='gform_page_4_3' class='gform_page' data-js='page-field-id-10' style='display:none;'>
                    <div class='gform_page_fields'>
                        <div id='gform_fields_4_3' class='gform_fields top_label form_sublabel_below description_below validation_below'><fieldset id="field_4_9" class="gfield gfield--type-radio gfield--type-choice gfield--input-type-radio gfield--width-half gfield_contains_required field_sublabel_below gfield--has-description field_description_above field_validation_below gfield_visibility_visible gfield--choice-align-vertical gfield--radio gfield--large"  data-field-class="gfield--radio gfield--large" ><legend class='gfield_label gform-field-label' ><span class='gform-field-label__text'>Let’s talk turkey...</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></legend><div class='gfield_description' id='gfield_description_4_9'>What is your budget for this initiative?</div><div class='ginput_container ginput_container_radio'><div class='gfield_radio' id='input_4_9'>
			<div class='gchoice gchoice_4_9_0'>
					<input class='gfield-choice-input' name='input_9' type='radio' value='$25,000-50,000'  id='choice_4_9_0' onchange='gformToggleRadioOther( this )' aria-describedby="gfield_description_4_9"   />
					<label for='choice_4_9_0' id='label_4_9_0' class='gform-field-label gform-field-label--type-inline'>$25,000-50,000</label>
			</div>
			<div class='gchoice gchoice_4_9_1'>
					<input class='gfield-choice-input' name='input_9' type='radio' value='$50,000-100,000'  id='choice_4_9_1' onchange='gformToggleRadioOther( this )'    />
					<label for='choice_4_9_1' id='label_4_9_1' class='gform-field-label gform-field-label--type-inline'>$50,000-100,000</label>
			</div>
			<div class='gchoice gchoice_4_9_2'>
					<input class='gfield-choice-input' name='input_9' type='radio' value='$100,000+'  id='choice_4_9_2' onchange='gformToggleRadioOther( this )'    />
					<label for='choice_4_9_2' id='label_4_9_2' class='gform-field-label gform-field-label--type-inline'>$100,000+</label>
			</div></div></div></fieldset><div id="field_4_13" class="gfield gfield--type-phone gfield--input-type-phone gfield--phone-format-standard gfield--width-half gfield_contains_required field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible gfield--phone gfield--large"  data-field-class="gfield--phone gfield--large" ><label class='gfield_label gform-field-label' for='input_4_13'><span class='gform-field-label__text'>What’s your cell number?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_phone'><input name='input_13' id='input_4_13' type='tel' value='' class='large'  placeholder='(999) 999-9999' aria-required="true" aria-invalid="false" aria-describedby="gfield_description_4_13"  data-mask="(999) 999-9999" /></div><div class='gfield_description' id='gfield_description_4_13'>By providing your phone number, you consent to receiving text messages from Tilted Chair.</div></div></div></div>
        <div class='gform-page-footer gform_page_footer top_label'><button type='submit' id='gform_previous_button_4' class='gform_previous_button gform-theme-button gform-theme-button--secondary button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='previous' >Previous</button> <button type='submit' id='gform_submit_button_4' class='gform_button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' >Submit</button> <input type='hidden' class='gform_hidden' name='gform_submission_speeds' value='{&quot;pages&quot;:[]}' />
            <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_4' value='postback' />
            <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_4' id='gform_theme_4' value='orbital' />
            <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_4' id='gform_style_settings_4' value='[]' />
            <input type='hidden' class='gform_hidden' name='is_submit_4' value='1' />
            <input type='hidden' class='gform_hidden' name='gform_submit' value='4' />
            
            <input type='hidden' class='gform_hidden' name='gform_currency' data-currency='USD' value='LfEaV54n4CgmgSRTgM2d81LlqvekmulNXcRttpcCE830dqVahbRyKZlGjuGV3397ZCIZeP0n1HYNuE7putnaumJ+R6+OhqQigSsSdHdubzxebQA=' />
            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' />
            <input type='hidden' class='gform_hidden' name='state_4' value='WyJ7XCI0XCI6W1wiNWZmMmQ0M2E4YWJjZWZjNzA2MGQ2MGFlNzQyN2YzNzlcIixcImRmODA4MDA2NjJhNDkzYmZjYjBkMWVlOTg4NTA0NTg0XCIsXCI3YWE0NjA5NGFjNjdmNGY0Mzk5MmExOWUzNjg5YjY3MFwiXSxcIjlcIjpbXCJlNDE2NGY2NTNkYjA3MzNhZDZiNGFjYTQ1MTdiNzU5NVwiLFwiZDM4MjJjZGFlOGNlYmRkNTU4M2JkZTFmYzhiMWU3ZmRcIixcImE5YzY3YjQ5MDczNzA5MTAyZTVjOTczNjFiOGMxMzg3XCJdLFwiZ2Zvcm1fc3VibWlzc2lvbl9tZXRob2RcIjpbXCIzOWJlMzc4NWI2NGMyN2NjYzBlNWY5Y2FhYWFjMmExZFwiLFwiZDM1OTI5MWMwOTU2YzIyMWUxMjY1NmE2MDQ0ZWYyYWVcIl0sXCJnZm9ybV90aGVtZVwiOlwiZDUzYWU2NWEzY2Q1ZTViOWIyNDcxMGM3YzU1ZTc5OTVcIixcImdmb3JtX3N0eWxlX3NldHRpbmdzXCI6XCI3MDBjYzY2MzU2MDBkOGQyMGQzYmJjYTZiY2I0OGIwN1wiLFwiZm9ybV9pZFwiOlwiNjE2M2I5OTY2ZTFjMGZhMWI3YTE2ZGY0YjBlNjJkZmFcIixcInVybFwiOlwiNGRhNWFiYmI5MjVhMzg4NDM2Mjc0Y2JkNDY1ZTcyNjZcIixcInN0YXRlX3RpbWVzdGFtcFwiOlwiYmNjMjhkZWQ4YmM2YjVjMTgxZmJmZTBlYjU0MjVmMWNcIn0iLCIyYjM0MzEwNDVmNjQ5OGNlMDFlZjRjMTJkZGNlNGM0MCIsMTc5MTMxNTY5MF0=' />
            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_4' id='gform_target_page_number_4' value='2' />
            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_4' id='gform_source_page_number_4' value='1' />
            <input type='hidden' name='gform_field_values' value='' />
            
        </div>
             </div></div>
                        </form>
                        </div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WordPress, Webflow, or Shopify? How to Choose the Right Website Platform for Your Business</title>
		<link>https://tiltedchair.co/wordpress-webflow-or-shopify-how-to-choose-the-right-website-platform-for-your-business/</link>
		
		<dc:creator><![CDATA[Erik Hernandez]]></dc:creator>
		<pubDate>Mon, 23 Sep 2024 15:00:18 +0000</pubDate>
				<category><![CDATA[Web Design & Development]]></category>
		<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[Website Design]]></category>
		<guid isPermaLink="false">https://tiltedchair.co/?p=11232</guid>

					<description><![CDATA[When you&#8217;re building or growing a business, your website is more than just a digital storefront—it’s your brand’s first impression. And choosing the right platform to build that website can be a tough decision. With so many options out there, how do you decide between WordPress, Webflow, and Shopify? Each of these platforms offers different [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>When you&#8217;re building or growing a business, your website is more than just a digital storefront—it’s your brand’s first impression. And choosing the right platform to build that website can be a tough decision. With so many options out there, how do you decide between WordPress, Webflow, and Shopify? Each of these platforms offers different advantages, so let’s break down the pros, cons, and ongoing maintenance to help you make an informed decision.</p>
<h3>WordPress: The Flexible Powerhouse</h3>
<p><strong>Why Choose WordPress?</strong><br />
If you&#8217;re looking for a website that offers endless customization and flexibility, WordPress might be your best bet. WordPress is an open-source platform, meaning it&#8217;s fully customizable. Whether you’re launching a blog, an e-commerce site, or a portfolio, WordPress can handle it all. We’ve been building WordPress sites since we were in diapers here at Tilted Chair, so this is the platform we feel most comfortable working in.</p>
<p><strong>Pros:</strong><br />
&#8211; Ultimate Flexibility: With thousands of themes and plugins available, WordPress can be tailored to suit virtually any business need. We have definitely taken WordPress to its limits as we design sites for our clients.<br />
&#8211; SEO Friendly: WordPress excels in SEO capabilities, thanks to plugins like Yoast, which help optimize content for search engines.<br />
&#8211; Community Support: It’s backed by a massive global community of developers, offering a wealth of plugins, themes, and tutorials.</p>
<p><strong>Cons:</strong><br />
&#8211; Ongoing Security Management: Being a popular open-source platform also means WordPress is a frequent target for hackers. You’ll need security plugins and regular updates to keep your site safe.</p>
<p><strong>Maintenance:</strong><br />
WordPress requires frequent updates to the core platform, plugins, and themes. You’ll also need to manage your own hosting, security, and backups, which adds to ongoing maintenance costs and time. We minimize this as much as possible at Tilted Chair, but be aware of this.</p>
<p><strong>Is WordPress Right for You?</strong><br />
If you want full control over your site’s design and functionality—and don’t mind rolling up your sleeves to manage security and updates—WordPress is a solid choice, especially for complex sites or businesses with growing content needs.</p>
<p>&#8212;</p>
<h3>Webflow: The Designer’s Dream</h3>
<p><strong>Why Choose Webflow?</strong><br />
Webflow is like the best of both worlds for design-focused businesses. It offers creative freedom with its drag-and-drop interface while also handling some of the technical headaches of website building for you. A lot of people think this is the platform of the future. We have definitely gotten really good at Webflow sites over the years too.</p>
<p><strong>Pros:</strong><br />
&#8211; Design Without Limits: Webflow allows you to create visually stunning websites without needing to write code. It’s ideal for those who want pixel-perfect control over the design.<br />
&#8211; Built-In Features: You don’t need third-party plugins for things like responsive design, animations, or a built-in CMS—it’s all baked into Webflow’s system.<br />
&#8211; Fast Loading &amp; Clean Code: Webflow generates clean, efficient code that makes your website fast and more SEO-friendly.</p>
<p><strong>Cons:</strong><br />
&#8211; Not the Cheapest: Webflow’s plans can get expensive, especially as you scale. Hosting is included, but the pricing is higher compared to WordPress.<br />
&#8211; Steeper Learning Curve for Non-Designers: While Webflow is intuitive for designers, those without a design background might find the learning curve a bit steep.</p>
<p><strong>Maintenance:</strong><br />
Webflow takes care of most of the technical maintenance for you, including hosting, security, and platform updates. This makes ongoing maintenance far simpler than WordPress.</p>
<p><strong>Is Webflow Right for You?</strong><br />
If you’re a design-driven business or marketing professional who values creative control but doesn’t want to worry about backend technical issues, Webflow is an excellent choice. It’s great for content-focused sites, small e-commerce stores, or creative portfolios.</p>
<p>&#8212;</p>
<h3>Shopify: The E-commerce Expert</h3>
<p><strong>Why Choose Shopify?</strong><br />
If your business revolves around selling products online, Shopify is built with you in mind. It’s an all-in-one e-commerce platform that makes setting up an online store easy—even if you have zero technical experience. We have built our fair share of Shopify sites for our e-commerce clients.</p>
<p><strong>Pros:</strong><br />
&#8211; E-commerce First: Shopify is specifically designed for online sales, with features for inventory management, payment processing, shipping, and more.<br />
&#8211; Hassle-Free Security: Shopify handles all security and performance optimization, so you don’t have to worry about PCI compliance or SSL certificates.<br />
&#8211; Extensive App Store: Need extra functionality? Shopify’s App Store has hundreds of apps to enhance your store’s features, from advanced product filters to marketing integrations.</p>
<p><strong>Cons:</strong><br />
&#8211; Limited Customization: While Shopify is easy to use, it doesn’t offer the same level of design freedom as WordPress or Webflow. Advanced customizations might require learning Shopify’s proprietary coding language, Liquid.<br />
&#8211; Transaction Fees: If you’re not using Shopify Payments, Shopify charges additional transaction fees on top of credit card processing fees, which can add up quickly.</p>
<p><strong>Maintenance:</strong><br />
Shopify is a fully managed platform, meaning Shopify takes care of hosting, security, and updates. However, you’ll need to manage third-party apps and ensure they’re functioning correctly.</p>
<p><strong>Is Shopify Right for You?</strong><br />
For businesses that are focused primarily on selling products online, Shopify is the clear winner. It’s a breeze to set up and requires minimal ongoing maintenance, making it ideal for entrepreneurs who just want to focus on selling.</p>
<p>&#8212;</p>
<h3>So, Which Platform is Best for You?</h3>
<p>&#8211; Choose WordPress if you need full control, want to prioritize SEO, or have complex content needs. Just be ready to handle some technical maintenance.<br />
&#8211; Choose Webflow if you’re looking for design flexibility and ease of use, and you don’t mind paying a bit more for built-in hosting and security.<br />
&#8211; Choose Shopify if your main focus is e-commerce and you want a platform that simplifies selling while handling all the backend work for you.</p>
<p>No matter which platform you choose, remember that your website is an investment. It’s not just about the upfront cost, but also about the time and energy you&#8217;ll need to maintain it over time. So, choose wisely—and make sure the platform you select aligns with your business goals and long-term vision. If you need help deciding, we at Tilted Chair are happy to discuss the pros and cons for your specific business. We offer free consultations, so <a href="https://tiltedchair.co/contact/">just hit us up</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tilted Chair&#8217;s Web Philosophy: 5 Tips for Web Success</title>
		<link>https://tiltedchair.co/tilted-chairs-web-philosophy-5-tips-for-web-success/</link>
		
		<dc:creator><![CDATA[Jamie Rodriguez]]></dc:creator>
		<pubDate>Mon, 26 Apr 2021 21:04:22 +0000</pubDate>
				<category><![CDATA[Web Design & Development]]></category>
		<category><![CDATA[Website Design]]></category>
		<category><![CDATA[Website Development]]></category>
		<guid isPermaLink="false">https://cool-saha.132-148-76-62.plesk.page/?p=7354</guid>

					<description><![CDATA[KEY TAKEAWAYS Websites are never done. Build for the future. Design based on data. Content drives design. When in doubt, steal. It should come as no surprise to even the novice marketer that digital marketing and digital branding growth trajectories have far outpaced their analog alternatives. From Google replacing the Yellow Pages to online restaurant [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="take-aways">
<h5>KEY TAKEAWAYS</h5>
<ul>
<li>Websites are never done.</li>
<li>Build for the future.</li>
<li>Design based on data.</li>
<li>Content drives design.</li>
<li>When in doubt, steal.</li>
</ul>
</div>
<p>It should come as no surprise to even the novice marketer that digital marketing and digital branding growth trajectories have <a href="https://www.hubspot.com/marketing-statistics" target="_blank" rel="noopener noreferrer">far outpaced</a> their analog alternatives. From Google replacing the Yellow Pages to online restaurant ordering, nearly all modern commercial transactions carry with them some kind of digital component. The COVID-19 pandemic has only accelerated this trend toward an increasingly digital world of commerce.</p>
<p>For most businesses, at the core of this new digital reality resides one all-important element of the digital marketing funnel: a website.</p>
<p>That&#8217;s probably not a revelation. After all, you&#8217;re reading this article on our website right now, one of the most important tools in our marketing tool chest. Our website is great for profiling past work, demonstrating culture, communicating process, and facilitating communication.</p>
<p>Which leads us to the topic of this article: websites. Tilted Chair has designed, developed, and deployed hundreds of them in the last eleven years. From Austin art museums to nude cruises to campaigns for president, we&#8217;ve pretty much seen it all when it comes to web.</p>
<p>Over the course of all those years we&#8217;ve learned a lot about what it takes to design and develop effective web platforms. Here, we outline our web philosophy orientation, which we take all new website customers through at the outset of each web design project.</p>
<h5><strong>1. Websites are never done</strong></h5>
<p><img decoding="async" src="https://tiltedchair.co/wp-content/uploads/2021/04/website-is-done-meme.jpg" alt="Dwight's right: websites are never done." width="100%" height="auto" /><br />
<em>Even Dwight knows websites are never completely finished.</em></p>
<p>That&#8217;s kind of the point of them. They&#8217;re an <em>interactive</em> marketing tool, meaning they&#8217;re always changing. These aren&#8217;t print ads we&#8217;re talking about here, people. They&#8217;re living, breathing things that are constantly in need of updating, optimization, and upgrading.</p>
<p>We ask that our clients prepare themselves—psychologically, and financially—to continually invest in their website.</p>
<h5><strong>2. Build for the future</strong></h5>
<p><em>“I give you: iPhone.”</em></p>
<p>Just think back to 2007, before the iPhone launched: ask someone about a &#8220;mobile&#8221; website back then, and you&#8217;d probably get a deer-in-the-headlights stare. Today, <a href="https://www.perficient.com/insights/research-hub/mobile-vs-desktop-usage-study" target="_blank" rel="noopener noreferrer">mobile web access</a> has surpassed desktop access, and a great mobile experience is table stakes in the modern digital ecosystem.</p>
<p>We don&#8217;t know exactly what the next mobile revolution will be in the world of web design and development, but we can sure-as-heck try to be ready for it.</p>
<h5><strong>3. Design based on data</strong></h5>
<p><img decoding="async" src="https://tiltedchair.co/wp-content/uploads/2021/04/twins.jpg" alt="Image of the cover of the movie Twins featuring Arnold Schwarzenegger &amp; Danny Devito." width="100%" height="auto" /><br />
<em>Tall or short pages? Let the data decide.</em></p>
<p>Either firsthand or found, good data can be very counterintuitive—and illuminating.</p>
<p>Take page length, for instance: most people&#8217;s instincts tell them that pages shouldn&#8217;t get too long, and that having long web pages will diminish visitors&#8217; experiences. (If I had a dollar for every time I heard a client say, &#8220;This page seems like it&#8217;s getting too long,&#8221; I&#8217;d have&#8230;quite a few more dollars.)</p>
<p>As it turns out, in many cases the<a href="https://conversion-rate-experts.com/crazy-egg-case-study/" target="_blank" rel="noopener noreferrer"> opposite is true</a>, and asking users to scroll is actually a fairly low-cost behavior request.</p>
<p>Or, take the hamburger mobile menu, a staple of mobile websites the world-over. Perhaps somewhat surprisingly, they&#8217;re <a href="https://lmjabreu.com/post/why-and-how-to-avoid-hamburger-menus/" target="_blank" rel="noopener noreferrer">not good for conversions</a>, and the savviest interactive designers are eschewing them for simpler, more intuitive solutions.</p>
<p>The lesson: the best solutions aren&#8217;t intuitive, and designing based on data—rather than subjective preference or &#8220;gut&#8221;—will lead us all to better-performing web experiences.</p>
<h5><strong>4. Content drives design. (And never the other way around.)</strong></h5>
<p><img decoding="async" src="https://tiltedchair.co/wp-content/uploads/2021/04/apollo11_main.jpg" alt="Image from the Apollo 11 moon landing." width="100%" height="auto" /><br />
<em>Technology makes amazing things possible. But don’t let that get in the way of your content.</em></p>
<p>Interactive design and marketing has entered into an exciting new era. The device you&#8217;re reading this article on likely has <a href="https://www.macobserver.com/link/iphones-processing-apollo-11-computer/" target="_blank" rel="noopener noreferrer">orders of magnitude more computing power</a> than those available to assist with the Apollo 11 moon landing.</p>
<p>That&#8217;s some serious computing power, and it&#8217;s making some really cool web experiences possible. Which is awesome, except that there&#8217;s plenty of evidence out there to demonstrate that superfluous interactive features can actually <a href="https://www.interaction-design.org/literature/article/5-web-design-strategies-that-can-hurt-the-user-experience" target="_blank" rel="noopener noreferrer">detract from users&#8217; experiences</a> when browsing a website.</p>
<p>So what do you do? Well, the answer is simple: allow the content to drive design, and never the other way around.</p>
<p>At Tilted Chair, we always keep the content strategy in mind when designing a website. Our customers have business objectives and their users have content needs; our design should resolve the tension between those two objectives. We should get users from point A to point B as quickly and seamlessly as possible. And where design can support and facilitate those goals, we employ it.</p>
<p>What we don&#8217;t do is force content into a preconceived aesthetic, structure, or interactive device. That&#8217;s the kind of thinking that leads to worse bounce rates, worse user experiences, and ultimately, a lower-performing website.</p>
<h5><strong>5. When in doubt, steal.</strong></h5>
<p><img decoding="async" src="https://tiltedchair.co/wp-content/uploads/2021/04/amazon-checkout.png" alt="Amazon's boring but effective website checkout design." width="100%" height="auto" /><br />
<em>Amazon’s checkout page: ugly, but effective.</em></p>
<p>We&#8217;ve all seen various versions of the old idiom, &#8220;Good artists copy, great artists steal.&#8221; It&#8217;s unclear who first <a href="https://lifehacker.com/an-artist-explains-what-great-artists-steal-really-me-1818808264" target="_blank" rel="noopener noreferrer">spoke this piece of wisdom into existence</a>, but in keeping with the spirit of the quote, we&#8217;re stealing it and applying it to interactive design.</p>
<p>Think about it: most of the sites we design are not wholly new concepts. Almost all of the problems we may face during the design process have already been solved by bigger organizations with more manpower, bigger budgets, and better resources.</p>
<p>Take Amazon, for example. Amazon employs hundreds (if not thousands) of web engineers who work every day to see if they can improve the website&#8217;s conversion rates by fractions of a percent.</p>
<p>And while we may not be able to peak under the hood of the Amazon research machine, we can certainly see the results of their efforts: <a href="https://rejoiner.com/resources/amazon-shopping-cart-experience/" target="_blank" rel="noopener noreferrer">they&#8217;re right in front of us</a>. Is there any use in trying to top Amazon as far as check-out experience? (Hint: probably not.)</p>
<h5>Conclusion</h5>
<p>The world of web is an oft-evolving forum for breakthrough new ideas and creativity. But if that creativity isn&#8217;t paired with sound strategy, a linear process, and data-driven user experience, you can be left with a pretty website that doesn&#8217;t work as well as it should.</p>
<p>And before long, you&#8217;ll find yourself doing it all over again. Not exactly a recipe for reaching digital zen.</p>
<h5>Need a guide on the journey?</h5>

                <div class='gf_browser_unknown gform_wrapper gform-theme gform-theme--foundation gform-theme--framework gform-theme--orbital' data-form-theme='orbital' data-form-index='0' id='gform_wrapper_4' ><style>#gform_wrapper_4[data-form-index="0"].gform-theme{--gf-color-primary: #204ce5;--gf-color-primary-rgb: 32, 76, 229;--gf-color-primary-contrast: #fff;--gf-color-primary-contrast-rgb: 255, 255, 255;--gf-color-primary-darker: #001AB3;--gf-color-primary-lighter: #527EFF;--gf-color-secondary: #fff;--gf-color-secondary-rgb: 255, 255, 255;--gf-color-secondary-contrast: #112337;--gf-color-secondary-contrast-rgb: 17, 35, 55;--gf-color-secondary-darker: #F5F5F5;--gf-color-secondary-lighter: #FFFFFF;--gf-color-out-ctrl-light: rgba(17, 35, 55, 0.1);--gf-color-out-ctrl-light-rgb: 17, 35, 55;--gf-color-out-ctrl-light-darker: rgba(104, 110, 119, 0.35);--gf-color-out-ctrl-light-lighter: #F5F5F5;--gf-color-out-ctrl-dark: #585e6a;--gf-color-out-ctrl-dark-rgb: 88, 94, 106;--gf-color-out-ctrl-dark-darker: #112337;--gf-color-out-ctrl-dark-lighter: rgba(17, 35, 55, 0.65);--gf-color-in-ctrl: #fff;--gf-color-in-ctrl-rgb: 255, 255, 255;--gf-color-in-ctrl-contrast: #112337;--gf-color-in-ctrl-contrast-rgb: 17, 35, 55;--gf-color-in-ctrl-darker: #F5F5F5;--gf-color-in-ctrl-lighter: #FFFFFF;--gf-color-in-ctrl-primary: #204ce5;--gf-color-in-ctrl-primary-rgb: 32, 76, 229;--gf-color-in-ctrl-primary-contrast: #fff;--gf-color-in-ctrl-primary-contrast-rgb: 255, 255, 255;--gf-color-in-ctrl-primary-darker: #001AB3;--gf-color-in-ctrl-primary-lighter: #527EFF;--gf-color-in-ctrl-light: rgba(17, 35, 55, 0.1);--gf-color-in-ctrl-light-rgb: 17, 35, 55;--gf-color-in-ctrl-light-darker: rgba(104, 110, 119, 0.35);--gf-color-in-ctrl-light-lighter: #F5F5F5;--gf-color-in-ctrl-dark: #585e6a;--gf-color-in-ctrl-dark-rgb: 88, 94, 106;--gf-color-in-ctrl-dark-darker: #112337;--gf-color-in-ctrl-dark-lighter: rgba(17, 35, 55, 0.65);--gf-radius: 3px;--gf-font-size-secondary: 14px;--gf-font-size-tertiary: 13px;--gf-icon-ctrl-number: url("data:image/svg+xml,%3Csvg width='8' height='14' viewBox='0 0 8 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4 0C4.26522 5.96046e-08 4.51957 0.105357 4.70711 0.292893L7.70711 3.29289C8.09763 3.68342 8.09763 4.31658 7.70711 4.70711C7.31658 5.09763 6.68342 5.09763 6.29289 4.70711L4 2.41421L1.70711 4.70711C1.31658 5.09763 0.683417 5.09763 0.292893 4.70711C-0.0976311 4.31658 -0.097631 3.68342 0.292893 3.29289L3.29289 0.292893C3.48043 0.105357 3.73478 0 4 0ZM0.292893 9.29289C0.683417 8.90237 1.31658 8.90237 1.70711 9.29289L4 11.5858L6.29289 9.29289C6.68342 8.90237 7.31658 8.90237 7.70711 9.29289C8.09763 9.68342 8.09763 10.3166 7.70711 10.7071L4.70711 13.7071C4.31658 14.0976 3.68342 14.0976 3.29289 13.7071L0.292893 10.7071C-0.0976311 10.3166 -0.0976311 9.68342 0.292893 9.29289Z' fill='rgba(17, 35, 55, 0.65)'/%3E%3C/svg%3E");--gf-icon-ctrl-select: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0.292893 0.292893C0.683417 -0.097631 1.31658 -0.097631 1.70711 0.292893L5 3.58579L8.29289 0.292893C8.68342 -0.0976311 9.31658 -0.0976311 9.70711 0.292893C10.0976 0.683417 10.0976 1.31658 9.70711 1.70711L5.70711 5.70711C5.31658 6.09763 4.68342 6.09763 4.29289 5.70711L0.292893 1.70711C-0.0976311 1.31658 -0.0976311 0.683418 0.292893 0.292893Z' fill='rgba(17, 35, 55, 0.65)'/%3E%3C/svg%3E");--gf-icon-ctrl-search: url("data:image/svg+xml,%3Csvg width='640' height='640' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M256 128c-70.692 0-128 57.308-128 128 0 70.691 57.308 128 128 128 70.691 0 128-57.309 128-128 0-70.692-57.309-128-128-128zM64 256c0-106.039 85.961-192 192-192s192 85.961 192 192c0 41.466-13.146 79.863-35.498 111.248l154.125 154.125c12.496 12.496 12.496 32.758 0 45.254s-32.758 12.496-45.254 0L367.248 412.502C335.862 434.854 297.467 448 256 448c-106.039 0-192-85.962-192-192z' fill='rgba(17, 35, 55, 0.65)'/%3E%3C/svg%3E");--gf-label-space-y-secondary: var(--gf-label-space-y-md-secondary);--gf-ctrl-border-color: #686e77;--gf-ctrl-size: var(--gf-ctrl-size-md);--gf-ctrl-label-color-primary: #112337;--gf-ctrl-label-color-secondary: #112337;--gf-ctrl-choice-size: var(--gf-ctrl-choice-size-md);--gf-ctrl-checkbox-check-size: var(--gf-ctrl-checkbox-check-size-md);--gf-ctrl-radio-check-size: var(--gf-ctrl-radio-check-size-md);--gf-ctrl-btn-font-size: var(--gf-ctrl-btn-font-size-md);--gf-ctrl-btn-padding-x: var(--gf-ctrl-btn-padding-x-md);--gf-ctrl-btn-size: var(--gf-ctrl-btn-size-md);--gf-ctrl-btn-border-color-secondary: #686e77;--gf-ctrl-btn-bg-color-hover-tertiary: #EBEBEB;--gf-field-img-choice-size: var(--gf-field-img-choice-size-md);--gf-field-img-choice-card-space: var(--gf-field-img-choice-card-space-md);--gf-field-img-choice-check-ind-size: var(--gf-field-img-choice-check-ind-size-md);--gf-field-img-choice-check-ind-icon-size: var(--gf-field-img-choice-check-ind-icon-size-md);--gf-field-pg-steps-number-color: rgba(17, 35, 55, 0.8);}</style><form method='post' enctype='multipart/form-data'  id='gform_4'  action='/category/web-design-web-development/feed/' data-formid='4' novalidate>
        <div id='gf_progressbar_wrapper_4' class='gf_progressbar_wrapper' data-start-at-zero=''>
        	<p class="gf_progressbar_title">Step <span class='gf_step_current_page'>1</span> of <span class='gf_step_page_count'>3</span><span class='gf_step_page_name'></span>
        	</p>
            <div class='gf_progressbar gf_progressbar_blue' aria-hidden='true'>
                <div class='gf_progressbar_percentage percentbar_blue percentbar_33' style='width:33%;'><span>33%</span></div>
            </div></div>
                        <div class='gform-body gform_body'><div id='gform_page_4_1' class='gform_page ' data-js='page-field-id-0' >
					<div class='gform_page_fields'><div id='gform_fields_4' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id="field_4_19" class="gfield gfield--type-honeypot gform_validation_container field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible gfield--honeypot"  data-field-class="gfield--honeypot" ><label class='gfield_label gform-field-label' for='input_4_19'><span class='gform-field-label__text'>Company</span></label><div class='ginput_container'><input name='input_19' id='input_4_19' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_4_19'>This field is for validation purposes and should be left unchanged.</div></div><div id="field_4_1" class="gfield gfield--type-email gfield--input-type-email gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible gfield--email gfield--large"  data-field-class="gfield--email gfield--large" ><label class='gfield_label gform-field-label' for='input_4_1'><span class='gform-field-label__text'>First, what’s a good email address to reach you?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_email'>
                            <input name='input_1' id='input_4_1' type='email' value='' class='large'   placeholder='Your email address' aria-required="true" aria-invalid="false"  />
                        </div></div><fieldset id="field_4_18" class="gfield gfield--type-name gfield--input-type-name gfield--width-full gfield_contains_required field_sublabel_above gfield--no-description field_description_below field_validation_below gfield_visibility_visible gfield--name gfield--large"  data-field-class="gfield--name gfield--large" ><legend class='gfield_label gform-field-label gfield_label_before_complex' ><span class='gform-field-label__text'>What’s your name?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></legend><div class='ginput_complex ginput_container ginput_container--name no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gform-grid-row' id='input_4_18'>
                            
                            <span id='input_4_18_3_container' class='name_first gform-grid-col gform-grid-col--size-auto' >
                                                    <label for='input_4_18_3' class='gform-field-label gform-field-label--type-sub '>First</label>
                                                    <input type='text' name='input_18.3' id='input_4_18_3' value=''   aria-required='true'     />
                                                </span>
                            
                            <span id='input_4_18_6_container' class='name_last gform-grid-col gform-grid-col--size-auto' >
                                                            <label for='input_4_18_6' class='gform-field-label gform-field-label--type-sub '>Last</label>
                                                            <input type='text' name='input_18.6' id='input_4_18_6' value=''   aria-required='true'     />
                                                        </span>
                            
                        </div></fieldset></div>
                    </div>
                    <div class='gform-page-footer gform_page_footer top_label'>
                         <button type='button' id='gform_next_button_4_3' class='gform_next_button gform-theme-button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='next' >Next</button> 
                    </div>
                </div>
                <div id='gform_page_4_2' class='gform_page' data-js='page-field-id-3' style='display:none;'>
                    <div class='gform_page_fields'>
                        <div id='gform_fields_4_2' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id="field_4_4" class="gfield gfield--type-select gfield--input-type-select gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible gfield--select gfield--large"  data-field-class="gfield--select gfield--large" ><label class='gfield_label gform-field-label' for='input_4_4'><span class='gform-field-label__text'>Which of these best describes you?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_select'><select name='input_4' id='input_4_4' class='large gfield_select'    aria-required="true" aria-invalid="false" ><option value='Business owner/leader' >Business owner/leader</option><option value='Marketing leader/manager' >Marketing leader/manager</option><option value='Other' >Other</option></select></div></div><div id="field_4_16" class="gfield gfield--type-text gfield--input-type-text gfield--width-full gfield_contains_required field_sublabel_below gfield--has-description field_description_above field_validation_below gfield_visibility_visible gfield--text gfield--large"  data-field-class="gfield--text gfield--large" ><label class='gfield_label gform-field-label' for='input_4_16'><span class='gform-field-label__text'>Where can we can you out online?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='gfield_description' id='gfield_description_4_16'>Your website is preferred, but social channels work, too.</div><div class='ginput_container ginput_container_text'><input name='input_16' id='input_4_16' type='text' value='' class='large'  aria-describedby="gfield_description_4_16"   aria-required="true" aria-invalid="false"   /></div></div></div>
                    </div>
                    <div class='gform-page-footer gform_page_footer top_label'>
                        <button type='button' id='gform_previous_button_4_10' class='gform_previous_button gform-theme-button gform-theme-button--secondary button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='previous' >Previous</button> <button type='button' id='gform_next_button_4_10' class='gform_next_button gform-theme-button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='next' >Next</button> 
                    </div>
                </div>
                <div id='gform_page_4_3' class='gform_page' data-js='page-field-id-10' style='display:none;'>
                    <div class='gform_page_fields'>
                        <div id='gform_fields_4_3' class='gform_fields top_label form_sublabel_below description_below validation_below'><fieldset id="field_4_9" class="gfield gfield--type-radio gfield--type-choice gfield--input-type-radio gfield--width-half gfield_contains_required field_sublabel_below gfield--has-description field_description_above field_validation_below gfield_visibility_visible gfield--choice-align-vertical gfield--radio gfield--large"  data-field-class="gfield--radio gfield--large" ><legend class='gfield_label gform-field-label' ><span class='gform-field-label__text'>Let’s talk turkey...</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></legend><div class='gfield_description' id='gfield_description_4_9'>What is your budget for this initiative?</div><div class='ginput_container ginput_container_radio'><div class='gfield_radio' id='input_4_9'>
			<div class='gchoice gchoice_4_9_0'>
					<input class='gfield-choice-input' name='input_9' type='radio' value='$25,000-50,000'  id='choice_4_9_0' onchange='gformToggleRadioOther( this )' aria-describedby="gfield_description_4_9"   />
					<label for='choice_4_9_0' id='label_4_9_0' class='gform-field-label gform-field-label--type-inline'>$25,000-50,000</label>
			</div>
			<div class='gchoice gchoice_4_9_1'>
					<input class='gfield-choice-input' name='input_9' type='radio' value='$50,000-100,000'  id='choice_4_9_1' onchange='gformToggleRadioOther( this )'    />
					<label for='choice_4_9_1' id='label_4_9_1' class='gform-field-label gform-field-label--type-inline'>$50,000-100,000</label>
			</div>
			<div class='gchoice gchoice_4_9_2'>
					<input class='gfield-choice-input' name='input_9' type='radio' value='$100,000+'  id='choice_4_9_2' onchange='gformToggleRadioOther( this )'    />
					<label for='choice_4_9_2' id='label_4_9_2' class='gform-field-label gform-field-label--type-inline'>$100,000+</label>
			</div></div></div></fieldset><div id="field_4_13" class="gfield gfield--type-phone gfield--input-type-phone gfield--phone-format-standard gfield--width-half gfield_contains_required field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible gfield--phone gfield--large"  data-field-class="gfield--phone gfield--large" ><label class='gfield_label gform-field-label' for='input_4_13'><span class='gform-field-label__text'>What’s your cell number?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_phone'><input name='input_13' id='input_4_13' type='tel' value='' class='large'  placeholder='(999) 999-9999' aria-required="true" aria-invalid="false" aria-describedby="gfield_description_4_13"  data-mask="(999) 999-9999" /></div><div class='gfield_description' id='gfield_description_4_13'>By providing your phone number, you consent to receiving text messages from Tilted Chair.</div></div></div></div>
        <div class='gform-page-footer gform_page_footer top_label'><button type='submit' id='gform_previous_button_4' class='gform_previous_button gform-theme-button gform-theme-button--secondary button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='previous' >Previous</button> <button type='submit' id='gform_submit_button_4' class='gform_button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' >Submit</button> <input type='hidden' class='gform_hidden' name='gform_submission_speeds' value='{&quot;pages&quot;:[]}' />
            <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_4' value='postback' />
            <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_4' id='gform_theme_4' value='orbital' />
            <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_4' id='gform_style_settings_4' value='[]' />
            <input type='hidden' class='gform_hidden' name='is_submit_4' value='1' />
            <input type='hidden' class='gform_hidden' name='gform_submit' value='4' />
            
            <input type='hidden' class='gform_hidden' name='gform_currency' data-currency='USD' value='N3z9Edb+os14Ldjx0dsGC6fghuFPyyXy8WGuYQXSTxpPqonZugbLs3oc4okDS8G7+xzCCh+pKYpGgcyMTBiZd38kwNgp2J1oCryLRCEwc4MB5m0=' />
            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' />
            <input type='hidden' class='gform_hidden' name='state_4' value='WyJ7XCI0XCI6W1wiNWZmMmQ0M2E4YWJjZWZjNzA2MGQ2MGFlNzQyN2YzNzlcIixcImRmODA4MDA2NjJhNDkzYmZjYjBkMWVlOTg4NTA0NTg0XCIsXCI3YWE0NjA5NGFjNjdmNGY0Mzk5MmExOWUzNjg5YjY3MFwiXSxcIjlcIjpbXCJlNDE2NGY2NTNkYjA3MzNhZDZiNGFjYTQ1MTdiNzU5NVwiLFwiZDM4MjJjZGFlOGNlYmRkNTU4M2JkZTFmYzhiMWU3ZmRcIixcImE5YzY3YjQ5MDczNzA5MTAyZTVjOTczNjFiOGMxMzg3XCJdLFwiZ2Zvcm1fc3VibWlzc2lvbl9tZXRob2RcIjpbXCIzOWJlMzc4NWI2NGMyN2NjYzBlNWY5Y2FhYWFjMmExZFwiLFwiZDM1OTI5MWMwOTU2YzIyMWUxMjY1NmE2MDQ0ZWYyYWVcIl0sXCJnZm9ybV90aGVtZVwiOlwiZDUzYWU2NWEzY2Q1ZTViOWIyNDcxMGM3YzU1ZTc5OTVcIixcImdmb3JtX3N0eWxlX3NldHRpbmdzXCI6XCI3MDBjYzY2MzU2MDBkOGQyMGQzYmJjYTZiY2I0OGIwN1wiLFwiZm9ybV9pZFwiOlwiNjE2M2I5OTY2ZTFjMGZhMWI3YTE2ZGY0YjBlNjJkZmFcIixcInVybFwiOlwiNGRhNWFiYmI5MjVhMzg4NDM2Mjc0Y2JkNDY1ZTcyNjZcIixcInN0YXRlX3RpbWVzdGFtcFwiOlwiYmNjMjhkZWQ4YmM2YjVjMTgxZmJmZTBlYjU0MjVmMWNcIn0iLCIyYjM0MzEwNDVmNjQ5OGNlMDFlZjRjMTJkZGNlNGM0MCIsMTc5MTMxNTY5MF0=' />
            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_4' id='gform_target_page_number_4' value='2' />
            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_4' id='gform_source_page_number_4' value='1' />
            <input type='hidden' name='gform_field_values' value='' />
            
        </div>
             </div></div>
                        </form>
                        </div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Functional Design vs. Brand Design</title>
		<link>https://tiltedchair.co/functional-design-vs-brand-design/</link>
		
		<dc:creator><![CDATA[Jamie Rodriguez]]></dc:creator>
		<pubDate>Fri, 31 Jul 2020 01:00:39 +0000</pubDate>
				<category><![CDATA[Branding]]></category>
		<category><![CDATA[Web Design & Development]]></category>
		<guid isPermaLink="false">https://cool-saha.132-148-76-62.plesk.page/?p=6366</guid>

					<description><![CDATA[Brand systems are all the rage these days, and for good reason. Well-conceived and well-executed brand systems allow designers, developers, marketers, and vendors to create products and experiences that are uniformly aligned to a common vision. In the course of developing human brands—and more specifically, their visual languages—we&#8217;ve found that most brand systems can be [&#8230;]]]></description>
										<content:encoded><![CDATA[<h3>Brand systems are all the rage these days, and for good reason.</h3>
<p>Well-conceived and well-executed <a href="https://www.invisionapp.com/inside-design/design-systems/" target="_blank" rel="noopener noreferrer">brand systems</a> allow designers, developers, marketers, and vendors to create products and experiences that are uniformly aligned to a common vision. In the course of developing human brands—and more specifically, their visual languages—we&#8217;ve found that most brand systems can be easily classified into one of two design categories: brand design and functional design. Creating this convention for thinking about brand design systems has gone a long way to providing clarity in developing project scopes, and ultimately organizing our efforts to build out visual communications systems.</p>
<h5>FUNCTIONAL DESIGN</h5>
<p>The way we like to think about it is that functional design aims to encourage users to perform a specific action, or to make performing a specific action easier. Functional design often—but not always—lives on screens. Web/app design are great examples of functional design. Web design in particular seeks to balance brand expression with practical, functional usability. Within the realm of functional design, function is always primary; expression never takes precedence over usability. For the most part, functional design environments exist further down the funnel, once a user is already aware of a product or brand.</p>
<h5>BRAND DESIGN</h5>
<p>On the other side of the design coin lives brand design, or marketing design. For our purposes, we use these two monikers interchangeably. Because most instances of branded communication don’t have as direct of a link to a specific action, brand/marketing design seeks to influence consumer perception. There is still a balance to be struck between brand expression and practical usability, but it biases toward expression in most instances; the heavy usability lifting can be done by elements encountered in subsequent stages of the funnel. A billboard is an excellent traditional example of brand design.<br />
Another way to think about the two categories of design systems is to plot them on an objective spectrum: action vs expression.</p>
<p><img decoding="async" src="https://tiltedchair.co/wp-content/uploads/2020/05/functional-vs-brand-spectrum.jpg" alt="" width="100%" height="auto" /></p>
<p>As you can see, neither brand nor functional design lives perfectly at either end of the spectrum. After all, a website has top-of-funnel brand objectives to accomplish too. Likewise, a well-placed banner ad needs to be easily and obviously clickable. So, creating effective designs is always a balancing act. But being clear on purpose is crucial to developing an effective and appropriately useful/expressive design.</p>
<h5>CASE STUDY</h5>
<p>A great example of a comprehensive design system can be found by studying the functional and brand/marketing design ecosystems of one of my favorite brands: Chipotle.</p>
<p><img decoding="async" src="https://tiltedchair.co/wp-content/uploads/2020/05/chipotle-functional.jpg" alt="" width="100%" height="auto" /></p>
<p>As you can see from the assembled artboard, Chipotle&#8217;s functional design leans heavily toward action. All of the included screens exist to ease the process of performing some action: find a location, order online, redeem points, or add more items to the order. That&#8217;s not to say that these interfaces lack style or consistency—they don&#8217;t. But Chipotle&#8217;s online ordering platform represents an excellent example of prioritizing function over expression.</p>
<p><img decoding="async" src="https://tiltedchair.co/wp-content/uploads/2020/05/chipotle-brand.jpg" alt="" width="100%" height="auto" /></p>
<p>In contrast, consider Chipotle&#8217;s marketing design system, pictured above. Included here are some shining examples of classic brand design: billboards, print ads, and banner ads. These marketing messages are usually fixed and seek to attract attention or influence perception. Absent strict usability requirements, Chipotle&#8217;s brand design demonstrates greater flexibility regarding use of textures, type, patterns and photography treatments. Brand design systems generally allow for greater abstraction and creativity. This is where creatives can roll up their sleeves and have some fun in bringing the brand&#8217;s strategy—and in our case, the client&#8217;s archetype—to life.</p>
<h5>WHY INVEST IN SYSTEMS?</h5>
<p>What&#8217;s the point of all this? And why invest in design at all? Other than the fact that design-driven businesses <a href="https://www.dmi.org/page/2015DVIandOTW" target="_blank" rel="noopener noreferrer">outperform</a> their laggard counterparts in the stock market, the real answer can be found in <a href="https://www.verywellmind.com/what-is-cognitive-dissonance-2795012" target="_blank" rel="noopener noreferrer">human psychology</a>, and our never-ending journey to seek consistency and relieve ourselves of cognitive dissonance. By carefully organizing a brand, its functions, and its expressions around a strategically sound position, we can alleviate cognitive dissonance, build equity, and add measurable value.<br />
And in Chipotle&#8217;s case, sell a hell of a lot more burritos.</p>
<h3>Need help developing a functional or brand system? You know how to call.</h3>

                <div class='gf_browser_unknown gform_wrapper gform-theme gform-theme--foundation gform-theme--framework gform-theme--orbital' data-form-theme='orbital' data-form-index='0' id='gform_wrapper_4' ><style>#gform_wrapper_4[data-form-index="0"].gform-theme{--gf-color-primary: #204ce5;--gf-color-primary-rgb: 32, 76, 229;--gf-color-primary-contrast: #fff;--gf-color-primary-contrast-rgb: 255, 255, 255;--gf-color-primary-darker: #001AB3;--gf-color-primary-lighter: #527EFF;--gf-color-secondary: #fff;--gf-color-secondary-rgb: 255, 255, 255;--gf-color-secondary-contrast: #112337;--gf-color-secondary-contrast-rgb: 17, 35, 55;--gf-color-secondary-darker: #F5F5F5;--gf-color-secondary-lighter: #FFFFFF;--gf-color-out-ctrl-light: rgba(17, 35, 55, 0.1);--gf-color-out-ctrl-light-rgb: 17, 35, 55;--gf-color-out-ctrl-light-darker: rgba(104, 110, 119, 0.35);--gf-color-out-ctrl-light-lighter: #F5F5F5;--gf-color-out-ctrl-dark: #585e6a;--gf-color-out-ctrl-dark-rgb: 88, 94, 106;--gf-color-out-ctrl-dark-darker: #112337;--gf-color-out-ctrl-dark-lighter: rgba(17, 35, 55, 0.65);--gf-color-in-ctrl: #fff;--gf-color-in-ctrl-rgb: 255, 255, 255;--gf-color-in-ctrl-contrast: #112337;--gf-color-in-ctrl-contrast-rgb: 17, 35, 55;--gf-color-in-ctrl-darker: #F5F5F5;--gf-color-in-ctrl-lighter: #FFFFFF;--gf-color-in-ctrl-primary: #204ce5;--gf-color-in-ctrl-primary-rgb: 32, 76, 229;--gf-color-in-ctrl-primary-contrast: #fff;--gf-color-in-ctrl-primary-contrast-rgb: 255, 255, 255;--gf-color-in-ctrl-primary-darker: #001AB3;--gf-color-in-ctrl-primary-lighter: #527EFF;--gf-color-in-ctrl-light: rgba(17, 35, 55, 0.1);--gf-color-in-ctrl-light-rgb: 17, 35, 55;--gf-color-in-ctrl-light-darker: rgba(104, 110, 119, 0.35);--gf-color-in-ctrl-light-lighter: #F5F5F5;--gf-color-in-ctrl-dark: #585e6a;--gf-color-in-ctrl-dark-rgb: 88, 94, 106;--gf-color-in-ctrl-dark-darker: #112337;--gf-color-in-ctrl-dark-lighter: rgba(17, 35, 55, 0.65);--gf-radius: 3px;--gf-font-size-secondary: 14px;--gf-font-size-tertiary: 13px;--gf-icon-ctrl-number: url("data:image/svg+xml,%3Csvg width='8' height='14' viewBox='0 0 8 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4 0C4.26522 5.96046e-08 4.51957 0.105357 4.70711 0.292893L7.70711 3.29289C8.09763 3.68342 8.09763 4.31658 7.70711 4.70711C7.31658 5.09763 6.68342 5.09763 6.29289 4.70711L4 2.41421L1.70711 4.70711C1.31658 5.09763 0.683417 5.09763 0.292893 4.70711C-0.0976311 4.31658 -0.097631 3.68342 0.292893 3.29289L3.29289 0.292893C3.48043 0.105357 3.73478 0 4 0ZM0.292893 9.29289C0.683417 8.90237 1.31658 8.90237 1.70711 9.29289L4 11.5858L6.29289 9.29289C6.68342 8.90237 7.31658 8.90237 7.70711 9.29289C8.09763 9.68342 8.09763 10.3166 7.70711 10.7071L4.70711 13.7071C4.31658 14.0976 3.68342 14.0976 3.29289 13.7071L0.292893 10.7071C-0.0976311 10.3166 -0.0976311 9.68342 0.292893 9.29289Z' fill='rgba(17, 35, 55, 0.65)'/%3E%3C/svg%3E");--gf-icon-ctrl-select: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0.292893 0.292893C0.683417 -0.097631 1.31658 -0.097631 1.70711 0.292893L5 3.58579L8.29289 0.292893C8.68342 -0.0976311 9.31658 -0.0976311 9.70711 0.292893C10.0976 0.683417 10.0976 1.31658 9.70711 1.70711L5.70711 5.70711C5.31658 6.09763 4.68342 6.09763 4.29289 5.70711L0.292893 1.70711C-0.0976311 1.31658 -0.0976311 0.683418 0.292893 0.292893Z' fill='rgba(17, 35, 55, 0.65)'/%3E%3C/svg%3E");--gf-icon-ctrl-search: url("data:image/svg+xml,%3Csvg width='640' height='640' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M256 128c-70.692 0-128 57.308-128 128 0 70.691 57.308 128 128 128 70.691 0 128-57.309 128-128 0-70.692-57.309-128-128-128zM64 256c0-106.039 85.961-192 192-192s192 85.961 192 192c0 41.466-13.146 79.863-35.498 111.248l154.125 154.125c12.496 12.496 12.496 32.758 0 45.254s-32.758 12.496-45.254 0L367.248 412.502C335.862 434.854 297.467 448 256 448c-106.039 0-192-85.962-192-192z' fill='rgba(17, 35, 55, 0.65)'/%3E%3C/svg%3E");--gf-label-space-y-secondary: var(--gf-label-space-y-md-secondary);--gf-ctrl-border-color: #686e77;--gf-ctrl-size: var(--gf-ctrl-size-md);--gf-ctrl-label-color-primary: #112337;--gf-ctrl-label-color-secondary: #112337;--gf-ctrl-choice-size: var(--gf-ctrl-choice-size-md);--gf-ctrl-checkbox-check-size: var(--gf-ctrl-checkbox-check-size-md);--gf-ctrl-radio-check-size: var(--gf-ctrl-radio-check-size-md);--gf-ctrl-btn-font-size: var(--gf-ctrl-btn-font-size-md);--gf-ctrl-btn-padding-x: var(--gf-ctrl-btn-padding-x-md);--gf-ctrl-btn-size: var(--gf-ctrl-btn-size-md);--gf-ctrl-btn-border-color-secondary: #686e77;--gf-ctrl-btn-bg-color-hover-tertiary: #EBEBEB;--gf-field-img-choice-size: var(--gf-field-img-choice-size-md);--gf-field-img-choice-card-space: var(--gf-field-img-choice-card-space-md);--gf-field-img-choice-check-ind-size: var(--gf-field-img-choice-check-ind-size-md);--gf-field-img-choice-check-ind-icon-size: var(--gf-field-img-choice-check-ind-icon-size-md);--gf-field-pg-steps-number-color: rgba(17, 35, 55, 0.8);}</style><form method='post' enctype='multipart/form-data'  id='gform_4'  action='/category/web-design-web-development/feed/' data-formid='4' novalidate>
        <div id='gf_progressbar_wrapper_4' class='gf_progressbar_wrapper' data-start-at-zero=''>
        	<p class="gf_progressbar_title">Step <span class='gf_step_current_page'>1</span> of <span class='gf_step_page_count'>3</span><span class='gf_step_page_name'></span>
        	</p>
            <div class='gf_progressbar gf_progressbar_blue' aria-hidden='true'>
                <div class='gf_progressbar_percentage percentbar_blue percentbar_33' style='width:33%;'><span>33%</span></div>
            </div></div>
                        <div class='gform-body gform_body'><div id='gform_page_4_1' class='gform_page ' data-js='page-field-id-0' >
					<div class='gform_page_fields'><div id='gform_fields_4' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id="field_4_19" class="gfield gfield--type-honeypot gform_validation_container field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible gfield--honeypot"  data-field-class="gfield--honeypot" ><label class='gfield_label gform-field-label' for='input_4_19'><span class='gform-field-label__text'>Name</span></label><div class='ginput_container'><input name='input_19' id='input_4_19' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_4_19'>This field is for validation purposes and should be left unchanged.</div></div><div id="field_4_1" class="gfield gfield--type-email gfield--input-type-email gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible gfield--email gfield--large"  data-field-class="gfield--email gfield--large" ><label class='gfield_label gform-field-label' for='input_4_1'><span class='gform-field-label__text'>First, what’s a good email address to reach you?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_email'>
                            <input name='input_1' id='input_4_1' type='email' value='' class='large'   placeholder='Your email address' aria-required="true" aria-invalid="false"  />
                        </div></div><fieldset id="field_4_18" class="gfield gfield--type-name gfield--input-type-name gfield--width-full gfield_contains_required field_sublabel_above gfield--no-description field_description_below field_validation_below gfield_visibility_visible gfield--name gfield--large"  data-field-class="gfield--name gfield--large" ><legend class='gfield_label gform-field-label gfield_label_before_complex' ><span class='gform-field-label__text'>What’s your name?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></legend><div class='ginput_complex ginput_container ginput_container--name no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gform-grid-row' id='input_4_18'>
                            
                            <span id='input_4_18_3_container' class='name_first gform-grid-col gform-grid-col--size-auto' >
                                                    <label for='input_4_18_3' class='gform-field-label gform-field-label--type-sub '>First</label>
                                                    <input type='text' name='input_18.3' id='input_4_18_3' value=''   aria-required='true'     />
                                                </span>
                            
                            <span id='input_4_18_6_container' class='name_last gform-grid-col gform-grid-col--size-auto' >
                                                            <label for='input_4_18_6' class='gform-field-label gform-field-label--type-sub '>Last</label>
                                                            <input type='text' name='input_18.6' id='input_4_18_6' value=''   aria-required='true'     />
                                                        </span>
                            
                        </div></fieldset></div>
                    </div>
                    <div class='gform-page-footer gform_page_footer top_label'>
                         <button type='button' id='gform_next_button_4_3' class='gform_next_button gform-theme-button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='next' >Next</button> 
                    </div>
                </div>
                <div id='gform_page_4_2' class='gform_page' data-js='page-field-id-3' style='display:none;'>
                    <div class='gform_page_fields'>
                        <div id='gform_fields_4_2' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id="field_4_4" class="gfield gfield--type-select gfield--input-type-select gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible gfield--select gfield--large"  data-field-class="gfield--select gfield--large" ><label class='gfield_label gform-field-label' for='input_4_4'><span class='gform-field-label__text'>Which of these best describes you?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_select'><select name='input_4' id='input_4_4' class='large gfield_select'    aria-required="true" aria-invalid="false" ><option value='Business owner/leader' >Business owner/leader</option><option value='Marketing leader/manager' >Marketing leader/manager</option><option value='Other' >Other</option></select></div></div><div id="field_4_16" class="gfield gfield--type-text gfield--input-type-text gfield--width-full gfield_contains_required field_sublabel_below gfield--has-description field_description_above field_validation_below gfield_visibility_visible gfield--text gfield--large"  data-field-class="gfield--text gfield--large" ><label class='gfield_label gform-field-label' for='input_4_16'><span class='gform-field-label__text'>Where can we can you out online?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='gfield_description' id='gfield_description_4_16'>Your website is preferred, but social channels work, too.</div><div class='ginput_container ginput_container_text'><input name='input_16' id='input_4_16' type='text' value='' class='large'  aria-describedby="gfield_description_4_16"   aria-required="true" aria-invalid="false"   /></div></div></div>
                    </div>
                    <div class='gform-page-footer gform_page_footer top_label'>
                        <button type='button' id='gform_previous_button_4_10' class='gform_previous_button gform-theme-button gform-theme-button--secondary button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='previous' >Previous</button> <button type='button' id='gform_next_button_4_10' class='gform_next_button gform-theme-button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='next' >Next</button> 
                    </div>
                </div>
                <div id='gform_page_4_3' class='gform_page' data-js='page-field-id-10' style='display:none;'>
                    <div class='gform_page_fields'>
                        <div id='gform_fields_4_3' class='gform_fields top_label form_sublabel_below description_below validation_below'><fieldset id="field_4_9" class="gfield gfield--type-radio gfield--type-choice gfield--input-type-radio gfield--width-half gfield_contains_required field_sublabel_below gfield--has-description field_description_above field_validation_below gfield_visibility_visible gfield--choice-align-vertical gfield--radio gfield--large"  data-field-class="gfield--radio gfield--large" ><legend class='gfield_label gform-field-label' ><span class='gform-field-label__text'>Let’s talk turkey...</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></legend><div class='gfield_description' id='gfield_description_4_9'>What is your budget for this initiative?</div><div class='ginput_container ginput_container_radio'><div class='gfield_radio' id='input_4_9'>
			<div class='gchoice gchoice_4_9_0'>
					<input class='gfield-choice-input' name='input_9' type='radio' value='$25,000-50,000'  id='choice_4_9_0' onchange='gformToggleRadioOther( this )' aria-describedby="gfield_description_4_9"   />
					<label for='choice_4_9_0' id='label_4_9_0' class='gform-field-label gform-field-label--type-inline'>$25,000-50,000</label>
			</div>
			<div class='gchoice gchoice_4_9_1'>
					<input class='gfield-choice-input' name='input_9' type='radio' value='$50,000-100,000'  id='choice_4_9_1' onchange='gformToggleRadioOther( this )'    />
					<label for='choice_4_9_1' id='label_4_9_1' class='gform-field-label gform-field-label--type-inline'>$50,000-100,000</label>
			</div>
			<div class='gchoice gchoice_4_9_2'>
					<input class='gfield-choice-input' name='input_9' type='radio' value='$100,000+'  id='choice_4_9_2' onchange='gformToggleRadioOther( this )'    />
					<label for='choice_4_9_2' id='label_4_9_2' class='gform-field-label gform-field-label--type-inline'>$100,000+</label>
			</div></div></div></fieldset><div id="field_4_13" class="gfield gfield--type-phone gfield--input-type-phone gfield--phone-format-standard gfield--width-half gfield_contains_required field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible gfield--phone gfield--large"  data-field-class="gfield--phone gfield--large" ><label class='gfield_label gform-field-label' for='input_4_13'><span class='gform-field-label__text'>What’s your cell number?</span><span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_phone'><input name='input_13' id='input_4_13' type='tel' value='' class='large'  placeholder='(999) 999-9999' aria-required="true" aria-invalid="false" aria-describedby="gfield_description_4_13"  data-mask="(999) 999-9999" /></div><div class='gfield_description' id='gfield_description_4_13'>By providing your phone number, you consent to receiving text messages from Tilted Chair.</div></div></div></div>
        <div class='gform-page-footer gform_page_footer top_label'><button type='submit' id='gform_previous_button_4' class='gform_previous_button gform-theme-button gform-theme-button--secondary button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='previous' >Previous</button> <button type='submit' id='gform_submit_button_4' class='gform_button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' >Submit</button> <input type='hidden' class='gform_hidden' name='gform_submission_speeds' value='{&quot;pages&quot;:[]}' />
            <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_4' value='postback' />
            <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_4' id='gform_theme_4' value='orbital' />
            <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_4' id='gform_style_settings_4' value='[]' />
            <input type='hidden' class='gform_hidden' name='is_submit_4' value='1' />
            <input type='hidden' class='gform_hidden' name='gform_submit' value='4' />
            
            <input type='hidden' class='gform_hidden' name='gform_currency' data-currency='USD' value='X3yLtH3YuLr2s6mDedy67UHzYqBBYXbxl4Y/5VFkWMVZQ/DIjZej+prFfat8K2TKfB1D0uwwLpJ3zV9KtzkbbdkAEgY1JsUoM3tUD+6o62m/t0s=' />
            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' />
            <input type='hidden' class='gform_hidden' name='state_4' value='WyJ7XCI0XCI6W1wiNWZmMmQ0M2E4YWJjZWZjNzA2MGQ2MGFlNzQyN2YzNzlcIixcImRmODA4MDA2NjJhNDkzYmZjYjBkMWVlOTg4NTA0NTg0XCIsXCI3YWE0NjA5NGFjNjdmNGY0Mzk5MmExOWUzNjg5YjY3MFwiXSxcIjlcIjpbXCJlNDE2NGY2NTNkYjA3MzNhZDZiNGFjYTQ1MTdiNzU5NVwiLFwiZDM4MjJjZGFlOGNlYmRkNTU4M2JkZTFmYzhiMWU3ZmRcIixcImE5YzY3YjQ5MDczNzA5MTAyZTVjOTczNjFiOGMxMzg3XCJdLFwiZ2Zvcm1fc3VibWlzc2lvbl9tZXRob2RcIjpbXCIzOWJlMzc4NWI2NGMyN2NjYzBlNWY5Y2FhYWFjMmExZFwiLFwiZDM1OTI5MWMwOTU2YzIyMWUxMjY1NmE2MDQ0ZWYyYWVcIl0sXCJnZm9ybV90aGVtZVwiOlwiZDUzYWU2NWEzY2Q1ZTViOWIyNDcxMGM3YzU1ZTc5OTVcIixcImdmb3JtX3N0eWxlX3NldHRpbmdzXCI6XCI3MDBjYzY2MzU2MDBkOGQyMGQzYmJjYTZiY2I0OGIwN1wiLFwiZm9ybV9pZFwiOlwiNjE2M2I5OTY2ZTFjMGZhMWI3YTE2ZGY0YjBlNjJkZmFcIixcInVybFwiOlwiNGRhNWFiYmI5MjVhMzg4NDM2Mjc0Y2JkNDY1ZTcyNjZcIixcInN0YXRlX3RpbWVzdGFtcFwiOlwiYmNjMjhkZWQ4YmM2YjVjMTgxZmJmZTBlYjU0MjVmMWNcIn0iLCIyYjM0MzEwNDVmNjQ5OGNlMDFlZjRjMTJkZGNlNGM0MCIsMTc5MTMxNTY5MF0=' />
            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_4' id='gform_target_page_number_4' value='2' />
            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_4' id='gform_source_page_number_4' value='1' />
            <input type='hidden' name='gform_field_values' value='' />
            
        </div>
             </div></div>
                        </form>
                        </div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Up at 3am: A WordPress Web Launch Checklist</title>
		<link>https://tiltedchair.co/up-at-3am-a-wordpress-web-launch-checklist/</link>
		
		<dc:creator><![CDATA[Jamie Rodriguez]]></dc:creator>
		<pubDate>Sat, 01 Jun 2019 00:05:43 +0000</pubDate>
				<category><![CDATA[Web Design & Development]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[Website Design]]></category>
		<category><![CDATA[Website Development]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://cool-saha.132-148-76-62.plesk.page/?p=5880</guid>

					<description><![CDATA[Websites: they&#8217;re never done. That&#8217;s an actual credo we reinforce with our clients before embarking on the long journey of building a website. And it&#8217;s really true. We approach web design and web development in an iterative fashion. We set the expectation with our clients early on that, yes, we will eventually reach a place [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Websites: they&#8217;re never done. That&#8217;s an actual credo we reinforce with our clients before embarking on the long journey of building a website. And it&#8217;s really true. We approach web design and web development in an iterative fashion. We set the expectation with our clients early on that, yes, we will eventually reach a place where the website is ready to push live, but that they should be mentally prepared to invest some amount of time and attention in their website every year for&#8230;well, forever basically. That&#8217;s just the double-edged beauty of digital. New features, security upgrades, plugin updates, and redesigns are just a few of the initiatives driving the never-finished nature of digital.</p>
<p>That in mind, there comes a time when you have to be ready to press &#8220;go&#8221; on a website. It&#8217;s one of the most exciting and nerve-wracking moments of the whole deal. Having successfully launched close to a hundred websites in the last nine years—predominantly WordPress installations, including five this year alone—we consider ourselves WordPress experts. We&#8217;ve pretty much seen it all. And in that time, we&#8217;ve assembled a web launch checklist to make sure we get it right, and that going live goes as smoothly as possible. Following these steps might mean the difference between getting some sleep and staying up late the night of the launch.</p>
<h3>Make sure your fonts are embedded correctly</h3>
<p>We ran into an issue recently where a Spanish-translated version of the site&#8217;s content contained characters that were absent from our font version, so the special characters defaulted to the system font. It was a small but important mishap, and one we learned from. Make double sure that a) your web fonts contain all of the necessary characters, and b) your fonts are embedded properly. Google Web Fonts and Adobe Fonts both have pretty simple embed protocols, so follow those instructions carefully to embed your fonts properly.</p>
<h3>While we&#8217;re talking type, a word about <em>italics</em>&#8230;</h3>
<p>Ensure your italics reference a genuine italic font style and not an artificial CSS-forced style. (Like the one above.) The keen eye of your designer-type users will be able to tell the difference.</p>
<h3>Update your social share image</h3>
<p>If you&#8217;re building a great website, there&#8217;s a very high probability that it&#8217;ll eventually be shared via social. Update your <a href="https://css-tricks.com/essential-meta-tags-social-media/">social share image</a> to be sure you&#8217;re represented beautifully if and when users share your website.</p>
<h3>Quadruple check your links</h3>
<p>There&#8217;s nothing more embarrassing than broken links. Don&#8217;t let broken links happen to your site. Check, check, and then check again. Make a checklist of all the places links appear on your website, and go through them systematically to ensure they&#8217;re going where they should be going. Create a link document that has all of the links listed on every page, with link destinations included. Make sure every link has a destination.</p>
<h3>Check your 404 page</h3>
<p>Don&#8217;t get caught with a default 404 page!</p>
<h3>Remove any test/placeholder content</h3>
<p>Don&#8217;t let Google index any content that&#8217;s not permanent.</p>
<h3>Make sure your admin email is set</h3>
<p>I can&#8217;t overstate the importance of this one. WordPress recently updated such that now, when the admin email is set, the email recipient has to confirm the assignment. Make 1000% sure this is done prior to launch, as contact form entries notify the admin email by default. If this isn&#8217;t set, you might miss out on valuable website leads not hitting your inbox because your admin email wasn&#8217;t set up prior to launch.</p>
<h3>Make sure your icons are all SVGs</h3>
<p>It&#8217;s 2019, and SVGs have taken over. Out with the @2x.png files and in with the .svgs. Hallelujah.</p>
<h3>Install the Classic Editor</h3>
<p>$*@% you, Gutenburg! (The plugin, not the man.) Worst WordPress update in years. Get that Classic Editor installed ASAP.</p>
<h3>Make sure your redirects are set</h3>
<p>Set up your 301 permanent redirects to ensure old links reach new content. This only applies if you&#8217;ve changed URLs.</p>
<h3>Move your /wp-admin login screen</h3>
<p>This is a sweet little trick to ward off potential hacks. Hackers are going to have a hard time breaking into your website if they can&#8217;t find the login screen. More savvy hackers will still be able to find the relocated login area, but many won&#8217;t be able to. I&#8217;m not going to tell you where we move ours to, but get creative.</p>
<h3>Test your forms</h3>
<p>If, like us, your website is a lead generation tool, you need to be sure that potential leads are getting through. We use <a href="https://www.gravityforms.com" target="_blank" rel="noopener">Gravity Forms</a>, and we test extensively prior to launch to ensure a) the data gets through, b) the confirmation language is correct, and c) the notifications hit the email inboxes of the right parties.</p>
<h3>Make sure Google Tag Manager is set up properly</h3>
<p>This is a big one, and our resident media maestro Jake Rector is an expert at making sure all the plugs are plugged into the right outlets from the Google end. This ensures proper tracking of user behavior throughout the site.</p>
<h3>Ensure proper formatting across the most common viewports</h3>
<p>These days, we pretty much focus on desktop and mobile. CSS can be a tricky beast, and making changes for one viewport can cause unintended consequences on the other. So be sure you test all of the site&#8217;s pages and content across mobile and desktop to prevent launching with formatting errors.</p>
<h3>Optimize your images</h3>
<p>Don&#8217;t let 5MB raw files slow down your otherwise optimized website. We use <a href="https://wordpress.org/plugins/wp-smushit/" target="_blank" rel="noopener">Smush</a> to loss-lessly compress images, ensuring super-fast load times.</p>
<h3>Back that thing up</h3>
<p>Nothing&#8217;s more painful than losing content because you haven&#8217;t backed up your website. Prevent this situation by installing <a href="https://ithemes.com/purchase/backupbuddy/" target="_blank" rel="noopener">Backup Buddy</a> or the like on your WordPress website.</p>
<h3>Make sure the site is crawlable by search engines</h3>
<p>It&#8217;s easy to forget, but clicking off &#8220;Discourage search engines from indexing this site&#8221; in your &#8220;Reading&#8221; settings can prevent delays in organic indexing. That brand-spankin&#8217;-new site ain&#8217;t doing anyone any good if nobody can find it!</p>
<h3>Install an SEO plugin</h3>
<p>Get that meta information right! We usually go with <a href="https://wordpress.org/plugins/all-in-one-seo-pack/" target="_blank" rel="noopener">All In One SEO Pack</a> or <a href="https://wordpress.org/plugins/wordpress-seo/" target="_blank" rel="noopener">Yoast</a>.</p>
<h3>Make sure you have your favicon in place</h3>
<p>That&#8217;s the little 64&#215;64 icon that goes in the top left corner of your browser address bar. Have some fun with it, as it&#8217;s a nice and oft-overlooked branding moment. Don&#8217;t know how to make one? Use something like the <a href="https://www.favicon.cc" target="_blank" rel="noopener">Favicon Generator</a> to create the favicon with the right dimensions and in the right format.</p>
<p>That&#8217;s it! Tick off these to-dos, and you&#8217;ll have a WordPress website that&#8217;s safe, fast, and ready to say, &#8220;Hello, World!&#8221;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Designing for America</title>
		<link>https://tiltedchair.co/designing-for-america/</link>
		
		<dc:creator><![CDATA[Jamie Rodriguez]]></dc:creator>
		<pubDate>Wed, 08 May 2019 22:04:11 +0000</pubDate>
				<category><![CDATA[Web Design & Development]]></category>
		<category><![CDATA[Pete Buttigieg]]></category>
		<category><![CDATA[Political Advertising]]></category>
		<category><![CDATA[Social Media Advertising]]></category>
		<category><![CDATA[Website Design]]></category>
		<guid isPermaLink="false">https://cool-saha.132-148-76-62.plesk.page/?p=5778</guid>

					<description><![CDATA[&#8220;Presidential Campaign” That&#8217;s not a project description you see come through the old email inbox very often. Though most of us over here at Tilted Chair are personally politically aware and active, that engagement isn&#8217;t something that has ever spilled over into our working lives. And then, this past February, Pete Buttigieg and his team [&#8230;]]]></description>
										<content:encoded><![CDATA[<h3>&#8220;Presidential Campaign”</h3>
<p>That&#8217;s not a project description you see come through the old email inbox very often. Though most of us over here at Tilted Chair are <em>personally</em> politically aware and active, that engagement isn&#8217;t something that has ever spilled over into our working lives. And then, this past February, Pete Buttigieg and his team from South Bend, Indiana changed all of that.</p>
<p>Truth-be-told, I didn&#8217;t know who he was when the campaign first reached out. But when you get the chance to work on something this high-profile, you take it. As the project got rolling, I started seeing and hearing more from Mayor Pete in my regular media diet: Colbert, Real Time, Pod Save America. It didn&#8217;t take long to realize that we&#8217;d stumbled onto a project for one of the more thoughtful, intelligent, and likable politicians in recent memory. Getting inspired wasn&#8217;t a problem.</p>
<p><a href="https://peteforamerica.com" target="_blank" rel="noopener"><img decoding="async" class="alignnone size-medium wp-image-5810" src="https://tiltedchair.co/wp-content/uploads/2019/05/pete-home.gif" alt="" width="100%" height="auto" /></a></p>
<p><img decoding="async" class="alignnone size-medium wp-image-5862" src="https://tiltedchair.co/wp-content/uploads/2019/05/404.png" alt="" width="100%" height="auto" /></p>
<p>We&#8217;re proud to finally pull the veil off all the good work we&#8217;ve been doing for Pete For America. We built a website that just landed on The Best Designs as the <a href="https://www.thebestdesigns.com/designs/pete-for-america">Design of the Day</a>, and we developed a Facebook campaign that&#8217;s churning out a level of performance metrics that, well quite honestly, we&#8217;ve just never seen before. To put it simply: more people saw, consumed, or engaged with our work in a week than in the rest of our agency&#8217;s history combined. The scale of this project can&#8217;t be overstated.</p>
<h2><span class="red">&#8220;</span>&#8230;when you get the chance to work on something this high-profile, you take it.<span class="red">”</span></h2>
<p>We developed and then deployed a series of simple videos and animations made from media footage and still photography aimed at introducing Pete to the world.</p>
<p><iframe loading="lazy" src="https://player.vimeo.com/video/334981861" width="640" height="640" frameborder="0" allowfullscreen="allowfullscreen"></iframe><br />
<iframe loading="lazy" src="https://player.vimeo.com/video/333330554" width="640" height="640" frameborder="0" allowfullscreen="allowfullscreen"></iframe><br />
<iframe loading="lazy" src="https://player.vimeo.com/video/334745727" width="640" height="640" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>Whether Pete lands the presidency—or even the Democratic nomination—remains to be seen. But we were sure glad to help. And while the journey was littered with many unexpected stops—including a 48-hour stint at the office, and some emergency coding at a brewery—it also exposed us to a whole new world of marketing and advertising, one that we&#8217;ll embrace wholeheartedly going forward. Designing for politics is, quite literally, designing for America. And that&#8217;s the kind of human brand building we can get behind.</p>
<h3>PETEFORAMERICA.COM »</h3>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
