<?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: Muhammad Salman</title>
    <description>The latest articles on DEV Community by Muhammad Salman (@salmandotweb).</description>
    <link>https://dev.to/salmandotweb</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F699229%2F7870ffe5-2b11-4560-a0f9-20dfc399841e.jpg</url>
      <title>DEV Community: Muhammad Salman</title>
      <link>https://dev.to/salmandotweb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/salmandotweb"/>
    <language>en</language>
    <item>
      <title>I got tired of paying $200 for ugly Facebook ads. So I built an AI to do it instead.</title>
      <dc:creator>Muhammad Salman</dc:creator>
      <pubDate>Sun, 08 Jun 2025 05:13:51 +0000</pubDate>
      <link>https://dev.to/salmandotweb/i-got-tired-of-paying-200-for-ugly-facebook-ads-so-i-built-an-ai-to-do-it-instead-4ln1</link>
      <guid>https://dev.to/salmandotweb/i-got-tired-of-paying-200-for-ugly-facebook-ads-so-i-built-an-ai-to-do-it-instead-4ln1</guid>
      <description>&lt;h2&gt;
  
  
  The problem every developer knows
&lt;/h2&gt;

&lt;p&gt;You build something cool. Clean code, great architecture, solid product. Then you realize: &lt;strong&gt;people need to actually know it exists&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So you open Canva. Stare at blank templates. Spend 3 hours making something that looks... fine. Maybe. Your designer friend politely says "it's a good start" (translation: it sucks).&lt;/p&gt;

&lt;p&gt;Or you post on Upwork: "Need simple Facebook ad, $50 budget." Get 47 responses. Pick someone. Wait 5 days. Get something generic that could be advertising literally any SaaS.&lt;/p&gt;

&lt;h2&gt;
  
  
  The "aha" moment
&lt;/h2&gt;

&lt;p&gt;I was procrastinating on creating ads (again) when I realized: &lt;strong&gt;My website already has my brand&lt;/strong&gt;. The colors, fonts, logo, even the way I write. &lt;/p&gt;

&lt;p&gt;What if AI could just... extract all that and create the ads for me?&lt;/p&gt;

&lt;p&gt;Not generic AI templates. Actually good ads that understand MY specific brand.&lt;/p&gt;

&lt;h2&gt;
  
  
  So I built it
&lt;/h2&gt;

&lt;p&gt;The concept is simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Paste your website URL&lt;/li&gt;
&lt;li&gt;AI extracts your brand identity (colors, fonts, logos, voice)&lt;/li&gt;
&lt;li&gt;Generates ads optimized for different platforms&lt;/li&gt;
&lt;li&gt;Download and use&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No brand guidelines needed. No "make the logo bigger" iterations. Just ads that actually look like they belong to your brand.&lt;/p&gt;

&lt;h2&gt;
  
  
  The technical interesting bits
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Brand extraction was harder than expected:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Parsing CSS to identify primary/secondary colors&lt;/li&gt;
&lt;li&gt;Finding actual logos vs random images&lt;/li&gt;
&lt;li&gt;Understanding brand voice from homepage copy&lt;/li&gt;
&lt;li&gt;Handling weird website structures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Stack I ended up with:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next.js for the frontend&lt;/li&gt;
&lt;li&gt;Custom vision models for logo detection&lt;/li&gt;
&lt;li&gt;GPT-4 for understanding brand voice&lt;/li&gt;
&lt;li&gt;Image processing pipeline for different ad formats&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The trickiest part was teaching AI to distinguish between "brand colors" and random website colors. A lot of websites have blue links - that doesn't mean blue is their brand color.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I learned
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Developers are terrible at marketing&lt;/strong&gt; (myself included). We overthink it. We want everything perfect before we start. But honestly? An "okay" ad that ships is better than a perfect ad that never gets made.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI is really good at pattern recognition&lt;/strong&gt;. Once I figured out how to feed it the right context about a brand, it started generating surprisingly good stuff.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solving your own problem works&lt;/strong&gt;. I built this because I personally hate creating ads. Turns out other developers/founders feel the same way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Current status
&lt;/h2&gt;

&lt;p&gt;It's live at &lt;a href="https://board.ad" rel="noopener noreferrer"&gt;board.ad&lt;/a&gt;. Still working on improving the brand extraction (some websites are just... chaotic). But it already saves me hours of Canva frustration.&lt;/p&gt;

&lt;p&gt;If you're a developer who also hates creating marketing materials, might be worth checking out.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Always down to chat about AI, SaaS building, or why CSS grid still confuses me. Find me wherever developers complain about things.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>sass</category>
      <category>ai</category>
      <category>webdev</category>
      <category>stripe</category>
    </item>
    <item>
      <title>Sell your side projects</title>
      <dc:creator>Muhammad Salman</dc:creator>
      <pubDate>Thu, 11 Jul 2024 15:02:53 +0000</pubDate>
      <link>https://dev.to/salmandotweb/sell-your-side-projects-52p1</link>
      <guid>https://dev.to/salmandotweb/sell-your-side-projects-52p1</guid>
      <description>&lt;p&gt;Got a side project you’re proud of but don’t know what to do with it? Maybe it’s time to let someone else take it to the next level. &lt;/p&gt;

&lt;p&gt;We’re launching a new platform called &lt;a href="https://www.aquireside.com/" rel="noopener noreferrer"&gt;Acquireside&lt;/a&gt; where you can buy and sell unique side projects. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frx9texcelk2tpvdbp5c0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frx9texcelk2tpvdbp5c0.png" alt="Aquireside" width="800" height="591"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It’s super easy to use and helps you connect directly with folks who are interested in what you’ve built.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.aquireside.com/" rel="noopener noreferrer"&gt;Acquireside&lt;/a&gt; is coming soon, and we’re excited to get things rolling. If you’re looking to sell your side project, why not join our waitlist? By joining, you’ll be one of the first to list your project when we go live. It’s a great way to ensure your project gets seen by eager buyers from the start.&lt;/p&gt;

&lt;p&gt;We can’t wait to see all the amazing projects you’ve been working on. Join the waitlist now and get ready to share your passion projects with the world!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Top 10 Features to Include in Your SaaS MVP</title>
      <dc:creator>Muhammad Salman</dc:creator>
      <pubDate>Mon, 06 May 2024 01:14:34 +0000</pubDate>
      <link>https://dev.to/salmandotweb/top-10-features-to-include-in-your-saas-mvp-2nia</link>
      <guid>https://dev.to/salmandotweb/top-10-features-to-include-in-your-saas-mvp-2nia</guid>
      <description>&lt;p&gt;Creating a Minimum Viable Product (MVP) for your SaaS (Software as a Service) platform is a critical step in the startup journey. It helps validate your idea with minimal risk and investment. However, deciding which features to include can be challenging. Here's a list of the top 10 essential features that can help make your SaaS MVP valuable and attractive to early adopters.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. &lt;strong&gt;User Authentication&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Importance&lt;/strong&gt;: Essential for personalizing experiences and securing user data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implementation Tips&lt;/strong&gt;: Implement standard authentication methods like email/password and consider social logins for added convenience.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. &lt;strong&gt;Core Functionalities&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Importance&lt;/strong&gt;: Focus on the primary function that solves the core problem for your target audience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Example&lt;/strong&gt;: If your SaaS is a project management tool, features like task creation and assignment are must-haves.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. &lt;strong&gt;Basic Reporting and Analytics&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Importance&lt;/strong&gt;: Provides insights into how your product is being used and helps users measure their success.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implementation Tips&lt;/strong&gt;: Include simple dashboards with key metrics relevant to the user’s activities.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. &lt;strong&gt;Mobile Responsiveness&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Importance&lt;/strong&gt;: Ensures accessibility across all devices, enhancing user engagement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implementation Tips&lt;/strong&gt;: Use responsive design frameworks to ensure your application adjusts seamlessly to different screen sizes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. &lt;strong&gt;User Feedback System&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Importance&lt;/strong&gt;: Direct channel for receiving user insights and requests.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implementation Tips&lt;/strong&gt;: Simple forms or integrated feedback tools like Intercom can be very effective.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. &lt;strong&gt;API Integration&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Importance&lt;/strong&gt;: Allows for scalability and integration with other tools and services.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implementation Tips&lt;/strong&gt;: Provide basic APIs that let users connect your SaaS with other tools they use.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  7. &lt;strong&gt;Data Export and Import Capabilities&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Importance&lt;/strong&gt;: Helps users in data migration and backups.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implementation Tips&lt;/strong&gt;: Offer standard data formats like CSV for import and export.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  8. &lt;strong&gt;Minimalist User Interface (UI)&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Importance&lt;/strong&gt;: Enhances user experience by making navigation intuitive and reducing the learning curve.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implementation Tips&lt;/strong&gt;: Focus on simplicity and user-friendly design elements.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  9. &lt;strong&gt;Security Features&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Importance&lt;/strong&gt;: Critical for protecting user data and building trust.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implementation Tips&lt;/strong&gt;: Implement HTTPS, data encryption, and secure access protocols.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  10. &lt;strong&gt;Customer Support&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Importance&lt;/strong&gt;: Provides users with assistance and enhances user satisfaction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implementation Tips&lt;/strong&gt;: Start with basic email support, and as your user base grows, consider adding chat support.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion: Building a Focused MVP
&lt;/h2&gt;

&lt;p&gt;Your MVP should not try to be all things to all people. Instead, focus on these essential features that support your core functionality, offer a great user experience, and allow you to collect actionable feedback. Remember, the goal of an MVP is to learn what your customers truly need and how your solution fits into their lives.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get your SaaS MVP in 30 days&lt;/strong&gt; - &lt;a href="https://www.mossoai.com/"&gt;Grab your spot now&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>saas</category>
      <category>mvp</category>
    </item>
    <item>
      <title>From Idea to MVP in Just 20 Days</title>
      <dc:creator>Muhammad Salman</dc:creator>
      <pubDate>Mon, 29 Apr 2024 08:35:05 +0000</pubDate>
      <link>https://dev.to/salmandotweb/from-idea-to-mvp-in-just-20-days-2m46</link>
      <guid>https://dev.to/salmandotweb/from-idea-to-mvp-in-just-20-days-2m46</guid>
      <description>&lt;p&gt;Have you ever found yourself up late at night, brimming with ideas, wondering how you could ever bring them to life? &lt;/p&gt;

&lt;p&gt;Maybe you’ve sketched out plans, daydreamed about the launch, or even told friends about this cool app idea you’ve got. But then, there's that daunting question: "Where do I even start?"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Well, that’s exactly why I started &lt;a href="https://www.mossoai.com/"&gt;Mossoai&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s &lt;a href="https://www.mossoai.com/"&gt;Mossoai&lt;/a&gt;, you ask?&lt;/strong&gt;&lt;br&gt;
It’s your fast-track ticket from “idea” to “I did it!” We’re here to transform your Micro SaaS idea into a fully functional MVP (that’s Minimum Viable Product) in just 20 days. Yep, you read that right 20 days!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why so fast?&lt;/strong&gt;&lt;br&gt;
Because the sooner you get your product out there, the quicker you can see it in action and get real feedback. This isn’t about rushing, it’s about being efficient and smart.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here’s what we do:&lt;/strong&gt;&lt;br&gt;
From the moment you share your vision with us, we’re all in. Design, coding, testing, and launching? We’ve got it covered. You focus on dreaming big we’ll handle the nuts and bolts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who’s this for?&lt;/strong&gt;&lt;br&gt;
Anyone with an idea and a dream! You could be a seasoned entrepreneur or a newbie with a vision. If you lack the technical know-how or resources to get started, that’s where &lt;a href="https://www.mossoai.com/"&gt;Mossoai&lt;/a&gt; steps in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Imagine this:&lt;/strong&gt;&lt;br&gt;
It’s day 20, and you’re launching your very own app. You’ve skipped the lengthy development headaches, dodged massive costs, and you’re out there, making it happen.&lt;/p&gt;

&lt;p&gt;**Why I believe in this:&lt;br&gt;
**I’ve been where you are juggling ideas and wondering if they’d ever grow up to be real products. I started &lt;a href="https://www.mossoai.com/"&gt;Mossoai&lt;/a&gt; because I believe everyone should have the chance to see their ideas come to life, without getting bogged down in the "how."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So, what’s next?&lt;/strong&gt;&lt;br&gt;
Are you ready to stop dreaming and start doing? Drop us a line, or let’s grab a virtual coffee. Your MVP is just 20 days away from reality, and I can’t wait to help you launch it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let’s make something amazing together!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>saas</category>
      <category>webdev</category>
      <category>money</category>
      <category>startup</category>
    </item>
    <item>
      <title>Landing Tech Jobs in 2024: The Untold Method</title>
      <dc:creator>Muhammad Salman</dc:creator>
      <pubDate>Mon, 25 Mar 2024 01:36:27 +0000</pubDate>
      <link>https://dev.to/salmandotweb/landing-tech-jobs-in-2024-the-untold-method-2ca9</link>
      <guid>https://dev.to/salmandotweb/landing-tech-jobs-in-2024-the-untold-method-2ca9</guid>
      <description>&lt;p&gt;The tech market of 2024 is a battlefield. People are applying to thousands of jobs and getting ghosted. If you're not doing something different, you're going to be outcompeted. It's as simple as that. So, in this blog post, I'm going to tell you what you should already be doing, along with a new, untold method of getting tech jobs that no one has spoken about. Let's get started.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Step One: Have the Skills&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;You need to make sure that on your resume, you have some personal projects, open-source work, freelancing on Upwork or Fiverr, and finally, some paid or unpaid internships. If you don't know your tech stack, you're not going to get very far. But even if you do, this isn't 2020 anymore. You're not going to get a job just because you have the skills.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Step Two: Put Yourself Out There&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Here's how:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A. Apply to as Many Jobs as Possible&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This is basic. This is easy. We all need to be doing this already. But this is not enough anymore.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;B. Attend In-person Networking Events&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;If you're living in New York, Toronto, Montreal, every single weekend, go to some tech event because you never know who you're going to meet.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;C. Be Ready for Interviews&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;You might get one out of the blue, and if you're not prepared, if you haven't done your LeetCode, if you don't know your syntax, you're going to get bent over backwards.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Step Three: The Social Media Method&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This way of getting tech jobs is frankly underrated. It involves two things: YouTube and Twitter.&lt;/p&gt;

&lt;h3&gt;
  
  
  Twitter
&lt;/h3&gt;

&lt;p&gt;There is a vast tech community on Twitter. Everyone that you want to work for is probably on Twitter. Start posting every single day, hit around a thousand followers, share your code and progress, and let people know that you're looking for a job. Once you hit around a thousand followers, people are going to start reaching out to you.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;YouTube&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;YouTube is super powerful because you can showcase your coding skills and your personality. Once you reach around 2 to 3,000 subscribers, people are going to start noticing. You want to make sure that you're coding live every single day, putting general 5 to 6-minute videos out talking about the tech industry, and make sure to put within all of your descriptions that you're looking for a job.&lt;/p&gt;

&lt;p&gt;This method works because it's more efficient. You have leverage. Instead of applying to one job at a time, if you make a tweet that goes semi-viral on Twitter, maybe five hiring managers could see it. It's much more efficient than applying to one person at a time where an AI scanner automatically rejects your resume.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Conclusion&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In the brutal tech market of 2024, standing out is key. It's not enough to just have the skills and apply to jobs. You need to put yourself out there, network, and be ready for interviews. But to really set yourself apart, leverage the power of social media. Build a following on Twitter and YouTube, showcase your skills and personality, and let the job offers come to you. This is the untold method of landing tech jobs in 2024. It's time to take control of your job search and start doing things differently.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>jobs</category>
      <category>career</category>
      <category>programming</category>
    </item>
    <item>
      <title>I created a Next.js SAAS Toolkit</title>
      <dc:creator>Muhammad Salman</dc:creator>
      <pubDate>Tue, 02 Jan 2024 09:28:13 +0000</pubDate>
      <link>https://dev.to/salmandotweb/i-created-a-nextjs-saas-toolkit-21h6</link>
      <guid>https://dev.to/salmandotweb/i-created-a-nextjs-saas-toolkit-21h6</guid>
      <description>&lt;p&gt;Hey Everyone,&lt;/p&gt;

&lt;p&gt;I have been working with next.js for the last 2 years and I decided to create &lt;a href="https://www.indiespace.store/"&gt;Indiespace&lt;/a&gt; which is a SAAS toolkit to help you launch your next project without getting overwhelmed by setting everything up from scratch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech Stack:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next.js&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;li&gt;Shadcn UI&lt;/li&gt;
&lt;li&gt;Next Auth&lt;/li&gt;
&lt;li&gt;Stripe&lt;/li&gt;
&lt;li&gt;Resend&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What it includes:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;2 waitlist pages&lt;/li&gt;
&lt;li&gt;3 landing pages&lt;/li&gt;
&lt;li&gt;SAAS boilerplate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the boilerplate, I have also set up the &lt;a href="https://docs.indiespace.store/"&gt;docs&lt;/a&gt; for getting started with the boilerplate. Do check it out and let me know if there is I can add or improve.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>nextjs</category>
      <category>saas</category>
    </item>
    <item>
      <title>$0 to $800+ in 3 weeks from a SaaS Boilerplate</title>
      <dc:creator>Muhammad Salman</dc:creator>
      <pubDate>Fri, 08 Dec 2023 13:52:34 +0000</pubDate>
      <link>https://dev.to/salmandotweb/0-to-847-in-3-weeks-from-a-saas-boilerplate-363d</link>
      <guid>https://dev.to/salmandotweb/0-to-847-in-3-weeks-from-a-saas-boilerplate-363d</guid>
      <description>&lt;p&gt;Hey Everyone,&lt;/p&gt;

&lt;p&gt;So It's been 3 weeks since the launch of my side project &lt;a href="https://www.indiespace.store/"&gt;Indiespace.store&lt;/a&gt; which is a Next.js-powered SaaS Bundle and it's been very surprising for me to see these results.&lt;/p&gt;

&lt;p&gt;To know how I came up with this app, from idea to launch you can check my previous post which surprisingly went viral 🫠&lt;/p&gt;

&lt;p&gt;In these 3 weeks I have got:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;8.7k page views&lt;/li&gt;
&lt;li&gt;17 new customers &lt;/li&gt;
&lt;li&gt;$847 in revenue&lt;/li&gt;
&lt;li&gt;80+ followers on X&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frgx5sh70p13o36wpfvqy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frgx5sh70p13o36wpfvqy.png" alt="indiespace stats" width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's really surprising to see people paying for something which I made purely for myself and everyone who bought it is happy with it. I have been actively updating the repo since then and added one more new landing page to it.&lt;/p&gt;

&lt;p&gt;Also added the &lt;a href="https://docs.indiespace.store/"&gt;Docs&lt;/a&gt; for easy boilerplate setup 👇&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1cx4i6we62m4fokxsj75.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1cx4i6we62m4fokxsj75.png" alt="Docs" width="800" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have many plans for this app and will convert it into a bigger marketplace for buying multiple boilerplates &amp;amp; templates.&lt;/p&gt;

&lt;p&gt;I would highly appreciate it if you guys could check it out and give feedback on what can be improved and what should I include ✨&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>nextjs</category>
      <category>saas</category>
    </item>
    <item>
      <title>I took my side project from $0 to $200+ in 4 days</title>
      <dc:creator>Muhammad Salman</dc:creator>
      <pubDate>Tue, 21 Nov 2023 11:09:55 +0000</pubDate>
      <link>https://dev.to/salmandotweb/i-took-my-side-project-from-0-to-180-in-4-days-2i09</link>
      <guid>https://dev.to/salmandotweb/i-took-my-side-project-from-0-to-180-in-4-days-2i09</guid>
      <description>&lt;p&gt;So This is the story of how my side project which is basically a Next.Js SaaS Boilerplate &lt;a href="https://www.indiespace.store/" rel="noopener noreferrer"&gt;Indiespace&lt;/a&gt;, got from $0 to $200+ in 4 days without any social media presence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Idea:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I have been working on this project for the last 1 and a half months, The initial plan was to create something I could use because I love to start new projects but often get overwhelmed with the feeling of setting up everything from scratch. So I started building this boilerplate which includes 2 landing pages, 2 waitlist pages, and a SAAS kit with a landing page and all the cool features like dark &amp;amp; light themes, subscriptions, one-time payments, transactional emails, authentication, SEO, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Expectation:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I had zero expectations of if anyone gonna buy it or not or how I was gonna market this as there are like every other developer launching a boilerplate with heavy stuff included and I don't have an audience. So I built it at my own pace and kept adding features.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Launch:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My launch plan was to post about this on 3 platforms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Twitter&lt;/li&gt;
&lt;li&gt;Product Hunt&lt;/li&gt;
&lt;li&gt;SideProject&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So on Friday 17th November, I scheduled the launch on Product Hunt for Saturday 18th November, posted on Sideprojects, and went to sleep. I woke up on Saturday around 2 pm and saw Product Hunt notifications on my phone, So I opened my laptop and went into my Gmail and then I saw an email from Stripe, I opened it and:&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%2Fst98nlxavyzodugtutl0.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%2Fst98nlxavyzodugtutl0.png" alt="indiespace stripe screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So now I'm so confused about what the hell I'm looking at, and questioning myself is this from someone who purchased my boilerplate? I opened the product hunt and It has been 1 hour since the launch I'm in 6th position with 30+ votes without any marketing or asking people to upvote and already made a sale. I was freaking smiling like a child whaaaaaaaaaat?&lt;/p&gt;

&lt;p&gt;Then I posted on Twitter, and asked some friends to upvote, and after the launch got the 7th position, 150+ upvotes, 1.7k page views, and around 10+ followers on Twitter.&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%2F9xlk6809b0lbh52thq12.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%2F9xlk6809b0lbh52thq12.png" alt="indiespace page views"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Lesson:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I know it's not a lot of money and I know it's nothing compared to what I earn from my full-time job but to be very honest, creating your own digital product, marketing it, and earning even a single penny from it will give you so much happiness. If you are a developer like me or someone who wants to build something and is confused about how everything is gonna work out, don't worry put your project out there in public let the people decide, do your effort, and keep moving forward.&lt;/p&gt;

&lt;p&gt;At this point, I know my &lt;a href="https://www.indiespace.store/" rel="noopener noreferrer"&gt;Indiespace&lt;/a&gt; is not perfect and there is just so much to do right now I have to add the freaking documentation as well and I already hate setting up the content layer docs ugghhhh, But yeah I will keep adding features which gonna improve my productivity as a developer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Last but not the least:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I would recommend you guys give &lt;a href="https://www.indiespace.store/" rel="noopener noreferrer"&gt;Indiespace.store&lt;/a&gt;a try if you are someone who wants to build a SaaS app, In case you are someone just starting out and cannot afford it drop me a message on Twitter I'll be more than happy to help you.&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>webdev</category>
      <category>stripe</category>
      <category>saas</category>
    </item>
    <item>
      <title>Leveraging Array Methods the Right Way in JavaScript</title>
      <dc:creator>Muhammad Salman</dc:creator>
      <pubDate>Tue, 19 Sep 2023 17:25:18 +0000</pubDate>
      <link>https://dev.to/salmandotweb/leveraging-array-methods-the-right-way-in-javascript-4g04</link>
      <guid>https://dev.to/salmandotweb/leveraging-array-methods-the-right-way-in-javascript-4g04</guid>
      <description>&lt;p&gt;In JavaScript, methods like map, filter, concat, and reduce are "pure" – meaning they don't change the original array. Instead, they produce a new array based on the logic you supply.&lt;/p&gt;

&lt;p&gt;For instance, when you do:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;xs.map(x =&amp;gt; x.prop);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The original array xs remains untouched, and a brand new array is returned with the mapped values.&lt;/p&gt;

&lt;p&gt;But here's a pitfall: some folks might be tempted to use a map just to loop over the array, say for logging:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;xs.map((x, i) =&amp;gt; console.log(`element #${i}:`, x));
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This misuses map, which is intended to transform data, not just to iterate. For side effects like logging, forEach is a much better choice:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;xs.forEach((x, i) =&amp;gt; console.log(`element #${i}:`, x));
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bad Practice:&lt;/p&gt;

&lt;p&gt;Using map without utilizing its return value:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;characters.map(character =&amp;gt; character.name);
console.log(characters); // The original array remains unchanged!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Recommended:&lt;/p&gt;

&lt;p&gt;Use map when you actually intend to create a new transformed array:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const characterNames = characters.map(character =&amp;gt; character.name);
console.log(characterNames); // A shiny new array with character names!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The lesson? Make sure to use array methods in a way that aligns with their intended purpose. This ensures that your code is both efficient and easy for others to understand.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>What is the difference between an Element and a Component?</title>
      <dc:creator>Muhammad Salman</dc:creator>
      <pubDate>Wed, 30 Aug 2023 16:30:48 +0000</pubDate>
      <link>https://dev.to/salmandotweb/what-is-the-difference-between-an-element-and-a-component-3efg</link>
      <guid>https://dev.to/salmandotweb/what-is-the-difference-between-an-element-and-a-component-3efg</guid>
      <description>&lt;p&gt;Imagine you're building a house using building blocks. In this scenario:&lt;/p&gt;

&lt;p&gt;Element: An element is like a single brick. It's the smallest building block in React, representing a part of your user interface. Elements are lightweight and immutable. They describe what you want to see on the screen, but they don't have any behavior or logic.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const element = &amp;lt;h1&amp;gt;Hello, World!&amp;lt;/h1&amp;gt;;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Component:&lt;/strong&gt; A component is a combination of several bricks forming a specific part of your house, like a window or a door. It's a reusable and self-contained piece of UI that can have its own behavior and logic. Components are created by combining multiple elements and other components.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function Greeting(props) {
  return &amp;lt;h1&amp;gt;Hello, {props.name}!&amp;lt;/h1&amp;gt;;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;Greeting&lt;/code&gt; component is made up of an element &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; and some logic to display a personalized greeting.&lt;/p&gt;

&lt;p&gt;Remember, React's component-based architecture allows you to create modular and maintainable UIs. Components are reusable and can encapsulate their own logic, making your application more organized and easier to manage.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>css</category>
    </item>
    <item>
      <title>What is JavaScript XML?</title>
      <dc:creator>Muhammad Salman</dc:creator>
      <pubDate>Tue, 29 Aug 2023 19:45:06 +0000</pubDate>
      <link>https://dev.to/salmandotweb/what-is-javascript-xml-3efm</link>
      <guid>https://dev.to/salmandotweb/what-is-javascript-xml-3efm</guid>
      <description>&lt;p&gt;Imagine you're a chef creating a recipe card for a delicious cake using two different languages: JavaScript and HTML.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JavaScript:&lt;/strong&gt; This is the language you use to define the logic and behavior of your recipe. It's like the ingredients and instructions for your cake. But, just like a recipe, it's not very visually appealing on its own.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const ingredients = ["flour", "sugar", "eggs", "butter", "vanilla"];

function mixIngredients(ingredients) {
    // Mixing logic here
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;HTML:&lt;/strong&gt; This is the language you use to describe how your cake should look. It's like the decoration and presentation instructions. This is where you make your cake visually appealing.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="cake"&amp;gt;
    &amp;lt;h1&amp;gt;Delicious Cake&amp;lt;/h1&amp;gt;
    &amp;lt;ul&amp;gt;
        &amp;lt;li&amp;gt;Flour&amp;lt;/li&amp;gt;
        &amp;lt;li&amp;gt;Sugar&amp;lt;/li&amp;gt;
        &amp;lt;li&amp;gt;Eggs&amp;lt;/li&amp;gt;
        &amp;lt;li&amp;gt;Butter&amp;lt;/li&amp;gt;
        &amp;lt;li&amp;gt;Vanilla&amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, JSX combines the best of both worlds. It lets you write the visual structure of your UI elements using HTML-like syntax directly within your JavaScript code. This is like having your recipe and decoration instructions in the same language.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function Cake() {
    const ingredients = ["flour", "sugar", "eggs", "butter", "vanilla"];
    return (
        &amp;lt;div className="cake"&amp;gt;
            &amp;lt;h1&amp;gt;Delicious Cake&amp;lt;/h1&amp;gt;
            &amp;lt;ul&amp;gt;
                {ingredients.map(ingredient =&amp;gt; (
                    &amp;lt;li&amp;gt;{ingredient}&amp;lt;/li&amp;gt;
                ))}
            &amp;lt;/ul&amp;gt;
        &amp;lt;/div&amp;gt;
    );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the JSX example, we define a Cake component using JSX syntax. It looks almost like HTML but is embedded within the JavaScript code. The {} curly braces are used to embed JavaScript expressions within JSX, enabling dynamic content.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>programming</category>
    </item>
    <item>
      <title>The Power of Design Systems: Streamlining UI Development with Figma and React</title>
      <dc:creator>Muhammad Salman</dc:creator>
      <pubDate>Sat, 10 Jun 2023 18:06:30 +0000</pubDate>
      <link>https://dev.to/salmandotweb/the-power-of-design-systems-streamlining-ui-development-with-figma-and-react-16c4</link>
      <guid>https://dev.to/salmandotweb/the-power-of-design-systems-streamlining-ui-development-with-figma-and-react-16c4</guid>
      <description>&lt;p&gt;Design systems are a game-changer for UI development. Let's explore how to harness the power of Figma and React to streamline your UI development process and build consistent, scalable interfaces!&lt;/p&gt;

&lt;p&gt;🎨 Tip 1: Designing with Figma Components&lt;br&gt;
Utilize Figma's component system to create reusable UI elements. By designing and organizing components in Figma, you establish a visual language that can be easily translated into React components, saving time and ensuring design consistency.&lt;/p&gt;

&lt;p&gt;✨ Tip 2: Building a React Component Library&lt;br&gt;
Leverage the power of React to create a component library that aligns with your Figma design system. Break down Figma components into reusable React components, encapsulating their functionality and styling.&lt;/p&gt;

&lt;p&gt;💻 Tip 3: Using Styled Components for Styling&lt;br&gt;
Integrate Styled Components into your React component library to enhance styling flexibility and modularity. With Styled Components, you can define and reuse styled elements with CSS-in-JS syntax, ensuring consistent and maintainable styles.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import styled from 'styled-components';

const Button = styled.button`
  /* Styles here */
`;

const StyledComponent = () =&amp;gt; {
  return &amp;lt;Button&amp;gt;Click me&amp;lt;/Button&amp;gt;;
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🌐 Tip 4: Storybook for Component Documentation and Testing&lt;br&gt;
Utilize Storybook to document, showcase, and test your React components in isolation. Storybook provides a dedicated environment to explore component variations, test edge cases, and document component usage guidelines.&lt;/p&gt;

&lt;p&gt;🚀 Tip 5: Collaborating between Designers and Developers&lt;br&gt;
Establish a seamless collaboration workflow between designers and developers using tools like Figma's developer handoff feature. Generate CSS code snippets, export assets, and provide design specifications to ensure accurate implementation and smooth handoff.&lt;/p&gt;

&lt;p&gt;💡 By harnessing the power of design systems, Figma, and React, you can streamline UI development, promote design consistency, and build scalable interfaces. Empower your team with a robust design-to-development workflow and elevate your UI development game!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>ui</category>
      <category>development</category>
    </item>
  </channel>
</rss>
