<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: DesignToCodes</title>
    <description>The latest articles on DEV Community by DesignToCodes (@designtocodes).</description>
    <link>https://dev.to/designtocodes</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3718390%2F8c628858-8b77-4e07-aebb-8f205af2d428.png</url>
      <title>DEV Community: DesignToCodes</title>
      <link>https://dev.to/designtocodes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/designtocodes"/>
    <language>en</language>
    <item>
      <title>Developer, Designer, or One-Pager? Picking the Right Portfolio Template</title>
      <dc:creator>DesignToCodes</dc:creator>
      <pubDate>Tue, 25 Aug 2026 06:53:49 +0000</pubDate>
      <link>https://dev.to/designtocodes/developer-designer-or-one-pager-picking-the-right-portfolio-template-52j8</link>
      <guid>https://dev.to/designtocodes/developer-designer-or-one-pager-picking-the-right-portfolio-template-52j8</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Developer, designer, or launching-fast? The right portfolio template isn't the prettiest — it's the one built for how your field shows its work. Quick guide.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  One question decides it: what does your proof look like?
&lt;/h2&gt;

&lt;p&gt;Devs prove with projects, code, performance. Designers prove with visuals in context. Juniors/freelancers prove with a focused, fast first site. Match the template to that.&lt;/p&gt;

&lt;h2&gt;
  
  
  The picks
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NextGenAppsPro&lt;/strong&gt; — Next.js, fast, code-friendly, case-study ready. For developers. (free + pro editions)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Grafik V2&lt;/strong&gt; — gallery-led, visual-first (Next.js or Elementor). For designers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MyDevFolio&lt;/strong&gt; — free one-page starter with a Figma file. For launching today.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What they share
&lt;/h2&gt;

&lt;p&gt;Same bar: fast enough for Core Web Vitals, responsive on real devices, clean license. The choice is fit, not quality.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Not sure?&lt;/strong&gt; Browse the &lt;a href="https://designtocodes.com/product-category/portfolio/" rel="noopener noreferrer"&gt;DesignToCodes portfolio templates&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;What matters more to you in a portfolio base — speed or visual polish? 👇&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>design</category>
      <category>career</category>
      <category>showdev</category>
    </item>
    <item>
      <title>The Pricing Table Pattern That Converts (Copy-Paste Code)</title>
      <dc:creator>DesignToCodes</dc:creator>
      <pubDate>Fri, 21 Aug 2026 09:50:46 +0000</pubDate>
      <link>https://dev.to/designtocodes/the-pricing-table-pattern-that-converts-copy-paste-code-1oc7</link>
      <guid>https://dev.to/designtocodes/the-pricing-table-pattern-that-converts-copy-paste-code-1oc7</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;People don't read pricing tables. They scan them for permission to choose. Design for that and conversions follow. Copy-paste pattern below.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The rules
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Three tiers&lt;/strong&gt; — two feels thin, four paralyses&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Highlight the middle&lt;/strong&gt; — "Most popular" badge + a subtle lift&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Value lines, not features&lt;/strong&gt; — "Unlimited projects" &amp;gt; "project module"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One CTA per plan&lt;/strong&gt;, same weight&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Copy-paste it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.pricing&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="py"&gt;gap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;16px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="py"&gt;grid-template-columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nb"&gt;repeat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;auto-fit&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;minmax&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;220px&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="n"&gt;fr&lt;/span&gt;&lt;span class="p"&gt;))}&lt;/span&gt;
&lt;span class="nc"&gt;.tier&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="m"&gt;#e5e7eb&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;12px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;24px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nl"&gt;text-align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.tier.featured&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;border-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;#4a9eff&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nl"&gt;box-shadow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;8px&lt;/span&gt; &lt;span class="m"&gt;30px&lt;/span&gt; &lt;span class="n"&gt;rgba&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;74&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="m"&gt;158&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="m"&gt;255&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="m"&gt;.15&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="nl"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;translateY&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;-6px&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;
&lt;span class="nc"&gt;.badge&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;#4a9eff&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;#fff&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;3px&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(Full markup in the post — three &lt;code&gt;.tier&lt;/code&gt; cards, the middle one &lt;code&gt;.featured&lt;/code&gt;.)&lt;/p&gt;

&lt;h2&gt;
  
  
  Honest psychology
&lt;/h2&gt;

&lt;p&gt;Anchoring makes the middle plan feel reasonable; "most popular" is social proof; fewer benefit-led lines lower the effort of comparing. Not manipulation when the plans are fair.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Want tested blocks?&lt;/strong&gt; Grab &lt;a href="https://designtocodes.com/component-library/" rel="noopener noreferrer"&gt;DesignToCodes UI section kits&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Do highlighted "most popular" plans actually convert better for you? 👇&lt;/em&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>html</category>
      <category>webdev</category>
      <category>design</category>
    </item>
    <item>
      <title>The Website Speed Checklist That Actually Moves Core Web Vitals</title>
      <dc:creator>DesignToCodes</dc:creator>
      <pubDate>Tue, 18 Aug 2026 06:49:15 +0000</pubDate>
      <link>https://dev.to/designtocodes/the-website-speed-checklist-that-actually-moves-core-web-vitals-195l</link>
      <guid>https://dev.to/designtocodes/the-website-speed-checklist-that-actually-moves-core-web-vitals-195l</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Almost every slow website fails on the same handful of things. Here's the checklist that actually moves Core Web Vitals — framework-agnostic, no fluff.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Measure first
&lt;/h2&gt;

&lt;p&gt;PageSpeed Insights: mobile &lt;em&gt;field&lt;/em&gt; data. LCP (load), INP (interactivity), CLS (shift). Fix in that order.&lt;/p&gt;

&lt;h2&gt;
  
  
  Images (biggest win)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;WebP/AVIF, sized to their slot (not 3000px into 400px)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;loading="lazy"&lt;/code&gt; below the fold&lt;/li&gt;
&lt;li&gt;Preload the hero (it's your LCP)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  JavaScript (INP killer)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Audit third-party scripts — chat/analytics/ads are often the heaviest thing&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;defer&lt;/code&gt;/&lt;code&gt;async&lt;/code&gt; non-critical scripts&lt;/li&gt;
&lt;li&gt;Code-split heavy features&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Fonts, caching, CLS
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Self-host fonts, &lt;code&gt;font-display: swap&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Long cache headers + a CDN + Brotli&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;width&lt;/code&gt;/&lt;code&gt;height&lt;/code&gt; on everything → no shift&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The uncomfortable one
&lt;/h2&gt;

&lt;p&gt;If you've done all this and you're still slow, the template is the problem. Page-builder themes ship MBs you can't optimize away.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Need a lean base?&lt;/strong&gt; Browse fast &lt;a href="https://designtocodes.com/" rel="noopener noreferrer"&gt;DesignToCodes templates&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;What's the worst offender you've found in a Lighthouse audit? 👇&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webperf</category>
      <category>webdev</category>
      <category>css</category>
      <category>javascript</category>
    </item>
    <item>
      <title>What Solopreneurs Actually Need From a Website Template</title>
      <dc:creator>DesignToCodes</dc:creator>
      <pubDate>Fri, 14 Aug 2026 07:07:18 +0000</pubDate>
      <link>https://dev.to/designtocodes/what-solopreneurs-actually-need-from-a-website-template-1463</link>
      <guid>https://dev.to/designtocodes/what-solopreneurs-actually-need-from-a-website-template-1463</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;When you're the whole company, your website is your storefront, sales rep, and credibility at once. Here's what solopreneurs actually need from a template (and what to ignore).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Optimize for one flow
&lt;/h2&gt;

&lt;p&gt;What do you do → is it for me → can I trust you → how do I hire you. Build around that, not around showing off. A prospect with no one to follow up with needs the answers fast.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to look for
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Clear hero: what you do + one action (book/quote/contact)&lt;/li&gt;
&lt;li&gt;Services or work, each with a benefit&lt;/li&gt;
&lt;li&gt;Proof — testimonials/results (trust is the whole sale)&lt;/li&gt;
&lt;li&gt;About + your face (people buy from people)&lt;/li&gt;
&lt;li&gt;Frictionless booking/contact&lt;/li&gt;
&lt;li&gt;Fast, editable solo, no lock-in&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Free vs paid
&lt;/h2&gt;

&lt;p&gt;Free is great for starting/testing if you'll edit it yourself. Pay for a specific look, updates, support, or a guaranteed performance standard. A great free template + your time beats a mediocre paid one — but your time isn't free.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Starting out?&lt;/strong&gt; The free, hand-coded &lt;a href="https://designtocodes.com/product/nextgenappspro-free-portfolio-website-template/" rel="noopener noreferrer"&gt;NextGenAppsPro&lt;/a&gt; is a solid base.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Solo founders: what converts best for you — a form or a scheduling link? 👇&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>design</category>
      <category>startup</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Build a Fast Next.js Portfolio (App Router, next/image, Deploy)</title>
      <dc:creator>DesignToCodes</dc:creator>
      <pubDate>Tue, 11 Aug 2026 06:16:09 +0000</pubDate>
      <link>https://dev.to/designtocodes/build-a-fast-nextjs-portfolio-app-router-nextimage-deploy-6a9</link>
      <guid>https://dev.to/designtocodes/build-a-fast-nextjs-portfolio-app-router-nextimage-deploy-6a9</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;A Next.js portfolio is the best React project you can ship — it teaches routing, images, metadata, and deployment, and you end up with something you'll actually use. Here's the whole build.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Scaffold + structure
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx create-next-app@latest my-portfolio  &lt;span class="c"&gt;# App Router&lt;/span&gt;
app/
  page.tsx            // home
  projects/[slug]/page.tsx
  components/Hero.tsx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;App Router = server-rendered by default, so your content is in the HTML crawlers read.&lt;/p&gt;

&lt;h2&gt;
  
  
  Images + SEO (the two most-skipped bits)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Image&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;next/image&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Image&lt;/span&gt; &lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/work.webp&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;alt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Dashboard&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1200&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nx"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;800&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nx"&gt;priority&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;metadata&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Sam Rivera — Front-End Engineer&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;alternates&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;canonical&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://samrivera.dev&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;priority&lt;/code&gt; on the hero (it's your LCP). Metadata API for titles/canonicals, no plugin.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploy
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm i &lt;span class="nt"&gt;-g&lt;/span&gt; vercel &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; vercel
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;HTTPS, CDN, auto-deploys on push. Add a domain, done.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before you ship
&lt;/h2&gt;

&lt;p&gt;next/image + priority hero, next/font, Server Components by default, PageSpeed on mobile.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Want a head start?&lt;/strong&gt; &lt;a href="https://designtocodes.com/product/nextgenappspro-next-js-portfolio-template-for-web-developers/" rel="noopener noreferrer"&gt;NextGenAppsPro&lt;/a&gt; ships this structure ready.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Building yours from scratch or a template? 👇&lt;/em&gt;&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>react</category>
      <category>webdev</category>
      <category>showdev</category>
    </item>
    <item>
      <title>A Responsive Image Gallery in ~30 Lines (Grid + Lightbox, No Library)</title>
      <dc:creator>DesignToCodes</dc:creator>
      <pubDate>Fri, 07 Aug 2026 11:11:39 +0000</pubDate>
      <link>https://dev.to/designtocodes/a-responsive-image-gallery-in-30-lines-grid-lightbox-no-library-48fb</link>
      <guid>https://dev.to/designtocodes/a-responsive-image-gallery-in-30-lines-grid-lightbox-no-library-48fb</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;You don't need a carousel library for a gallery. CSS grid + ~15 lines of JS gives you a responsive, lazy-loaded gallery with a lightbox — and it loads faster than any plugin. Copy-paste below.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Grid does the responsive part for free
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.gallery&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="py"&gt;gap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;12px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;grid-template-columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nb"&gt;repeat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;auto-fill&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;minmax&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;240px&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="n"&gt;fr&lt;/span&gt;&lt;span class="p"&gt;))}&lt;/span&gt;
&lt;span class="nc"&gt;.gallery&lt;/span&gt; &lt;span class="nt"&gt;img&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nl"&gt;object-fit&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;cover&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;8px&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;auto-fill&lt;/code&gt; + &lt;code&gt;minmax()&lt;/code&gt; = reflows on every screen, zero media queries.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lightbox, no library
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;g&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.gallery&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;box&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;assign&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createElement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;div&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),{&lt;/span&gt;&lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;lightbox&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;box&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;g&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;closest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;a&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;preventDefault&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="nx"&gt;box&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerHTML&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;&amp;lt;img src="&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;"&amp;gt;&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nx"&gt;box&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;classList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;open&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);});&lt;/span&gt;
&lt;span class="nx"&gt;box&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,()&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;box&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;classList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;remove&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;open&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The perf bits that matter
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;WebP/AVIF thumbnails sized to their slot (not 3000px into 400px)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;loading="lazy"&lt;/code&gt; below the fold&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;width&lt;/code&gt;/&lt;code&gt;height&lt;/code&gt; set → no layout shift&lt;/li&gt;
&lt;li&gt;Full-res image loads only in the lightbox, on click&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Want a tested one?&lt;/strong&gt; Grab a free &lt;a href="https://designtocodes.com/product/10-responsive-bootstrap-gallery-section-free-download/" rel="noopener noreferrer"&gt;responsive gallery section&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Vanilla lightbox or a library — what do you reach for? 👇&lt;/em&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>javascript</category>
      <category>html</category>
      <category>webdev</category>
    </item>
    <item>
      <title>What Makes a Professional Portfolio Website (12 Examples Analyzed)</title>
      <dc:creator>DesignToCodes</dc:creator>
      <pubDate>Tue, 04 Aug 2026 07:05:11 +0000</pubDate>
      <link>https://dev.to/designtocodes/what-makes-a-professional-portfolio-website-12-examples-analyzed-1k66</link>
      <guid>https://dev.to/designtocodes/what-makes-a-professional-portfolio-website-12-examples-analyzed-1k66</guid>
      <description>&lt;p&gt;I've reviewed portfolios across dev, design, and writing, and the effective ones all do the same thing: they prove one capability quickly, rather than showing everything. Here's the pattern, with 12 examples.&lt;/p&gt;

&lt;h2&gt;
  
  
  Answer 3 questions above the fold
&lt;/h2&gt;

&lt;p&gt;Can you do the work? Can you explain it? Can I reach you? A professional portfolio answers all three before the first scroll. Most bury them under a mood hero and "creative professional."&lt;/p&gt;

&lt;h2&gt;
  
  
  The case-study formula
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Problem  — what needed solving, for whom
Approach — your role + the key decision
Result   — a number (time, users, revenue, %)
Link     — live demo / artifact
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;"Redesigned onboarding, cut drop-off 24%" earns the interview. "Worked on onboarding" doesn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  12 patterns that work
&lt;/h2&gt;

&lt;p&gt;Case-study-first (dev), work-in-context (design), clips+outcomes (writing), results-led (consulting), story-driven (UX), gallery-first (photo), metrics dashboard (marketing), GitHub+demos (eng), services+pricing (freelance), projects+trajectory (junior), one-specialty (multi-disciplinary), and the minimalist one-pager. Pick the one that fits what you want more of.&lt;/p&gt;

&lt;h2&gt;
  
  
  Speed is a professionalism signal
&lt;/h2&gt;

&lt;p&gt;A 4-second portfolio undercuts the work. LCP &amp;lt; 2.5s, modern image formats, reserved dimensions.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Want a fast base?&lt;/strong&gt; Browse &lt;a href="https://designtocodes.com/product-category/portfolio/" rel="noopener noreferrer"&gt;DesignToCodes portfolio templates&lt;/a&gt; (dev, designer, one-page).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;What field are you in, and what's your one strongest project? 👇&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>career</category>
      <category>design</category>
      <category>showdev</category>
    </item>
    <item>
      <title>How We Make Portfolio Templates That Actually Pass Core Web Vitals</title>
      <dc:creator>DesignToCodes</dc:creator>
      <pubDate>Fri, 24 Jul 2026 09:30:02 +0000</pubDate>
      <link>https://dev.to/designtocodes/how-we-make-portfolio-templates-that-actually-pass-core-web-vitals-1pip</link>
      <guid>https://dev.to/designtocodes/how-we-make-portfolio-templates-that-actually-pass-core-web-vitals-1pip</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Most portfolio templates are slow for one reason: they’re built on page builders, not code. Here’s how we make ours pass Core Web Vitals out of the box — and how to check any template yourself.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Where the weight comes from
&lt;/h2&gt;

&lt;p&gt;Page builders and stacked animation libraries look great in a demo and ship multi-MB payloads with render-blocking scripts and layout shift. For a portfolio — where you’re being judged on craft — a slow site argues against you.&lt;/p&gt;

&lt;h2&gt;
  
  
  How we keep it lean
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Hand-coded, semantic HTML (no builder bloat)&lt;/li&gt;
&lt;li&gt;Minimal JS — interactivity only where it earns its place (helps INP)&lt;/li&gt;
&lt;li&gt;Optimized images: modern formats, sized, lazy-loaded, dimensions reserved&lt;/li&gt;
&lt;li&gt;Self-hosted fonts (no swap flash)&lt;/li&gt;
&lt;li&gt;Next.js server rendering where it counts (e.g. Grafik V2)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why fast = better ranking
&lt;/h2&gt;

&lt;p&gt;CWV is a ranking signal, and server-rendered HTML is what crawlers and AI engines read most reliably. Performance is SEO and AI visibility in one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verify it
&lt;/h2&gt;

&lt;p&gt;Run any of our &lt;a href="https://designtocodes.com/product-category/portfolio/" rel="noopener noreferrer"&gt;portfolio template&lt;/a&gt; demos through PageSpeed (mobile), check transferred size in dev tools, and compare to a page-builder template. The claims are checkable on purpose.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Test it:&lt;/strong&gt; run a &lt;a href="https://designtocodes.com/product-category/portfolio/" rel="noopener noreferrer"&gt;DesignToCodes portfolio template&lt;/a&gt; through Lighthouse and compare.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;What’s the slowest "premium" template you’ve ever opened in dev tools? 👇&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>performance</category>
      <category>nextjs</category>
      <category>showdev</category>
    </item>
    <item>
      <title>The Cleaning Business Website That Actually Books Jobs (7 Sections)</title>
      <dc:creator>DesignToCodes</dc:creator>
      <pubDate>Tue, 21 Jul 2026 07:46:02 +0000</pubDate>
      <link>https://dev.to/designtocodes/the-cleaning-business-website-that-actually-books-jobs-7-sections-1ldf</link>
      <guid>https://dev.to/designtocodes/the-cleaning-business-website-that-actually-books-jobs-7-sections-1ldf</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;A cleaning business website has one job: turn a local searcher into a booked job. Most bury the quote button under a slideshow. Here are the 7 sections that actually book work.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The visitor’s 4 questions
&lt;/h2&gt;

&lt;p&gt;Do you clean my type of place? Do you serve my area? Can I trust you? How do I book? Answer those fast and you win the job.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 7 sections
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Hero with a "Get a free quote" CTA (above the fold)&lt;/li&gt;
&lt;li&gt;Services, with "from $X" where possible&lt;/li&gt;
&lt;li&gt;Service areas (also helps local SEO)&lt;/li&gt;
&lt;li&gt;Trust signals — reviews, insurance, guarantee&lt;/li&gt;
&lt;li&gt;Before/after gallery (proof beats adjectives)&lt;/li&gt;
&lt;li&gt;"How it works" 3-step flow&lt;/li&gt;
&lt;li&gt;Short quote form + visible phone&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Don’t lose the lead in the form
&lt;/h2&gt;

&lt;p&gt;Ask for the minimum — name, contact, type of clean, area. Every extra field is a lost booking. Offer a phone option and confirm instantly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Local SEO is the multiplier
&lt;/h2&gt;

&lt;p&gt;Complete the Google Business Profile, "[service] in [city]" in titles, LocalBusiness + Review schema, steady reviews. A fast template + complete profile beats a prettier site that skips this.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Want a base built for this?&lt;/strong&gt; See the &lt;a href="https://designtocodes.com/product-category/cleaning-service/" rel="noopener noreferrer"&gt;DesignToCodes cleaning templates&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Service-business folks: what’s converted best — instant quote or callback? 👇&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>design</category>
      <category>startup</category>
      <category>beginners</category>
    </item>
    <item>
      <title>What a Gym Website Template Actually Needs (and How to Pick One)</title>
      <dc:creator>DesignToCodes</dc:creator>
      <pubDate>Fri, 17 Jul 2026 10:20:38 +0000</pubDate>
      <link>https://dev.to/designtocodes/what-a-gym-website-template-actually-needs-and-how-to-pick-one-45al</link>
      <guid>https://dev.to/designtocodes/what-a-gym-website-template-actually-needs-and-how-to-pick-one-45al</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Most gym websites bury the "Join" button under three scrolls of brand storytelling. If you’re picking a gym template, here’s what actually matters.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The template’s job: turn a local into a member
&lt;/h2&gt;

&lt;p&gt;Lead with the conversion. Hero = the offer + a join/trial button, above the fold. Then the class schedule (everyone checks it), then pricing (show it — hiding prices kills trust), then real photos and proof.&lt;/p&gt;

&lt;h2&gt;
  
  
  Must-have sections
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Hero with a join/trial CTA&lt;/li&gt;
&lt;li&gt;Scannable class schedule&lt;/li&gt;
&lt;li&gt;Clear membership pricing&lt;/li&gt;
&lt;li&gt;Real trainer/facility photos (not stock)&lt;/li&gt;
&lt;li&gt;Location, hours, map&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to pick
&lt;/h2&gt;

&lt;p&gt;Match it to your model — boutique studio (sleek one-pager), multi-location (schedules + location pages), PT (booking-first). Then check the demo: fast on mobile, schedule/pricing easy to edit, design doesn’t fight your brand.&lt;/p&gt;

&lt;h2&gt;
  
  
  Don’t skip local SEO
&lt;/h2&gt;

&lt;p&gt;Gym traffic is local and high-intent: complete your Google Business Profile, put your city in titles/headings, add LocalBusiness schema, keep NAP consistent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Best 3 gym website templates 2026
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://designtocodes.com/product/musclecare-onepage-fitness-framer-template/" rel="noopener noreferrer"&gt;MuscleCare – OnePage Fitness Framer Template&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe1khwqadgb5r59hebg5x.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe1khwqadgb5r59hebg5x.webp" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://designtocodes.com/product/gymkear-professional-framer-template-for-gym-websites/" rel="noopener noreferrer"&gt;Gymkear – Professional Framer Template for Gym Websites&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fixgmpbixyf51ep8p4vxr.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fixgmpbixyf51ep8p4vxr.webp" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://designtocodes.com/product/fitkingym-best-fitness-and-gym-framer-template/https://designtocodes.com/product/fitkingym-best-fitness-and-gym-framer-template/" rel="noopener noreferrer"&gt;FitKinGym – Best Fitness and Gym Framer Template&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1g1qv0j4d22osrq5eq7b.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1g1qv0j4d22osrq5eq7b.webp" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Want a fast base?&lt;/strong&gt; &lt;a href="https://designtocodes.com/product/gymkear-best-gym-next-js-website-template/" rel="noopener noreferrer"&gt;Gymkear&lt;/a&gt; is a Next.js gym template with these sections ready.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Gym owners/devs: what converts best for you — free trial or first-class-free? 👇&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>design</category>
      <category>beginners</category>
      <category>startup</category>
    </item>
    <item>
      <title>Is Next.js Actually Good for SEO? A Straight Answer</title>
      <dc:creator>DesignToCodes</dc:creator>
      <pubDate>Tue, 14 Jul 2026 12:23:52 +0000</pubDate>
      <link>https://dev.to/designtocodes/is-nextjs-actually-good-for-seo-a-straight-answer-18c9</link>
      <guid>https://dev.to/designtocodes/is-nextjs-actually-good-for-seo-a-straight-answer-18c9</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;"Is Next.js good for SEO?" Short answer: yes, genuinely — as long as you don’t undo it. Here’s the honest version with the caveat that actually matters.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why it’s strong
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Server-rendered HTML by default (App Router) — crawlers and AI engines read the full page.&lt;/li&gt;
&lt;li&gt;The Metadata API: per-route titles, descriptions, canonicals in code, no plugin.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;sitemap.ts&lt;/code&gt; / &lt;code&gt;robots.ts&lt;/code&gt; generate and stay in sync.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;next/image&lt;/code&gt; + &lt;code&gt;next/font&lt;/code&gt; + Server Components make Core Web Vitals the default path.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;metadata&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Free Business Templates&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Fast, SEO-ready templates.&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;alternates&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;canonical&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://example.com/templates&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The caveat (where devs shoot themselves in the foot)
&lt;/h2&gt;

&lt;p&gt;Mark everything &lt;code&gt;'use client'&lt;/code&gt; and you push content back into JS — crawlers see an empty shell. Skip &lt;code&gt;next/image&lt;/code&gt; and CWV tanks. Client-render a page that should be static, and the content is hidden. The framework helps; it doesn’t babysit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verdict
&lt;/h2&gt;

&lt;p&gt;Use server rendering + the Metadata API + the image/font tools, and Next.js is one of the best SEO frameworks going. Ignore them, and it’s React with extra steps.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Want an SEO-ready base?&lt;/strong&gt; Grab a &lt;a href="https://designtocodes.com/product-category/nextjs/" rel="noopener noreferrer"&gt;DesignToCodes Next.js template&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;What’s bitten you hardest — client components or a canonical mistake? 👇&lt;/em&gt;&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>seo</category>
      <category>react</category>
      <category>webdev</category>
    </item>
    <item>
      <title>The CTA Section Formula That Converts (Copy-Paste Code)</title>
      <dc:creator>DesignToCodes</dc:creator>
      <pubDate>Fri, 10 Jul 2026 06:41:36 +0000</pubDate>
      <link>https://dev.to/designtocodes/the-cta-section-formula-that-converts-copy-paste-code-3ikg</link>
      <guid>https://dev.to/designtocodes/the-cta-section-formula-that-converts-copy-paste-code-3ikg</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Your CTA isn’t underperforming because the button’s the wrong blue. It’s underperforming because you’re asking for three things at once. Here’s the copy-paste pattern that fixes it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  One ask, no competition
&lt;/h2&gt;

&lt;p&gt;The fastest conversion killer is two equally loud buttons. Pick the single most valuable action and make everything else quieter (at most, a text link). Focus converts; choice paralyses.&lt;/p&gt;

&lt;h2&gt;
  
  
  Copy-paste it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"cta"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Ready to launch faster?&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Templates that pass Core Web Vitals.&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"btn"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"/templates"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Browse templates&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.cta&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;640px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;72px&lt;/span&gt; &lt;span class="m"&gt;24px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nl"&gt;text-align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.btn&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;inline-block&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;#4a9eff&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;#fff&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;14px&lt;/span&gt; &lt;span class="m"&gt;30px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;8px&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Label the button like a promise
&lt;/h2&gt;

&lt;p&gt;"Submit" describes a mechanism. "Get my quote" / "Start building" describes the outcome. The button should finish the sentence "I want to…". It’s the most-read text in the section — don’t waste it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Repeat the same ask
&lt;/h2&gt;

&lt;p&gt;Hero CTA, then again after your proof, then at the foot — same wording every time. One decision repeated beats five different ones.&lt;/p&gt;

&lt;h2&gt;
  
  
  Explore the best CTA section designs you should use in your projects
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://designtocodes.com/product/14-best-website-call-to-action/" rel="noopener noreferrer"&gt;14+ Best Website Call To Action | Bootstrap UI Kits&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://designtocodes.com/product/10-free-website-call-to-action/" rel="noopener noreferrer"&gt;10+ Free Website Call To Action | Bootstrap UI Kits&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://designtocodes.com/product/10-call-to-action-bootstrap-bundle-2022/" rel="noopener noreferrer"&gt;10+ Call To Action Web UI Kits | Bootstrap Bundle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://designtocodes.com/product/5-free-website-call-to-action/" rel="noopener noreferrer"&gt;5+ Free Website Call To Action | Bootstrap UI Kits&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Want tested CTA blocks?&lt;/strong&gt; Grab the free &lt;a href="https://designtocodes.com/kit-library/" rel="noopener noreferrer"&gt;DesignToCodes CTA sections&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;What’s your highest-converting button label? Mine’s boringly literal 👇&lt;/em&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>html</category>
      <category>webdev</category>
      <category>design</category>
    </item>
  </channel>
</rss>
