How I Built a Peptide Dosage Calculator with Next.js — and Why SSR Matters More Than You Think

A researcher spends 30 seconds doing peptide math before every injection. I built a tool that does it instantly. Here’s the surprising thing I learned: for a calculator tool, SSR isn’t about performance — it’s about whether Google even knows your calculator exists.

The Problem I Was Solving

If you’re not familiar with peptide research: researchers reconstitute lyophilized (freeze-dried) peptides by adding bacteriostatic water, then draw specific doses into insulin syringes. The math isn’t hard — it’s just annoying:

  • “I have a 10mg vial, added 2ml of water, I need 250mcg per dose — how many units on a 0.3ml syringe?”
  • “I’m running BPC-157 and TB-500 together, different vials, different doses — what are my draw volumes?”

Most researchers use Excel or a notepad. Some use existing peptide calculators, but they’re often buried in affiliate-heavy blogs or wrapped in ads. I wanted something clean, fast, and free — so I built bpc157calculator.com.

Why I Didn’t Build a SPA

This is the core architectural decision, and it might be counterintuitive.

A calculator tool looks like the perfect SPA candidate: a few inputs, some math, update the DOM. React state, useEffect, ship it. I explicitly chose not to do that.

Here’s why:

The SSR realization

When someone searches “BPC-157 dosage calculator,” Google doesn’t execute JavaScript before ranking the page. A CSR calculator sends Google an empty

and a JS bundle. The actual calculator UI — the inputs, the labels, the headings that tell Google “this page calculates peptide dosages” — all of that is invisible to the crawler until JavaScript executes.

Google does render JavaScript now, but:

  1. It adds delay — sometimes hours or days
  2. It’s a second pass, not the primary crawl
  3. The rendering budget is limited — if your JS bundle is heavy, Google might not fully render it at all

With Next.js SSR, every page delivers fully rendered HTML on first request. The

, the calculator labels, the semantic structure — all present in the raw HTML. Google doesn’t need to run your JavaScript to understand your page.

What this means for a calculator tool specifically

A blog post about peptides can get away with CSR because the article text is in the HTML. But a calculator? The entire value proposition is the interactive widget. If Google can’t see it, Google doesn’t know what to rank you for.

SSR is not a performance optimization here. It’s a content delivery mechanism. The calculator is your content, and SSR delivers it to crawlers the same way it delivers it to users.

The Stack

Layer Choice Why
Framework Next.js 14 (App Router) SSR by default, no config needed
Hosting Cloudflare Pages Edge deployment, free tier, instant cache invalidation
CSS Tailwind CSS Utility-first, tiny bundle
State URL search params Calculator state lives in the URL — shareable, bookmarkable
Analytics GA4 + GSC Standard. Nothing fancy needed at this stage

No database. No auth. No API routes. The entire site is static pages + client-side math. The SSR handles the initial HTML; the calculation logic runs in the browser after hydration. Best of both worlds.

Architecture: One Domain, Three Search Intents

The site has threecore pages, each targeting a different search intent:

Semaglutide and other peptides (15+ total) are handled on the homepage via a dropdown selector — no separate routes. This was a deliberate choice: I wanted separate pages only when the search intent was fundamentally different. “Dosage,” “reconstitution,” and “blend dosing” are three distinct intents. “Semaglutide dosage” vs “BPC-157 dosage” is the same intent with a different parameter — that’s what a dropdown is for.

Why separate pages instead of one SPA with tabs?

Because Google ranks pages, not apps.

A single-page app with tabs for “Dosage,” “Reconstitution,” and “Blend” means one URL competing for three very different search intents. Your </code> can only be one thing. Your <code></p> <h1></code> can only be one thing. Google will rank you for <strong>one</strong> of those intents and ignore the others.</p> <p>Separate pages let each route have:</p> <ul> <li>Its own <code><title></code> matching the exact search query</li> <li>Its own <code><br /> <h1></code> reinforcing the topic</li> <li>Its own meta description</li> <li>Internal links between them passing relevance signals both ways</li> </ul> <h3 id="internal-linking-structure"> <p> Internal linking structure<br /> </h3> <p><a href="https://bpc157calculator.com/" rel="noopener noreferrer">Homepage</a><br /> ├── Links to <a href="https://bpc157calculator.com/reconstitution" rel="noopener noreferrer">Reconstitution Calculator</a><br /> │ (“Need to reconstitute first? Use our reconstitution calculator”)<br /> ├── Links to <a href="https://bpc157calculator.com/blend" rel="noopener noreferrer">Blend Calculator</a><br /> │ (“Running a stack? Try the blend calculator”)</p> <p><a href="https://bpc157calculator.com/reconstitution" rel="noopener noreferrer">bpc157calculator.com/reconstitution</a><br /> ├── Links back to <a href="https://bpc157calculator.com/" rel="noopener noreferrer">Homepage</a><br /> │ (“Calculated your volume? Now calculate your dose”)<br /> └── Links to <a href="https://bpc157calculator.com/blend" rel="noopener noreferrer">Blend Calculator</a></p> <p><a href="https://bpc157calculator.com/blend" rel="noopener noreferrer">bpc157calculator.com/blend</a><br /> ├── Links back to <a href="https://bpc157calculator.com/" rel="noopener noreferrer">Homepage</a><br /> └── Links to <a href="https://bpc157calculator.com/reconstitution" rel="noopener noreferrer">Reconstitution Calculator</a></p> <p>Every page links to at least two others, forming a tight cluster. Google sees this as a coherent topical group, not isolated pages.</p> <h2 id="the-seo-decisions-that-actually-mattered"> <p> The SEO Decisions That Actually Mattered<br /> </h2> <h3 id="1-semantic-html-over-soup"> <p> 1. Semantic HTML over <code></p> <div></code> soup<br /> </h3> <p>Every calculator page uses <code></p> <section></code>, <code></p> <fieldset></code>, <code></p> <legend></code>, <code><label></code> — not just for accessibility, but because these elements tell Google about the structure of your page. A <code></p> <fieldset></code> with a <code></p> <legend></code> that says “Peptide Dosage Calculator” is a much stronger signal than a <code></p> <div class="calculator-wrapper"></code>.</p> <h3 id="2-title-tags-that-mirror-search-queries"> <p> 2. Title tags that mirror search queries<br /> </h3> <p>I didn’t get clever with branding. The homepage title is exactly what people search:<br /> BPC-157 Dosage Calculator — Free Peptide Reconstitution Tool</p> <p>Not “BPC157Calculator — The Best Peptide Tool for Researchers.” Nobody searches that.</p> <h3 id="3-url-search-params-for-shareable-state"> <p> 3. URL search params for shareable state<br /> </h3> <p>Calculator state (peptide selected, vial size, water volume, dose) lives in URL search params. This means:</p> <ul> <li>Users can share exact calculations via URL</li> <li>Every state variant is technically a unique URL (though I canonicalize to the base route)</li> <li>Someone sharing <code>bpc157calculator.com?peptide=tb500&vial=5mg</code> on a forum is creating a de facto backlink with context</li> </ul> <h3 id="4-what-i-didnt-obsess-over"> <p> 4. What I <em>didn’t</em> obsess over<br /> </h3> <ul> <li> <strong>Core Web Vitals at launch:</strong> Yes, performance matters. But a 95 vs 98 Lighthouse score won’t make or break a new site. Ship first, optimize later.</li> <li> <strong>Schema markup for calculators:</strong> I added basic <code>WebApplication</code> schema, but it’s unclear how much Google actually uses calculator-specific schema. Not worth spending days on.</li> <li> <strong>Blog/content section:</strong> I deliberately didn’t add one. A calculator tool doesn’t need a blog to rank for calculator keywords. Adding thin content pages right now would dilute topical focus. I’ll add educational content later, once the core pages are ranking.</li> </ul> <h2 id="results-so-far-honest-version"> <p> Results So Far (Honest Version)<br /> </h2> <p>The site has been live for a few days. Here’s the unvarnished data from Google Search Console:</p> <ul> <li> <strong>8 pages indexed</strong> — which is expected. Next.js SSR + a clean sitemap.xml + no JS required for content = Google indexes you fast. This is not impressive; it’s just what happens when you don’t make Google work hard.</li> <li> <strong>~15-20 impressions/day across ~10 query variations</strong> — all variations of “bpc-157 dosage calculator,” “peptide reconstitution calculator,” etc. Positions ranging from 40-90 (pages 5-9). Zero clicks, which at those positions is mathematically expected.</li> <li> <strong>Queries are dead-on relevant</strong> — Google is showing my pages for <em>exactly</em> the terms I targeted. No random “dog food” queries. The intent matching is working.</li> </ul> <p>The honest takeaway: <strong>Getting indexed fast is easy if you use SSR. Getting ranked is the hard part, and it takes time and backlinks.</strong> I’m in the “Google is testing my pages at position 60-80” phase right now. Here’s what I’m doing to move up:</p> <ol> <li> <strong>Building backlink signals</strong> — submitting to developer directories (Dev.to, Alternatives.to), sharing on Twitter/LinkedIn, engaging in peptide research communities</li> <li> <strong>Not touching the pages</strong> — every title/content change resets Google’s evaluation. I’m keeping everything frozen for at least 2-3 weeks</li> <li> <strong>Monitoring, not obsessing</strong> — checking GSC every 3 days, not every 3 hours</li> </ol> <h2 id="what-id-do-differently"> <p> What I’d Do Differently<br /> </h2> <ol> <li> <p><strong>Pre-launch backlink groundwork.</strong> I shipped the site, <em>then</em> started thinking about backlinks. If I’d spent the week before launch preparing guest posts, directory submissions, and community introductions, the backlink signals would have arrived in Google’s first crawl, not days later.</p> </li> <li> <p><strong>More unique copy on calculator pages.</strong> The <code>/reconstitution</code>, <code>/blend</code>, and <code>/semaglutide</code> pages share some boilerplate. Google might see them as thin or partially duplicate. Each page should have 200-300 words of unique introductory text explaining the specific use case.</p> </li> <li> <p><strong>Consider an EMD alternative.</strong> BPC157Calculator.com is an exact-match domain for the BPC-157 niche, but it might limit how Google treats my Semaglutide and other peptide pages. A broader name like “PeptideCalc” or “ResearchCalc” would have been more flexible. Tradeoff: EMD gives a ranking boost for the exact phrase; broader name gives room to expand.</p> </li> <li> <p><strong>GA4 setup before launch.</strong> I set up GA4 after the site was already live, missing the first few hours of data. Not critical, but annoying.</p> </li> </ol> <h2 id="key-takeaways-for-other-indie-builders"> <p> Key Takeaways for Other Indie Builders<br /> </h2> <ol> <li> <p><strong>SSR is not just for blogs and e-commerce.</strong> Calculator tools, generators, converters — anything where the UI <em>is</em> the content — benefit enormously from server-rendered HTML.</p> </li> <li> <p><strong>Separate pages for separate intents.</strong> One SPA = one ranking opportunity. Multiple SSR pages = multiple ranking opportunities. The overhead of maintaining a few extra route files is trivial compared to the SEO upside.</p> </li> <li> <p><strong>Ship, then wait.</strong> The hardest part after launching a new site is resisting the urge to tweak everything based on 48 hours of GSC data. Google needs weeks, not days, to evaluate a new domain.</p> </li> <li> <p><strong>The boring stuff works.</strong> Semantic HTML, matching title tags to search queries, clean internal linking — none of it is exciting, but collectively it’s what moves the needle more than any “SEO hack.”</p> </li> </ol> <p><em>You can try the calculator at <a href="https://bpc157calculator.com/" rel="noopener noreferrer">bpc157calculator.com</a>. If you’re working on something similar or have feedback on the architecture, I’d love to hear it in the comments.</em></p> </div> <div class="cs-entry__tags"><ul><li><a href="https://prodsens.live/tag/nextjs/" rel="tag">nextjs</a></li><li><a href="https://prodsens.live/tag/prodsens-live/" rel="tag">prodsens live</a></li><li><a href="https://prodsens.live/tag/showdev/" rel="tag">showdev</a></li><li><a href="https://prodsens.live/tag/software/" rel="tag">Software</a></li><li><a href="https://prodsens.live/tag/tutorial/" rel="tag">tutorial</a></li><li><a href="https://prodsens.live/tag/webdev/" rel="tag">webdev</a></li></ul></div> <div class="cs-entry__after-share-buttons"> <div class="pk-share-buttons-wrap pk-share-buttons-layout-simple pk-share-buttons-scheme-simple-light pk-share-buttons-has-counts pk-share-buttons-has-total-counts pk-share-buttons-after-post pk-share-buttons-mode-php pk-share-buttons-mode-rest" data-post-id="51919" data-share-url="https://prodsens.live/2026/07/26/how-i-built-a-peptide-dosage-calculator-with-next-js-and-why-ssr-matters-more-than-you-think/" > <div class="pk-share-buttons-total pk-share-buttons-total-no-count"> <div class="pk-share-buttons-title pk-font-primary">Total</div> <div class="pk-share-buttons-count pk-font-heading">0</div> <div class="pk-share-buttons-label pk-font-secondary">Shares</div> </div> <div class="pk-share-buttons-items"> <div class="pk-share-buttons-item pk-share-buttons-facebook pk-share-buttons-no-count" data-id="facebook"> <a href="https://www.facebook.com/sharer.php?u=https://prodsens.live/2026/07/26/how-i-built-a-peptide-dosage-calculator-with-next-js-and-why-ssr-matters-more-than-you-think/" class="pk-share-buttons-link" target="_blank"> <i class="pk-share-buttons-icon pk-icon pk-icon-facebook"></i> <span class="pk-share-buttons-label pk-font-primary">Share</span> <span class="pk-share-buttons-count pk-font-secondary">0</span> </a> </div> <div class="pk-share-buttons-item pk-share-buttons-twitter pk-share-buttons-no-count" data-id="twitter"> <a href="https://twitter.com/share?&text=How%20I%20Built%20a%20Peptide%20Dosage%20Calculator%20with%20Next.js%20%E2%80%94%20and%20Why%20SSR%20Matters%20More%20Than%20You%20Think&via=prodsens_pro&url=https://prodsens.live/2026/07/26/how-i-built-a-peptide-dosage-calculator-with-next-js-and-why-ssr-matters-more-than-you-think/" class="pk-share-buttons-link" target="_blank"> <i class="pk-share-buttons-icon pk-icon pk-icon-twitter"></i> <span class="pk-share-buttons-label pk-font-primary">Tweet</span> <span class="pk-share-buttons-count pk-font-secondary">0</span> </a> </div> <div class="pk-share-buttons-item pk-share-buttons-pinterest pk-share-buttons-no-count" data-id="pinterest"> <a href="https://pinterest.com/pin/create/bookmarklet/?url=https://prodsens.live/2026/07/26/how-i-built-a-peptide-dosage-calculator-with-next-js-and-why-ssr-matters-more-than-you-think/" class="pk-share-buttons-link" target="_blank"> <i class="pk-share-buttons-icon pk-icon pk-icon-pinterest"></i> <span class="pk-share-buttons-label pk-font-primary">Pin it</span> <span class="pk-share-buttons-count pk-font-secondary">0</span> </a> </div> </div> </div> </div> <div class="cs-entry__comments cs-entry__comments-collapse" id="comments-hidden"> <div id="respond" class="comment-respond"> <h5 class="cs-section-heading cnvs-block-section-heading is-style-cnvs-block-section-heading-default halignleft "><span class="cnvs-section-title"><span>Leave a Reply <small><a rel="nofollow" id="cancel-comment-reply-link" href="/2026/07/26/how-i-built-a-peptide-dosage-calculator-with-next-js-and-why-ssr-matters-more-than-you-think/#respond" style="display:none;">Cancel reply</a></small></span></span></h5><form action="https://prodsens.live/wp-comments-post.php" method="post" id="commentform" class="comment-form"><p class="comment-notes"><span id="email-notes">Your email address will not be published.</span> <span class="required-field-message">Required fields are marked <span class="required">*</span></span></p><p class="comment-form-comment"><label for="comment">Comment <span class="required">*</span></label> <textarea autocomplete="new-password" id="i402533545" name="i402533545" cols="45" rows="8" maxlength="65525" required></textarea><textarea id="comment" aria-label="hp-comment" aria-hidden="true" name="comment" autocomplete="new-password" style="padding:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;position:absolute !important;white-space:nowrap !important;height:1px !important;width:1px !important;overflow:hidden !important;" tabindex="-1"></textarea><script data-noptimize>document.getElementById("comment").setAttribute( "id", "a8b6881e0434bff3b7b0c7625e16382c" );document.getElementById("i402533545").setAttribute( "id", "comment" );</script></p><p class="comment-form-author"><label for="author">Name <span class="required">*</span></label> <input id="author" name="author" type="text" value="" size="30" maxlength="245" autocomplete="name" required /></p> <p class="comment-form-email"><label for="email">Email <span class="required">*</span></label> <input id="email" name="email" type="email" value="" size="30" maxlength="100" aria-describedby="email-notes" autocomplete="email" required /></p> <p class="comment-form-url"><label for="url">Website</label> <input id="url" name="url" type="url" value="" size="30" maxlength="200" autocomplete="url" /></p> <p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes" /> <label for="wp-comment-cookies-consent">Save my name, email, and website in this browser for the next time I comment.</label></p> <p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Post Comment" /> <input type='hidden' name='comment_post_ID' value='51919' id='comment_post_ID' /> <input type='hidden' name='comment_parent' id='comment_parent' value='0' /> </p></form> </div><!-- #respond --> </div> <div class="cs-entry__comments-show" id="comments"> <button>View Comments (0)</button> </div> <div class="cs-entry__prev-next"> <div class="cs-entry__prev-next-item cs-entry__prev"> <a class="cs-entry__prev-next-link" href="https://prodsens.live/2026/07/26/monday-com-is-the-latest-tech-company-to-blame-ai-for-layoffs-here-are-20-others/"></a> <div class="cs-entry__prev-next-label"> <h5 class="cs-section-heading cnvs-block-section-heading is-style-cnvs-block-section-heading-default halignleft "><span class="cnvs-section-title"><span><span class="cs-section-subheadings">Previous Post</span></span></span></h5> </div> <div class="cs-entry"> <div class="cs-entry__outer"> <div class="cs-entry__inner cs-entry__content"> <div class="cs-entry__post-meta" ><div class="cs-meta-category"><ul class="post-categories"> <li><a href="https://prodsens.live/category/artificial-intelligence/" rel="category tag">AI - Artificial-Intelligence</a></li></ul></div></div> <h2 class="cs-entry__title"><a href="https://prodsens.live/2026/07/26/monday-com-is-the-latest-tech-company-to-blame-ai-for-layoffs-here-are-20-others/">Monday.com is the latest tech company to blame AI for layoffs — here are 20 others</a></h2> <div class="cs-entry__post-meta" ><div class="cs-meta-date">July 26, 2026</div></div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <aside id="secondary" class="cs-widget-area cs-sidebar__area"> <div class="cs-sidebar__inner"> <div class="widget block-2 widget_block widget_search"><form role="search" method="get" action="https://prodsens.live/" class="wp-block-search__button-outside wp-block-search__text-button wp-block-search" ><label class="wp-block-search__label" for="wp-block-search__input-1" >Search</label><div class="wp-block-search__inside-wrapper " ><input class="wp-block-search__input" id="wp-block-search__input-1" placeholder="Type your text" value="" type="search" name="s" required /><button aria-label="search" class="wp-block-search__button wp-element-button" type="submit" >search</button></div></form></div><div class="widget block-3 widget_block"> <div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow"> <h2 class="wp-block-heading">Recent Posts</h2> <ul class="wp-block-latest-posts__list wp-block-latest-posts"><li><a class="wp-block-latest-posts__post-title" href="https://prodsens.live/2026/07/26/how-i-built-a-peptide-dosage-calculator-with-next-js-and-why-ssr-matters-more-than-you-think/">How I Built a Peptide Dosage Calculator with Next.js — and Why SSR Matters More Than You Think</a></li> <li><a class="wp-block-latest-posts__post-title" href="https://prodsens.live/2026/07/26/monday-com-is-the-latest-tech-company-to-blame-ai-for-layoffs-here-are-20-others/">Monday.com is the latest tech company to blame AI for layoffs — here are 20 others</a></li> <li><a class="wp-block-latest-posts__post-title" href="https://prodsens.live/2026/07/26/why-i-keep-shipping-small-tools-instead-of-one-big-product/">Why I Keep Shipping Small Tools Instead of One Big Product</a></li> <li><a class="wp-block-latest-posts__post-title" href="https://prodsens.live/2026/07/25/i-let-an-agent-take-over-an-account-with-every-permission-check-green/">I Let an Agent Take Over an Account With Every Permission Check Green</a></li> <li><a class="wp-block-latest-posts__post-title" href="https://prodsens.live/2026/07/25/we-built-a-signal-protocol-messenger-then-we-checked-if-it-was-legal-in-5-jurisdictions/">We Built a Signal Protocol Messenger. Then We Checked If It Was Legal in 5 Jurisdictions.</a></li> </ul></div></div> </div><div class="widget block-4 widget_block"> <div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow"> <h2 class="wp-block-heading">Recent Comments</h2> <ol class="wp-block-latest-comments"><li class="wp-block-latest-comments__comment"><article><footer class="wp-block-latest-comments__comment-meta"><a class="wp-block-latest-comments__comment-author" href="https://www.villagetalkies.com">Village Talkies</a> on <a class="wp-block-latest-comments__comment-link" href="https://prodsens.live/2023/10/18/what-will-influencer-marketing-look-like-in-2024/#comment-19050">What Will Influencer Marketing Look Like in 2024?</a></footer></article></li><li class="wp-block-latest-comments__comment"><article><footer class="wp-block-latest-comments__comment-meta"><a class="wp-block-latest-comments__comment-author" href="https://www.villagetalkies.com">Village Talkies</a> on <a class="wp-block-latest-comments__comment-link" href="https://prodsens.live/2024/08/01/ai-media-planning-6-expert-tactics-you-cant-ignore/#comment-18570">AI Media Planning: 6 Expert Tactics You Can’t Ignore</a></footer></article></li><li class="wp-block-latest-comments__comment"><article><footer class="wp-block-latest-comments__comment-meta"><a class="wp-block-latest-comments__comment-author" href="https://www.villagetalkies.com">Village Talkies</a> on <a class="wp-block-latest-comments__comment-link" href="https://prodsens.live/2023/11/03/online-advertising-all-you-need-to-know-in-2023/#comment-18459">Online Advertising: All You Need to Know in 2023</a></footer></article></li><li class="wp-block-latest-comments__comment"><article><footer class="wp-block-latest-comments__comment-meta"><a class="wp-block-latest-comments__comment-author" href="https://www.villagetalkies.com">Village Talkies</a> on <a class="wp-block-latest-comments__comment-link" href="https://prodsens.live/2025/03/11/how-marketers-can-use-retail-media-networks-to-get-in-front-of-customers-expert-tips/#comment-14690">How Marketers Can Use Retail Media Networks to Get In Front of Customers [Expert Tips]</a></footer></article></li><li class="wp-block-latest-comments__comment"><article><footer class="wp-block-latest-comments__comment-meta"><a class="wp-block-latest-comments__comment-author" href="https://www.villagetalkies.com">Village Talkies</a> on <a class="wp-block-latest-comments__comment-link" href="https://prodsens.live/2023/12/13/2024-creator-economy-predictions/#comment-12243">2024 Creator Economy Predictions</a></footer></article></li></ol></div></div> </div><div class="widget block-12 widget_block"> <h2 class="wp-block-heading">Tags</h2> </div><div class="widget block-8 widget_block widget_tag_cloud"><p class="wp-block-tag-cloud"><a href="https://prodsens.live/tag/ai/" class="tag-cloud-link tag-link-419 tag-link-position-1" style="font-size: 14.812834224599pt;" aria-label="ai (1,732 items)">ai</a> <a href="https://prodsens.live/tag/api/" class="tag-cloud-link tag-link-297 tag-link-position-2" style="font-size: 8.524064171123pt;" aria-label="api (250 items)">api</a> <a href="https://prodsens.live/tag/architecture/" class="tag-cloud-link tag-link-406 tag-link-position-3" style="font-size: 8pt;" aria-label="architecture (211 items)">architecture</a> <a href="https://prodsens.live/tag/articles/" class="tag-cloud-link tag-link-1061 tag-link-position-4" style="font-size: 11.069518716578pt;" aria-label="Articles (547 items)">Articles</a> <a href="https://prodsens.live/tag/artificial-intelligence/" class="tag-cloud-link tag-link-775 tag-link-position-5" style="font-size: 9.1978609625668pt;" aria-label="Artificial Intelligence (305 items)">Artificial Intelligence</a> <a href="https://prodsens.live/tag/aws/" class="tag-cloud-link tag-link-229 tag-link-position-6" style="font-size: 10.021390374332pt;" aria-label="aws (396 items)">aws</a> <a href="https://prodsens.live/tag/beginners/" class="tag-cloud-link tag-link-184 tag-link-position-7" style="font-size: 14.887700534759pt;" aria-label="beginners (1,763 items)">beginners</a> <a href="https://prodsens.live/tag/career/" class="tag-cloud-link tag-link-190 tag-link-position-8" style="font-size: 9.7219251336898pt;" aria-label="career (364 items)">career</a> <a href="https://prodsens.live/tag/cloud/" class="tag-cloud-link tag-link-308 tag-link-position-9" style="font-size: 8.5989304812834pt;" aria-label="cloud (258 items)">cloud</a> <a href="https://prodsens.live/tag/company-news/" class="tag-cloud-link tag-link-573 tag-link-position-10" style="font-size: 8.6737967914439pt;" aria-label="Company News (263 items)">Company News</a> <a href="https://prodsens.live/tag/content-marketing/" class="tag-cloud-link tag-link-267 tag-link-position-11" style="font-size: 10.021390374332pt;" aria-label="Content Marketing (400 items)">Content Marketing</a> <a href="https://prodsens.live/tag/css/" class="tag-cloud-link tag-link-171 tag-link-position-12" style="font-size: 8.8235294117647pt;" aria-label="css (276 items)">css</a> <a href="https://prodsens.live/tag/database/" class="tag-cloud-link tag-link-415 tag-link-position-13" style="font-size: 8.524064171123pt;" aria-label="database (250 items)">database</a> <a href="https://prodsens.live/tag/devops/" class="tag-cloud-link tag-link-195 tag-link-position-14" style="font-size: 11.294117647059pt;" aria-label="devops (592 items)">devops</a> <a href="https://prodsens.live/tag/discuss/" class="tag-cloud-link tag-link-163 tag-link-position-15" style="font-size: 10.620320855615pt;" aria-label="discuss (481 items)">discuss</a> <a href="https://prodsens.live/tag/expertise/" class="tag-cloud-link tag-link-1350 tag-link-position-16" style="font-size: 8.0748663101604pt;" aria-label="Expertise (218 items)">Expertise</a> <a href="https://prodsens.live/tag/frontend/" class="tag-cloud-link tag-link-338 tag-link-position-17" style="font-size: 8.1497326203209pt;" aria-label="frontend (225 items)">frontend</a> <a href="https://prodsens.live/tag/guest-post/" class="tag-cloud-link tag-link-2939 tag-link-position-18" style="font-size: 8.2245989304813pt;" aria-label="Guest Post (229 items)">Guest Post</a> <a href="https://prodsens.live/tag/java/" class="tag-cloud-link tag-link-283 tag-link-position-19" style="font-size: 8.2994652406417pt;" aria-label="java (234 items)">java</a> <a href="https://prodsens.live/tag/javascript/" class="tag-cloud-link tag-link-160 tag-link-position-20" style="font-size: 14.887700534759pt;" aria-label="javascript (1,759 items)">javascript</a> <a href="https://prodsens.live/tag/learning/" class="tag-cloud-link tag-link-221 tag-link-position-21" style="font-size: 9.1978609625668pt;" aria-label="learning (305 items)">learning</a> <a href="https://prodsens.live/tag/machinelearning/" class="tag-cloud-link tag-link-386 tag-link-position-22" style="font-size: 8.8235294117647pt;" aria-label="machinelearning (275 items)">machinelearning</a> <a href="https://prodsens.live/tag/marketing/" class="tag-cloud-link tag-link-81 tag-link-position-23" style="font-size: 15.561497326203pt;" aria-label="Marketing (2,212 items)">Marketing</a> <a href="https://prodsens.live/tag/node/" class="tag-cloud-link tag-link-238 tag-link-position-24" style="font-size: 8.6737967914439pt;" aria-label="node (262 items)">node</a> <a href="https://prodsens.live/tag/opensource/" class="tag-cloud-link tag-link-161 tag-link-position-25" style="font-size: 11.818181818182pt;" aria-label="opensource (687 items)">opensource</a> <a href="https://prodsens.live/tag/planing/" class="tag-cloud-link tag-link-2955 tag-link-position-26" style="font-size: 9.048128342246pt;" aria-label="planing (291 items)">planing</a> <a href="https://prodsens.live/tag/planning/" class="tag-cloud-link tag-link-130 tag-link-position-27" style="font-size: 8.3743315508021pt;" aria-label="Planning (237 items)">Planning</a> <a href="https://prodsens.live/tag/podcast/" class="tag-cloud-link tag-link-104 tag-link-position-28" style="font-size: 8.1497326203209pt;" aria-label="podcast (224 items)">podcast</a> <a href="https://prodsens.live/tag/podcasts/" class="tag-cloud-link tag-link-1063 tag-link-position-29" style="font-size: 9.4973262032086pt;" aria-label="Podcasts (335 items)">Podcasts</a> <a href="https://prodsens.live/tag/prodsens-live/" class="tag-cloud-link tag-link-2926 tag-link-position-30" style="font-size: 22pt;" aria-label="prodsens live (15,713 items)">prodsens live</a> <a href="https://prodsens.live/tag/productivity/" class="tag-cloud-link tag-link-157 tag-link-position-31" style="font-size: 12.342245989305pt;" aria-label="Productivity (805 items)">Productivity</a> <a href="https://prodsens.live/tag/product-management/" class="tag-cloud-link tag-link-79 tag-link-position-32" style="font-size: 15.262032085561pt;" aria-label="Product Management (1,993 items)">Product Management</a> <a href="https://prodsens.live/tag/product-managment/" class="tag-cloud-link tag-link-2930 tag-link-position-33" style="font-size: 11.668449197861pt;" aria-label="product managment (655 items)">product managment</a> <a href="https://prodsens.live/tag/programming/" class="tag-cloud-link tag-link-162 tag-link-position-34" style="font-size: 15.561497326203pt;" aria-label="programming (2,205 items)">programming</a> <a href="https://prodsens.live/tag/project-management/" class="tag-cloud-link tag-link-132 tag-link-position-35" style="font-size: 9.8716577540107pt;" aria-label="Project Management (380 items)">Project Management</a> <a href="https://prodsens.live/tag/projectmanager-blog/" class="tag-cloud-link tag-link-131 tag-link-position-36" style="font-size: 9.6470588235294pt;" aria-label="ProjectManager Blog (354 items)">ProjectManager Blog</a> <a href="https://prodsens.live/tag/python/" class="tag-cloud-link tag-link-259 tag-link-position-37" style="font-size: 11.44385026738pt;" aria-label="python (610 items)">python</a> <a href="https://prodsens.live/tag/quality-management/" class="tag-cloud-link tag-link-1110 tag-link-position-38" style="font-size: 15.935828877005pt;" aria-label="Quality Management (2,450 items)">Quality Management</a> <a href="https://prodsens.live/tag/react/" class="tag-cloud-link tag-link-158 tag-link-position-39" style="font-size: 11.593582887701pt;" aria-label="react (649 items)">react</a> <a href="https://prodsens.live/tag/security/" class="tag-cloud-link tag-link-271 tag-link-position-40" style="font-size: 9.2727272727273pt;" aria-label="security (312 items)">security</a> <a href="https://prodsens.live/tag/software/" class="tag-cloud-link tag-link-151 tag-link-position-41" style="font-size: 19.903743315508pt;" aria-label="Software (8,357 items)">Software</a> <a href="https://prodsens.live/tag/tutorial/" class="tag-cloud-link tag-link-168 tag-link-position-42" style="font-size: 13.540106951872pt;" aria-label="tutorial (1,166 items)">tutorial</a> <a href="https://prodsens.live/tag/typescript/" class="tag-cloud-link tag-link-239 tag-link-position-43" style="font-size: 9.4973262032086pt;" aria-label="typescript (340 items)">typescript</a> <a href="https://prodsens.live/tag/uncategorized/" class="tag-cloud-link tag-link-1029 tag-link-position-44" style="font-size: 8.8235294117647pt;" aria-label="Uncategorized (275 items)">Uncategorized</a> <a href="https://prodsens.live/tag/webdev/" class="tag-cloud-link tag-link-172 tag-link-position-45" style="font-size: 16.534759358289pt;" aria-label="webdev (2,917 items)">webdev</a></p></div><div class="widget block-14 widget_block widget_calendar"><div class="wp-block-calendar"><table id="wp-calendar" class="wp-calendar-table"> <caption>July 2026</caption> <thead> <tr> <th scope="col" aria-label="Monday">M</th> <th scope="col" aria-label="Tuesday">T</th> <th scope="col" aria-label="Wednesday">W</th> <th scope="col" aria-label="Thursday">T</th> <th scope="col" aria-label="Friday">F</th> <th scope="col" aria-label="Saturday">S</th> <th scope="col" aria-label="Sunday">S</th> </tr> </thead> <tbody> <tr> <td colspan="2" class="pad"> </td><td><a href="https://prodsens.live/2026/07/01/" aria-label="Posts published on July 1, 2026">1</a></td><td><a href="https://prodsens.live/2026/07/02/" aria-label="Posts published on July 2, 2026">2</a></td><td><a href="https://prodsens.live/2026/07/03/" aria-label="Posts published on July 3, 2026">3</a></td><td><a href="https://prodsens.live/2026/07/04/" aria-label="Posts published on July 4, 2026">4</a></td><td><a href="https://prodsens.live/2026/07/05/" aria-label="Posts published on July 5, 2026">5</a></td> </tr> <tr> <td><a href="https://prodsens.live/2026/07/06/" aria-label="Posts published on July 6, 2026">6</a></td><td><a href="https://prodsens.live/2026/07/07/" aria-label="Posts published on July 7, 2026">7</a></td><td><a href="https://prodsens.live/2026/07/08/" aria-label="Posts published on July 8, 2026">8</a></td><td><a href="https://prodsens.live/2026/07/09/" aria-label="Posts published on July 9, 2026">9</a></td><td><a href="https://prodsens.live/2026/07/10/" aria-label="Posts published on July 10, 2026">10</a></td><td><a href="https://prodsens.live/2026/07/11/" aria-label="Posts published on July 11, 2026">11</a></td><td><a href="https://prodsens.live/2026/07/12/" aria-label="Posts published on July 12, 2026">12</a></td> </tr> <tr> <td><a href="https://prodsens.live/2026/07/13/" aria-label="Posts published on July 13, 2026">13</a></td><td><a href="https://prodsens.live/2026/07/14/" aria-label="Posts published on July 14, 2026">14</a></td><td><a href="https://prodsens.live/2026/07/15/" aria-label="Posts published on July 15, 2026">15</a></td><td><a href="https://prodsens.live/2026/07/16/" aria-label="Posts published on July 16, 2026">16</a></td><td><a href="https://prodsens.live/2026/07/17/" aria-label="Posts published on July 17, 2026">17</a></td><td><a href="https://prodsens.live/2026/07/18/" aria-label="Posts published on July 18, 2026">18</a></td><td><a href="https://prodsens.live/2026/07/19/" aria-label="Posts published on July 19, 2026">19</a></td> </tr> <tr> <td><a href="https://prodsens.live/2026/07/20/" aria-label="Posts published on July 20, 2026">20</a></td><td><a href="https://prodsens.live/2026/07/21/" aria-label="Posts published on July 21, 2026">21</a></td><td><a href="https://prodsens.live/2026/07/22/" aria-label="Posts published on July 22, 2026">22</a></td><td><a href="https://prodsens.live/2026/07/23/" aria-label="Posts published on July 23, 2026">23</a></td><td><a href="https://prodsens.live/2026/07/24/" aria-label="Posts published on July 24, 2026">24</a></td><td><a href="https://prodsens.live/2026/07/25/" aria-label="Posts published on July 25, 2026">25</a></td><td id="today"><a href="https://prodsens.live/2026/07/26/" aria-label="Posts published on July 26, 2026">26</a></td> </tr> <tr> <td>27</td><td>28</td><td>29</td><td>30</td><td>31</td> <td class="pad" colspan="2"> </td> </tr> </tbody> </table><nav aria-label="Previous and next months" class="wp-calendar-nav"> <span class="wp-calendar-nav-prev"><a href="https://prodsens.live/2026/06/">« Jun</a></span> <span class="pad"> </span> <span class="wp-calendar-nav-next"> </span> </nav></div></div> </div> </aside> </div> <div class="cs-entry__post-related"> <h5 class="cs-section-heading cnvs-block-section-heading is-style-cnvs-block-section-heading-default halignleft "><span class="cnvs-section-title"><span><span class="cs-section-subheadings">Related Posts</span></span></span></h5> <div class="cs-entry__post-wrap"> <article class="cs-entry-default post-19847 post type-post status-publish format-standard has-post-thumbnail category-software tag-discuss tag-podcast tag-prodsens-live tag-software cs-entry cs-video-wrap"> <div class="cs-entry__outer"> <div class="cs-entry__inner cs-entry__thumbnail cs-entry__overlay cs-overlay-ratio cs-ratio-original" data-scheme="inverse"> <div class="cs-overlay-background"> <img width="380" height="250" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXwAAAD6AQMAAACYt274AAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAACNJREFUaN7twTEBAAAAwqD1T20MH6AAAAAAAAAAAAAAAICfAS/aAAH7Vn1zAAAAAElFTkSuQmCC" class="attachment-csco-thumbnail size-csco-thumbnail pk-lazyload wp-post-image" alt="podcast-palooza—-what-are-you-listening-to?-(comedy-edition)" decoding="async" loading="lazy" data-pk-sizes="auto" data-ls-sizes="auto, (max-width: 380px) 100vw, 380px" data-pk-src="https://prodsens.live/wp-content/uploads/2024/02/19847-podcast-palooza-what-are-you-listening-to-comedy-edition-380x250.gif" data-pk-srcset="https://prodsens.live/wp-content/uploads/2024/02/19847-podcast-palooza-what-are-you-listening-to-comedy-edition-380x250.gif 380w, https://prodsens.live/wp-content/uploads/2024/02/19847-podcast-palooza-what-are-you-listening-to-comedy-edition-230x150.gif 230w, https://prodsens.live/wp-content/uploads/2024/02/19847-podcast-palooza-what-are-you-listening-to-comedy-edition-260x170.gif 260w" /> </div> <div class="cs-overlay-content"> <div class="cs-entry__post-meta" ><div class="cs-meta-comments"><span class="cs-meta-icon"><i class="cs-icon cs-icon-message-square"></i></span><a href="https://prodsens.live/2024/02/13/podcast-palooza-what-are-you-listening-to-comedy-edition/#respond" class="comments-link" >0</a></div><div class="cs-meta-reading-time"><span class="cs-meta-icon"><i class="cs-icon cs-icon-clock"></i></span>1 min</div></div> </div> <a href="https://prodsens.live/2024/02/13/podcast-palooza-what-are-you-listening-to-comedy-edition/" class="cs-overlay-link"></a> </div> <div class="cs-entry__inner cs-entry__content"> <div class="cs-entry__post-meta" ><div class="cs-meta-category"><ul class="post-categories"> <li><a href="https://prodsens.live/category/software/" rel="category tag">Software</a></li></ul></div></div> <h2 class="cs-entry__title"><a href="https://prodsens.live/2024/02/13/podcast-palooza-what-are-you-listening-to-comedy-edition/">Podcast Palooza— What are you listening to? (Comedy Edition)</a></h2> <div class="cs-entry__excerpt"> Hey hey y’all! I’m Rachel (they/them) and I am DEV’s loyal Content Creator over here on the Community… </div> <div class="cs-entry__details "> <div class="cs-entry__details-data"> <a class="cs-author-avatar" href="https://prodsens.live/author/dave-westby/"><img alt='' src='https://secure.gravatar.com/avatar/ccf6b76844cf2e0a8b9614670b627ebaced45287f684e72c43e30a1ca0ef4e37?s=40&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/ccf6b76844cf2e0a8b9614670b627ebaced45287f684e72c43e30a1ca0ef4e37?s=80&d=mm&r=g 2x' class='avatar avatar-40 photo' height='40' width='40' loading='lazy' decoding='async'/></a> <div class="cs-entry__details-meta"> <div class="cs-entry__author-meta"><a href="https://prodsens.live/author/dave-westby/">Dave Westby</a></div><div class="cs-entry__post-meta" ><div class="cs-meta-date">February 13, 2024</div></div> </div> </div> <div class="cs-entry__read-more"> <a href="https://prodsens.live/2024/02/13/podcast-palooza-what-are-you-listening-to-comedy-edition/"> Read More </a> </div> </div> </div> </div> </article> <article class="cs-entry-default post-3091 post type-post status-publish format-standard has-post-thumbnail category-software tag-css tag-fluentui tag-react tag-webdev cs-entry cs-video-wrap"> <div class="cs-entry__outer"> <div class="cs-entry__inner cs-entry__thumbnail cs-entry__overlay cs-overlay-ratio cs-ratio-original" data-scheme="inverse"> <div class="cs-overlay-background"> <img width="380" height="250" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXwAAAD6AQMAAACYt274AAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAACNJREFUaN7twTEBAAAAwqD1T20MH6AAAAAAAAAAAAAAAICfAS/aAAH7Vn1zAAAAAElFTkSuQmCC" class="attachment-csco-thumbnail size-csco-thumbnail pk-lazyload wp-post-image" alt="fluent-ui-insights-ep2:-styling" decoding="async" loading="lazy" data-pk-sizes="auto" data-ls-sizes="auto, (max-width: 380px) 100vw, 380px" data-pk-src="https://prodsens.live/wp-content/uploads/2022/08/3091-fluent-ui-insights-ep2-styling-380x250.png" data-pk-srcset="https://prodsens.live/wp-content/uploads/2022/08/3091-fluent-ui-insights-ep2-styling-380x250.png 380w, https://prodsens.live/wp-content/uploads/2022/08/3091-fluent-ui-insights-ep2-styling-230x150.png 230w, https://prodsens.live/wp-content/uploads/2022/08/3091-fluent-ui-insights-ep2-styling-260x170.png 260w" /> </div> <div class="cs-overlay-content"> <div class="cs-entry__post-meta" ><div class="cs-meta-comments"><span class="cs-meta-icon"><i class="cs-icon cs-icon-message-square"></i></span><a href="https://prodsens.live/2022/08/26/fluent-ui-insights-ep2-styling/#respond" class="comments-link" >0</a></div><div class="cs-meta-reading-time"><span class="cs-meta-icon"><i class="cs-icon cs-icon-clock"></i></span>1 min</div></div> </div> <a href="https://prodsens.live/2022/08/26/fluent-ui-insights-ep2-styling/" class="cs-overlay-link"></a> </div> <div class="cs-entry__inner cs-entry__content"> <div class="cs-entry__post-meta" ><div class="cs-meta-category"><ul class="post-categories"> <li><a href="https://prodsens.live/category/software/" rel="category tag">Software</a></li></ul></div></div> <h2 class="cs-entry__title"><a href="https://prodsens.live/2022/08/26/fluent-ui-insights-ep2-styling/">Fluent UI Insights EP2: Styling</a></h2> <div class="cs-entry__excerpt"> Fluent UI Insights is a series that describes the design and decisions behind the Fluent UI React. In… </div> <div class="cs-entry__details "> <div class="cs-entry__details-data"> <a class="cs-author-avatar" href="https://prodsens.live/author/john-hurley/"><img alt='' src='https://secure.gravatar.com/avatar/60f70da09fe1983791d0977f0b4349a7fd34991c0b92577625d1b189acf5b5cf?s=40&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/60f70da09fe1983791d0977f0b4349a7fd34991c0b92577625d1b189acf5b5cf?s=80&d=mm&r=g 2x' class='avatar avatar-40 photo' height='40' width='40' loading='lazy' decoding='async'/></a> <div class="cs-entry__details-meta"> <div class="cs-entry__author-meta"><a href="https://prodsens.live/author/john-hurley/">John Hurley</a></div><div class="cs-entry__post-meta" ><div class="cs-meta-date">August 26, 2022</div></div> </div> </div> <div class="cs-entry__read-more"> <a href="https://prodsens.live/2022/08/26/fluent-ui-insights-ep2-styling/"> Read More </a> </div> </div> </div> </div> </article> <article class="cs-entry-default post-24345 post type-post status-publish format-standard has-post-thumbnail category-software tag-cart tag-laravel tag-php tag-prodsens-live tag-shopping tag-software cs-entry cs-video-wrap"> <div class="cs-entry__outer"> <div class="cs-entry__inner cs-entry__thumbnail cs-entry__overlay cs-overlay-ratio cs-ratio-original" data-scheme="inverse"> <div class="cs-overlay-background"> <img width="380" height="250" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXwAAAD6AQMAAACYt274AAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAACNJREFUaN7twTEBAAAAwqD1T20MH6AAAAAAAAAAAAAAAICfAS/aAAH7Vn1zAAAAAElFTkSuQmCC" class="attachment-csco-thumbnail size-csco-thumbnail pk-lazyload wp-post-image" alt="introducing-cart:-simplifying-shopping-cart-management-for-laravel" decoding="async" loading="lazy" data-pk-sizes="auto" data-ls-sizes="auto, (max-width: 380px) 100vw, 380px" data-pk-src="https://prodsens.live/wp-content/uploads/2024/06/24345-introducing-cart-simplifying-shopping-cart-management-for-laravel-380x250.png" data-pk-srcset="https://prodsens.live/wp-content/uploads/2024/06/24345-introducing-cart-simplifying-shopping-cart-management-for-laravel-380x250.png 380w, https://prodsens.live/wp-content/uploads/2024/06/24345-introducing-cart-simplifying-shopping-cart-management-for-laravel-230x150.png 230w, https://prodsens.live/wp-content/uploads/2024/06/24345-introducing-cart-simplifying-shopping-cart-management-for-laravel-260x170.png 260w" /> </div> <div class="cs-overlay-content"> <div class="cs-entry__post-meta" ><div class="cs-meta-comments"><span class="cs-meta-icon"><i class="cs-icon cs-icon-message-square"></i></span><a href="https://prodsens.live/2024/06/16/introducing-cart-simplifying-shopping-cart-management-for-laravel/#respond" class="comments-link" >0</a></div><div class="cs-meta-reading-time"><span class="cs-meta-icon"><i class="cs-icon cs-icon-clock"></i></span>2 min</div></div> </div> <a href="https://prodsens.live/2024/06/16/introducing-cart-simplifying-shopping-cart-management-for-laravel/" class="cs-overlay-link"></a> </div> <div class="cs-entry__inner cs-entry__content"> <div class="cs-entry__post-meta" ><div class="cs-meta-category"><ul class="post-categories"> <li><a href="https://prodsens.live/category/software/" rel="category tag">Software</a></li></ul></div></div> <h2 class="cs-entry__title"><a href="https://prodsens.live/2024/06/16/introducing-cart-simplifying-shopping-cart-management-for-laravel/">Introducing Cart: Simplifying Shopping Cart Management for Laravel</a></h2> <div class="cs-entry__excerpt"> In the fast-paced world of e-commerce, efficient shopping cart management isn’t just essential—it’s a competitive advantage. Today, I’m… </div> <div class="cs-entry__details "> <div class="cs-entry__details-data"> <a class="cs-author-avatar" href="https://prodsens.live/author/eliman-dambell/"><img alt='' src='https://secure.gravatar.com/avatar/31816b130b4c324dbf96ef3085f9db35e961d16f4dd58a6fa360f6bccb876d49?s=40&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/31816b130b4c324dbf96ef3085f9db35e961d16f4dd58a6fa360f6bccb876d49?s=80&d=mm&r=g 2x' class='avatar avatar-40 photo' height='40' width='40' loading='lazy' decoding='async'/></a> <div class="cs-entry__details-meta"> <div class="cs-entry__author-meta"><a href="https://prodsens.live/author/eliman-dambell/">Eliman Dambell</a></div><div class="cs-entry__post-meta" ><div class="cs-meta-date">June 16, 2024</div></div> </div> </div> <div class="cs-entry__read-more"> <a href="https://prodsens.live/2024/06/16/introducing-cart-simplifying-shopping-cart-management-for-laravel/"> Read More </a> </div> </div> </div> </div> </article> </div> </div> </div> </div> </main> <footer class="cs-footer cs-footer-two" data-scheme="dark"> <div class="cs-container"> <div class="cs-footer__item"> <div class="cs-footer__col cs-col-left"> <div class="cs-footer__inner"> <div class="cs-logo"> <a class="cs-footer__logo cs-logo-once" href="https://prodsens.live/"> prodSens.live </a> </div> <div class="cs-footer__desc"> Designed & Developed by <a href="https://prodsens.live/">Xezero.com</a> </div> </div> </div> <div class="cs-footer__col cs-col-center"> <div class="footer-nav-menu"> <ul id="menu-primary" class="cs-footer__nav cs-nav-grid"><li id="menu-item-198" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-198"><a rel="privacy-policy" href="https://prodsens.live/privacy-policy-2/">Privacy Policy</a></li> <li id="menu-item-1494" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1494"><a href="https://prodsens.live/terms-conditions/">Terms & Conditions</a></li> <li id="menu-item-1493" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1493"><a href="https://prodsens.live/contact-us/">Contact us</a></li> </ul> </div> </div> <div class="cs-footer__col cs-col-right"> <div class="cs-footer-social-links"> <div class="cs-footer-social-links"> <div class="pk-social-links-wrap pk-social-links-template-nav pk-social-links-align-default pk-social-links-scheme-bold pk-social-links-titles-disabled pk-social-links-counts-disabled pk-social-links-labels-disabled"> <div class="pk-social-links-items"> <div class="pk-social-links-item pk-social-links-facebook pk-social-links-no-count" data-id="facebook"> <a href="https://facebook.com/prodsenslive" class="pk-social-links-link" target="_blank" rel="nofollow noopener" aria-label="Facebook"> <i class="pk-social-links-icon pk-icon pk-icon-facebook"></i> </a> </div> <div class="pk-social-links-item pk-social-links-linkedin pk-social-links-no-count" data-id="linkedin"> <a href="https://www.linkedin.com/company/prodsens-live" class="pk-social-links-link" target="_blank" rel="nofollow noopener" aria-label="LinkedIn"> <i class="pk-social-links-icon pk-icon pk-icon-linkedin"></i> </a> </div> <div class="pk-social-links-item pk-social-links-twitter pk-social-links-no-count" data-id="twitter"> <a href="https://twitter.com/prodsens_pro" class="pk-social-links-link" target="_blank" rel="nofollow noopener" aria-label="Twitter"> <i class="pk-social-links-icon pk-icon pk-icon-twitter"></i> </a> </div> </div> </div> </div> </div> </div> </div> </div> </footer> </div> </div> <script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/networker\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <style type="text/css" media="all" id="canvas-widget-blocks-dynamic-styles"> </style> <!--googleoff: all--><div id="cookie-law-info-bar" data-nosnippet="true"><span><div class="cli-bar-container cli-style-v2"><div class="cli-bar-message">We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.</div><div class="cli-bar-btn_container"><a role='button' class="medium cli-plugin-button cli-plugin-main-button cli_settings_button" style="margin:0px 5px 0px 0px">Cookie Settings</a><a id="wt-cli-accept-all-btn" role='button' data-cli_action="accept_all" class="wt-cli-element medium cli-plugin-button wt-cli-accept-all-btn cookie_action_close_header cli_action_button">Accept All</a></div></div></span></div><div id="cookie-law-info-again" data-nosnippet="true"><span id="cookie_hdr_showagain">Manage consent</span></div><div class="cli-modal" data-nosnippet="true" id="cliSettingsPopup" tabindex="-1" role="dialog" aria-labelledby="cliSettingsPopup" aria-hidden="true"> <div class="cli-modal-dialog" role="document"> <div class="cli-modal-content cli-bar-popup"> <button type="button" class="cli-modal-close" id="cliModalClose"> <svg class="" viewBox="0 0 24 24"><path d="M19 6.41l-1.41-1.41-5.59 5.59-5.59-5.59-1.41 1.41 5.59 5.59-5.59 5.59 1.41 1.41 5.59-5.59 5.59 5.59 1.41-1.41-5.59-5.59z"></path><path d="M0 0h24v24h-24z" fill="none"></path></svg> <span class="wt-cli-sr-only">Close</span> </button> <div class="cli-modal-body"> <div class="cli-container-fluid cli-tab-container"> <div class="cli-row"> <div class="cli-col-12 cli-align-items-stretch cli-px-0"> <div class="cli-privacy-overview"> <h4>Privacy Overview</h4> <div class="cli-privacy-content"> <div class="cli-privacy-content-text">This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.</div> </div> <a class="cli-privacy-readmore" aria-label="Show more" role="button" data-readmore-text="Show more" data-readless-text="Show less"></a> </div> </div> <div class="cli-col-12 cli-align-items-stretch cli-px-0 cli-tab-section-container"> <div class="cli-tab-section"> <div class="cli-tab-header"> <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="necessary" data-toggle="cli-toggle-tab"> Necessary </a> <div class="wt-cli-necessary-checkbox"> <input type="checkbox" class="cli-user-preference-checkbox" id="wt-cli-checkbox-necessary" data-id="checkbox-necessary" checked="checked" /> <label class="form-check-label" for="wt-cli-checkbox-necessary">Necessary</label> </div> <span class="cli-necessary-caption">Always Enabled</span> </div> <div class="cli-tab-content"> <div class="cli-tab-pane cli-fade" data-id="necessary"> <div class="wt-cli-cookie-description"> Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously. <table class="cookielawinfo-row-cat-table cookielawinfo-winter"><thead><tr><th class="cookielawinfo-column-1">Cookie</th><th class="cookielawinfo-column-3">Duration</th><th class="cookielawinfo-column-4">Description</th></tr></thead><tbody><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cookielawinfo-checkbox-analytics</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cookielawinfo-checkbox-functional</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cookielawinfo-checkbox-necessary</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cookielawinfo-checkbox-others</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cookielawinfo-checkbox-performance</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">viewed_cookie_policy</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.</td></tr></tbody></table> </div> </div> </div> </div> <div class="cli-tab-section"> <div class="cli-tab-header"> <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="functional" data-toggle="cli-toggle-tab"> Functional </a> <div class="cli-switch"> <input type="checkbox" id="wt-cli-checkbox-functional" class="cli-user-preference-checkbox" data-id="checkbox-functional" /> <label for="wt-cli-checkbox-functional" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">Functional</span></label> </div> </div> <div class="cli-tab-content"> <div class="cli-tab-pane cli-fade" data-id="functional"> <div class="wt-cli-cookie-description"> Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features. </div> </div> </div> </div> <div class="cli-tab-section"> <div class="cli-tab-header"> <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="performance" data-toggle="cli-toggle-tab"> Performance </a> <div class="cli-switch"> <input type="checkbox" id="wt-cli-checkbox-performance" class="cli-user-preference-checkbox" data-id="checkbox-performance" /> <label for="wt-cli-checkbox-performance" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">Performance</span></label> </div> </div> <div class="cli-tab-content"> <div class="cli-tab-pane cli-fade" data-id="performance"> <div class="wt-cli-cookie-description"> Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors. </div> </div> </div> </div> <div class="cli-tab-section"> <div class="cli-tab-header"> <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="analytics" data-toggle="cli-toggle-tab"> Analytics </a> <div class="cli-switch"> <input type="checkbox" id="wt-cli-checkbox-analytics" class="cli-user-preference-checkbox" data-id="checkbox-analytics" /> <label for="wt-cli-checkbox-analytics" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">Analytics</span></label> </div> </div> <div class="cli-tab-content"> <div class="cli-tab-pane cli-fade" data-id="analytics"> <div class="wt-cli-cookie-description"> Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc. </div> </div> </div> </div> <div class="cli-tab-section"> <div class="cli-tab-header"> <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="advertisement" data-toggle="cli-toggle-tab"> Advertisement </a> <div class="cli-switch"> <input type="checkbox" id="wt-cli-checkbox-advertisement" class="cli-user-preference-checkbox" data-id="checkbox-advertisement" /> <label for="wt-cli-checkbox-advertisement" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">Advertisement</span></label> </div> </div> <div class="cli-tab-content"> <div class="cli-tab-pane cli-fade" data-id="advertisement"> <div class="wt-cli-cookie-description"> Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads. </div> </div> </div> </div> <div class="cli-tab-section"> <div class="cli-tab-header"> <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="others" data-toggle="cli-toggle-tab"> Others </a> <div class="cli-switch"> <input type="checkbox" id="wt-cli-checkbox-others" class="cli-user-preference-checkbox" data-id="checkbox-others" /> <label for="wt-cli-checkbox-others" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">Others</span></label> </div> </div> <div class="cli-tab-content"> <div class="cli-tab-pane cli-fade" data-id="others"> <div class="wt-cli-cookie-description"> Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet. </div> </div> </div> </div> </div> </div> </div> </div> <div class="cli-modal-footer"> <div class="wt-cli-element cli-container-fluid cli-tab-container"> <div class="cli-row"> <div class="cli-col-12 cli-align-items-stretch cli-px-0"> <div class="cli-tab-footer wt-cli-privacy-overview-actions"> <a id="wt-cli-privacy-save-btn" role="button" tabindex="0" data-cli-action="accept" class="wt-cli-privacy-btn cli_setting_save_button wt-cli-privacy-accept-btn cli-btn">SAVE & ACCEPT</a> </div> </div> </div> </div> </div> </div> </div> </div> <div class="cli-modal-backdrop cli-fade cli-settings-overlay"></div> <div class="cli-modal-backdrop cli-fade cli-popupbar-overlay"></div> <!--googleon: all--> <a href="#top" class="pk-scroll-to-top"> <i class="pk-icon pk-icon-up"></i> </a> <div class="pk-mobile-share-overlay"> </div> <div id="fb-root"></div> <script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v17.0&appId=prodsenslive&autoLogAppEvents=1" nonce="Ci8te34e"></script> <script> var _SEARCHWP_LIVE_AJAX_SEARCH_BLOCKS = true; var _SEARCHWP_LIVE_AJAX_SEARCH_ENGINE = 'default'; var _SEARCHWP_LIVE_AJAX_SEARCH_CONFIG = 'default'; </script> <link rel='stylesheet' id='cookie-law-info-table-css' href='https://prodsens.live/wp-content/plugins/cookie-law-info/legacy/public/css/cookie-law-info-table.css?ver=3.3.6' media='all' /> <script src="https://prodsens.live/wp-content/plugins/canvas/components/basic-elements/block-alert/public-block-alert.js?ver=2.5.1" id="canvas-block-alert-script-js"></script> <script src="https://prodsens.live/wp-content/plugins/canvas/components/basic-elements/block-collapsibles/public-block-collapsibles.js?ver=2.5.1" id="canvas-block-collapsibles-script-js"></script> <script src="https://prodsens.live/wp-content/plugins/canvas/components/basic-elements/block-tabs/public-block-tabs.js?ver=2.5.1" id="canvas-block-tabs-script-js"></script> <script src="https://prodsens.live/wp-content/plugins/canvas/components/justified-gallery/block/jquery.justifiedGallery.min.js?ver=2.5.1" id="justifiedgallery-js"></script> <script id="canvas-justified-gallery-js-extra"> var canvasJG = {"rtl":""}; </script> <script src="https://prodsens.live/wp-content/plugins/canvas/components/justified-gallery/block/public-block-justified-gallery.js?ver=2.5.1" id="canvas-justified-gallery-js"></script> <script src="https://prodsens.live/wp-includes/js/imagesloaded.min.js?ver=5.0.0" id="imagesloaded-js"></script> <script src="https://prodsens.live/wp-content/plugins/canvas/components/slider-gallery/block/flickity.pkgd.min.js?ver=2.5.1" id="flickity-js"></script> <script id="canvas-slider-gallery-js-extra"> var canvas_sg_flickity = {"page_info_sep":" of "}; </script> <script src="https://prodsens.live/wp-content/plugins/canvas/components/slider-gallery/block/public-block-slider-gallery.js?ver=2.5.1" id="canvas-slider-gallery-js"></script> <script src="https://prodsens.live/wp-content/plugins/powerkit/modules/basic-elements/public/js/public-powerkit-basic-elements.js?ver=4.0.0" id="powerkit-basic-elements-js"></script> <script id="powerkit-justified-gallery-js-extra"> var powerkitJG = {"rtl":""}; </script> <script src="https://prodsens.live/wp-content/plugins/powerkit/modules/justified-gallery/public/js/public-powerkit-justified-gallery.js?ver=3.0.2" id="powerkit-justified-gallery-js"></script> <script src="https://prodsens.live/wp-content/plugins/powerkit/modules/lazyload/public/js/lazysizes.config.js?ver=6.8.6" id="lazysizes.config-js"></script> <script src="https://prodsens.live/wp-content/plugins/powerkit/modules/lazyload/public/js/lazysizes.min.js?ver=6.8.6" id="lazysizes-js"></script> <script src="https://prodsens.live/wp-content/plugins/powerkit/modules/lightbox/public/js/glightbox.min.js?ver=3.0.2" id="glightbox-js"></script> <script id="powerkit-lightbox-js-extra"> var powerkit_lightbox_localize = {"text_previous":"Previous","text_next":"Next","text_close":"Close","text_loading":"Loading","text_counter":"of","single_image_selectors":".entry-content img","gallery_selectors":".wp-block-gallery,.gallery","exclude_selectors":"","zoom_icon":"1"}; </script> <script src="https://prodsens.live/wp-content/plugins/powerkit/modules/lightbox/public/js/public-powerkit-lightbox.js?ver=3.0.2" id="powerkit-lightbox-js"></script> <script id="powerkit-opt-in-forms-js-extra"> var opt_in = {"ajax_url":"https:\/\/prodsens.live\/wp-admin\/admin-ajax.php","warning_privacy":"Please confirm that you agree with our policies.","is_admin":"","server_error":"Server error occurred. Please try again later."}; </script> <script src="https://prodsens.live/wp-content/plugins/powerkit/modules/opt-in-forms/public/js/public-powerkit-opt-in-forms.js?ver=3.0.2" id="powerkit-opt-in-forms-js"></script> <script async="async" defer="defer" src="//assets.pinterest.com/js/pinit.js?ver=6.8.6" id="powerkit-pinterest-js"></script> <script id="powerkit-pin-it-js-extra"> var powerkit_pinit_localize = {"image_selectors":".entry-content img","exclude_selectors":".cnvs-block-row,.cnvs-block-section,.cnvs-block-posts .entry-thumbnail,.cnvs-post-thumbnail,.pk-block-author,.pk-featured-categories img,.pk-inline-posts-container img,.pk-instagram-image,.pk-subscribe-image,.wp-block-cover,.pk-block-posts,.cs-posts-area__main,.cs-entry","only_hover":"1"}; </script> <script src="https://prodsens.live/wp-content/plugins/powerkit/modules/pinterest/public/js/public-powerkit-pin-it.js?ver=3.0.2" id="powerkit-pin-it-js"></script> <script src="https://prodsens.live/wp-content/plugins/powerkit/modules/scroll-to-top/public/js/public-powerkit-scroll-to-top.js?ver=3.0.2" id="powerkit-scroll-to-top-js"></script> <script src="https://prodsens.live/wp-content/plugins/powerkit/modules/share-buttons/public/js/public-powerkit-share-buttons.js?ver=3.0.2" id="powerkit-share-buttons-js"></script> <script id="powerkit-slider-gallery-js-extra"> var powerkit_sg_flickity = {"page_info_sep":" of "}; </script> <script src="https://prodsens.live/wp-content/plugins/powerkit/modules/slider-gallery/public/js/public-powerkit-slider-gallery.js?ver=3.0.2" id="powerkit-slider-gallery-js"></script> <script id="powerkit-table-of-contents-js-extra"> var powerkit_toc_config = {"label_show":"Show","label_hide":"Hide"}; </script> <script src="https://prodsens.live/wp-content/plugins/powerkit/modules/table-of-contents/public/js/public-powerkit-table-of-contents.js?ver=3.0.2" id="powerkit-table-of-contents-js"></script> <script id="csco-scripts-js-extra"> var csLocalize = {"siteSchemeMode":"system","siteSchemeToogle":"1"}; var csco_mega_menu = {"rest_url":"https:\/\/prodsens.live\/wp-json\/csco\/v1\/menu-posts"}; </script> <script src="https://prodsens.live/wp-content/themes/networker/assets/js/scripts.js?ver=1.0.7" id="csco-scripts-js"></script> <script src="https://prodsens.live/wp-includes/js/comment-reply.min.js?ver=6.8.6" id="comment-reply-js" async data-wp-strategy="async"></script> <script id="swp-live-search-client-js-extra"> var searchwp_live_search_params = []; searchwp_live_search_params = {"ajaxurl":"https:\/\/prodsens.live\/wp-admin\/admin-ajax.php","origin_id":51919,"config":{"default":{"engine":"default","input":{"delay":300,"min_chars":3},"results":{"position":"bottom","width":"auto","offset":{"x":0,"y":5}},"spinner":{"lines":12,"length":8,"width":3,"radius":8,"scale":1,"corners":1,"color":"#424242","fadeColor":"transparent","speed":1,"rotate":0,"animation":"searchwp-spinner-line-fade-quick","direction":1,"zIndex":2000000000,"className":"spinner","top":"50%","left":"50%","shadow":"0 0 1px transparent","position":"absolute"}}},"msg_no_config_found":"No valid SearchWP Live Search configuration found!","aria_instructions":"When autocomplete results are available use up and down arrows to review and enter to go to the desired page. Touch device users, explore by touch or with swipe gestures."};; </script> <script src="https://prodsens.live/wp-content/plugins/searchwp-live-ajax-search/assets/javascript/dist/script.min.js?ver=1.8.6" id="swp-live-search-client-js"></script> <script type="text/javascript"> "use strict"; (function($) { $( window ).on( 'load', function() { // Get all links. var powerkitSLinksIds = []; var powerkitSLinksRestBox = $( '.pk-social-links-mode-rest' ); // Generate links Ids. $( powerkitSLinksRestBox ).each( function( index, wrap ) { if ( ! $( wrap ).hasClass( 'pk-social-links-counts-disabled' ) ) { $( wrap ).find( '.pk-social-links-item' ).each( function() { if ( $( this ).attr( 'data-id' ).length > 0 ) { powerkitSLinksIds.push( $( this ).attr( 'data-id' ) ); } }); } }); // Generate links data. var powerkitSLinksData = {}; if( powerkitSLinksIds.length > 0 ) { powerkitSLinksData = { 'ids' : powerkitSLinksIds.join() }; } // Check data. if ( ! Object.entries( powerkitSLinksData ).length ) { return; } // Get results by REST API. $.ajax({ type: 'GET', url: 'https://prodsens.live/wp-json/social-counts/v1/get-counts', data: powerkitSLinksData, beforeSend: function(){ // Add Loading Class. powerkitSLinksRestBox.addClass( 'pk-social-links-loading' ); }, success: function( response ) { if ( ! $.isEmptyObject( response ) && ! response.hasOwnProperty( 'code' ) ) { // SLinks loop. $.each( response, function( index, data ) { // Find Bsa Item. var powerkitSLinksItem = powerkitSLinksRestBox.find( '.pk-social-links-item[data-id="' + index + '"]'); // Set Class. if ( data.hasOwnProperty( 'class' ) ) { powerkitSLinksItem.addClass( data.class ); } // Set Count. if ( data.hasOwnProperty( 'result' ) && data.result !== null && data.result.hasOwnProperty( 'count' ) ) { if ( data.result.count ) { // Class Item. powerkitSLinksItem.removeClass( 'pk-social-links-no-count' ).addClass( 'pk-social-links-item-count' ); // Count item. powerkitSLinksItem.find( '.pk-social-links-count' ).not( '.pk-tippy' ).html( data.result.count ); } } else { powerkitSLinksItem.addClass( 'pk-social-links-no-count' ); } }); } // Remove Loading Class. powerkitSLinksRestBox.removeClass( 'pk-social-links-loading' ); }, error: function() { // Remove Loading Class. powerkitSLinksRestBox.removeClass( 'pk-social-links-loading' ); } }); }); })(jQuery); </script> <script type="text/javascript"> "use strict"; (function($) { $( window ).on( 'load', function() { // Each All Share boxes. $( '.pk-share-buttons-mode-rest' ).each( function() { var powerkitButtonsIds = [], powerkitButtonsBox = $( this ); // Check Counts. if ( ! powerkitButtonsBox.hasClass( 'pk-share-buttons-has-counts' ) && ! powerkitButtonsBox.hasClass( 'pk-share-buttons-has-total-counts' ) ) { return; } powerkitButtonsBox.find( '.pk-share-buttons-item' ).each( function() { if ( $( this ).attr( 'data-id' ).length > 0 ) { powerkitButtonsIds.push( $( this ).attr( 'data-id' ) ); } }); // Generate accounts data. var powerkitButtonsData = {}; if( powerkitButtonsIds.length > 0 ) { powerkitButtonsData = { 'ids' : powerkitButtonsIds.join(), 'post_id' : powerkitButtonsBox.attr( 'data-post-id' ), 'url' : powerkitButtonsBox.attr( 'data-share-url' ), }; } // Get results by REST API. $.ajax({ type: 'GET', url: 'https://prodsens.live/wp-json/social-share/v1/get-shares', data: powerkitButtonsData, beforeSend: function(){ // Add Loading Class. powerkitButtonsBox.addClass( 'pk-share-buttons-loading' ); }, success: function( response ) { if ( ! $.isEmptyObject( response ) && ! response.hasOwnProperty( 'code' ) ) { // Accounts loop. $.each( response, function( index, data ) { if ( index !== 'total_count' ) { // Find Bsa Item. var powerkitButtonsItem = powerkitButtonsBox.find( '.pk-share-buttons-item[data-id="' + index + '"]'); // Set Count. if ( data.hasOwnProperty( 'count' ) && data.count ) { powerkitButtonsItem.removeClass( 'pk-share-buttons-no-count' ).addClass( 'pk-share-buttons-item-count' ); powerkitButtonsItem.find( '.pk-share-buttons-count' ).html( data.count ); } else { powerkitButtonsItem.addClass( 'pk-share-buttons-no-count' ); } } }); if ( powerkitButtonsBox.hasClass( 'pk-share-buttons-has-total-counts' ) && response.hasOwnProperty( 'total_count' ) ) { var powerkitButtonsTotalBox = powerkitButtonsBox.find( '.pk-share-buttons-total' ); if ( response.total_count ) { powerkitButtonsTotalBox.find( '.pk-share-buttons-count' ).html( response.total_count ); powerkitButtonsTotalBox.show().removeClass( 'pk-share-buttons-total-no-count' ); } } } // Remove Loading Class. powerkitButtonsBox.removeClass( 'pk-share-buttons-loading' ); }, error: function() { // Remove Loading Class. powerkitButtonsBox.removeClass( 'pk-share-buttons-loading' ); } }); }); }); })(jQuery); </script> <script> (function() { var urlMap = { 'Product Management': '/category/product-management', 'Project Management': '/category/project-management', 'Marketing': '/category/marketing', 'Software': '/category/software', 'Quality Assurance': '/category/quality-assurance', 'Planning': '/category/planning', 'AI': '/category/artificial-intelligence/', 'Analytics': '/category/analytics' }; function fixLinks() { // Header menu document.querySelectorAll('.cs-header__nav-inner a').forEach(function(link) { var text = link.textContent.trim(); if (urlMap[text] && !link.getAttribute('href')) { link.setAttribute('href', urlMap[text]); // console.log('✓ Fixed:', text); } }); // Mobile menu document.querySelectorAll('.cs-offcanvas__sidebar a').forEach(function(link) { var text = link.textContent.trim(); if (urlMap[text] && !link.getAttribute('href')) { link.setAttribute('href', urlMap[text]); } }); } // Запускаем сразу if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', fixLinks); } else { fixLinks(); } })(); </script> <script> (function() { function addTelegram() { var allLists = document.querySelectorAll('.pk-social-links-items'); var headerLists = [allLists[1], allLists[2], allLists[3]]; headerLists.forEach(function(socialList) { if (socialList && !socialList.querySelector('.pk-social-links-telegram')) { var telegramItem = document.createElement('div'); telegramItem.className = 'pk-social-links-item pk-social-links-telegram pk-social-links-no-count'; telegramItem.setAttribute('data-id', 'telegram'); telegramItem.innerHTML = '<a href="https://t.me/prodsens_live" class="pk-social-links-link" target="_blank" rel="nofollow noopener" aria-label="Telegram"><i class="pk-social-links-icon pk-icon pk-icon-telegram"></i><span class="pk-social-links-count pk-font-secondary">0</span></a>'; socialList.appendChild(telegramItem); } }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', addTelegram); } else { addTelegram(); } })(); </script> <script>var rocket_beacon_data = {"ajax_url":"https:\/\/prodsens.live\/wp-admin\/admin-ajax.php","nonce":"10cafd5aee","url":"https:\/\/prodsens.live\/2026\/07\/26\/how-i-built-a-peptide-dosage-calculator-with-next-js-and-why-ssr-matters-more-than-you-think","is_mobile":false,"width_threshold":1600,"height_threshold":700,"delay":500,"debug":null,"status":{"atf":true,"lrc":true,"preconnect_external_domain":true},"elements":"img, video, picture, p, main, div, li, svg, section, header, span","lrc_threshold":1800,"preconnect_external_domain_elements":["link","script","iframe"],"preconnect_external_domain_exclusions":["static.cloudflareinsights.com","rel=\"profile\"","rel=\"preconnect\"","rel=\"dns-prefetch\"","rel=\"icon\""]}</script><script data-name="wpr-wpr-beacon" src='https://prodsens.live/wp-content/plugins/clsop/assets/js/wpr-beacon.min.js' async></script></body> </html> <!-- Performance optimized by Redis Object Cache. Learn more: https://wprediscache.com Retrieved 15301 objects (3 MB) from Redis using PhpRedis (v6.3.0). --> <!-- Performance optimized by AccelerateWP. - Debug: cached@1785036087 -->