<?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: Ch. Abdul Wahab</title>
    <description>The latest articles on DEV Community by Ch. Abdul Wahab (@chabdulwahhab310).</description>
    <link>https://dev.to/chabdulwahhab310</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%2F3592761%2F8872a84c-d6e9-4ed4-9616-69e30104e6c8.jpeg</url>
      <title>DEV Community: Ch. Abdul Wahab</title>
      <link>https://dev.to/chabdulwahhab310</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chabdulwahhab310"/>
    <language>en</language>
    <item>
      <title>Why We Started Systemset: Building Smarter Tools for Modern Businesses</title>
      <dc:creator>Ch. Abdul Wahab</dc:creator>
      <pubDate>Sun, 19 Apr 2026 04:52:26 +0000</pubDate>
      <link>https://dev.to/systemsetco/why-we-started-systemset-building-smarter-tools-for-modern-businesses-1b0d</link>
      <guid>https://dev.to/systemsetco/why-we-started-systemset-building-smarter-tools-for-modern-businesses-1b0d</guid>
      <description>&lt;p&gt;&lt;em&gt;Our journey to make work simpler, faster, and growth-driven through smart systems.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;In today's fast-moving digital world, every business and developer needs the right set of tools to succeed. But there's a problem:&lt;/p&gt;

&lt;p&gt;Either the right tools don't exist in the market, or if they do, they're too expensive and out of reach for students, small startups, and even independent developers.&lt;/p&gt;

&lt;p&gt;This is where the idea of Systemset was born.&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.amazonaws.com%2Fuploads%2Farticles%2Fpsurm8lyerbzuvxilmln.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.amazonaws.com%2Fuploads%2Farticles%2Fpsurm8lyerbzuvxilmln.png" alt="Systemset logo" width="800" height="221"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  From Personal Need to Bigger Vision
&lt;/h2&gt;

&lt;p&gt;Over time, we often found ourselves in situations where we needed specific tools — but couldn't find anything affordable or accessible. Many times, we had to build our own solutions just to handle daily challenges.&lt;/p&gt;

&lt;p&gt;That's when we realized: if we are struggling with this problem, so are thousands of students, startups, and developers around the world.&lt;/p&gt;

&lt;p&gt;Instead of keeping our solutions to ourselves, we decided to build a platform where anyone can access powerful, easy-to-use, and affordable digital products.&lt;/p&gt;




&lt;h2&gt;
  
  
  Building a Strong Community
&lt;/h2&gt;

&lt;p&gt;One of our biggest inspirations has been platforms like Stack Overflow — places where people come together to learn, share, and grow.&lt;/p&gt;

&lt;p&gt;Through this initiative, we aim to bring students and developers onto a single platform where they can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Collaborate&lt;/li&gt;
&lt;li&gt;Discuss&lt;/li&gt;
&lt;li&gt;Share ideas&lt;/li&gt;
&lt;li&gt;Build real products — even while still studying&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We believe that if students start building meaningful products early, they won't just learn faster — they'll also create tools that can make a difference in the world.&lt;/p&gt;




&lt;h2&gt;
  
  
  Our Vision
&lt;/h2&gt;

&lt;p&gt;At Systemset, our vision is simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create products that don't exist in the market yet&lt;/li&gt;
&lt;li&gt;Deliver them at a cost that makes sense for everyone&lt;/li&gt;
&lt;li&gt;Empower students, developers, and businesses to succeed without barriers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We don't claim to be the only ones building these kinds of products. Others may be doing excellent work too. But what we promise is this: we will always strive to give you the best possible products, at the most affordable cost.&lt;/p&gt;




&lt;h2&gt;
  
  
  The First Step of a Long Journey
&lt;/h2&gt;

&lt;p&gt;This is just the beginning.&lt;/p&gt;

&lt;p&gt;Systemset is not just about software — it's about building a movement where technology, community, and affordability come together.&lt;/p&gt;

&lt;p&gt;If you're a student, a developer, or a business trying to do more with less, we're building this for you.&lt;/p&gt;

&lt;p&gt;Let's create the future, together.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>startup</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Are you a better Dev than yesterday?</title>
      <dc:creator>Ch. Abdul Wahab</dc:creator>
      <pubDate>Sun, 19 Apr 2026 03:43:16 +0000</pubDate>
      <link>https://dev.to/chabdulwahhab310/are-you-a-better-dev-than-yesterday-8c</link>
      <guid>https://dev.to/chabdulwahhab310/are-you-a-better-dev-than-yesterday-8c</guid>
      <description>&lt;p&gt;Let me ask you something honest.&lt;/p&gt;

&lt;p&gt;Are you a better developer today than you were yesterday?&lt;/p&gt;

&lt;p&gt;Not better as in "I know more frameworks" or "I've watched more tutorials." I mean genuinely better — did you understand something today that you didn't understand yesterday? Did something click?&lt;/p&gt;

&lt;p&gt;If your answer is yes, keep doing what you're doing. You're on the right path.&lt;/p&gt;

&lt;p&gt;But if your answer is no — or worse, if you had to think about it for a while — then I want to ask why. Because the reasons are usually the same: no time because of a 9-to-5, an internship eating up your energy, studies leaving no room, or just the quiet exhaustion of trying to keep up with a field that never slows down.&lt;/p&gt;

&lt;p&gt;I get it. I've been there. I'm still there, in some ways.&lt;/p&gt;

&lt;p&gt;I'm an IT trainer at the same institute where I once sat as a student. Outside of that, I build products solo under my own company — mobile apps, web apps, UI/UX, system design, the whole thing. Several of those apps are live right now. You'll find the links at the end of this post.&lt;/p&gt;

&lt;p&gt;So when I talk about this workflow, I'm not theorizing. I use it every day.&lt;/p&gt;




&lt;h2&gt;
  
  
  Stop Being Afraid of Vibe Coding
&lt;/h2&gt;

&lt;p&gt;Here's something that bothers me about the dev community right now.&lt;/p&gt;

&lt;p&gt;There's a section of developers — especially those who've been in the field since before AI was useful — who treat Vibe Coding like it's cheating. They still write everything manually, and somewhere in the back of their mind, they believe that's what makes them "real" developers. They worry that if they use AI to build something, people will say: &lt;em&gt;"What did you even do? The AI did everything."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I understand that feeling. But that thinking is holding people back.&lt;/p&gt;

&lt;p&gt;No one looks at an architect and says, "You didn't build the building yourself, so you're not a real architect." The architect designed it, specified it, made the decisions, caught the mistakes, and took responsibility for the outcome. The workers executed.&lt;/p&gt;

&lt;p&gt;AI is a worker. A very fast, very capable worker. But it still needs someone who knows what they want, can catch when it's wrong, and can redirect it when it goes off track. That someone is you — if you're willing to actually learn the craft underneath.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Learning Method That Actually Works
&lt;/h2&gt;

&lt;p&gt;Here's exactly how I learn, and how I'd tell you to learn.&lt;/p&gt;

&lt;p&gt;Get a fresh notebook and a pen. Open two tabs in your browser — one for a chatbot, one for the official documentation of whatever you're studying. Not a YouTube tutorial. Not a course. The actual docs.&lt;/p&gt;

&lt;p&gt;Read the documentation. Even if you don't understand it fully. Especially if you don't understand it fully.&lt;/p&gt;

&lt;p&gt;When you hit a word you don't know, copy it into the chatbot and ask for a plain explanation. Then write that word and its meaning on the right side of your notebook page. You're building your own offline dictionary — one you actually remember because you built it yourself.&lt;/p&gt;

&lt;p&gt;On the left side of that same page, write what you're learning in your own words. Messy, broken, incomplete — it doesn't matter. The act of writing forces your brain to translate what it read into something it actually understands.&lt;/p&gt;

&lt;p&gt;Let me give you a real example. If you're starting with Node.js, don't jump straight into building an API. First, just understand: what is npm? What is nvm? What is npx? What is a software registry? How are these things different from each other, and why does each one exist?&lt;/p&gt;

&lt;p&gt;Just understand. Don't build yet.&lt;/p&gt;

&lt;p&gt;Then, once something makes sense — do one small practical thing with &lt;em&gt;just that concept&lt;/em&gt;. Run it. See the output. Watch the program do what you just learned it should do.&lt;/p&gt;

&lt;p&gt;That moment — when the output matches your understanding — is the moment your brain stores it permanently. Not because you memorized it. Because you experienced it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Be Consistent. Don't Jump.
&lt;/h2&gt;

&lt;p&gt;This is the part most people skip.&lt;/p&gt;

&lt;p&gt;Don't move to the next topic until the current one makes sense. I don't care if someone tells you that you're going too slow. I don't care if AI can do the whole thing in 30 seconds. You stay with that concept until it's yours.&lt;/p&gt;

&lt;p&gt;Because here's what happens when you're consistent: after a few weeks, you'll start feeling something shift. You'll be in a conversation with other developers and realize you're the one explaining things. You'll look at a codebase and actually understand what's happening instead of just hoping it works. You'll feel a kind of confidence that's different from arrogance — it's the confidence of someone who knows their own work.&lt;/p&gt;

&lt;p&gt;That feeling is real. And it only comes from not skipping steps.&lt;/p&gt;




&lt;h2&gt;
  
  
  Now, About Building With AI
&lt;/h2&gt;

&lt;p&gt;Once you have that foundation — even a small one — here's where things get exciting.&lt;/p&gt;

&lt;p&gt;When an idea for an app comes to you, don't dismiss it because you think you're "not ready." Draw it out. Make a rough flowchart. What are the screens? What does the data look like? What happens when a user does X?&lt;/p&gt;

&lt;p&gt;Then take that understanding and give it to an AI agent. Not as a vague prompt like "build me an app." As a technical spec. Tell it what stack to use, what the data structure should look like, what libraries are appropriate, what you want each function to do.&lt;/p&gt;

&lt;p&gt;And then watch it work — not passively, but actively. Question every decision it makes. Ask it why it chose one approach over another. When something looks wrong, push back. You are the manager. The AI is executing.&lt;/p&gt;

&lt;p&gt;This is not Vibe Coding. Vibe Coding is throwing a vague idea at an AI and hoping for the best. What I'm describing is technical leadership — using a powerful tool while staying in full control of the outcome.&lt;/p&gt;

&lt;p&gt;And here's the thing: the more technical you become, the better your prompts get without you even trying. You'll naturally start specifying tools, libraries, architecture patterns — because you understand them. That's prompt engineering, but it emerges from real knowledge. You don't have to study it separately.&lt;/p&gt;




&lt;h2&gt;
  
  
  Ship It. Then Own It.
&lt;/h2&gt;

&lt;p&gt;When the app is ready — ship it. Cloudflare Pages, free tier, your own subdomain, live in minutes. No excuses.&lt;/p&gt;

&lt;p&gt;And when it's live, introduce it with confidence. "I built this." Not "AI built this" and not "I wrote every line myself." The truth: &lt;em&gt;you built this, with AI as your tool.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If someone says "the AI did it," your answer is simple: &lt;em&gt;"The same AI is available to you. Why haven't you built yours?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Because here's the real differentiator — it was never about who wrote the code. It's about who understood the problem, made the decisions, and shipped the product.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where I Am Right Now
&lt;/h2&gt;

&lt;p&gt;Everything I've described in this post is how I built these:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://acadly.systemset.co" rel="noopener noreferrer"&gt;Acadly&lt;/a&gt; — A school communication app&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dealsafe.pages.dev" rel="noopener noreferrer"&gt;Deal Safe&lt;/a&gt; — An escrow platform connecting clients and freelancers&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://projex-cli.vercel.app" rel="noopener noreferrer"&gt;Projex CLI&lt;/a&gt; — A Python library that generates boilerplates straight from your terminal&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tronq.vercel.app" rel="noopener noreferrer"&gt;Tron&lt;/a&gt; — A GUI-based QA testing tool&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Go check them out. See if anything looks AI-generated to you. I'll wait.&lt;/p&gt;




&lt;p&gt;You don't have to pick between learning deeply and building fast. The workflow exists. It just takes consistency, honesty about where you are, and the willingness to be the one in charge — not the AI.&lt;/p&gt;

&lt;p&gt;That's it. That's the whole thing.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Part of an ongoing series on building real things and learning the hard way.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>career</category>
    </item>
    <item>
      <title>Turns out free doesn't mean unlimited 🔥</title>
      <dc:creator>Ch. Abdul Wahab</dc:creator>
      <pubDate>Sat, 18 Apr 2026 12:56:55 +0000</pubDate>
      <link>https://dev.to/chabdulwahhab310/turns-out-free-doesnt-mean-unlimited-4536</link>
      <guid>https://dev.to/chabdulwahhab310/turns-out-free-doesnt-mean-unlimited-4536</guid>
      <description>&lt;p&gt;There's a moment in every developer's journey where you stop asking "can I build this?" and just... build it. No overthinking, no analysis paralysis. Just a problem in front of you and a keyboard under your hands.&lt;/p&gt;

&lt;p&gt;Mine came from the most unexpected place: a maths and physics teacher at the school where I work as an IT trainer.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Sir, why is there no app where students and teachers can talk separately? WhatsApp is a mess — work stuff, jokes, random forwards, all in one place."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;He was right. I'd felt it too. So I said, "Let me think about it." And then I just started building.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Built (And What It Became)
&lt;/h2&gt;

&lt;p&gt;The app is called &lt;strong&gt;Acadly&lt;/strong&gt; — yes, I know a similar name exists in the market, but this is a completely different product, and the name isn't final yet. I'm open to suggestions after you read this.&lt;/p&gt;

&lt;p&gt;The idea was simple: a focused communication platform for schools. Four sections:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Chat&lt;/strong&gt; — personal and group messaging between teachers and students, with file sharing built in&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Files&lt;/strong&gt; — each user gets their own folder, can upload files, and others can view or download them&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Members&lt;/strong&gt; — a directory of everyone in the system, organized by role&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Profile&lt;/strong&gt; — manage your identity, privacy, and settings&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As the app grew, so did the features. We added a read-only announcement channel at the top — only Team and Admin could post, everyone else just read. We added &lt;strong&gt;Admin controls&lt;/strong&gt;: lock users who violate rules, delete files or messages, restrict actions entirely for bad actors. A locked user couldn't message anyone, create folders, or even change their profile picture.&lt;/p&gt;

&lt;p&gt;For privacy, users could hide their email — it would display as &lt;code&gt;*******@example.com&lt;/code&gt; unless they chose otherwise.&lt;/p&gt;

&lt;p&gt;We even added a small engagement layer: teachers who actively responded to students earned achievement badges, and students could rate each other for helpfulness — a rating only visible to other students, not to teachers, and not even to the rated student themselves.&lt;/p&gt;

&lt;p&gt;It was working well. People were using it. The vibe was good.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Database Journey (Where It Gets Interesting)
&lt;/h2&gt;

&lt;p&gt;Here's the part I want every mobile developer to read carefully.&lt;/p&gt;

&lt;p&gt;I started with &lt;strong&gt;Firebase&lt;/strong&gt;. It's familiar, it has a great free tier (Spark Plan), and the Google sign-in flow is genuinely smooth. On the free plan you get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;50,000 document reads/day&lt;/strong&gt; and &lt;strong&gt;20,000 writes/day&lt;/strong&gt; on Firestore&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1 GB storage&lt;/strong&gt; on Cloud Storage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;50,000 monthly active users&lt;/strong&gt; for authentication&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sounds generous — and it is, for small apps. But here's what I didn't implement that cost me later: &lt;strong&gt;offline caching&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Modern apps are smart about this. When you open them, they serve you cached data from your local storage first, then quietly fetch only the new stuff in the background. You can even read messages in flight mode if the data is cached. I didn't set this up. So every time a user opened the app, it fetched &lt;em&gt;everything&lt;/em&gt; from Firebase fresh. Every. Single. Time.&lt;/p&gt;

&lt;p&gt;When the daily read limits hit, messages stopped sending. The app just... stopped.&lt;/p&gt;

&lt;p&gt;Now, to be fair — I had only shared the app internally with a small group of users, and I'd warned them not to use it for anything critical yet. So no real damage was done. But the lesson was clear.&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;file storage&lt;/strong&gt;, I moved to &lt;strong&gt;Supabase&lt;/strong&gt;, which made sense because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;500 MB database storage&lt;/strong&gt; on the free plan&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;1 GB file storage&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;50,000 monthly active users&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Max file size of &lt;strong&gt;50 MB per file&lt;/strong&gt; on the free tier&lt;/li&gt;
&lt;li&gt;Projects pause after &lt;strong&gt;1 week of inactivity&lt;/strong&gt; (something to watch out for)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Supabase handled files well. But the real question was: what comes next?&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I'm Moving to Cloudflare (R2 + D1)
&lt;/h2&gt;

&lt;p&gt;After going back and forth between Firebase and Supabase, I made a decision: &lt;strong&gt;Cloudflare R2 and D1&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Here's why this combination clicked for me:&lt;/p&gt;

&lt;p&gt;You get a &lt;strong&gt;SQLite database (D1)&lt;/strong&gt; that you can deploy and manage entirely through Cloudflare's &lt;code&gt;wrangler&lt;/code&gt; CLI. No separate backend hosting. No managing servers. Your entire full-stack web app — frontend on Cloudflare Pages, backend Workers, database on D1, files on R2 — all deployed from the terminal. The deployment headache just disappears.&lt;/p&gt;

&lt;p&gt;The free tier is genuinely good:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cloudflare Workers&lt;/strong&gt;: 100,000 requests/day, resets at midnight UTC&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;R2 storage&lt;/strong&gt;: 10 GB free, with no egress fees (yes — no charges for downloading your own files)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;D1 database&lt;/strong&gt;: generous read/write limits on the free plan&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloudflare Pages&lt;/strong&gt;: static asset requests are unlimited and free&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And all of this is free. No credit card required to get started.&lt;/p&gt;

&lt;p&gt;I hadn't used R2 or D1 when I was building Acadly. I knew the names, but hadn't touched them. Then I decided I was going to make it work, sat down, figured it out, and now I'm recommending it to anyone building a full-stack app who doesn't want to juggle three different hosting services.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Lesson Behind All of This
&lt;/h2&gt;

&lt;p&gt;When I look back at the entire Acadly journey, the real lesson isn't about which database to pick. It's about what happens when you decide you're going to build something no matter what.&lt;/p&gt;

&lt;p&gt;You end up learning things you wouldn't have learned from a tutorial. Firebase limits teach you about caching. Supabase file limits teach you about storage architecture. Cloudflare teaches you that serverless deployment doesn't have to be painful.&lt;/p&gt;

&lt;p&gt;Every constraint pushed me toward a better decision.&lt;/p&gt;

&lt;p&gt;If you're building a mobile app — React Native or otherwise — here's what I'd tell you:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Set up offline caching from day one.&lt;/strong&gt; It's not a nice-to-have. It's the difference between an app that works and an app that hammers your database on every open.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Know your free tier limits before you hit them.&lt;/strong&gt; Firebase's daily read/write quotas reset at midnight Pacific. Supabase's free projects pause after a week of inactivity. Cloudflare Workers reset at midnight UTC. These aren't gotchas — they're just information you need upfront.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And if you ever feel stuck on a dashboard or config panel&lt;/strong&gt; — here's my actual trick: &lt;code&gt;Ctrl+A&lt;/code&gt;, &lt;code&gt;Ctrl+C&lt;/code&gt;, paste it into any AI chatbot, and ask "I want to do X here, how?" It saves hours of YouTube tutorials and gets you moving again fast.&lt;/p&gt;




&lt;p&gt;Acadly is still in development. The name might change. The database definitely changed. But the problem it's solving — keeping school communication clean and organized — that hasn't changed at all.&lt;/p&gt;

&lt;p&gt;If you've built something similar or have thoughts on the stack, drop it in the comments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check it out:&lt;/strong&gt; &lt;a href="https://acadly.systemset.co" rel="noopener noreferrer"&gt;Acadly&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Part of an ongoing series on building real things and learning the hard way.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>firebase</category>
      <category>reactnative</category>
    </item>
    <item>
      <title>We Started a Startup, Got One Client, and It Broke Us Apart</title>
      <dc:creator>Ch. Abdul Wahab</dc:creator>
      <pubDate>Fri, 17 Apr 2026 07:37:04 +0000</pubDate>
      <link>https://dev.to/chabdulwahhab310/we-started-a-startup-got-one-client-and-it-broke-us-apart-1kh4</link>
      <guid>https://dev.to/chabdulwahhab310/we-started-a-startup-got-one-client-and-it-broke-us-apart-1kh4</guid>
      <description>&lt;p&gt;I want to tell you about the most chaotic, frustrating, and honestly hilarious chapter of my life as a developer.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Job That Taught Me Everything (Except Boundaries)
&lt;/h2&gt;

&lt;p&gt;Before all of this, I was working at a company as a Python Developer. Junior title, but the work was anything but junior. I ended up handling Cloudflare security, cloud integrations, API integrations — things way outside my job description. Nobody asked me to. I just did it because someone had to.&lt;/p&gt;

&lt;p&gt;Looking back, that job gave me a dangerous amount of confidence. I thought I could handle anything.&lt;/p&gt;

&lt;p&gt;Eventually things went sour with our team lead. He ran the team like a closed room — no opinions, no pushback allowed. That's a story for another post. But leaving that place felt like breathing fresh air for the first time.&lt;/p&gt;

&lt;p&gt;So naturally, we decided to start a company.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Google Meet That Started Everything
&lt;/h2&gt;

&lt;p&gt;It was 2024. Late night. Four friends on a Google Meet call.&lt;/p&gt;

&lt;p&gt;My friend painted the picture: &lt;em&gt;"It's just websites. Just dashboards. We build, we deliver, clients pay. Easy."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We were excited. The kind of excited where you skip past every red flag because the dream feels too good to question. We had some concerns — no template library, no portfolio, no clients — but we talked ourselves through all of it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"We'll scrape paid templates from Envato, edit them, deliver. Simple."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Within days we had bought hosting, a domain, and an Envato Elements subscription. The website went live. We gave ourselves titles — CEO, CTO, CSO, Founder — and sat back waiting for orders to roll in.&lt;/p&gt;

&lt;p&gt;They did not roll in.&lt;/p&gt;

&lt;p&gt;I know. Shocking.&lt;/p&gt;




&lt;h2&gt;
  
  
  The First (and Last) Client
&lt;/h2&gt;

&lt;p&gt;A few weeks passed. I put up a WhatsApp status about our services. An old friend messaged me almost immediately.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Bhai, I have a client who needs a dashboard."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We were so ready for this. We'd read about Agile methodologies. We asked for a requirements document like professionals. The friend said the client was non-technical, offered a call instead. We said sure.&lt;/p&gt;

&lt;p&gt;Then came the first warning sign, delivered casually: &lt;em&gt;"By the way, this client has been messed around by the previous dev team for a month. Half the team disappeared. Oh, and the client doesn't know."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We should have walked away. We didn't. Old friend, old loyalty. We said we'd handle it.&lt;/p&gt;

&lt;p&gt;The brief was simple: a static dashboard with some ChartJS graphs. Student client, tight budget. We quoted fairly, sent a proper proposal via email, got approval, and started.&lt;/p&gt;




&lt;h2&gt;
  
  
  Scope Creep, Meet Chaos
&lt;/h2&gt;

&lt;p&gt;What followed was a masterclass in everything that can go wrong on a project.&lt;/p&gt;

&lt;p&gt;Changes came. Then more changes. Then a WhatsApp group appeared with the client sending voice messages. Budget got revised upward, client said yes every time. We kept building. I was handling the mailing, the project management, the development — basically everything.&lt;/p&gt;

&lt;p&gt;When two dashboards in Next.js were finally ready, the client looked at them and said: &lt;em&gt;"The design doesn't match Amazon Seller Central."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I'm a UI guy. Unfortunately. So I matched it. Client was happy. For about three days.&lt;/p&gt;

&lt;p&gt;Then our developer got sick. Source code was on his local machine. No repo. Four days of radio silence. My other friend and I kept the project alive by literally changing our names in communications so the client wouldn't notice the team had half-collapsed. I'm laughing writing this, but it was not funny at the time.&lt;/p&gt;

&lt;p&gt;When the developer came back, there was a misunderstanding, then an argument, then an uneasy truce because the project wasn't done yet.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Middleman Problem
&lt;/h2&gt;

&lt;p&gt;Here's the part that still gets me.&lt;/p&gt;

&lt;p&gt;All this time, our old friend — the middleman — was relaying messages between us and the client. The client would tell him about new features. We'd send updated quotes and approval documents directly to the client. The client was not reading our emails. He was just telling the middleman what he wanted and assuming it was included.&lt;/p&gt;

&lt;p&gt;Nobody caught this until the very end.&lt;/p&gt;

&lt;p&gt;When we finally connected all the dots in a proper meeting, we realized the client had no idea what was in our quotes. He thought everything he'd asked for verbally was already covered. We'd been billing for additions he didn't know existed.&lt;/p&gt;

&lt;p&gt;To protect the old friendship, we absorbed it. Took the blame. Moved on.&lt;/p&gt;

&lt;p&gt;The final invoice was supposed to be $53.78. The client had already paid $35.86. Then, because one advanced feature couldn't be implemented, he said he'd only pay $25.10.&lt;/p&gt;

&lt;p&gt;We agreed. Just to close it out. Just to be done.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Came After
&lt;/h2&gt;

&lt;p&gt;The project ended. And so did the company.&lt;/p&gt;

&lt;p&gt;My friends blamed me — it was my reference, my contact, therefore my fault. That hurt more than the $25. I felt like I was the only one who understood what had actually gone wrong, and no one was interested in hearing it.&lt;/p&gt;

&lt;p&gt;We went our separate ways.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Actually Learned
&lt;/h2&gt;

&lt;p&gt;Not "don't start a startup." Startups are fine. The lesson was more specific than that:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't build a company with friends before figuring out who does what.&lt;/strong&gt; Titles are not roles. CEO doesn't mean anything if there's no sales process, no accountability, no structure underneath it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sales comes first.&lt;/strong&gt; Every student developer I know — myself included, back then — thinks the product is the hard part. It isn't. Getting clients, managing them, scoping projects clearly, following up — that's the hard part. Hire for that first. Everything else can scale later.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Document everything. In writing. Acknowledged by the client.&lt;/strong&gt; Voice messages in a WhatsApp group are not a contract. A middleman's word is not a contract. If the client didn't read the email, that's a process failure, not just bad luck.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A bad project start doesn't get better with effort.&lt;/strong&gt; We poured ourselves into that project hoping quality would fix the chaos underneath. It didn't. Sometimes the right move is to stop early.&lt;/p&gt;




&lt;p&gt;I'm sharing this because I see a lot of junior developers romanticize the "startup with friends" idea. Sometimes it works beautifully. Sometimes you end up renaming yourself in email threads to hide the fact that your team has fallen apart.&lt;/p&gt;

&lt;p&gt;Both outcomes are possible. Just go in with your eyes open.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is part of an ongoing series where I write about building things — the wins, the disasters, and everything in between.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>startup</category>
      <category>beginners</category>
      <category>career</category>
    </item>
    <item>
      <title>Maybe this is how Open-Source apps are born... 🚀</title>
      <dc:creator>Ch. Abdul Wahab</dc:creator>
      <pubDate>Fri, 17 Apr 2026 02:17:36 +0000</pubDate>
      <link>https://dev.to/chabdulwahhab310/maybe-this-is-how-open-source-apps-are-born-2fmh</link>
      <guid>https://dev.to/chabdulwahhab310/maybe-this-is-how-open-source-apps-are-born-2fmh</guid>
      <description>&lt;p&gt;It started with a simple question from a friend.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Bro, is there no proper tool for QA testing? Like something with a UI?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I paused. I knew about Pytest. Most people do. But then it hit me — you still have to write code to use it. You just wrote a whole app, and now you have to write &lt;em&gt;more&lt;/em&gt; code to test the code you just wrote. That felt wrong.&lt;/p&gt;

&lt;p&gt;So I said, "Let me look into it." And then — the way these things always go — I just... started building.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Stack Graveyard (Before We Found the Right One)
&lt;/h2&gt;

&lt;p&gt;I'm not going to pretend the journey was smooth. It wasn't.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tkinter&lt;/strong&gt; was the first attempt. It worked, but it felt like showing up to a product demo in a 2003 Dell laptop. Not the vibe.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PyQt&lt;/strong&gt; was next. The UI was actually decent. But the moment I tried to package it into an installer for delivery, everything fell apart. The engine wasn't being bundled correctly — users were getting a pretty GUI that did absolutely nothing. A software shell with no soul.&lt;/p&gt;

&lt;p&gt;Finally landed on &lt;strong&gt;Electron + React + Python&lt;/strong&gt;. This combo clicked. Electron handled the desktop shell, React gave me the UI flexibility I wanted, and Python stayed in the back doing what Python does best — the actual heavy lifting.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Tron Actually Does
&lt;/h2&gt;

&lt;p&gt;The core idea was simple: &lt;strong&gt;50 pre-built tests, zero extra code required.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you install Tron, it automatically sets up a &lt;code&gt;conftest&lt;/code&gt; file and all the necessary dependencies in the background. You don't configure anything. You don't write anything. You open the app, paste your URL, pick your tests, and hit run.&lt;/p&gt;

&lt;p&gt;That's it.&lt;/p&gt;

&lt;p&gt;And when the tests finish, you get a proper structured report — not a terminal dump that you have to decipher, an actual readable report you can share.&lt;/p&gt;

&lt;p&gt;I called the backend the &lt;strong&gt;Tron Engine&lt;/strong&gt;. Felt right.&lt;/p&gt;




&lt;h2&gt;
  
  
  Solo Dev Life at a "Company"
&lt;/h2&gt;

&lt;p&gt;Here's the honest part: Systemset Co. is mostly just me.&lt;/p&gt;

&lt;p&gt;I give my projects a company name because it helps me take them seriously — it's a mindset thing. But the reality is, I'm one person wearing every hat. Backend, frontend, packaging, documentation, landing page design, Mac builds, Windows builds — all of it.&lt;/p&gt;

&lt;p&gt;Getting the &lt;strong&gt;Windows installer&lt;/strong&gt; working was one thing. Then I thought, &lt;em&gt;let me also set it up for Mac&lt;/em&gt;, and spent the next however-many hours wrestling with &lt;code&gt;.dmg&lt;/code&gt; packaging on top of everything else.&lt;/p&gt;

&lt;p&gt;It's a lot. But it's also kind of the best feeling when it actually works.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Landing Page
&lt;/h2&gt;

&lt;p&gt;I didn't want the landing page to look like it was spit out by an AI in 30 seconds. That meant doing it properly.&lt;/p&gt;

&lt;p&gt;Built it in &lt;strong&gt;React&lt;/strong&gt;, and leaned heavily on &lt;strong&gt;Aceternity UI&lt;/strong&gt;, &lt;strong&gt;Cult UI&lt;/strong&gt;, and &lt;strong&gt;React Bits&lt;/strong&gt; for the component design. These libraries genuinely saved me weeks of work. If you haven't explored them yet and you're building landing pages solo — please do.&lt;/p&gt;

&lt;p&gt;For the feedback form, I used &lt;strong&gt;Formspree&lt;/strong&gt;. No backend, no database, just a working contact form with captcha that actually sends me emails. Sometimes the boring solution is the right one.&lt;/p&gt;




&lt;h2&gt;
  
  
  The One Thing I'm Still Stuck On
&lt;/h2&gt;

&lt;p&gt;Code signing.&lt;/p&gt;

&lt;p&gt;If you've shipped a desktop app independently, you know the pain. Without a proper certificate, Windows throws a "Unknown Publisher" warning and Mac Gatekeeper gets dramatic about it. The user experience takes a hit before they've even opened the app.&lt;/p&gt;

&lt;p&gt;DigiCert and similar services are expensive — we're talking hundreds of dollars per year, which isn't realistic right now for an independent project. I'm looking into alternatives. If anyone has gone through this and found a reasonable path forward, I'd genuinely love to hear it in the comments.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where Things Stand
&lt;/h2&gt;

&lt;p&gt;Tron is out. People can use it. I don't know yet how many will, or what they'll think of it.&lt;/p&gt;

&lt;p&gt;But I built it because the tool I wanted didn't exist. And if even a few other developers find it useful — people who just want to run meaningful tests without setting up a whole testing framework from scratch — then it was worth it.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Check it out:&lt;/strong&gt; &lt;a href="https://tronq.vercel.app" rel="noopener noreferrer"&gt;Tron&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feedback welcome. Especially the critical kind.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;First post here. Go easy on me — but not too easy.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>python</category>
      <category>javascript</category>
      <category>testing</category>
    </item>
  </channel>
</rss>
