<?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: Nikhil Agrawal</title>
    <description>The latest articles on DEV Community by Nikhil Agrawal (@heynikhila).</description>
    <link>https://dev.to/heynikhila</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%2F687943%2Fd3fdef90-9021-4d8f-9088-175a91cdef54.jpeg</url>
      <title>DEV Community: Nikhil Agrawal</title>
      <link>https://dev.to/heynikhila</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/heynikhila"/>
    <language>en</language>
    <item>
      <title>I redesigned my WordPress WooCommerce site for $0 [exact workflow + prompts included]</title>
      <dc:creator>Nikhil Agrawal</dc:creator>
      <pubDate>Wed, 14 Oct 2026 15:23:57 +0000</pubDate>
      <link>https://dev.to/heynikhila/i-redesigned-my-wordpress-e-commerce-site-for-0-instead-of-2500-exact-workflow-prompts-4m5o</link>
      <guid>https://dev.to/heynikhila/i-redesigned-my-wordpress-e-commerce-site-for-0-instead-of-2500-exact-workflow-prompts-4m5o</guid>
      <description>&lt;p&gt;My WooCommerce store looked like 2019. A dark header, colours nobody remembered choosing, leftover demo content from the theme, and a shop that showed the newest products first instead of the ones people buy.&lt;/p&gt;

&lt;p&gt;I knew roughly what a WordPress designer would charge to fix it: at least $2,500, and a few weeks of back-and-forth.&lt;/p&gt;

&lt;p&gt;So I tried something else. I opened Claude Code (Opus 5.5) in my terminal, connected it to the Claude-in-Chrome extension, and let it work on the live site from my logged-in browser. I had no staging site. Everything happened in production, one approved change at a time.&lt;/p&gt;

&lt;p&gt;Two weeks later it had made 108 changes, every one of them logged with a way to undo it. My own time added up to about 10 hours, mostly reading its proposals and saying yes or no. New spend: $0. I already pay for Claude for coding work, and if you build things for a living you probably have Claude Code or something like it too.&lt;/p&gt;

&lt;p&gt;This article is the workflow, step by step, with the prompts to copy, so you can do the same on your own WordPress or WooCommerce site. It also covers the four things that went wrong and what I'd do differently.&lt;/p&gt;




&lt;h2&gt;
  
  
  What you need
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Claude Code&lt;/strong&gt;, installed in your terminal, on a plan that includes it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Claude-in-Chrome extension&lt;/strong&gt;, installed in the Chrome profile where you're logged into WordPress. Start Claude Code with &lt;code&gt;claude --chrome&lt;/code&gt;, or type &lt;code&gt;/chrome&lt;/code&gt; inside a session to connect it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An admin login&lt;/strong&gt; to your WordPress site, already signed in in that Chrome profile. Claude works through your session, so you never paste a password into the chat.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Code Snippets plugin&lt;/strong&gt; (free). Small PHP changes go in here as named snippets you can switch off with one click, instead of edits to &lt;code&gt;functions.php&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An empty folder on your computer&lt;/strong&gt; for the project. Claude keeps its notes, backups, scripts and changelog here.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A full backup of the site&lt;/strong&gt;, from your host or a backup plugin, before you start. Also export your theme's options if it has an export button.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No staging server, no FTP, no new paid plugins.&lt;/p&gt;

&lt;h3&gt;
  
  
  Adapting this to your site
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Blog or content site, no shop?&lt;/strong&gt; Skip steps 5, 6 and 8.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Elementor, Divi or another builder?&lt;/strong&gt; Same workflow. Tell Claude to build with that builder's own widgets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No heatmap tool yet?&lt;/strong&gt; Install Microsoft Clarity (free) a week or two before you start, so step 7 has data to read.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Step 0: Write the ground rules first
&lt;/h2&gt;

&lt;p&gt;This is the step that made the rest safe. Before Claude touched anything, I gave it rules and asked it to save them in its memory so they'd survive between sessions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;We're redesigning my live WordPress + WooCommerce site at &amp;lt;your URL&amp;gt;.
There is no staging site, so these rules apply to every change:

1. Never change anything without showing me the plan first and getting a yes.
2. Before each change, save a backup of the exact old value (to a local
   file or a custom field on the post).
3. After each change, reload the page logged out and confirm it worked.
4. Log every change in notes/changelog.md: what, where, and how to undo it.
5. Build pages with my theme's own builder elements, not custom HTML,
   so I can still edit them myself later.
6. Work in small phases. Never batch-edit many products in one go
   without testing on one first.

Save these rules to memory.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Rule 5 is about after the project. A page made of custom HTML looks great until you want to change a headline and have to open the code. Pages built from the theme's own elements look slightly less custom, but you can maintain them yourself.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 1: Audit everything, change nothing
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Audit my whole site. Use the browser to visit the homepage, shop,
3 product pages, cart, checkout, the docs or blog, and 404s from the
sitemap. Check:
- broken links and broken images
- typos and broken characters
- SEO basics: titles, meta descriptions, alt text, H1s
- page speed and what's slowing it down
- anything that looks broken or outdated
- leftover demo content from the theme

Don't change anything. Write the findings to notes/01-audit.md,
sorted by how much they hurt sales or trust.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Things it's likely to find on any site that's a few years old:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Theme demo leftovers:&lt;/strong&gt; a demo logo, a sample phone number at checkout, placeholder text in a footer or popup. On mine, a broken demo logo was showing on more than 200 documentation pages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Emoji that turned into "?"&lt;/strong&gt; after a database or hosting migration, in headings, product descriptions and even button labels.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;404 links&lt;/strong&gt; in old posts and docs, pointing at pages you deleted or renamed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No page cache&lt;/strong&gt; and a slow server response.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Empty meta descriptions&lt;/strong&gt; on pages that get traffic.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of this is hard to find. Most of us have just never sat down and looked.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 2: Turn the audit into phases
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Turn the audit into a phased plan. Phase 1: safe fixes (typos, broken
links, demo leftovers). Phase 2: global design (logo, header, fonts,
colours, footer). Phase 3: key pages. Phase 4: shop and checkout.
For each item, say what changes, where, and the risk. Save it to
notes/04-phased-plan.md.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Phases keep your review sessions short. You start with low-risk changes and get used to the approve-check-log routine before anything big happens.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 3: Global design (logo, header, fonts, footer)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Propose a new look: a simple text logo + favicon, a white header,
two Google fonts (one for headings, one for body), and a colour
palette with one main colour. Show me a before/after screenshot of
a product page and a doc page before applying anything. Then apply
it through the theme's global options, one group at a time.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Claude wrote a small script that drew the logo as SVG and exported PNGs and a favicon in every size. It uploaded them, set them in the theme options, then changed the header, fonts, colours and footer.&lt;/p&gt;

&lt;p&gt;For each group of settings it logged the old value next to the new one, so any of them can go back in a minute.&lt;/p&gt;

&lt;p&gt;In page-builder themes, a single palette colour often controls every border and divider on the site. Change it for one purpose and lines change colour everywhere. &lt;strong&gt;Before changing a global colour, ask Claude to list every option that uses it.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 4: Rebuild the pages that matter, as drafts first
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Build a new homepage as a DRAFT page, not public. Use only the
theme's builder elements. Sections: hero with one clear action,
best-selling products, proof (real numbers + real reviews), latest
videos, FAQ, closing call to action. Use only facts from my site.
Send me the preview link. Don't switch the front page until I say so.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The draft-first habit means the live page is never half-built. When I approved it, Claude switched the front page setting and left the old homepage published, so rolling back is one dropdown.&lt;/p&gt;

&lt;p&gt;Two pages worth doing next:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A reviews page from real reviews.&lt;/strong&gt; If you sell on a marketplace or have Google or Trustpilot reviews, have Claude read them and pull the best ones word for word, with the reviewer's name and the product. Real quotes beat any testimonial you'd write yourself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The page your traffic lands on.&lt;/strong&gt; It's often not your homepage. Step 7 shows how to find it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 5: Product images from one template
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Create a consistent product image for every product: 1200×1200, same
layout, product icon, one short benefit line. Write it as a script so
I can change the design once and rebuild all of them. Show me 3
samples first. Then upload them, set alt text = product name, and set
each as the featured image AND as the image of every variation.
Save a backup of the old image IDs first.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The "AND every variation" part catches a common WooCommerce bug. On variable products, each variation can hold its own copy of the old image, and that copy overrides the new featured image on the product page. Ask Claude to check the shop logged out afterwards to confirm only the new images show.&lt;/p&gt;

&lt;p&gt;Because the images come from a script, design changes later take minutes: drop a line of text, add a label, rebuild, re-upload.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 6: Fix the shop (where the money is)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Review /shop/ for conversion problems. Check sort order against real
sales data, products per page, how prices are shown, buttons, badges,
filters, and anything covering the content. Compare what the shop
shows first with what actually sells. Don't change anything; list
the findings with the fix for each.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Before switching my shop to "best sellers first," Claude checked the sales counters against WooCommerce Analytics and found three corrupted ones. Two products claimed &lt;strong&gt;9,223,372,036,854,775,807 sales&lt;/strong&gt; each. That's the largest number a 64-bit integer can hold, and those two products would have sat at the top of every popularity sort. &lt;strong&gt;Check your counters before you sort by them.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The usual shop fixes to ask for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sort by real popularity, and show all products on one page if you have fewer than 30 or so, so best sellers don't hide on page 2.&lt;/li&gt;
&lt;li&gt;Filter tabs above the grid, by the categories buyers think in.&lt;/li&gt;
&lt;li&gt;A "sold" count under the price, only past a threshold that looks credible.&lt;/li&gt;
&lt;li&gt;The real saving ("Save 15%") instead of a generic "Sale!" badge, and "From $49" instead of a price range.&lt;/li&gt;
&lt;li&gt;Hidden products you forgot about. Bundles are a common one.&lt;/li&gt;
&lt;li&gt;In the cart, cross-sells below the totals, so "Proceed to checkout" isn't pushed off the screen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ask for each one as a small named snippet you can switch off on its own.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 7: Read your heatmaps with it
&lt;/h2&gt;

&lt;p&gt;If you run Microsoft Clarity, Hotjar or similar, let Claude read it in the browser.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Open my Clarity dashboard for the last 30 days. Report the top entry
pages, dead clicks, rage clicks, popup clicks, JavaScript errors and
the performance score. Then open heatmaps for the top 5 entry pages
and the shop. For each page: what visitors try to do, and what stops
them. Also pull last 30 days of orders and revenue from WooCommerce
as a baseline. Don't change anything.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Patterns to look for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Your top landing page.&lt;/strong&gt; Check whether it does its job. Mine was a page I hadn't touched in years, getting more visits than the homepage, with almost nothing on it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Popups taking clicks.&lt;/strong&gt; On my shop, about a third of all clicks were people closing popups. I turned the discount popup off the same day.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Archive and tag pages that rank but look broken.&lt;/strong&gt; Google sends people there, and nobody checks them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dead clicks&lt;/strong&gt; on text people expect to be a link.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Write down your last 30 days of orders and revenue before you change anything, so you can tell what worked.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 8: Checkout, and the parts you do yourself
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Walk through the purchase flow as a customer: product page, add to
cart, cart, checkout. Don't place an order. Count the steps and the
required fields, and flag anything that slows down a buyer of a
digital product.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Count the steps and the required fields. Many themes split checkout into several tabs, and digital products rarely need a street address or phone number. Mine had a multi-step checkout, and the fix was one theme setting, which I changed myself. Some changes touch payments, so I'd rather click those myself. Let Claude find the problem and tell you exactly which setting to change.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 9: SEO cleanup
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Fix the SEO basics found in the audit: missing meta descriptions on
key pages, missing alt text on product images, broken internal links,
and typos. Use my SEO plugin's fields. Back up each old value. Verify
on the logged-out page source.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mostly unexciting work, and exactly the kind that a designer bills by the hour and you never get round to.&lt;/p&gt;




&lt;h2&gt;
  
  
  What went wrong
&lt;/h2&gt;

&lt;p&gt;Four incidents in 108 changes. Every one was fixed the same day, and every one became a new rule.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. It saved rendered HTML over a product description.&lt;/strong&gt; Reading a product through one API endpoint returns the page as it displays, not the editable builder content. Claude saved that back, and for a few minutes one product's description was static HTML. Its own check (saved length didn't match the plan) caught it, and it restored from the backup. &lt;strong&gt;Rule: always read and write the raw content.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Saving the widget list shuffled the footer.&lt;/strong&gt; Sending the full "inactive widgets" list made WordPress reassign widgets, and for a few minutes the footer showed the wrong widgets. &lt;strong&gt;Rule: assign widgets to one target area at a time.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. I deleted live images myself.&lt;/strong&gt; While cleaning the media library I deleted images that were still in use. Because the image script and a map of product IDs were saved locally, Claude re-uploaded and re-assigned them the same day.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Editing in the builder after Claude edits.&lt;/strong&gt; When I edited the homepage in the visual builder, it re-saved every element with all its default settings, so Claude's local copy no longer matched. &lt;strong&gt;Rule: Claude always reads the live page before editing it, never its own old copy.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What to plan separately
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Page caching.&lt;/strong&gt; If your store shows different prices by country or customer, full-page caching needs a proper plan, not a quick fix.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Social share images&lt;/strong&gt; (OG images). Worth a separate pass.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content-level fixes&lt;/strong&gt; like pages with two H1 headings. Claude can list them; some are faster to fix by hand.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Payment settings.&lt;/strong&gt; Change those yourself.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The bill
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Designer&lt;/th&gt;
&lt;th&gt;This workflow&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cost&lt;/td&gt;
&lt;td&gt;$2,500+&lt;/td&gt;
&lt;td&gt;$0 new spend&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;My time&lt;/td&gt;
&lt;td&gt;Briefs, calls, reviews&lt;/td&gt;
&lt;td&gt;~10 hours of reviewing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Calendar time&lt;/td&gt;
&lt;td&gt;A few weeks&lt;/td&gt;
&lt;td&gt;2 weeks, in short sessions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Changes logged with undo steps&lt;/td&gt;
&lt;td&gt;Not usually part of the job&lt;/td&gt;
&lt;td&gt;108 of 108&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Can I edit the pages myself?&lt;/td&gt;
&lt;td&gt;Depends on the designer&lt;/td&gt;
&lt;td&gt;Yes, by rule&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A good designer brings taste and judgement, and I still made every design call myself. What Claude added was patience. It wrote down the old value before every one of those 108 changes.&lt;/p&gt;




&lt;h2&gt;
  
  
  The rules I'd follow again
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Rules before work.&lt;/strong&gt; Write the ground rules on day one and make Claude save them to memory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Audit, then plan, then change.&lt;/strong&gt; Make the first two prompts read-only. You'll fix the right things in the right order.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Drafts for pages, one-product tests for bulk edits.&lt;/strong&gt; Never let the first attempt be the live one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Data before design.&lt;/strong&gt; The broken sales counters and my neglected top landing page were both in my own data. No redesign would have found them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Follow the undo rule.&lt;/strong&gt; More on it below.&lt;/p&gt;




&lt;h2&gt;
  
  
  The undo rule
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;If Claude can't tell you how to undo a change, it doesn't make the change.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Every entry in my changelog has three parts: what changed, where, and how to undo it. Some undo steps are "restore the previous revision." Some are "deactivate this snippet." Some are "set this option back to the old hex colour."&lt;/p&gt;

&lt;p&gt;When the description incident happened, nobody had to work out what the old content was. The backup was in a custom field on the product, saved seconds before the edit. When I deleted live images, the mapping of image to product was in a local file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Three questions before any change on a live site
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;What's the exact old value, and where is it saved?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How will we check it worked, logged out?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If it's wrong, how many clicks to undo it?&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If the answer to the third is "a lot," make it a draft or a snippet first.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sort your changes by risk
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Safe to approve quickly&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Typos, broken links, alt text, meta descriptions. One revision each, easy to restore.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Approve after a preview&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;New pages (built as drafts), global colours and fonts, shop layout snippets.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Do these yourself, or watch closely&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Checkout and payment settings, bulk edits across many products, anything that deletes.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Where to start
&lt;/h2&gt;

&lt;p&gt;Run Step 0 and Step 1 this week, and nothing else. The audit changes nothing on your site, costs you an hour, and gives you a list you can hand to anyone, whether that's Claude, a designer, or yourself on a free Saturday.&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>ai</category>
      <category>webdev</category>
      <category>claude</category>
    </item>
    <item>
      <title>I Replaced Our $647/Month SaaS Stack With Open Source. We Saved $8.</title>
      <dc:creator>Nikhil Agrawal</dc:creator>
      <pubDate>Sat, 19 Sep 2026 06:16:57 +0000</pubDate>
      <link>https://dev.to/heynikhila/i-replaced-our-647month-saas-stack-with-open-source-we-saved-8-4lpc</link>
      <guid>https://dev.to/heynikhila/i-replaced-our-647month-saas-stack-with-open-source-we-saved-8-4lpc</guid>
      <description>&lt;p&gt;&lt;em&gt;The software was free. The servers were cheap. I was the expensive part.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Eleven SaaS subscriptions for a five-person team came to &lt;strong&gt;$647 a month&lt;/strong&gt;. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Every one has a free, open-source alternative, so we tried to &lt;strong&gt;replace&lt;/strong&gt; them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The cash &lt;strong&gt;bill fell 40%&lt;/strong&gt; . &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;But servers, backups, email delivery and AI API usage add $86 &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;And about 5 hours of maintenance a month at $50 an hour eats the rest.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The 3am rule: if a tool breaking at 3 am would wake you up, pay someone else to be awake. Self-host docs, chat and automations; pay for logins, passwords, payments and email delivery.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;It started with a renewal email.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nothing dramatic. Just Loom, reminding me that five seats would renew next week. I opened a spreadsheet to check what else was coming up, and an hour later I was staring at a number I didn't like.&lt;/p&gt;

&lt;p&gt;Eleven subscriptions. &lt;strong&gt;$647 a month.&lt;/strong&gt; For a team of five.&lt;/p&gt;

&lt;p&gt;Every one of those tools has a &lt;strong&gt;free, open-source version&lt;/strong&gt;. Most of them have &lt;strong&gt;tens of thousands of stars&lt;/strong&gt; on GitHub and a README that says "self-host in 5 minutes."&lt;/p&gt;

&lt;p&gt;So I did what any reasonable founder does on a Sunday night. I decided to replace all of them.&lt;/p&gt;

&lt;p&gt;This is what happened over the next three months. &lt;/p&gt;

&lt;p&gt;The real bill, the real hours, and the one tool I switched back to after five weeks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$647&lt;/strong&gt; a month, before — Eleven SaaS subscriptions for five people, before any of this started.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$8&lt;/strong&gt; a month, really saved — What the switch actually saved once servers, email and my own hours were counted.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The stack I was paying for
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;What we used it for&lt;/th&gt;
&lt;th&gt;Monthly cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://shortlisted.tools/alternatives/ahrefs" rel="noopener noreferrer"&gt;Ahrefs&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;SEO and keyword research&lt;/td&gt;
&lt;td&gt;$129&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ChatGPT (5 seats)&lt;/td&gt;
&lt;td&gt;Writing, research, everything&lt;/td&gt;
&lt;td&gt;$100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Loom&lt;/td&gt;
&lt;td&gt;Screen recordings for clients and each other&lt;/td&gt;
&lt;td&gt;$75&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auth0&lt;/td&gt;
&lt;td&gt;Logins for our app&lt;/td&gt;
&lt;td&gt;$70&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Canva Business (3 seats)&lt;/td&gt;
&lt;td&gt;Social graphics, decks&lt;/td&gt;
&lt;td&gt;$63&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Notion&lt;/td&gt;
&lt;td&gt;Docs, wiki, project notes&lt;/td&gt;
&lt;td&gt;$50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Crisp&lt;/td&gt;
&lt;td&gt;Live chat on our website&lt;/td&gt;
&lt;td&gt;$45&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zapier&lt;/td&gt;
&lt;td&gt;Automations between everything&lt;/td&gt;
&lt;td&gt;$39&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Slack&lt;/td&gt;
&lt;td&gt;Team chat&lt;/td&gt;
&lt;td&gt;$36&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Calendly&lt;/td&gt;
&lt;td&gt;Sales calls&lt;/td&gt;
&lt;td&gt;$20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1Password&lt;/td&gt;
&lt;td&gt;Passwords&lt;/td&gt;
&lt;td&gt;$20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$647/month ($7,764/year)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Nothing on that list is outrageous. That's the problem. Nobody ever decides to spend $7,700 a year on software. It just happens, $36 at a time.&lt;/p&gt;

&lt;h2&gt;
  
  
  The spreadsheet everyone makes
&lt;/h2&gt;

&lt;p&gt;If you've ever googled "open source alternative to Notion," you've seen this math:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Paid tool&lt;/th&gt;
&lt;th&gt;Open-source swap&lt;/th&gt;
&lt;th&gt;New cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Notion&lt;/td&gt;
&lt;td&gt;AppFlowy&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Slack&lt;/td&gt;
&lt;td&gt;Mattermost&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Crisp&lt;/td&gt;
&lt;td&gt;Chatwoot&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zapier&lt;/td&gt;
&lt;td&gt;n8n&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Calendly&lt;/td&gt;
&lt;td&gt;Cal.com&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Loom&lt;/td&gt;
&lt;td&gt;Screenity / OBS&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ChatGPT&lt;/td&gt;
&lt;td&gt;Open WebUI&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Canva&lt;/td&gt;
&lt;td&gt;Penpot&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auth0&lt;/td&gt;
&lt;td&gt;Keycloak&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ahrefs&lt;/td&gt;
&lt;td&gt;OpenSEO&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Look at that column. Zero, zero, zero. A 100% saving. I felt like I'd found a glitch in the matrix.&lt;/p&gt;

&lt;p&gt;I had not found a glitch in the matrix.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I picked the replacements
&lt;/h2&gt;

&lt;p&gt;Quick note on this, because it saved me from one mistake early.&lt;/p&gt;

&lt;p&gt;There are dozens of "open-source alternatives to X" lists, and most of them are sorted by GitHub stars. Stars tell you a project &lt;em&gt;was&lt;/em&gt; popular. They don't tell you it's still alive.&lt;/p&gt;

&lt;p&gt;I ended up using the &lt;a href="https://shortlisted.tools/alternatives" rel="noopener noreferrer"&gt;alternatives pages&lt;/a&gt; on this site, mostly because they show when each project was last updated right next to it. That's how I noticed that two of the five &lt;a href="https://shortlisted.tools/alternatives/loom" rel="noopener noreferrer"&gt;Loom alternatives&lt;/a&gt; on the list hadn't had a code update since November 2024. Both still show up in plenty of "best Loom alternatives" articles.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Before you install anything, check the last update date, not the star count. A project with 20,000 stars and no commits in eighteen months is a project you will be maintaining yourself.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What happened, tool by tool
&lt;/h2&gt;

&lt;p&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%2F5cu2fwce447w57qh8m5r.png" 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%2F5cu2fwce447w57qh8m5r.png" alt="How close each open-source replacement got, scored out of 10, and what we did about it" width="800" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I gave each swap a "how close did it get" score out of 10. Not a lab test. Just: after a month of real use, how much did we miss the paid version?&lt;/p&gt;

&lt;h3&gt;
  
  
  Notion → AppFlowy
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How close: 7/10 · Setup: 9 hours&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The writing experience is genuinely good. It feels like Notion, which is the whole point. Pages came across from Notion's export fine.&lt;/p&gt;

&lt;p&gt;Linked databases did not. Anything with relations between tables had to be rebuilt by hand, which is where most of the 9 hours went. If your Notion is mostly docs, this is an easy switch. If it's a web of connected databases, budget a weekend.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict: switched, stayed.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Zapier → n8n
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How close: 9/10 · Setup: 8 hours&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The surprise of the whole project. Rebuilding our 23 Zaps took a full day, but n8n is honestly &lt;em&gt;better&lt;/em&gt; for anything with more than three steps. You can see the data moving through each step, and there's no task counter ticking up in the corner making you nervous.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict: switched, and I'd never go back.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Crisp → Chatwoot
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How close: 8/10 · Setup: 7 hours&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The chat widget, shared inbox, and canned replies all work well. Our support person barely noticed the change.&lt;/p&gt;

&lt;p&gt;Two catches. First, Chatwoot is hungry. It wanted more memory than everything else combined, so it ended up on its own server. Second, getting email replies to flow into the inbox took an evening of fiddling with settings I'd never touched before.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict: switched, stayed.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Calendly → Cal.com
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How close: 9/10 · Setup: 3 hours&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Booking links, calendar sync and reminders all worked on the first try. The easiest swap on the list.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict: switched, stayed.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ChatGPT → Open WebUI (with an API key)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How close: 8/10 for chat · Setup: 3 hours&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open WebUI gives you a ChatGPT-style interface, and you pay per use through an API key instead of per seat. For the three people on our team who use AI a few times a day, it was perfect. Their combined usage cost about $30 a month.&lt;/p&gt;

&lt;p&gt;For the two heavy users, it wasn't. They missed voice mode, memory, and the polish of the real app. And they burned through API credit fast.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict: half and half. Three people switched, two kept their seats.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Loom → Screenity and OBS
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How close: 6/10 · Setup: 1 hour&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Recording is 90% there. The missing 10% is the part that matters with clients: sending a link instantly and seeing that they watched it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict: switched for internal videos, kept one Loom seat for sales.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Canva → Penpot
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How close: 3/10 · Setup: 2 hours&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This one isn't Penpot's fault. Penpot is a great open-source design tool, much closer to &lt;a href="https://shortlisted.tools/alternatives/figma" rel="noopener noreferrer"&gt;Figma&lt;/a&gt; than to Canva.&lt;/p&gt;

&lt;p&gt;But nobody on our team uses Canva for &lt;em&gt;design&lt;/em&gt;. They use it for &lt;em&gt;templates&lt;/em&gt;. Thousands of ready-made Instagram posts, decks, and thumbnails. That library is the product, and there's no open-source version of it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict: kept Canva.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Ahrefs → OpenSEO
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How close: 2/10 · Setup: 1 hour&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Same story, bigger gap. You pay Ahrefs for a constantly updated map of the internet's links and keywords. You can't install that on a $19 server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict: kept Ahrefs.&lt;/strong&gt; (I cancelled the OpenSEO experiment in under an hour.)&lt;/p&gt;

&lt;h3&gt;
  
  
  Auth0 → nothing at all
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How close: 10/10 · Setup: 0 hours&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I had Keycloak half-installed when I went back to Auth0's pricing page to check what exactly I was saving. Their free plan now covers up to 25,000 monthly active users. We have nowhere near that.&lt;/p&gt;

&lt;p&gt;I downgraded to free in two minutes and uninstalled Keycloak.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; A full $70 of my monthly savings came from reading a pricing page. Before you self-host anything, check whether the free tier quietly got bigger since you signed up.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  1Password → didn't even try
&lt;/h3&gt;

&lt;p&gt;Password managers are the one thing where I want someone else to be awake at 3am. More on that below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict: kept.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The one I switched back: Slack → Mattermost
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;How close: 8/10 · Setup: 6 hours · Lasted: 5 weeks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mattermost itself was great. Fast, familiar, did everything Slack did for our internal chat.&lt;/p&gt;

&lt;p&gt;The problem wasn't the software. It was everybody else.&lt;/p&gt;

&lt;p&gt;Two of our clients talked to us through shared Slack channels. Our contractors were in Slack for their other clients. A couple of founder communities I rely on live in Slack. So instead of replacing Slack, I'd added a second chat app, and half my team was now checking both.&lt;/p&gt;

&lt;p&gt;After five weeks, we moved back. $36 a month to not have that conversation again felt like a bargain.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Watch out:&lt;/strong&gt; Slack's value to us was the network, not the app. You can copy the software. You can't copy the network.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What the servers cost
&lt;/h2&gt;

&lt;p&gt;What "free" cost to run every month:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Hidden cost&lt;/th&gt;
&lt;th&gt;Monthly&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Main server (Hetzner, 16 GB RAM)&lt;/td&gt;
&lt;td&gt;$19&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Second server, just for Chatwoot&lt;/td&gt;
&lt;td&gt;$10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Automatic backups&lt;/td&gt;
&lt;td&gt;$6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File storage for uploads&lt;/td&gt;
&lt;td&gt;$6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Email sending service (you can't self-host email delivery reliably)&lt;/td&gt;
&lt;td&gt;$15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI API usage for the three Open WebUI users&lt;/td&gt;
&lt;td&gt;$30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$86/month&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;And the SaaS I still paid for after all the switching and switching back:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Still paying&lt;/th&gt;
&lt;th&gt;Monthly&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Ahrefs&lt;/td&gt;
&lt;td&gt;$129&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Canva&lt;/td&gt;
&lt;td&gt;$63&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ChatGPT (2 seats)&lt;/td&gt;
&lt;td&gt;$40&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Slack&lt;/td&gt;
&lt;td&gt;$36&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1Password&lt;/td&gt;
&lt;td&gt;$20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Loom (1 seat)&lt;/td&gt;
&lt;td&gt;$15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auth0&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$303/month&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;New monthly bill: $389. Down from $647.&lt;/strong&gt; That's $258 a month, or about $3,100 a year. A 40% saving.&lt;/p&gt;

&lt;p&gt;A real saving, but not the 100% the spreadsheet promised. And we're not done.&lt;/p&gt;

&lt;h2&gt;
  
  
  Now add the most expensive item: me
&lt;/h2&gt;

&lt;p&gt;I kept a rough log of every hour I spent keeping this stuff running.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Setup across all tools: 40 hours&lt;/strong&gt; (spread over three weekends)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ongoing maintenance: about 5 hours a month.&lt;/strong&gt; Updates, checking backups actually restore, and two small fires: Chatwoot running out of memory one Tuesday, and an update that broke our n8n webhooks for half a day.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's be generous and value my time at $50 an hour. (If you're a founder, your time is probably worth more. If you're a developer billing clients, definitely more.)&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Monthly&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cash saved&lt;/td&gt;
&lt;td&gt;$258&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;My maintenance time (5 hrs × $50)&lt;/td&gt;
&lt;td&gt;−$250&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Real saving&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$8&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Eight dollars a month.&lt;/strong&gt; And that's before counting the 40 hours of setup, which at $50 an hour is $2,000 I will never earn back at $8 a month.&lt;/p&gt;

&lt;p&gt;The server costs $19. I cost $250.&lt;/p&gt;

&lt;p&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%2Fdicqe52mzk1r777t0zj1.png" 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%2Fdicqe52mzk1r777t0zj1.png" alt="Waterfall chart: $647 of SaaS, minus $344 cancelled, plus $86 of servers and services, plus $250 of maintenance time, equals $639, a real saving of $8 a month" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  So was it a waste? Not quite.
&lt;/h2&gt;

&lt;p&gt;Look at &lt;em&gt;which&lt;/em&gt; tools saved money: Notion, Calendly, Loom, ChatGPT. They all charge &lt;strong&gt;per person&lt;/strong&gt;. Every time you hire someone, the bill grows.&lt;/p&gt;

&lt;p&gt;My server doesn't care how many people use it. Maintenance takes roughly the same 5 hours whether there are 5 of us or 20.&lt;/p&gt;

&lt;p&gt;So I ran the numbers for the same setup at 20 people:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Team size&lt;/th&gt;
&lt;th&gt;SaaS bills removed&lt;/th&gt;
&lt;th&gt;Servers + API cost&lt;/th&gt;
&lt;th&gt;My time&lt;/th&gt;
&lt;th&gt;Real saving&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;5 people&lt;/td&gt;
&lt;td&gt;$344&lt;/td&gt;
&lt;td&gt;$86&lt;/td&gt;
&lt;td&gt;$250&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$8/month&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;20 people&lt;/td&gt;
&lt;td&gt;$923&lt;/td&gt;
&lt;td&gt;$161&lt;/td&gt;
&lt;td&gt;$300&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;~$460/month&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&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%2F1ofpzfz88101ed7ecbfr.png" 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%2F1ofpzfz88101ed7ecbfr.png" alt="Two cards comparing the real monthly saving for a team of 5 ($8) and a team of 20 ($460) with the same open-source setup" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At 5 people, self-hosting is a hobby. At 20, it's about $5,500 a year back in your pocket.&lt;/p&gt;

&lt;p&gt;Same tools, same servers, same five hours a month. The only thing that changed is headcount.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rules I'd follow if I did it again
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Self-host tools that charge per seat.&lt;/strong&gt;&lt;br&gt;
Docs, wikis, scheduling, internal chat, automations. The bill grows with your team, the maintenance doesn't.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Don't self-host anything where the data is the product.&lt;/strong&gt;&lt;br&gt;
Ahrefs' link data. Canva's template library. You're paying for years of someone else's work, and it doesn't come with the code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Don't self-host networks.&lt;/strong&gt;&lt;br&gt;
If your clients, contractors, or community are already there, switching means asking all of them to switch too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Read the free tier before you do anything.&lt;/strong&gt;&lt;br&gt;
Auth0 saved me $70 without me installing a single thing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Pass the 3am rule.&lt;/strong&gt;&lt;br&gt;
It gets its own section below.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 3am rule
&lt;/h2&gt;

&lt;p&gt;One rule came out of all this, and I now apply it to every tool:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;If this tool breaking at 3am would wake you up, pay someone else to be awake.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;One Tuesday night, Chatwoot ran out of memory and quietly died. Our live chat was down for about six hours. I found out at breakfast.&lt;/p&gt;

&lt;p&gt;And... nothing happened. The chat bubble didn't load, a couple of visitors emailed us instead, and that was it. No lost sales. No angry customers. I restarted it, gave the server more memory, and went on with my day.&lt;/p&gt;

&lt;p&gt;Then I thought about Keycloak, the login system I almost installed instead of staying on Auth0. If &lt;em&gt;that&lt;/em&gt; had died at 3am, none of our customers could log in. Support emails would pile up overnight. Some of those people would cancel. And the only person who could fix it was asleep.&lt;/p&gt;

&lt;p&gt;A SaaS fee buys a team of people whose job is to be awake when it breaks. For some tools that's a waste of money. For others it's the whole point.&lt;/p&gt;

&lt;h3&gt;
  
  
  The three questions
&lt;/h3&gt;

&lt;p&gt;Before self-hosting anything, I now ask:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;If it's down, can customers still log in, pay us, or reach us?&lt;/strong&gt; If no, don't self-host it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;If it's down for 8 hours while I sleep, what does it cost?&lt;/strong&gt; "Some annoyed teammates in the morning" is fine. "Lost revenue" is not.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;If the data disappears, can we recreate it?&lt;/strong&gt; A lost wiki page is annoying. A lost password vault is a catastrophe.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  How our stack scored
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;😴 Sleep through it (self-host is fine)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Notion → AppFlowy.&lt;/strong&gt; If the wiki is down, the team waits until morning.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crisp → Chatwoot.&lt;/strong&gt; Proven the hard way. Visitors email you instead.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Calendly → Cal.com.&lt;/strong&gt; Worst case, someone books a call tomorrow instead of tonight.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Loom → Screenity.&lt;/strong&gt; Nobody records videos at 3am.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;⏰ Might wake you (self-host, but add an alarm)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zapier → n8n.&lt;/strong&gt; When our webhooks broke, it happened at 2pm and I noticed by luck. Now n8n messages me the moment a workflow fails. If you self-host automations, set this up on day one.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🚨 Will wake you (pay someone)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Auth0.&lt;/strong&gt; Nobody logs in, nobody uses your product.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1Password.&lt;/strong&gt; Lose it and you lose access to everything else.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Email delivery.&lt;/strong&gt; If password resets and receipts stop arriving, you won't know until customers tell you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Payments.&lt;/strong&gt; Never. Not even a little bit.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  "Pay someone" doesn't mean "give up on open source"
&lt;/h3&gt;

&lt;p&gt;This was the part I got wrong at first. The 3am rule sorts tools by who gets woken up, not by licence: &lt;em&gt;self-hosted&lt;/em&gt; against &lt;em&gt;someone else's problem&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;A lot of open-source tools sell their own hosted version. Bitwarden, Cal.com, and plenty of others run the servers for you. You still get open code you can take with you if they ever raise prices or shut down, but when it breaks at 3am, it's their engineer's phone that rings, not yours.&lt;/p&gt;

&lt;p&gt;For the tools that fail the 3am rule, that's usually the best of both worlds.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I tell people now
&lt;/h2&gt;

&lt;p&gt;When a founder friend asks me "should I switch to open source to save money?", I don't say yes or no anymore. I ask two questions:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How many people are on your team?&lt;/strong&gt; Under 10, the savings are mostly imaginary once you count your time. Over 15, they're real.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do you enjoy this?&lt;/strong&gt; Because I kind of did. I learned more about how our tools work in three months than in the previous three years. That's worth something. It's just not worth $647 a month.&lt;/p&gt;

&lt;p&gt;We turned a predictable monthly bill into unpredictable weekend work. For n8n and Cal.com that was a good trade. For the rest, I'm happy to keep paying.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to do next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Try it small.&lt;/strong&gt; Pick your two most expensive per-seat tools, swap only those, and log your hours for a month. The number at the end will tell you more than any article, including this one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pick replacements that are still alive.&lt;/strong&gt; Every round-up on the &lt;a href="https://shortlisted.tools/alternatives" rel="noopener noreferrer"&gt;alternatives index&lt;/a&gt; shows stars, licence and last update side by side, so you can rule out abandoned projects before you install anything.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Built something yourself?&lt;/strong&gt; Open source, self-hosted or plain SaaS, you can &lt;a href="https://shortlisted.tools/submit" rel="noopener noreferrer"&gt;list it here&lt;/a&gt;: we write the review, place it next to the tools it replaces, and the page is built to rank on Google and be cited by AI tools. Disclosure: Shortlisted is our site, and listing is paid.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Is self-hosting cheaper than SaaS?
&lt;/h3&gt;

&lt;p&gt;Only once you count your own time, and only above a certain team size. For our five-person team, cancelling $344 of SaaS cost $86 in servers, backups, email delivery and AI API usage, plus about five hours of maintenance a month. At $50 an hour that leaves $8. Run the same setup for 20 people and the saving is about $460 a month, because the tools we replaced charge per seat and the server does not.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the hidden costs of self-hosting?
&lt;/h3&gt;

&lt;p&gt;The server is the small part. Ours was $19 a month, plus $10 for a second one because Chatwoot needed its own memory. Then automatic backups ($6), object storage for uploads ($6), an email delivery service ($15, because you cannot reliably self-host deliverability) and AI API usage ($30). The biggest line is time: 40 hours of setup and about five hours a month afterwards, including two small outages.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which SaaS tools are worth replacing with open source?
&lt;/h3&gt;

&lt;p&gt;Tools that charge per seat and whose downtime is survivable: docs and wikis (Notion to AppFlowy), automations (Zapier to n8n), scheduling (Calendly to Cal.com) and support chat (Crisp to Chatwoot) all worked for us. Tools where the data is the product, like Ahrefs and Canva, are not worth it: you would be replacing the software but not the link index or the template library you actually pay for.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is it worth self-hosting for a small team?
&lt;/h3&gt;

&lt;p&gt;Under about ten people, the savings are mostly imaginary once you count maintenance time. Over fifteen, they are real, because per-seat SaaS bills grow with every hire while a server and its upkeep stay roughly flat. If you enjoy the work, a small team can still do it for the learning, but not for the money.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which tools should you never self-host?
&lt;/h3&gt;

&lt;p&gt;Anything that would wake you at 3am if it broke: logins (we stayed on Auth0), passwords (1Password), payments and email delivery. Your internal wiki being down for an hour will not sink the company; customers being unable to log in might. For those tools, the SaaS fee is paying for a team that is awake when it breaks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can you self-host Slack?
&lt;/h3&gt;

&lt;p&gt;Yes. Mattermost, Rocket.Chat and Zulip all replace Slack's software well, and Mattermost scored 8 out of 10 for us. The problem was not the software but the network: our clients, contractors and founder communities were still on Slack, so we ended up running two chat apps and switched back after five weeks.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I run &lt;a href="https://shortlisted.tools" rel="noopener noreferrer"&gt;Shortlisted&lt;/a&gt;, where these alternatives live. If you've built a tool of your own — open source, self-hosted, or SaaS — you can &lt;a href="https://shortlisted.tools/submit" rel="noopener noreferrer"&gt;submit it here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>selfhosted</category>
      <category>saas</category>
      <category>startup</category>
    </item>
    <item>
      <title>Switch to Laragon from XAMPP/WAMPP</title>
      <dc:creator>Nikhil Agrawal</dc:creator>
      <pubDate>Mon, 14 Aug 2023 06:25:15 +0000</pubDate>
      <link>https://dev.to/heynikhila/switch-to-laragon-from-xamppwampp-36al</link>
      <guid>https://dev.to/heynikhila/switch-to-laragon-from-xamppwampp-36al</guid>
      <description>&lt;p&gt;Laragon is gaining importance as it is portable, isolated, fast &amp;amp; powerful universal development environment for PHP.&lt;br&gt;
Instead of using XAMPP or WAMPP for local development in Windows, you can switch to Laragon.&lt;/p&gt;

&lt;p&gt;It is a blazing fast local development tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  what's Laragon?
&lt;/h2&gt;

&lt;p&gt;A Modern &amp;amp; Powerful local development tool packed with all "developer toolkit" you'll need for web development.&lt;/p&gt;

&lt;p&gt;Supported Languages: &lt;br&gt;
PHP, Node.js, Python, Java, Go, Ruby&lt;/p&gt;

&lt;p&gt;Supported Database: &lt;br&gt;
MySQL/MariaDB, PostgreSQL &amp;amp; MongoDB&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Un-rgiT_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/43dsqh986beojutkal52.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Un-rgiT_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/43dsqh986beojutkal52.jpg" alt="Image description" width="680" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here are top 9 features that make it most powerful...&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Blazing fast ⚡
&lt;/h2&gt;

&lt;p&gt;It uses only 4MB RAM when running far lesser compared to xampp, so doesn't hang &amp;amp; leave RAM for other apps.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Pretty URLs 🔗
&lt;/h2&gt;

&lt;p&gt;Tired of creating virtual hosts or using ugly urls like &lt;a href="http://localhost/app"&gt;http://localhost/app&lt;/a&gt;?&lt;/p&gt;

&lt;p&gt;Laragon automatically does it for you... &lt;br&gt;
a nice, short, beautiful URL like:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://app.test"&gt;http://app.test&lt;/a&gt;&lt;br&gt;
http://.test&lt;/p&gt;

&lt;p&gt;➡ no commands to run&lt;br&gt;
➡ no file changes required&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Inbuilt terminal 👩‍💻
&lt;/h2&gt;

&lt;p&gt;Laragon comes with powerful inbuilt terminals like cmder, Powershell &amp;amp; Bash.&lt;/p&gt;

&lt;p&gt;➡ Use the one you like&lt;br&gt;
➡ No need to include environment path&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Share local web apps to Internet 🔌
&lt;/h2&gt;

&lt;p&gt;Share local web app to colleagues/clients for quick demo with just 2 click&lt;/p&gt;

&lt;p&gt;➡ No command to run&lt;br&gt;
➡ Nothing to install&lt;br&gt;
➡ Uses ngrox to tunnel localhost to internet&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Quick App ✨
&lt;/h2&gt;

&lt;p&gt;Quickly install Laravel, Symphony, WordPress, Drupal &amp;amp; many others with 1 click.&lt;/p&gt;

&lt;p&gt;➡ Again - no need to run a command or refer docs&lt;br&gt;
➡ It does all the heavy lifting for you&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Install &amp;amp; quickly switch version of any language 🔀
&lt;/h2&gt;

&lt;p&gt;➡  Install different versions&lt;/p&gt;

&lt;p&gt;➡  Need to switch PHP/NodeJs/Python versions between different project?&lt;/p&gt;

&lt;p&gt;No worry, Just do it with one click&lt;/p&gt;

&lt;p&gt;➡ Automatically handles all environment gotchas for you!&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Mail Sender &amp;amp; Catcher 📨
&lt;/h2&gt;

&lt;p&gt;➡ Catch all outgoing emails to local&lt;br&gt;
➡ Send all outgoing emails from your email&lt;/p&gt;

&lt;p&gt;Best for local email development &amp;amp; testing&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Portable 💼
&lt;/h2&gt;

&lt;p&gt;You can move Laragon folder after installing without worrying:&lt;/p&gt;

&lt;p&gt;➡ to another disk/partition: C:\laragon to D:\laragon or E:\dev,…&lt;/p&gt;

&lt;p&gt;➡ to another computer&lt;/p&gt;

&lt;p&gt;➡ to USB&lt;/p&gt;

&lt;p&gt;➡ sync to Cloud (DropBox, OneDrive, Google Drive)&lt;/p&gt;

&lt;p&gt;Carry where you need!&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Free &amp;amp; Open-Source 😍
&lt;/h2&gt;

&lt;p&gt;Yes, devs love open source... so...&lt;/p&gt;

&lt;p&gt;➡ Laragon is free &amp;amp; Open source&lt;br&gt;
➡ Developed by Leo Khoa&lt;/p&gt;

&lt;p&gt;➡ With 27 contributors&lt;br&gt;
➡ 7+ years in development &amp;amp; continued&lt;/p&gt;

&lt;p&gt;All these features make it the world's most powerful...&lt;/p&gt;

&lt;p&gt;Also saves multiple hours every week!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>12 Very Helpful HTML attributes that can save Your Hours of coding</title>
      <dc:creator>Nikhil Agrawal</dc:creator>
      <pubDate>Mon, 12 Sep 2022 08:26:18 +0000</pubDate>
      <link>https://dev.to/heynikhila/12-very-helpful-html-attributes-that-can-save-your-hours-of-coding-1fce</link>
      <guid>https://dev.to/heynikhila/12-very-helpful-html-attributes-that-can-save-your-hours-of-coding-1fce</guid>
      <description>&lt;p&gt;There are 26.2 million Web Developers but not everyone uses this HTML attribute.&lt;br&gt;
Here are 12 Lesser-Known HTML attributes that you cannot miss&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Download attribute in ahref:
&lt;/h2&gt;

&lt;p&gt;➡ Easily allow users to download any asset on clicking a link&lt;/p&gt;

&lt;p&gt;➡ File specified in href attribute is downloaded&lt;/p&gt;

&lt;p&gt;➡ Optionally, specify new name of the file after it is downloaded&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KcAeFmVO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m2k3bifg38q757kvmr2a.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KcAeFmVO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m2k3bifg38q757kvmr2a.jpg" alt="Download attribute in ahref" width="680" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Input mode in input element:
&lt;/h2&gt;

&lt;p&gt;➡ hints browser about the type of data to be entered by the user&lt;/p&gt;

&lt;p&gt;➡ Display appropriate virtual keyboard&lt;/p&gt;

&lt;p&gt;➡ &amp;amp; appropriate keyboard in mobile devices&lt;/p&gt;

&lt;p&gt;➡ values: numeric, decimal, email, URL, tel&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Y7Eayz7Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tuj2qpqf8c3dt1e9mtjp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y7Eayz7Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tuj2qpqf8c3dt1e9mtjp.jpg" alt="Input mode in input element" width="680" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Loading attribute in img:
&lt;/h2&gt;

&lt;p&gt;➡ Lazy load or eager load images&lt;/p&gt;

&lt;p&gt;➡ Lazy loads defer loading of images until user scrolls near them&lt;/p&gt;

&lt;p&gt;➡ Lazy loading increases website performance&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0SMlDyXF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/asy37wctrenrf6llgy08.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0SMlDyXF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/asy37wctrenrf6llgy08.jpg" alt="Loading attribute in img" width="680" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Accept in file upload
&lt;/h2&gt;

&lt;p&gt;➡ File types that are allowed in upload&lt;/p&gt;

&lt;p&gt;➡ Possible values can be accepted mime-types or file extensions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--L_HSw5z7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1cdrc9fzqhiyda7e5ind.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--L_HSw5z7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1cdrc9fzqhiyda7e5ind.jpg" alt="Accept in file upload" width="680" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Autofocus form fields:
&lt;/h2&gt;

&lt;p&gt;➡  Focus an input element on page load&lt;/p&gt;

&lt;p&gt;➡  Useful to bring users' attention to a particular form fields&lt;/p&gt;

&lt;p&gt;➡ Can be used for tags like button, input, select, textarea&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3ytVfbqK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j2o5p7fgrgskar3fnqdp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3ytVfbqK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j2o5p7fgrgskar3fnqdp.jpg" alt="Autofocus form fields" width="680" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6. DNS-prefetch
&lt;/h2&gt;

&lt;p&gt;➡  Resolve domain names before resources get requested&lt;/p&gt;

&lt;p&gt;➡  increases website performance by reducing latency for DNS resolution&lt;/p&gt;

&lt;p&gt;➡  only used for cross-origin domains requests&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9LuQLZ51--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ysg1xmutkheuwfn1fu8q.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9LuQLZ51--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ysg1xmutkheuwfn1fu8q.jpg" alt="DNS-prefetch" width="680" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Custom Data Attributes
&lt;/h2&gt;

&lt;p&gt;➡  data-* allow additional information to be stored in HTML Dom&lt;/p&gt;

&lt;p&gt;➡  Custom data can be easily accessed using HTMLElement.dataset property.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dTwa3uVm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/abnyc2vep9tytclxjz0k.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dTwa3uVm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/abnyc2vep9tytclxjz0k.jpg" alt="Custom Data Attributes" width="680" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Autocomplete
&lt;/h2&gt;

&lt;p&gt;➡  Specifies whether the browser has permission to provide autocomplete field values based on history&lt;/p&gt;

&lt;p&gt;➡ Values: on/off&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--J5MdbLMl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/628x8g39lgv7vr3h52l9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--J5MdbLMl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/628x8g39lgv7vr3h52l9.jpg" alt="Autocomplete" width="680" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Tab Index:
&lt;/h2&gt;

&lt;p&gt;➡ Represents the tab order of the current element&lt;/p&gt;

&lt;p&gt;➡ Navigation proceeds from the lowest tabIndex to the highest tabIndex&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Defer:
&lt;/h2&gt;

&lt;p&gt;➡ Defers the script when the page has finished parsing&lt;/p&gt;

&lt;p&gt;➡ Defer attribute only has an effect on external scripts&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FyNoxVGR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a7cny4p5hwtmqlbivuq6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FyNoxVGR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a7cny4p5hwtmqlbivuq6.jpg" alt="Defer" width="680" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  11. Onerror:
&lt;/h2&gt;

&lt;p&gt;➡ Allows calling a javascript function if image loading fails&lt;/p&gt;

&lt;p&gt;➡ For example if the original is not loaded the load fallback image&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Q53P65Za--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9yohll3qwzexfhwxpgq5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Q53P65Za--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9yohll3qwzexfhwxpgq5.jpg" alt="Onerror" width="680" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  12. Display error if js disabled
&lt;/h2&gt;

&lt;p&gt;➡ Use noscript check to show an error if script execution is disabled.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jiBNBwHi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wlt12at7plo4gmf6pz2m.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jiBNBwHi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wlt12at7plo4gmf6pz2m.jpg" alt="Display error if js disabled" width="680" height="383"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Please like &amp;amp; Re-Share if you find this post helpful&lt;/p&gt;

&lt;p&gt;Connect me on &lt;a href="https://twitter.com/HeyNikhila"&gt;Twitter &lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>[Free &amp; open-source] Beautiful tailwindcss components 👇</title>
      <dc:creator>Nikhil Agrawal</dc:creator>
      <pubDate>Tue, 30 Aug 2022 07:45:14 +0000</pubDate>
      <link>https://dev.to/heynikhila/beautiful-tailwindcss-components-51ek</link>
      <guid>https://dev.to/heynikhila/beautiful-tailwindcss-components-51ek</guid>
      <description>&lt;p&gt;There are thousands of tailwind design components, but not all are good.&lt;/p&gt;

&lt;p&gt;Here are 7 beautiful 🤩 free &amp;amp; Open source tailwindcss components 👇&lt;/p&gt;

&lt;h2&gt;
  
  
  1.Flowbite:
&lt;/h2&gt;

&lt;p&gt;➡️ Almost all components as bootstrap&lt;br&gt;
➡️ Inbuilt Light/Dark mode&lt;br&gt;
➡️ Figma designs&lt;br&gt;
➡️ Integrates well with Vue, React, Laravel, Svelte, Django &amp;amp; more&lt;br&gt;
➡️ Pro version for complex components&lt;/p&gt;

&lt;p&gt;🔗 flowbite.com&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rDmksKFn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/guyz387x1pg0dwe8f2ss.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rDmksKFn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/guyz387x1pg0dwe8f2ss.jpg" alt="Flowbite" width="680" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Daisyui
&lt;/h2&gt;

&lt;p&gt;➡️ Most popular tailwind component &lt;br&gt;
➡️ 11K stars on github&lt;br&gt;
➡️ Beautifully designed&lt;br&gt;
➡️ Comes with theming options like Light, Dark, Cupcake, and 10 more 💅&lt;/p&gt;

&lt;p&gt;🔗 daisyui.com&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7lT4nwwU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/34ftze5oocf71pd7zol7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7lT4nwwU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/34ftze5oocf71pd7zol7.jpg" alt="Daisyui" width="680" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Kometa UI:
&lt;/h2&gt;

&lt;p&gt;➡️ 130 sections&lt;br&gt;
➡️ Available for HTML, VueJS, and React&lt;br&gt;
➡️ Beautifully designed&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bLhTKXqi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mxr49zs7hy880d2fk0ua.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bLhTKXqi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mxr49zs7hy880d2fk0ua.jpg" alt="Kometa UI" width="680" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://kitwind.io/products/kometa/"&gt;https://kitwind.io/products/kometa/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Tailwind Components:
&lt;/h2&gt;

&lt;p&gt;➡️ Collection of components by community&lt;br&gt;
➡️ 1000's free components&lt;br&gt;
➡️ Not only components but also pages like about us, contact us, coming soon available&lt;/p&gt;

&lt;p&gt;🔗 tailwindcomponents.com&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9lOZoa7S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ktkvbsznpjv4k4faptot.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9lOZoa7S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ktkvbsznpjv4k4faptot.jpg" alt="Tailwind Components" width="680" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Mambaui:
&lt;/h2&gt;

&lt;p&gt;➡️ Beautiful components&lt;br&gt;
➡️ 140 components in 37 categories&lt;br&gt;
➡️ Minimal design&lt;/p&gt;

&lt;p&gt;🔗 mambaui.com&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5976H2xC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/szz2hgqqtksgy0uxx6q9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5976H2xC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/szz2hgqqtksgy0uxx6q9.jpg" alt="Mambaui" width="680" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Tailwind Toolbox:
&lt;/h2&gt;

&lt;p&gt;➡️ Collection of components from the community&lt;br&gt;
➡️ Get Templates, Components, Kits, Plugins &amp;amp; More.&lt;br&gt;
➡️ Optional premium marketplace&lt;/p&gt;

&lt;p&gt;🔗  &lt;a href="http://tailwindtoolbox.com"&gt;http://tailwindtoolbox.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aWgPf0Cf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ljnjxq169peyjyu91gmr.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aWgPf0Cf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ljnjxq169peyjyu91gmr.jpg" alt="Tailwind Toolbox" width="680" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  7. HyperUI:
&lt;/h2&gt;

&lt;p&gt;HyperUI is a collection of free Tailwind CSS components that can be used in your project. With a range of components, you can build your next marketing website, admin dashboard, ecommerce store and much more.&lt;/p&gt;

&lt;p&gt;🔗  &lt;a href="http://hyperui.dev"&gt;http://hyperui.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.hyperui.dev/"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ki3yHRMg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rh7iqfd05iqm1uhnusov.jpg" alt="HyperUI" width="680" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Web3 Templates:
&lt;/h2&gt;

&lt;p&gt;➡️ A growing library of pre-built, fully responsive &amp;amp; customizable HTML &amp;amp; React UI components built with Tailwind CSS.&lt;/p&gt;

&lt;p&gt;🔗  &lt;a href="https://web3templates.com/components"&gt;https://web3templates.com/components&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Do you know any more good tailwind components? Feel free to reply below.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;Let's be friends 🤝&lt;/p&gt;

&lt;p&gt;Connect me on &lt;a href="https://twitter.com/HeyNikhila"&gt;Twitter &lt;/a&gt;and &lt;a href="https://www.linkedin.com/in/nikhil-agrawal-21b31833/"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Please like &amp;amp; reshare if you find this post useful&lt;/p&gt;

</description>
      <category>tailwindcss</category>
      <category>css</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Web3 101: 20 most important web3 terms you should know (many won't)</title>
      <dc:creator>Nikhil Agrawal</dc:creator>
      <pubDate>Thu, 21 Jul 2022 18:02:36 +0000</pubDate>
      <link>https://dev.to/heynikhila/web3-101-20-most-important-web3-terms-you-should-know-many-wont-3hl3</link>
      <guid>https://dev.to/heynikhila/web3-101-20-most-important-web3-terms-you-should-know-many-wont-3hl3</guid>
      <description>&lt;p&gt;&lt;strong&gt;Web3 is growing rapidly.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Every developer wants to start or switch to web3 because of it's huge market demand.&lt;/p&gt;

&lt;p&gt;Even if you're not a web3 developer you must know some of the common &amp;amp; basic web3 terminologies.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;In this post we'll have a  quick glance of 20 most common &amp;amp; important web3 terms:&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Address, Crypto Address, Public Key:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Alphanumeric character string used to send and receive crypto in blockchain network&lt;/li&gt;
&lt;li&gt;In Ethereum, the address begins with 0x&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Block:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A node in a chain&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Blockchain network is comprised of millions of such blocks&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A block is virtually impossible to hack&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It possesses parts or all of the records of the transactions that preceded it&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Blockchain
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Blockchains store data in blocks that are then chained together&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Different types of information can be stored on a blockchain but the most common use so far has been as a ledger for transactions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It is Immutable, which means data entered is irreversible&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Transactions are permanently recorded &amp;amp; viewable to anyone&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. ENS
&lt;/h3&gt;

&lt;p&gt;Ethereum Name Service&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Human-readable and easy-to-remember addresses to Ethereum addresses&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Something like yourname.eth&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. ERC-20
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A set of specifications for tokens to follow in order to function optimally on the Ethereum blockchain&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Using it developers and entrepreneurs can build new tokens&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It is one of the foundational pillars of the blockchain ecosystem&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. DAO
&lt;/h3&gt;

&lt;p&gt;Decentralized Autonomous Organization&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Blockchain-based system that enables people to coordinate &amp;amp; self-govern&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It has self-executing rules deployed on a public blockchain&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ex:&lt;br&gt;
DASH - cryptocurency managed by its users&lt;br&gt;
MakerDAO - A softwre that maintains stablecoin&lt;/p&gt;

&lt;h3&gt;
  
  
  7. DApp
&lt;/h3&gt;

&lt;p&gt;Decentralized Application&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web app that is built on top of open, decentralized, peer-to-peer infrastructure services&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example: &lt;br&gt;
Decentralized storage and.or a message protocol and platform&lt;/p&gt;

&lt;h3&gt;
  
  
  8. DeFi
&lt;/h3&gt;

&lt;p&gt;Decentralized Finance&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Financial app developed on top of blockchain systems&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Removes the control banks &amp;amp; institutions have on money, financial products, &amp;amp; financial services&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Derivatives, Asset Management, Insurance&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Eg:&lt;br&gt;
Augur - a popular DeFi betting platform&lt;/p&gt;

&lt;h3&gt;
  
  
  9. Airdrop
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Distribution of a cryptocurrency token or coin&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Usually for free&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Done to gain attention, new followers and popularise a token&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  10. Alt Coin, Altcoin
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Any cryptocurrency that is not Bitcoin&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An alternative digital currency&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Created after BTC&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  11. Smart Contract:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Programs stored on a blockchain that run when predetermined conditions are met&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Usually an automated agreement between 2 parties &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code controls the execution, and transactions are trackable and irreversible&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  12. Gas
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Fee that is charged for any crypto transaction. Like as sending crypto &amp;amp; minting NFT&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Incurred to conduct the transaction or execute a contract on their blockchain platform&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Etherum gas prices are denoted in gwei&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;1 gewi = 0.000000001 ETH&lt;/p&gt;

&lt;h3&gt;
  
  
  13. Minting:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A process by which digital art becomes a part of the Ethereum blockchain&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;That is unchangeable &amp;amp; tamper-proof&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Similar to the way that metal coins are minted and added into circulation&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  14. Learn-to-earn:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Mechanism that rewards users when they can prove they've learned something&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Often receive cryptocurrencies when they send proof of their new knowledge.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  15. ATH, all time high
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt; highest price (or market cap) that an asset has reached since its listing or inception&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  16. Testnet
&lt;/h3&gt;

&lt;p&gt;A blockchain instance that is used for testing and experimentation without risk to real funds or the main chain&lt;/p&gt;

&lt;p&gt;Usually used for a newer version of the underlying software for testing&lt;/p&gt;

&lt;h3&gt;
  
  
  17. Hodl
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;hold on for dear life&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;used among cryptocurrency enthusiasts when encouraging traders to resist the urge to sell one's holdings in response to market fluctuations&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  18. Seed Phrase:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A series of words generated by your cryptocurrency wallet that give you access to the crypto associated with that wallet&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Think of it as a master password to your wallet&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You shouldn't share it with others&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  19. Consensus Mechanism:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A fault-tolerant mechanism that is used in blockchain systems to achieve the necessary agreement on a single data value among distributed processes or multi-agent systems&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The consensus mechanism is known as Proof-of-Work (PoW)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  20. Some frequent acronyms:
&lt;/h3&gt;

&lt;p&gt;gg = Good Game&lt;/p&gt;

&lt;p&gt;gmi = Gonna Make it&lt;/p&gt;

&lt;p&gt;lfg = Lets Fucking Go&lt;/p&gt;

&lt;p&gt;ngmi = Not Gonna make it&lt;/p&gt;

&lt;p&gt;FOMO = Fear Of Missing Out&lt;/p&gt;

&lt;p&gt;WAGMI = We're All Gonna Make It&lt;/p&gt;

&lt;p&gt;fren = metaverse term for 'friend'&lt;/p&gt;

&lt;p&gt;Ser = Sir (respectfully introduce oneself)&lt;/p&gt;




&lt;p&gt;Congratuations, now you've learned most common web3 terms 😎&lt;/p&gt;




&lt;p&gt;Accelerate your career, learn web3. &lt;/p&gt;

&lt;p&gt;Download 100+ web3 resource 👇&lt;/p&gt;

&lt;p&gt;💎 &lt;a href="https://heynikhila.gumroad.com/l/awesome-web3-resource"&gt;Awesome Web3 Resources&lt;/a&gt;&lt;/p&gt;

</description>
      <category>web3</category>
      <category>webdev</category>
      <category>blockchain</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>How I reduced clients website loading speed from 10 to 2 sec? Time: 2 hours, Charged: $500</title>
      <dc:creator>Nikhil Agrawal</dc:creator>
      <pubDate>Mon, 18 Jul 2022 04:41:17 +0000</pubDate>
      <link>https://dev.to/heynikhila/how-i-reduced-clients-website-loading-speed-from-10-to-2-sec-time-2-hours-charged-500-46jn</link>
      <guid>https://dev.to/heynikhila/how-i-reduced-clients-website-loading-speed-from-10-to-2-sec-time-2-hours-charged-500-46jn</guid>
      <description>&lt;p&gt;Few days back...&lt;/p&gt;

&lt;p&gt;I optimized a client's website loading speed from 10 sec to &amp;lt; 2 sec&lt;/p&gt;

&lt;p&gt;Time spent: 2 hours&lt;br&gt;
Charged client: $500&lt;/p&gt;

&lt;p&gt;Here are 8 steps I did which You can follow them to optimize website made with any CMS or technologies:&lt;/p&gt;

&lt;p&gt;First, why should you make any website faster?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✔️ Decrease bounce rate by 57% (as per study)&lt;/li&gt;
&lt;li&gt;✔️ Increases google ranking&lt;/li&gt;
&lt;li&gt;✔️ Happy Visitors/Customers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;let's check the steps 👇&lt;/p&gt;

&lt;h2&gt;
  
  
  1/ Analysing website:
&lt;/h2&gt;

&lt;p&gt;➡ Go to &lt;a href="http://gtmetrix.com" rel="noopener noreferrer"&gt;http://gtmetrix.com&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;➡ Enter the URL and hit "Test your site"&lt;/p&gt;

&lt;p&gt;➡ In few secs you'll see complete report containing GTmetrix Grade, Performance &amp;amp; structure.&lt;/p&gt;

&lt;p&gt;(GT metric report)&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7n4rjihr8p2kvnxgv88p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7n4rjihr8p2kvnxgv88p.png" alt="GT metric report"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;➡ In GT metric report scroll down to "Top Issues"&lt;/p&gt;

&lt;p&gt;➡ Which will show issues related to JS, CSS, Images, too many requests, page size &amp;amp; more&lt;/p&gt;

&lt;p&gt;👉 GTmetrix will show most of the improvements, BUT NOT ALL&lt;/p&gt;

&lt;p&gt;➡ Let's resolve issues pointed by GT metric&lt;/p&gt;

&lt;h2&gt;
  
  
  2/ Image size optimization:
&lt;/h2&gt;

&lt;p&gt;➡ Reduce all image sizes from MB to KB&lt;/p&gt;

&lt;p&gt;➡ Go to &lt;a href="http://squoosh.app" rel="noopener noreferrer"&gt;http://squoosh.app&lt;/a&gt;&lt;br&gt;
➡ Upload original images&lt;br&gt;
➡ Download compressed images&lt;br&gt;
➡ Replace in your website&lt;/p&gt;

&lt;h2&gt;
  
  
  3/ Lazy load images:
&lt;/h2&gt;

&lt;p&gt;➡ Lazy loads defer loading of images until user scrolls near them&lt;/p&gt;

&lt;p&gt;➡ Do only if there are lot of images&lt;/p&gt;

&lt;p&gt;➡ Just add loading="lazy" in img tags&lt;/p&gt;

&lt;p&gt;(check screenshot)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft3z8sqf95a2gnl8fore0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft3z8sqf95a2gnl8fore0.jpg" alt="Lazy load images"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4/ Caching js &amp;amp; css
&lt;/h2&gt;

&lt;p&gt;➡ Caching assets loads them once &amp;amp; stores them in browser cache&lt;/p&gt;

&lt;p&gt;➡ This reduces loading time of subsequent pages&lt;/p&gt;

&lt;p&gt;➡ Cache them by adding an asset version&lt;/p&gt;

&lt;p&gt;(check screenshot)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcc2b544zjmwa4t8ryqra.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcc2b544zjmwa4t8ryqra.jpg" alt="Caching js &amp;amp; css"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5/ Minify JS &amp;amp; CSS:
&lt;/h2&gt;

&lt;p&gt;➡ Minifying JS &amp;amp; CSS will reduce their size by almost 70%&lt;/p&gt;

&lt;p&gt;➡ Go to &lt;a href="http://smalldev.tools"&gt;http://smalldev.tools&lt;/a&gt;, search js/css minifier &lt;/p&gt;

&lt;p&gt;➡ Minify all js &amp;amp; CSS&lt;/p&gt;

&lt;p&gt;PS: keep a backup of non-minified files in case it may be required later&lt;/p&gt;

&lt;h2&gt;
  
  
  6/ Move JS to end of document:
&lt;/h2&gt;

&lt;p&gt;➡ JS blocks all other resources&lt;br&gt;
➡ This increases "First Contentful Paint" time&lt;br&gt;
➡ Move them to end of HTML document&lt;/p&gt;

&lt;h2&gt;
  
  
  7/ Brotli compression:
&lt;/h2&gt;

&lt;p&gt;➡ It reduces HTML size by almost 80%&lt;/p&gt;

&lt;p&gt;➡ Go to &lt;a href="http://giftofspeed.com/gzip-test/" rel="noopener noreferrer"&gt;http://giftofspeed.com/gzip-test/&lt;/a&gt; &amp;amp; check if enabled or not&lt;/p&gt;

&lt;p&gt;➡ If not, contact hosting to enable it&lt;/p&gt;

&lt;p&gt;➡ Or use cloudflare to use this for free&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Now we're done with optimization suggested by GTmetrix&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;➡ Re-test your website &amp;amp; you'll see a good improvement 🤩&lt;/p&gt;

&lt;p&gt;➡ but not yet 100% optimized&lt;/p&gt;

&lt;p&gt;Let's optimize more...&lt;/p&gt;

&lt;h2&gt;
  
  
  8/ Database optimization:
&lt;/h2&gt;

&lt;p&gt;Unoptimized DB can reduce speed by a lot&lt;/p&gt;

&lt;p&gt;DB optimization can be a big topic, but doing this basic will help&lt;/p&gt;

&lt;p&gt;➡ Add indexing to fields used for searching, sorting &amp;amp; table joins (basic)&lt;/p&gt;




&lt;p&gt;This is my first post. Hope this post helps! &lt;/p&gt;

&lt;p&gt;Comment below for an questions you have.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Connect me on &lt;a href="https://twitter.com/HeyNikhila" rel="noopener noreferrer"&gt;Twitter &lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/nikhil-agrawal-21b31833/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>tutorial</category>
      <category>computerscience</category>
      <category>wordpress</category>
    </item>
  </channel>
</rss>
