<?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>Forem: dwikbtn</title>
    <description>The latest articles on Forem by dwikbtn (@dwikbtn).</description>
    <link>https://forem.com/dwikbtn</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%2F715362%2F8338d06b-400a-4d03-92a6-30342606cd3b.png</url>
      <title>Forem: dwikbtn</title>
      <link>https://forem.com/dwikbtn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/dwikbtn"/>
    <language>en</language>
    <item>
      <title>You’re Not “Oversharing” — You’re Being Trained On</title>
      <dc:creator>dwikbtn</dc:creator>
      <pubDate>Fri, 23 Jan 2026 07:40:10 +0000</pubDate>
      <link>https://forem.com/dwikbtn/youre-not-oversharing-youre-being-trained-on-281c</link>
      <guid>https://forem.com/dwikbtn/youre-not-oversharing-youre-being-trained-on-281c</guid>
      <description>&lt;p&gt;Most conversations about AI and data miss the point.&lt;/p&gt;

&lt;p&gt;They frame the problem as user behavior:&lt;br&gt;
“You shared too much.”&lt;br&gt;
“You trusted the tool.”&lt;br&gt;
“You should’ve known better.”&lt;/p&gt;

&lt;p&gt;That’s convenient. And wrong.&lt;/p&gt;

&lt;p&gt;The real issue isn’t that people overshare.&lt;br&gt;
It’s that data extraction is happening invisibly, by default, and without meaningful choice.&lt;/p&gt;

&lt;p&gt;The Moment No One Warns You About&lt;/p&gt;

&lt;p&gt;Think about the moments where value is actually created:&lt;/p&gt;

&lt;p&gt;• Uploading artwork&lt;br&gt;
• Posting writing&lt;br&gt;
• Submitting code&lt;br&gt;
• Commenting in forums&lt;br&gt;
• Training prompts, feedback, edits&lt;br&gt;
• Simply browsing while logged in&lt;/p&gt;

&lt;p&gt;In those moments, you’re not “talking to AI.”&lt;br&gt;
You’re interacting with platforms — many of which reserve the right to use that interaction to train models.&lt;/p&gt;

&lt;p&gt;Sometimes they say it clearly.&lt;br&gt;
Sometimes it’s buried in policy updates.&lt;br&gt;
Sometimes it’s vague by design.&lt;/p&gt;

&lt;p&gt;But almost always, the same thing is true:&lt;/p&gt;

&lt;p&gt;You don’t know what’s happening while it’s happening.&lt;/p&gt;

&lt;p&gt;Awareness Isn’t the Fix. Agency Is.&lt;/p&gt;

&lt;p&gt;Telling people to “be more careful” assumes they have the information and the leverage to act.&lt;/p&gt;

&lt;p&gt;They don’t.&lt;/p&gt;

&lt;p&gt;Reading Terms of Service isn’t realistic.&lt;br&gt;
Tracking policy changes across platforms is impossible.&lt;br&gt;
Finding opt-out paths — when they exist at all — is friction by design.&lt;/p&gt;

&lt;p&gt;The problem isn’t ignorance.&lt;br&gt;
It’s lack of agency at the point of interaction.&lt;/p&gt;

&lt;p&gt;What WTOM Actually Does&lt;/p&gt;

&lt;p&gt;WTOM (WhoTrainedOnMe) exists for one reason:&lt;/p&gt;

&lt;p&gt;To interrupt invisible AI training at the moment it matters and give users a real choice.&lt;/p&gt;

&lt;p&gt;When you visit a site, WTOM checks whether that platform:&lt;/p&gt;

&lt;p&gt;• Uses user data to train AI&lt;br&gt;
• Has a history of content scraping&lt;br&gt;
• Offers an opt-out or protest mechanism&lt;br&gt;
• Is vague or opaque about AI usage&lt;/p&gt;

&lt;p&gt;If there’s a match, WTOM shows a small, contextual signal — right then, on that site.&lt;/p&gt;

&lt;p&gt;Not a dashboard.&lt;br&gt;
Not a warning banner.&lt;br&gt;
Not fear-based messaging.&lt;/p&gt;

&lt;p&gt;Just clarity — paired with action.&lt;/p&gt;

&lt;p&gt;This Isn’t About Fear. It’s About Control.&lt;/p&gt;

&lt;p&gt;WTOM doesn’t tell you what to do.&lt;br&gt;
It doesn’t block anything.&lt;br&gt;
It doesn’t assume intent.&lt;/p&gt;

&lt;p&gt;It simply answers the question you’re almost never allowed to ask in real time:&lt;/p&gt;

&lt;p&gt;Is this platform training on me — and can I do anything about it?&lt;/p&gt;

&lt;p&gt;Sometimes the answer is “yes, and here’s how to opt out.”&lt;br&gt;
Sometimes it’s “yes, and there is no opt-out.”&lt;br&gt;
Sometimes it’s “unclear — and that’s the point.”&lt;/p&gt;

&lt;p&gt;But at least you know before you contribute.&lt;/p&gt;

&lt;p&gt;Why This Matters (Especially for Creators)&lt;/p&gt;

&lt;p&gt;Artists, writers, developers, photographers — they create value constantly online.&lt;/p&gt;

&lt;p&gt;And in many cases, that value becomes training data by default, without explicit consent and without compensation.&lt;/p&gt;

&lt;p&gt;WTOM doesn’t solve the entire system.&lt;br&gt;
But it does something rare:&lt;/p&gt;

&lt;p&gt;It restores situational awareness + choice at the exact moment leverage normally disappears.&lt;/p&gt;

&lt;p&gt;Where This Is Going&lt;/p&gt;

&lt;p&gt;WTOM is early. The database is growing. Coverage is expanding. Reporting is manual and human by necessity.&lt;/p&gt;

&lt;p&gt;But the direction is simple:&lt;/p&gt;

&lt;p&gt;• Real-time AI training visibility&lt;br&gt;
• Per-site opt-out and protest paths&lt;br&gt;
• A future privacy dashboard that reflects your exposure, not just abstract risk&lt;/p&gt;

&lt;p&gt;This isn’t about stopping AI.&lt;br&gt;
It’s about stopping silent extraction.&lt;/p&gt;

&lt;p&gt;If You Want That Control Back&lt;/p&gt;

&lt;p&gt;WTOM is live now for:&lt;/p&gt;

&lt;p&gt;Chrome + all Chromium browsers: &lt;a href="https://chromewebstore.google.com/detail/whotrainedonme/bcnaoacokjckhmoddckahcijpjlibdlf" rel="noopener noreferrer"&gt;Check it here&lt;/a&gt;&lt;br&gt;
Firefox: &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/whotrainedonme/" rel="noopener noreferrer"&gt;Check it here&lt;/a&gt;&lt;br&gt;
Use it.&lt;br&gt;
Report sites.&lt;br&gt;
Pressure platforms through visibility.&lt;/p&gt;

&lt;p&gt;Because the most dangerous part of AI training today isn’t malice.&lt;/p&gt;

&lt;p&gt;It’s that it happens quietly, while you’re busy creating.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>I Built a Tool That Detects AI Training — And I Need Your Help.</title>
      <dc:creator>dwikbtn</dc:creator>
      <pubDate>Wed, 03 Dec 2025 01:00:11 +0000</pubDate>
      <link>https://forem.com/dwikbtn/i-built-a-tool-that-detects-ai-training-and-i-need-your-help-1g6g</link>
      <guid>https://forem.com/dwikbtn/i-built-a-tool-that-detects-ai-training-and-i-need-your-help-1g6g</guid>
      <description>&lt;p&gt;So… I built something.&lt;/p&gt;

&lt;p&gt;A small browser extension that tells you when a website you’re visiting might be using your data to train AI models.&lt;/p&gt;

&lt;p&gt;Not in a dramatic way.&lt;br&gt;
Not in a “the robots are coming” way.&lt;br&gt;
Just… transparency. Because right now, the average person has absolutely no idea where their data goes.&lt;/p&gt;

&lt;p&gt;And I’d love your help making it better.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built WTOM
&lt;/h2&gt;

&lt;p&gt;I’ve been following AI news for a while, and one thing keeps bothering me:&lt;br&gt;
&lt;strong&gt;our data is being used to train models, but we’re rarely told how, where, or when.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Some platforms are clear about it.&lt;br&gt;
Some hide the details in their Terms of Service.&lt;br&gt;
Some don’t mention it at all.&lt;/p&gt;

&lt;p&gt;Artists. Writers. Photographers. Developers.&lt;br&gt;
All creating online… and quietly contributing to AI datasets without consent.&lt;/p&gt;

&lt;p&gt;After a while, I realized:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There’s no easy way to check who’s training on your data.&lt;/strong&gt;&lt;br&gt;
So I decided to make one.&lt;/p&gt;

&lt;h2&gt;
  
  
  What WTOM Is
&lt;/h2&gt;

&lt;p&gt;WTOM (WhoTrainedOnMe) is a browser extension for Chrome, Chromium-based browsers, and Firefox.&lt;/p&gt;

&lt;p&gt;When you visit a site, WTOM checks if that platform:&lt;/p&gt;

&lt;p&gt;Trains AI on user data&lt;br&gt;
Has a history of content scraping&lt;br&gt;
Offers any kind of opt-out or protest channel&lt;br&gt;
Is vague or unclear in their AI policies&lt;br&gt;
If the site matches, WTOM shows a small, respectful widget with this info.&lt;br&gt;
No settings. No config. It just appears when needed.&lt;/p&gt;

&lt;p&gt;It’s not perfect, but my goal is to give users clarity — not fear.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How WTOM Works (A Lot of Manual Research)&lt;/strong&gt;&lt;br&gt;
This part is very human and very messy, so I’ll be honest: I manually researched everything.&lt;/p&gt;

&lt;p&gt;I read privacy policies.&lt;br&gt;
I checked TOS updates.&lt;br&gt;
I dug into past training datasets.&lt;br&gt;
I looked at robots.txt files.&lt;br&gt;
I cross-checked discussions from artists, creators, and researchers.&lt;/p&gt;

&lt;p&gt;Every website gets a “rule” based on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI training status&lt;/li&gt;
&lt;li&gt;Transparency level&lt;/li&gt;
&lt;li&gt;Opt-out method&lt;/li&gt;
&lt;li&gt;Available contact or protest channels&lt;/li&gt;
&lt;li&gt;Overall behavior&lt;/li&gt;
&lt;li&gt;It takes time. It’s tedious.&lt;/li&gt;
&lt;li&gt;But it’s necessary.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;WTOM will only be as accurate as the research behind it — and that’s where I need help.&lt;/p&gt;

&lt;h2&gt;
  
  
  I Need Your Help: Report Websites
&lt;/h2&gt;

&lt;p&gt;WTOM now has a simple reporting feature.&lt;br&gt;
If you’re browsing and find a platform that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Trains AI&lt;/li&gt;
&lt;li&gt;Has unclear AI policies&lt;/li&gt;
&lt;li&gt;Uses your data in ways you didn’t expect or feels suspicious
…you can report it directly from the extension.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That report comes to me anonymously, and I’ll investigate the site and add it to the database if needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This is the only way WTOM grows.&lt;/strong&gt;&lt;br&gt;
I can’t manually discover everything.&lt;br&gt;
But together, we can map the web’s AI training behavior — site by site.&lt;/p&gt;

&lt;p&gt;Search&lt;br&gt;
Write&lt;br&gt;
Notifications&lt;/p&gt;

&lt;p&gt;dwi darma&lt;br&gt;
Home&lt;br&gt;
Library&lt;br&gt;
Profile&lt;br&gt;
Stories&lt;br&gt;
Stats&lt;br&gt;
Following&lt;br&gt;
Hanief&lt;br&gt;
Hanief&lt;br&gt;
Find writers and publications to follow.&lt;/p&gt;

&lt;p&gt;See suggestions&lt;br&gt;
Our best price of the year.&lt;/p&gt;

&lt;p&gt;Get 20% off new memberships for a limited time.&lt;/p&gt;

&lt;p&gt;I Built a Tool That Detects AI Training — And I Need Your Help.&lt;br&gt;
dwi darma&lt;br&gt;
dwi darma&lt;br&gt;
3 min read&lt;br&gt;
·&lt;br&gt;
23 hours ago&lt;/p&gt;

&lt;p&gt;So… I built something.&lt;/p&gt;

&lt;p&gt;A small browser extension that tells you when a website you’re visiting might be using your data to train AI models.&lt;/p&gt;

&lt;p&gt;Not in a dramatic way.&lt;br&gt;
Not in a “the robots are coming” way.&lt;br&gt;
Just… transparency. Because right now, the average person has absolutely no idea where their data goes.&lt;/p&gt;

&lt;p&gt;And I’d love your help making it better.&lt;/p&gt;

&lt;p&gt;Why I Built WTOM&lt;br&gt;
I’ve been following AI news for a while, and one thing keeps bothering me:&lt;br&gt;
our data is being used to train models, but we’re rarely told how, where, or when.&lt;/p&gt;

&lt;p&gt;Some platforms are clear about it.&lt;br&gt;
Some hide the details in their Terms of Service.&lt;br&gt;
Some don’t mention it at all.&lt;/p&gt;

&lt;p&gt;Artists. Writers. Photographers. Developers.&lt;br&gt;
All creating online… and quietly contributing to AI datasets without consent.&lt;/p&gt;

&lt;p&gt;After a while, I realized:&lt;/p&gt;

&lt;p&gt;There’s no easy way to check who’s training on your data.&lt;br&gt;
So I decided to make one.&lt;/p&gt;

&lt;p&gt;What WTOM Is&lt;br&gt;
WTOM (WhoTrainedOnMe) is a browser extension for Chrome, Chromium-based browsers, and Firefox.&lt;/p&gt;

&lt;p&gt;When you visit a site, WTOM checks if that platform:&lt;/p&gt;

&lt;p&gt;Trains AI on user data&lt;br&gt;
Has a history of content scraping&lt;br&gt;
Offers any kind of opt-out or protest channel&lt;br&gt;
Is vague or unclear in their AI policies&lt;br&gt;
If the site matches, WTOM shows a small, respectful widget with this info.&lt;br&gt;
No settings. No config. It just appears when needed.&lt;/p&gt;

&lt;p&gt;It’s not perfect, but my goal is to give users clarity — not fear.&lt;/p&gt;

&lt;p&gt;How WTOM Works (A Lot of Manual Research)&lt;br&gt;
This part is very human and very messy, so I’ll be honest: I manually researched everything.&lt;/p&gt;

&lt;p&gt;I read privacy policies.&lt;br&gt;
I checked TOS updates.&lt;br&gt;
I dug into past training datasets.&lt;br&gt;
I looked at robots.txt files.&lt;br&gt;
I cross-checked discussions from artists, creators, and researchers.&lt;/p&gt;

&lt;p&gt;Become a member&lt;br&gt;
Every website gets a “rule” based on:&lt;/p&gt;

&lt;p&gt;AI training status&lt;br&gt;
Transparency level&lt;br&gt;
Opt-out method&lt;br&gt;
Available contact or protest channels&lt;br&gt;
Overall behavior&lt;br&gt;
It takes time. It’s tedious.&lt;br&gt;
But it’s necessary.&lt;/p&gt;

&lt;p&gt;WTOM will only be as accurate as the research behind it — and that’s where I need help.&lt;/p&gt;

&lt;p&gt;I Need Your Help: Report Websites&lt;br&gt;
WTOM now has a simple reporting feature.&lt;br&gt;
If you’re browsing and find a platform that:&lt;/p&gt;

&lt;p&gt;Trains AI&lt;br&gt;
Has unclear AI policies&lt;br&gt;
Uses your data in ways you didn’t expect or feels suspicious&lt;br&gt;
…you can report it directly from the extension.&lt;/p&gt;

&lt;p&gt;That report comes to me anonymously, and I’ll investigate the site and add it to the database if needed.&lt;/p&gt;

&lt;p&gt;This is the only way WTOM grows.&lt;br&gt;
I can’t manually discover everything.&lt;br&gt;
But together, we can map the web’s AI training behavior — site by site.&lt;/p&gt;

&lt;h2&gt;
  
  
  WTOM Is Now Live
&lt;/h2&gt;

&lt;p&gt;WTOM is officially out for:&lt;/p&gt;

&lt;p&gt;Chrome + all Chromium browsers: &lt;a href="https://chromewebstore.google.com/detail/whotrainedonme/bcnaoacokjckhmoddckahcijpjlibdlf" rel="noopener noreferrer"&gt;Check it here&lt;/a&gt;&lt;br&gt;
Firefox: &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/whotrainedonme/" rel="noopener noreferrer"&gt;Check it here&lt;/a&gt;&lt;br&gt;
This is the first public release, so things may not be perfect yet, but it’s stable and ready for real users.&lt;/p&gt;

&lt;p&gt;If you care about AI transparency, data consent, or just understanding what the internet is doing behind the scenes, I’d love for you to try it.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>node</category>
      <category>frontend</category>
      <category>ai</category>
    </item>
    <item>
      <title>I Made a Browser Extension That Tells You When a Site Uses Your Data to Train AI</title>
      <dc:creator>dwikbtn</dc:creator>
      <pubDate>Tue, 18 Nov 2025 12:55:12 +0000</pubDate>
      <link>https://forem.com/dwikbtn/is-your-data-training-someones-ai-i-built-a-browser-extension-to-find-out-42eh</link>
      <guid>https://forem.com/dwikbtn/is-your-data-training-someones-ai-i-built-a-browser-extension-to-find-out-42eh</guid>
      <description>&lt;p&gt;AI is everywhere now, and most of us still have no idea where these models actually get their training data from. The more I looked into it, the more uneasy I felt — because the answer is often: from us.&lt;/p&gt;

&lt;p&gt;Your posts.&lt;br&gt;
Your art.&lt;br&gt;
Your photos.&lt;br&gt;
Your comments.&lt;/p&gt;

&lt;p&gt;A lot of platforms train AI on user content, and most people don’t even know it’s happening. Some companies are explicit about it, others hide it in the TOS, and many don’t mention anything at all. There’s no standard, no consistency, and no real transparency.&lt;/p&gt;

&lt;p&gt;So I built something that I wish existed:&lt;/p&gt;

&lt;p&gt;WTOM (WhoTrainedOnMe) — a browser extension that tells you whether the site you’re visiting might be using your data to train AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built It
&lt;/h2&gt;

&lt;p&gt;I kept running into the same problem:&lt;br&gt;
There is no simple way to know if a website uses your content to train AI models.&lt;/p&gt;

&lt;p&gt;Opt-out options (when they exist) are buried.&lt;br&gt;
Policies are vague or intentionally confusing.&lt;br&gt;
Artists and creators feel like their work gets scraped with no consent.&lt;/p&gt;

&lt;p&gt;WTOM’s goal is pretty simple:&lt;br&gt;
Give people transparency, and give them a path to say no.&lt;/p&gt;

&lt;h2&gt;
  
  
  How WTOM Works
&lt;/h2&gt;

&lt;p&gt;The extension checks the domain you’re visiting and matches it with a curated database of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Whether the platform trains AI&lt;/li&gt;
&lt;li&gt;How transparent they are about it&lt;/li&gt;
&lt;li&gt;Whether an official opt-out exists&lt;/li&gt;
&lt;li&gt;What users can do next (opt-out or protest)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the site is flagged, a small, clean widget appears on the page with the details.&lt;br&gt;
No setup required — it just works.&lt;/p&gt;

&lt;p&gt;You can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Jump directly to the opt-out toggle&lt;/li&gt;
&lt;li&gt;Or send a protest email (formal, gentle, or bold)&lt;/li&gt;
&lt;li&gt;With your info filled in locally&lt;/li&gt;
&lt;li&gt;Nothing stored server-side&lt;/li&gt;
&lt;li&gt;The idea is not to scare people. It’s simply to inform and empower them&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Surprising Part
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;While building WTOM, I learned how messy this space really is:&lt;/li&gt;
&lt;li&gt;Many popular sites used in AI training datasets say nothing about it&lt;/li&gt;
&lt;li&gt;Some hide their AI policies behind multiple pages&lt;/li&gt;
&lt;li&gt;Some only offer partial opt-outs&lt;/li&gt;
&lt;li&gt;Some explicitly deny training but still have loopholes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Artists and writers are the most impacted but the least informed&lt;/p&gt;

&lt;p&gt;It confirmed one thing for me:&lt;br&gt;
People need tools that bring clarity to all of this.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s Next
&lt;/h2&gt;

&lt;p&gt;WTOM is still growing, and there’s more coming:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Expanding the domain list&lt;/li&gt;
&lt;li&gt;Better accuracy on training + transparency labels&lt;/li&gt;
&lt;li&gt;A small public reference page&lt;/li&gt;
&lt;li&gt;More educational content&lt;/li&gt;
&lt;li&gt;A “transparency score” experiment
I don’t think AI is the enemy — but lack of transparency is.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it Now
&lt;/h2&gt;

&lt;p&gt;Chrome/Chromium versions:  &lt;a href="https://chromewebstore.google.com/detail/whotrainedonme/bcnaoacokjckhmoddckahcijpjlibdlf" rel="noopener noreferrer"&gt;Check it here&lt;/a&gt;&lt;br&gt;
Firefox version: &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/whotrainedonme/" rel="noopener noreferrer"&gt;Check it here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your digital life shouldn’t be invisible training data.&lt;br&gt;
WTOM won’t fix everything, but it makes the process visible — and visibility gives you control.&lt;/p&gt;

&lt;p&gt;Thanks for reading. If you have thoughts or feedback, I’d love to hear it.&lt;/p&gt;

</description>
      <category>privacy</category>
      <category>tooling</category>
      <category>ai</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Is Your Data Training Someone’s AI? I Built a Browser Extension to Find Out.</title>
      <dc:creator>dwikbtn</dc:creator>
      <pubDate>Mon, 17 Nov 2025 17:40:59 +0000</pubDate>
      <link>https://forem.com/dwikbtn/is-your-data-training-someones-ai-i-built-a-browser-extension-to-find-out-km3</link>
      <guid>https://forem.com/dwikbtn/is-your-data-training-someones-ai-i-built-a-browser-extension-to-find-out-km3</guid>
      <description>&lt;p&gt;I’ve been thinking a lot about AI lately. Not the cool stuff, the other side of it.&lt;/p&gt;

&lt;p&gt;Every time I scroll the internet, I keep wondering: “Is this website using my data to train AI?”&lt;/p&gt;

&lt;p&gt;And the more I looked into it, the more uncomfortable it felt. A lot of companies are either vague about their AI policies, or they hide everything deep in their Terms of Service. Some are very clear about training on user content. Some pretend to be clear. Some don’t mention anything at all.&lt;/p&gt;

&lt;p&gt;Either way, the normal user has no idea.&lt;/p&gt;

&lt;p&gt;So I decided to build something that would tell you instantly. Whether a site you’re visiting might use your data to train AI.&lt;/p&gt;

&lt;p&gt;And that’s how WTOM (WhoTrainedOnMe) started.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem: Zero Transparency
&lt;/h2&gt;

&lt;p&gt;Most AI models today were trained using massive scraped datasets.&lt;br&gt;
Your posts, your art, your photos, your comments — anything public.&lt;/p&gt;

&lt;p&gt;But here’s the issue:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Most platforms bury their AI training info&lt;/li&gt;
&lt;li&gt;Opt-out options (if they exist) are hidden&lt;/li&gt;
&lt;li&gt;Some don’t allow opt-out at all&lt;/li&gt;
&lt;li&gt;And many use vague phrases like “improving our services”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It feels like the internet is being quietly vacuumed into AI systems, and nobody told us.&lt;/p&gt;

&lt;p&gt;As someone who works with creators and builds products, this didn’t sit right with me. People deserve to know what's happening to their data.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Wanted to Build
&lt;/h2&gt;

&lt;p&gt;I wanted something extremely simple:&lt;/p&gt;

&lt;p&gt;When you visit a website, your browser should whisper:&lt;br&gt;
“Hey, this site might use your data to train AI. Want to opt out?”&lt;/p&gt;

&lt;p&gt;No drama.&lt;br&gt;
No fear-mongering.&lt;br&gt;
Just transparency.&lt;/p&gt;

&lt;p&gt;If the platform offers an official opt-out, great.If not, you should still have a way to push back, like sending a protest email.&lt;/p&gt;

&lt;p&gt;And it all had to feel natural. Minimal UI. Zero setup. Just works.&lt;/p&gt;

&lt;h2&gt;
  
  
  Researching AI Training Across the Web
&lt;/h2&gt;

&lt;p&gt;This part was… a journey.&lt;/p&gt;

&lt;p&gt;I read a lot of TOS documents. Too many, honestly.&lt;br&gt;
Some were clear.&lt;br&gt;
Some felt intentionally unclear.&lt;br&gt;
Some were 20+ pages of lawyer-speak.&lt;/p&gt;

&lt;p&gt;I ended up categorizing platforms into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explicit — clearly training AI on user data&lt;/li&gt;
&lt;li&gt;Vague — “may use your content for service improvement”&lt;/li&gt;
&lt;li&gt;Unclear — no mention or confusing&lt;/li&gt;
&lt;li&gt;Denied — explicitly say they don’t train AI with your data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It was surprising how inconsistent everything is.&lt;/p&gt;

&lt;p&gt;Even more surprising:&lt;br&gt;
Some sites used in major training datasets never mentioned AI at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building WTOM (The Fun Part)
&lt;/h2&gt;

&lt;p&gt;The extension itself is built with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;WXT&lt;/li&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;Supabase&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A structured config system so each platform has its own rules&lt;/p&gt;

&lt;p&gt;WTOM works like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You visit a website&lt;/li&gt;
&lt;li&gt;WTOM checks its domain against the database&lt;/li&gt;
&lt;li&gt;If it’s flagged, a small widget appears on the page&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The widget shows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Whether the site trains AI&lt;/li&gt;
&lt;li&gt;How transparent they are&lt;/li&gt;
&lt;li&gt;The link to their TOS&lt;/li&gt;
&lt;li&gt;Whether you can opt out&lt;/li&gt;
&lt;li&gt;What you can do next&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You don’t need to open any settings.It just pops up when needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Opt-Out and Protest
&lt;/h2&gt;

&lt;p&gt;This part matters.&lt;/p&gt;

&lt;p&gt;Some platforms have official opt-out: toggles, forms, or email requests.&lt;br&gt;
WTOM connects you directly to those. But many don’t offer anything.&lt;br&gt;
So WTOM also lets you send a protest email — something like:&lt;/p&gt;

&lt;p&gt;“I don’t consent to my data being used to train AI.”&lt;/p&gt;

&lt;p&gt;You can even choose your tone:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Formal&lt;/li&gt;
&lt;li&gt;Gentle&lt;/li&gt;
&lt;li&gt;Bold&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your name and email auto-fill locally (nothing is stored).&lt;/p&gt;

&lt;p&gt;It’s not perfect, but it gives you a voice where there wasn’t one.&lt;/p&gt;

&lt;p&gt;Things That Surprised Me While Building&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How many platforms don’t mention AI at all&lt;/li&gt;
&lt;li&gt;How many hide their opt-out behind 3–5 clicks&lt;/li&gt;
&lt;li&gt;How inconsistent the language is&lt;/li&gt;
&lt;li&gt;How many creators feel powerless&lt;/li&gt;
&lt;li&gt;How many AI training datasets contain images/art pulled from everywhere&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One of the wildest things was seeing how many domains show up repeatedly in scraped datasets — Pinterest, DeviantArt, blogs, Flickr, Tumblr, etc.&lt;br&gt;
These are places where artists post work.&lt;br&gt;
No wonder creators feel like they’re being used without consent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;AI isn’t going away, and I’m not against AI at all.&lt;br&gt;
What I’m against is the lack of transparency.&lt;/p&gt;

&lt;p&gt;Users should:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Know what’s happening&lt;/li&gt;
&lt;li&gt;Know who’s training on their data&lt;/li&gt;
&lt;li&gt;Have a way to say no&lt;/li&gt;
&lt;li&gt;Have a simple tool that makes it easy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;WTOM isn’t going to fix the whole system, but it’s a step toward giving people real control.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s Next for WTOM
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A few things I’m planning next:&lt;/li&gt;
&lt;li&gt;Adding more domains&lt;/li&gt;
&lt;li&gt;Improving accuracy of training + transparency labels&lt;/li&gt;
&lt;li&gt;A public domain reference page on the website&lt;/li&gt;
&lt;li&gt;Better onboarding&lt;/li&gt;
&lt;li&gt;More educational content&lt;/li&gt;
&lt;li&gt;Maybe a Transparency Score system later
This is a long-term project, but I’m excited about where it’s headed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try WTOM
&lt;/h2&gt;

&lt;p&gt;If you’re curious whether sites you browse might be using your data to train AI, try WTOM:&lt;/p&gt;

&lt;p&gt;Chrome/Chromium versions:  &lt;a href="https://chromewebstore.google.com/detail/whotrainedonme/bcnaoacokjckhmoddckahcijpjlibdlf" rel="noopener noreferrer"&gt;Check it here&lt;/a&gt;&lt;br&gt;
Firefox version: &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/whotrainedonme/" rel="noopener noreferrer"&gt;Check it here&lt;/a&gt;&lt;br&gt;
If you want to support the project, I’ll leave a BuyMeACoffee link soon.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Building WTOM made me realize how little visibility we have into how our digital life is used.&lt;br&gt;
Everything we create online — art, text, comments, photos — can quietly become training data.&lt;/p&gt;

&lt;p&gt;WTOM won’t stop AI, but it gives you information, and information gives you choices.&lt;/p&gt;

&lt;p&gt;If this project helps even a few people feel more in control, that’s already a win.&lt;/p&gt;

</description>
      <category>chrome</category>
      <category>extensions</category>
      <category>javascript</category>
      <category>firefox</category>
    </item>
    <item>
      <title>My Go-To Tools for Building Chrome Extensions</title>
      <dc:creator>dwikbtn</dc:creator>
      <pubDate>Thu, 19 Jun 2025 17:39:33 +0000</pubDate>
      <link>https://forem.com/dwikbtn/my-go-to-tools-for-building-chrome-extensions-50he</link>
      <guid>https://forem.com/dwikbtn/my-go-to-tools-for-building-chrome-extensions-50he</guid>
      <description>&lt;p&gt;Building Chrome extensions can feel overwhelming at first, especially when you're not sure what tools to use. After working on several freelance projects and building my own extensions, I’ve found a reliable set of tools that make development faster, easier, and way less frustrating. In this post, I’ll share the tools I personally use to build Chrome extensions for both clients and personal projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. &lt;a href="https://wxt.dev/" rel="noopener noreferrer"&gt;WXT – Next-gen Web Extension Framework&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;If you’re still using crxjs or manually setting up your manifest, it’s time to look at WXT. It’s a modern framework built specifically for Chrome extension development, and it comes with everything you need out of the box. Hot Module Reloading, manifest v3 support, Vite integration, and smart defaults.&lt;/p&gt;

&lt;p&gt;WXT removes a lot of the boilerplate and lets me focus on actually building the extension. It works great with React and makes the dev experience smooth, especially when dealing with different extension contexts like background, content scripts, and popups.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. React + Vite
&lt;/h2&gt;

&lt;p&gt;I usually use the WXT template that comes with React + Vite. React helps me structure my UI better, especially for complex extensions with popup or options pages. And Vite makes everything load fast—it’s just a no-brainer combo.&lt;/p&gt;

&lt;p&gt;For example, in one extension I built for a freelance client, I used React to manage a multi-step form inside the popup. Without it, managing state and UI updates would’ve been a mess.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind CSS&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Tailwind is my go-to styling solution for almost everything I build—including Chrome extensions. It helps me move fast and keep the design consistent without writing custom CSS from scratch.&lt;/p&gt;

&lt;p&gt;Even though it’s just an extension UI, I still want it to look clean and professional. Tailwind gives me that with utility-first classes and no need to open a separate CSS file. It also plays well with React and WXT, which is a big win.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. &lt;a href="https://webext-core.aklinker1.io/messaging/installation/" rel="noopener noreferrer"&gt;@webext-core/messaging&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Sending messages between background scripts, content scripts, and popups in Chrome extensions used to drive me nuts. I’d lose time debugging chrome.runtime.sendMessage and wondering why the listener didn’t fire.&lt;/p&gt;

&lt;p&gt;Then I found @webext-core/messaging, and it changed everything.&lt;/p&gt;

&lt;p&gt;This library makes messaging feel like calling functions—super clean and readable. It supports TypeScript out of the box, so you get autocomplete and type safety. Installing it is easy, and once you use it, you won’t go back to the native messaging API.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. &lt;a href="https://supabase.com/" rel="noopener noreferrer"&gt;Supabase&lt;/a&gt; – For Auth and Database
&lt;/h2&gt;

&lt;p&gt;A lot of my freelance projects need some kind of backend—usually for user authentication, saving settings, or storing user data. Supabase is my go-to for that.&lt;/p&gt;

&lt;p&gt;It’s like Firebase, but with a SQL-based database (PostgreSQL) and a much better dev experience. I use Supabase for handling user auth (with magic links or OAuth) and for storing any extension-related data securely.&lt;/p&gt;

&lt;p&gt;Because freelance work often comes with tight deadlines, I need tools that are fast to set up, reliable, and secure. Supabase checks all those boxes.&lt;/p&gt;

&lt;p&gt;These are the core tools I rely on when building Chrome extensions, both for myself and freelance clients. They help me build faster, avoid common bugs, and create extensions that actually work well and look good.&lt;/p&gt;

&lt;p&gt;If you're diving into Chrome extension development, I highly recommend trying some (or all) of these tools. They’ve saved me time and frustration—and hopefully, they’ll do the same for you.&lt;/p&gt;

&lt;p&gt;Got a Chrome extension idea and need a developer to bring it to life? I’m available for freelance work. Whether it’s building from scratch or improving an existing extension, I’d love to help reach out to my email: &lt;a href="mailto:dwidarma101@gmail.com"&gt;dwidarma101@gmail.com&lt;/a&gt; or connect with me on &lt;a href="https://www.linkedin.com/in/dwi-darma-putra/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>extensions</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>What I Learned from Converting My 6-Year-Old Create React App Personal Website to Next.js</title>
      <dc:creator>dwikbtn</dc:creator>
      <pubDate>Wed, 18 Jun 2025 08:44:51 +0000</pubDate>
      <link>https://forem.com/dwikbtn/what-i-learned-from-converting-my-6-year-old-create-react-app-personal-website-to-nextjs-2a4c</link>
      <guid>https://forem.com/dwikbtn/what-i-learned-from-converting-my-6-year-old-create-react-app-personal-website-to-nextjs-2a4c</guid>
      <description>&lt;p&gt;You know that feeling when you open an old project you haven’t touched in years? Yup, that was me. &lt;br&gt;
Six years ago, I Built my personal project website using Create React App (CRA). It was one of the first “serious” React projects I made, back when I was still figuring things out. At the time, it worked, it looked decent, and I was proud of it. After I'm landing job, I practically abandoned it.&lt;/p&gt;

&lt;p&gt;Fast-forward to now, I'm a very different Developer. I’ve worked on teams, led frontend projects, built Chrome extensions, and shipped products. Then I looked back at my old portfolio, I realized the code quality is terrible.&lt;/p&gt;

&lt;p&gt;I decided to rebuild it. Not patch it. Not update a few dependencies. But completely migrate it from CRA to Next.js, using everything I’ve learned since then.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem: My Own Lagacy code
&lt;/h2&gt;

&lt;p&gt;Because this was my personal project, every line of code was like a note from my past self. Some were sweet. Others were… a little embarrassing. Here's what I was dealing with: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Old React patterns (class components, remember those?)&lt;/li&gt;
&lt;li&gt;Weird folder structure&lt;/li&gt;
&lt;li&gt;Packages that wouldn’t update due to breaking peer dependencies&lt;/li&gt;
&lt;li&gt;Webpack overrides I no longer remembered writing&lt;/li&gt;
&lt;li&gt;styled-components everywhere&lt;/li&gt;
&lt;li&gt;classnames used inconsistently&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The biggest red flag? I couldn’t even upgrade some packages. The dependency tree was so tangled that running npm update broke the entire build. Some libraries hadn’t been maintained in years. I tried to update it. I really did. But eventually I admitted: It would be faster and cleaner to rebuild this from scratch.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Rebuild: Next.js with App Router
&lt;/h2&gt;

&lt;p&gt;Instead &lt;br&gt;
Instead of fighting against the old setup, I took a deep breath and nuked the repo (after backing it up, of course).&lt;/p&gt;

&lt;p&gt;I started a new project using Next.js 14 App Router, and committed to doing things the modern way:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;File-based routing&lt;/li&gt;
&lt;li&gt;Server components where it made sense&lt;/li&gt;
&lt;li&gt;Layout.tsx + loading.tsx for better structure and UX 
Initially, I struggled with Next.js file-based routing, but I eventually learned and got used to it. Because this was my own site, I could experiment freely. No stakeholders. No pressure. Just the joy of building again.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tailwind Made It Fun Again
&lt;/h2&gt;

&lt;p&gt;The original project used custom SCSS and BEM conventions. Nothing wrong with that... but maintaining that across dozens of components was painful.&lt;/p&gt;

&lt;p&gt;So I switched to Tailwind CSS. The latest version, with JIT enabled, custom themes, and all the goodness.&lt;/p&gt;

&lt;p&gt;The original project used custom SCSS and BEM conventions. Nothing wrong with that... but maintaining that across dozens of components was painful.&lt;/p&gt;

&lt;p&gt;I switched to the latest version of Tailwind CSS, embracing its JIT compiler, custom themes, and other powerful features, with the help of a ChatGPT agent for CSS rewrites.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned Along the Way
&lt;/h2&gt;

&lt;p&gt;Here’s the fun part. Migrating this beast taught me a lot—not just about Next.js, but about dev life in general.&lt;/p&gt;

&lt;h3&gt;
  
  
  1.  Don’t Be Afraid to Start Over
&lt;/h3&gt;

&lt;p&gt;Trying to patch legacy code feels noble, but sometimes it's a waste of time. Starting fresh let me rethink architecture, remove dead code, and use modern tools without guilt.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The App Router Makes You Think in Components Again
&lt;/h3&gt;

&lt;p&gt;I love how app/ forces you to structure code cleanly: layouts, loading states, nested routes, etc. At first it was a bit weird. Now it makes perfect sense.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Legacy Doesn’t Always Mean Bad, But It Usually Means Slow
&lt;/h3&gt;

&lt;p&gt;Older code isn't necessarily terrible. In fact, this app still worked. But maintaining it was like fixing a bike with a spoon. You can, but why would you?&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Migrating a client project is one thing.&lt;/p&gt;

&lt;p&gt;Migrating your own project, the one you built when you were just starting out—is something else entirely. It’s not just technical work; it’s emotional. You see how far you’ve come. You laugh at your old decisions. And you get a chance to write cleaner code, not to impress anyone else—but for your own future self.&lt;/p&gt;

&lt;p&gt;If you’ve been putting off updating your personal site… maybe this is your sign.&lt;/p&gt;

&lt;p&gt;Start clean.&lt;br&gt;
Try something new.&lt;br&gt;
Use it as a playground to sharpen your tools.&lt;/p&gt;

&lt;p&gt;You’ll learn more than you think.&lt;/p&gt;

&lt;p&gt;The personal website is: &lt;a href="https://dwidarma.codes" rel="noopener noreferrer"&gt;https://dwidarma.codes&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>nextjs</category>
      <category>react</category>
      <category>javascript</category>
    </item>
    <item>
      <title>I Just Got Laid Off: This Is How I Coped With It</title>
      <dc:creator>dwikbtn</dc:creator>
      <pubDate>Wed, 02 Oct 2024 03:11:02 +0000</pubDate>
      <link>https://forem.com/dwikbtn/i-just-got-laid-off-this-is-how-i-coped-with-it-5h70</link>
      <guid>https://forem.com/dwikbtn/i-just-got-laid-off-this-is-how-i-coped-with-it-5h70</guid>
      <description>&lt;p&gt;Unironically, three days after I posted &lt;a href="https://dev.to/dwikbtn/how-to-keep-your-cool-in-tech-winter-a-beginners-guide-4lmo"&gt;this&lt;/a&gt;, I got laid off. Getting laid off sucks. There’s no sugarcoating it. Whether it’s the infamous "tech winter" or the constant ups and downs of the software engineering world, losing your job can feel like someone just pulled the rug out from under you. If you're going through it right now, I’ve been there too. Here’s what worked for me—and hopefully, some of it can help you as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. &lt;strong&gt;Take a Break: It's Okay to Pause&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;When I got laid off, I didn’t jump into action right away. I gave myself &lt;em&gt;permission to do nothing for a while&lt;/em&gt;. I took a week to let it all sink in. No rushing into the job market or endless LinkedIn scrolling. I knew I needed some time to process.&lt;/p&gt;

&lt;p&gt;Why should you consider this? Being laid off is not just a financial hit; it’s an emotional one too. Let yourself grieve the loss. It’s totally fine to &lt;em&gt;not&lt;/em&gt; have a plan for a little while. Use this break to recharge and think about what you really want to do next. For me, that pause was necessary to gain some perspective.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Maximize Your Break:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Unplug&lt;/strong&gt;: Avoid obsessing over job boards for a few days. Your mental health will thank you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Revisit your hobbies&lt;/strong&gt;: Read that book, catch up on that Netflix series, or go hiking. Do something that brings you joy outside of work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reflect&lt;/strong&gt;: What did you enjoy in your previous job? What did you hate? This downtime is a chance to reassess.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. &lt;strong&gt;Dive Into Something New: For Me, It Was Game Development&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Once I’d had my break, I needed something to focus on, and I realized it was time to chase a long-time interest—game development. As a software engineer, I already had the skills to code, but game development was an entirely different beast. Still, the prospect of learning something new felt &lt;em&gt;refreshing&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;If you’re a techie like me, why not explore a passion project or new tech stack? Maybe you’ve been eyeing machine learning, blockchain, or even product management. Now is a great time to &lt;em&gt;build something for yourself&lt;/em&gt; or start learning new skills.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Learning Something New Helps:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It keeps you sharp&lt;/strong&gt;: When you’re learning, you’re still growing professionally, even if you’re not working.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You stay productive&lt;/strong&gt;: Instead of fixating on the uncertainty, you’re pouring energy into something tangible.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It’s fun&lt;/strong&gt;: Let’s face it, working on a personal project feels more fulfilling than just sending out endless resumes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. &lt;strong&gt;Freelance to Pay the Bills and Fund the Dream&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;After I started learning game development, the next question was, "How do I pay the bills?" Going broke while working on my passion project was &lt;em&gt;not&lt;/em&gt; part of the plan. So, I decided to start freelancing. With my background as a software engineer, there were tons of opportunities to pick up freelance gigs.&lt;/p&gt;

&lt;p&gt;Freelancing allowed me to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fund my game development journey&lt;/strong&gt;: Those freelance checks became the lifeline that kept my passion project going.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pay the bills&lt;/strong&gt;: Realistically, you still need to eat and pay rent. Freelancing gave me financial flexibility without having to commit to another full-time gig.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stay connected&lt;/strong&gt;: Freelancing kept my foot in the door with the industry, which is crucial if I decide to reenter the workforce down the line.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Tips for Freelancing After Being Laid Off:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Leverage your network&lt;/strong&gt;: Reach out to previous employers, colleagues, or connections on LinkedIn for potential leads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use freelancing platforms&lt;/strong&gt;: Websites like Upwork, Fiverr, or Toptal can connect you with clients.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set boundaries&lt;/strong&gt;: It’s easy to overwork yourself, especially when freelancing. Balance is key if you’re also working on a side project like I was.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. &lt;strong&gt;Focus on Your Health: Mental and Physical&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Job loss hits hard, and it can easily mess with your mental and physical health. That’s why I made it a point to &lt;em&gt;prioritize self-care&lt;/em&gt;. Freelancing and game development took up most of my day, but I still made time for exercise, meditation, and the occasional long walk.&lt;/p&gt;

&lt;p&gt;When you're laid off, it's crucial to keep your health in check. Stress can quickly escalate, and when your brain's fried, it’s harder to make clear decisions. So, I made self-care part of my daily routine, and it helped me keep things in perspective.&lt;/p&gt;

&lt;h3&gt;
  
  
  Quick Self-Care Tips:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Exercise regularly&lt;/strong&gt;: You don’t have to hit the gym, but even 30 minutes of walking or stretching can boost your mood.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Try mindfulness or meditation&lt;/strong&gt;: Apps like Calm or Headspace can help clear your mind.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Connect with friends and family&lt;/strong&gt;: Don’t isolate yourself. Even a quick chat can make a world of difference.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. &lt;strong&gt;Rebuild Your Confidence: You’re More Than a Job Title&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Getting laid off made me doubt myself for a bit. Was I good enough? Did I miss a red flag? Could I have done more? These thoughts are normal, but I had to remind myself that my worth wasn’t tied to a job title.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;You’re not just a software engineer; you’re a person with skills, passions, and potential&lt;/em&gt;. It took me some time to rebuild that confidence, but working on projects like game development and freelancing helped remind me of what I’m capable of.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Regain Confidence:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Celebrate small wins&lt;/strong&gt;: Finished a course? Nailed a freelance project? Celebrate it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Talk to a mentor&lt;/strong&gt;: If you’ve got a mentor or former boss you trust, talk things through with them. They can give you the perspective you might lack right now.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep learning&lt;/strong&gt;: The more you invest in yourself, the more confident you’ll feel about your future.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. &lt;strong&gt;Plan for What’s Next (Without Stressing)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Finally, after you’ve had some time to process and regroup, it’s good to &lt;em&gt;start thinking long-term&lt;/em&gt;. Maybe you want to go back to full-time work, or maybe freelancing and side projects are your new jam. Whatever it is, take it one step at a time.&lt;/p&gt;

&lt;p&gt;For me, I’m balancing game development with freelancing for now. But I also keep an eye on job openings, just in case the right opportunity pops up. The key is not to rush the process. We’re all figuring it out as we go along, and that’s totally okay.&lt;/p&gt;

&lt;h3&gt;
  
  
  Building Your Next Steps:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Revisit your goals&lt;/strong&gt;: Do you want another corporate job, or would you rather continue freelancing? What about entrepreneurship?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Start slow&lt;/strong&gt;: Don’t overwhelm yourself by applying to 100 jobs in one week. Quality over quantity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network&lt;/strong&gt;: Even if you’re not ready for full-time work, stay active on LinkedIn, attend industry events, and keep up with your contacts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Just saying, we could make this work. Let’s collaborate and fund my dream—&lt;em&gt;one freelance gig at a time&lt;/em&gt;!&lt;/p&gt;




&lt;p&gt;Okay, let’s get real for a second—if you want to help a laid-off software engineer (aka, me) fund their game development dreams, why not &lt;em&gt;hire me as your freelancer&lt;/em&gt;? It’s a win-win! You get a dedicated, hardworking (and did I mention slightly desperate?) developer, and I get to continue working on my passion project without eating instant noodles every night. &lt;/p&gt;

&lt;p&gt;Whether you need some front-end magic, a quick bug fixes, or help to build the next big thing, I’m your person! Plus, think of the cool story you’ll have: &lt;em&gt;“I helped fund the next big indie game by hiring a laid-off dev!”&lt;/em&gt; How’s that for a LinkedIn humblebrag? Contact me at &lt;a href="//mailto:dwidarma@gmail.com"&gt;my email&lt;/a&gt; &lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Conclusion: It’s All Part of the Journey&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Getting laid off isn’t easy, but it doesn’t have to be the end of the road. In fact, it can be a chance to explore new opportunities, whether it’s a new career path, freelancing, or that passion project you’ve always wanted to pursue. Take the time to breathe, reflect, and remember—you’re more than just your job.&lt;/p&gt;

&lt;p&gt;Take it from me. I took a break, dove into game development, and started freelancing to fund my dream and pay the bills. And you can do it too, in your own way.&lt;/p&gt;

&lt;p&gt;You’ve got this.&lt;/p&gt;

</description>
      <category>softwareengineering</category>
      <category>techwinter</category>
      <category>frontend</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to Stop Procrastination as a Work-from-Home Programmer</title>
      <dc:creator>dwikbtn</dc:creator>
      <pubDate>Sun, 22 Sep 2024 17:10:07 +0000</pubDate>
      <link>https://forem.com/dwikbtn/how-to-stop-procrastination-as-a-work-from-home-programmer-2g0p</link>
      <guid>https://forem.com/dwikbtn/how-to-stop-procrastination-as-a-work-from-home-programmer-2g0p</guid>
      <description>&lt;p&gt;&lt;em&gt;Practical Tips to Break the Cycle and Get Stuff Done&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Working from home as a software engineer is a double-edged sword. On the one hand, you’ve got the flexibility to work in your pajamas, enjoy your cozy setup, and avoid the commute. On the other hand, the same flexibility can sometimes lead to a dangerous trap—procrastination.&lt;/p&gt;

&lt;p&gt;As someone who’s spent time coding in bed, surrounded by distractions, I know how easy it is to fall into that cycle. But breaking out of procrastination as a programmer is possible! In this guide, I'll walk you through some effective strategies to help you stay productive while working from home.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Identify Your Procrastination Triggers
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Recognize What’s Slowing You Down&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Before you can stop procrastination, you need to know what’s causing it. As a work-from-home programmer, distractions come in many forms: social media, household chores, that new video game, or even Netflix.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Take inventory:&lt;/strong&gt; Pay attention to what pulls your focus away when you're supposed to be coding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Track your time:&lt;/strong&gt; Use apps like RescueTime or Toggl to monitor how you’re actually spending your day. This can help you see patterns in your procrastination.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Identify trends:&lt;/strong&gt; Are you more likely to procrastinate when you’re facing a difficult task? When your project isn’t interesting? Pinpoint these moments.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Knowing your triggers is the first step to tackling procrastination head-on.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Create a Dedicated Workspace
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Separate “Work” from “Home”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;One of the biggest challenges of being a work-from-home software engineer is the blurred line between personal and professional space. When your home is your office, it's easy for distractions to seep into your work time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Designate a workspace:&lt;/strong&gt; Find a specific area in your home to work—whether it’s a corner of your living room or a separate room entirely. The key is to create a boundary between your work and relaxation zones.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set up ergonomically:&lt;/strong&gt; Since you're a programmer, you’re likely spending hours in front of a screen. Invest in a good chair, desk, and monitor setup to keep your posture right and reduce fatigue. A comfortable space will make you want to stay and get things done.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Minimize distractions:&lt;/strong&gt; Remove unnecessary items that could divert your attention. This is your focus zone.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you create a space that’s just for work, it becomes easier to shift into “work mode” and leave procrastination at the door.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Master the Pomodoro Technique
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Break Your Work into Manageable Chunks&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Ever sit down to code, only to stare blankly at your screen for an hour? You might be overwhelmed by the size of the project, and that’s where the Pomodoro Technique comes in handy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Set a timer for 25 minutes:&lt;/strong&gt; During this time, focus on one task. Just one. After 25 minutes, take a 5-minute break.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repeat the cycle four times:&lt;/strong&gt; After four Pomodoros, give yourself a longer break—15 to 30 minutes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Start small:&lt;/strong&gt; If 25 minutes feels too long, you can even start with 15-minute work intervals. It’s about building momentum.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The beauty of Pomodoro is that it turns your work into bite-sized chunks, which feels less overwhelming. Plus, those short breaks give your brain a reset.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Use Task Prioritization Techniques
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Work on What Matters Most First&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;As a software engineer, you’re juggling multiple tasks—from debugging to feature development to code reviews. Procrastination often happens because you don't know where to start.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Try the Eisenhower Matrix:&lt;/strong&gt; This method helps you prioritize by urgency and importance. Divide tasks into four quadrants:

&lt;ol&gt;
&lt;li&gt;Important and Urgent&lt;/li&gt;
&lt;li&gt;Important but Not Urgent&lt;/li&gt;
&lt;li&gt;Not Important but Urgent&lt;/li&gt;
&lt;li&gt;Not Important and Not Urgent&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Follow the 1-3-5 rule:&lt;/strong&gt; Choose one big task, three medium tasks, and five small tasks to complete each day. This helps you avoid decision fatigue and keeps you on track.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tackle the hardest task first:&lt;/strong&gt; Often called “eating the frog,” tackling the most daunting task first thing in the day makes the rest of your to-dos seem easier.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By prioritizing, you remove the mental clutter that leads to procrastination.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Set Clear Boundaries with Family and Friends
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Communicate When It’s Work Time&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Working from home might make those around you think you’re always available. Whether it's a spouse, roommate, or kids, interruptions can easily derail your productivity as a programmer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Establish work hours:&lt;/strong&gt; Set specific hours when you’re “on the clock,” and communicate this to the people in your household.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create visual cues:&lt;/strong&gt; Something as simple as wearing headphones or closing the door can signal that you’re in work mode.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use technology for focus:&lt;/strong&gt; If interruptions are frequent, consider using tools like Noise-cancelling headphones or a “Do Not Disturb” mode on your devices.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Setting these boundaries not only keeps distractions at bay but also signals to yourself that you’re in work mode.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Practice Self-compassion and Take Breaks
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Don’t Be Too Hard on Yourself&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here’s a truth bomb: nobody is productive 100% of the time. As a work-from-home software engineer, some days will feel more like a struggle than others. And that's okay.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Forgive yourself for slip-ups:&lt;/strong&gt; Everyone procrastinates occasionally. Don’t beat yourself up over it; just refocus and start again.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Schedule breaks:&lt;/strong&gt; If you’ve been working hard, take a real break. Go for a walk, stretch, or grab a coffee. Allow your mind to reset before diving back into work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Celebrate small wins:&lt;/strong&gt; Finishing a tough coding problem? Pushing an important feature live? Celebrate it! Acknowledge your progress, no matter how small.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Procrastination can lead to a cycle of guilt, but the key is to break that cycle with compassion and understanding.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Use Accountability Tools
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Stay On Track with a Little Help&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Sometimes, the biggest hurdle in working from home is accountability. When you don’t have colleagues around, it’s easier to procrastinate without consequences.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Find an accountability buddy:&lt;/strong&gt; Whether it’s a fellow programmer or a friend who also works from home, check in with each other regularly about your progress.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use productivity apps:&lt;/strong&gt; Apps like Todoist, Trello, or Asana are great for tracking your tasks and progress. They help keep your to-dos organized, so you’re less likely to procrastinate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Join online communities:&lt;/strong&gt; Sometimes, just knowing others are in the same boat as you can be motivating. Join work-from-home or programming communities where people share productivity tips and experiences.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Accountability doesn’t always mean having a boss check in on you—it can come from peers, apps, or communities.&lt;/p&gt;




&lt;p&gt;By following these strategies, you can kick procrastination to the curb and find a rhythm that works for you. As a work-from-home programmer, productivity doesn’t have to be a struggle—you just need the right tools and mindset to keep you on track. With a little patience and persistence, you’ll be coding like a pro in no time.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Meta description:&lt;/strong&gt; Struggling with procrastination as a work-from-home software engineer? This guide shares practical tips and techniques to stay productive, manage distractions, and maintain focus.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>procrastination</category>
      <category>webdev</category>
      <category>agile</category>
    </item>
    <item>
      <title>How to Keep Your Cool in Tech Winter</title>
      <dc:creator>dwikbtn</dc:creator>
      <pubDate>Sat, 21 Sep 2024 17:15:54 +0000</pubDate>
      <link>https://forem.com/dwikbtn/how-to-keep-your-cool-in-tech-winter-a-beginners-guide-4lmo</link>
      <guid>https://forem.com/dwikbtn/how-to-keep-your-cool-in-tech-winter-a-beginners-guide-4lmo</guid>
      <description>&lt;p&gt;&lt;em&gt;Practical tips to stay grounded and thrive during challenging times in the tech industry.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;The “tech winter” is a term that’s been tossed around a lot lately, describing a period of slowed growth, layoffs, and reduced opportunities in the tech world. It’s a time when software engineers, programmers, and those looking to break into the industry face an uphill battle. While the market cools down, staying sane and positive is more important than ever. Whether you're job hunting or simply trying to maintain motivation, this guide will walk you through practical ways to navigate the chill and keep yourself on track.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Understanding the Tech Winter: What’s Really Happening?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tech cycles happen—here’s why it’s okay.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before diving into how to stay calm, it's essential to understand what "tech winter" really means. Every industry experiences ebbs and flows, and technology is no exception. Booms bring innovation and rapid hiring, but winters slow down progress, leading to layoffs, hiring freezes, and fewer opportunities.&lt;/p&gt;

&lt;p&gt;Historically, the tech industry has had cycles, and while this downturn might seem overwhelming, it’s not permanent. Technology constantly evolves, and with change comes the opportunity to grow. This cycle will pass, and when it does, new opportunities will emerge. So, step one to keeping sane is simple: know that this is temporary.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Develop a Growth Mindset
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Keep learning, keep moving.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In times of uncertainty, adopting a growth mindset can make all the difference. If you're a software engineer or programmer, this period might feel like your skills are becoming obsolete or opportunities are slipping away. Instead of focusing on what you can’t control, shift your energy toward what you can control—your growth.&lt;/p&gt;

&lt;h3&gt;
  
  
  Take action steps:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Upskill&lt;/strong&gt;: Learn new programming languages, tools, or frameworks. Many online resources, such as Udemy, Coursera, and freeCodeCamp, offer affordable or free courses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Certifications&lt;/strong&gt;: Consider earning certifications in in-demand areas like cloud computing (AWS, Azure), DevOps, or cybersecurity. These fields are resilient even during downturns.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This approach ensures that when the market warms up again, you're ahead of the game.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Stay Connected with Your Network
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Your connections are your lifeline.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Job hunting during a tech winter can feel isolating, but staying connected with your network is crucial. It's easy to retreat into yourself when times get tough, but your professional connections can provide you with support, guidance, and even job leads.&lt;/p&gt;

&lt;h3&gt;
  
  
  Here’s how to make networking easier:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Leverage LinkedIn&lt;/strong&gt;: LinkedIn is an essential platform for tech professionals. Engage with posts, share insights, and reconnect with former colleagues. Visibility increases your chances of hearing about opportunities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Join online communities&lt;/strong&gt;: Places like Stack Overflow, GitHub, or Reddit tech groups can be excellent for learning, sharing, and expanding your network.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attend virtual events&lt;/strong&gt;: Tech conferences and webinars are increasingly held online. These are great opportunities to learn and meet people who might help open doors.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Remember, many job opportunities are never posted online. Your next job could come from a conversation with someone in your network.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Focus on Personal Projects
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Keep your skills sharp and your portfolio fresh.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you're job hunting during a tech winter, there's a chance that it might take longer to land your next role. Instead of getting discouraged, use this time to focus on personal projects. Whether you're a programmer looking to showcase your skills or a software engineer honing a new framework, personal projects can provide tangible proof of your abilities to potential employers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Practical tips for meaningful projects:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Solve real problems&lt;/strong&gt;: Choose projects that address real-world issues. It could be a tool to automate repetitive tasks or a small app that solves a niche problem.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contribute to open-source&lt;/strong&gt;: Platforms like GitHub are home to countless open-source projects that could use your help. This not only improves your skills but also enhances your visibility within the developer community.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Document your work&lt;/strong&gt;: Build a portfolio that showcases your process. Employers want to see not only your finished product but also your problem-solving approach and how you learn from mistakes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When job hunting, being able to demonstrate that you've stayed active in the field can set you apart from other candidates.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Practice Self-Care
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Your mental health matters, too.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tech winter can take a toll on your mental health, especially if you're job hunting for an extended period. The stress of layoffs, uncertainty, and competition can lead to burnout if you’re not careful. It's essential to prioritize self-care during this time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Self-care strategies to consider:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Daily exercise&lt;/strong&gt;: Physical activity is one of the best ways to manage stress. Even a 20-minute walk outside can help clear your mind.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mindfulness&lt;/strong&gt;: Practices like meditation or journaling can help keep you grounded. Apps like Calm and Headspace offer guided meditations specifically designed to reduce anxiety and stress.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limit your social media&lt;/strong&gt;: Constantly seeing posts about others' success can make you feel behind. Set healthy boundaries with your screen time, especially if you're prone to comparison.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You are not just a software engineer or programmer; you're a whole person. Taking care of your well-being will help you stay resilient in the face of challenges.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Strategize Your Job Hunt
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;A targeted approach is better than a shotgun one.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you’re job hunting during a tech winter, it’s easy to feel desperate and apply to every position you come across. However, a strategic approach can lead to better results.&lt;/p&gt;

&lt;h3&gt;
  
  
  Here’s how to streamline your job hunt:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tailor your applications&lt;/strong&gt;: Customize your resume and cover letter for each position. Highlight specific skills that align with the job description.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Look beyond big tech&lt;/strong&gt;: While major tech companies might be hiring less, smaller startups or companies outside the traditional tech sector still need tech talent. Industries like healthcare, finance, and education are increasingly reliant on technology.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Be patient but persistent&lt;/strong&gt;: Understand that the hiring process may take longer than usual. Don’t get discouraged by silence or rejections. It’s part of the process.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Job hunting is never easy, but being intentional with your efforts can help you avoid frustration and burnout.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion: Weathering the Tech Winter
&lt;/h2&gt;

&lt;p&gt;A tech winter can feel like a long, cold stretch, but remember, all winters eventually end. As a software engineer, programmer, or job-seeker, focusing on what you can control—your skills, network, mental health, and job-hunting strategies—will help you stay grounded and resilient. The tech industry will rebound, and when it does, you’ll be ready to seize new opportunities.&lt;/p&gt;

&lt;p&gt;So, keep learning, stay connected, and above all, take care of yourself. The sun will shine again in the tech world, and you'll be in a stronger position when it does.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Meta Description:&lt;/strong&gt; Tech winter is tough, but it’s temporary. This guide provides practical tips for software engineers and programmers on staying motivated, job hunting, and maintaining mental well-being during challenging times in the tech industry.&lt;/p&gt;

</description>
      <category>tech</category>
      <category>techwinter</category>
      <category>webdev</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Why JavaScript Is Still Relevant in 2024: A Beginner’s Guide to the OG Webapp King</title>
      <dc:creator>dwikbtn</dc:creator>
      <pubDate>Thu, 19 Sep 2024 17:05:37 +0000</pubDate>
      <link>https://forem.com/dwikbtn/why-javascript-is-still-relevant-in-2024-a-beginners-guide-to-the-og-webapp-king-11e1</link>
      <guid>https://forem.com/dwikbtn/why-javascript-is-still-relevant-in-2024-a-beginners-guide-to-the-og-webapp-king-11e1</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Ah, JavaScript. The programming language that refuses to go out of style, like that one band from the ’90s that keeps releasing albums no one asked for — but somehow, we keep listening. If you’re new to web development or just curious about why JavaScript is still the thing in 2024, you’re in the right place. So, buckle up and grab your coffee (or energy drink) as we dive into why this scripting language is still ruling the web.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is JavaScript, Anyway
&lt;/h2&gt;

&lt;p&gt;The MVP of the Web app World&lt;/p&gt;

&lt;p&gt;Let’s start with the basics: what the heck is JavaScript? JavaScript is a **programming language **that was originally created to make web pages come alive. You know those fancy buttons that change color when you hover over them? Or that cool infinite scroll on your favorite social media platform? That’s JavaScript at work.&lt;/p&gt;

&lt;p&gt;JavaScript allows developers to build interactive, dynamic features on websites. It’s the language that helps your web app go from “meh” to “wow.” And while there are other languages out there that might seem cooler or more cutting-edge, JavaScript is still king when it comes to making the internet work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Javascript's Comeback Tour
&lt;/h2&gt;

&lt;p&gt;How It Keeps getting Better With Age&lt;/p&gt;

&lt;p&gt;Some might say JavaScript has been around forever, but it’s not just sitting on the throne collecting dust. In fact, JavaScript has been going through a serious glow-up, thanks to frameworks like React, Vue.js, and Node.js. These frameworks make it easier for developers to build complex applications with fewer headaches (and fewer lines of code, too).&lt;/p&gt;

&lt;p&gt;In 2024, we’re looking at a language that’s not just about simple interactions anymore. JavaScript has evolved into a full-blown ecosystem that can power anything from single-page web apps to server-side programming. It’s like your favorite video game that keeps releasing awesome DLCs — there’s always something new to play with.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Beginners Should Love JavaScript
&lt;/h2&gt;

&lt;p&gt;Spoiler: It’s Easy to Learn (Really!)&lt;/p&gt;

&lt;p&gt;If you’re new to programming, JavaScript is the language to get your feet wet. Why? Because it’s beginner-friendly and doesn’t throw you into the deep end like some other languages (cough C++ cough). You don’t need a PhD to get started.&lt;/p&gt;

&lt;p&gt;For example, with just a few lines of JavaScript, you can write code that makes a website respond to user input. It’s quick, it’s fun, and it gives you that instant dopamine hit when you see it work. Plus, since JavaScript runs in the browser, you don’t need any fancy software to start coding — just open up your browser’s console and you’re good to go!&lt;/p&gt;

&lt;p&gt;JavaScript is the low-barrier-to-entry language that gets you building cool stuff fast, and who doesn’t want that?&lt;/p&gt;

&lt;h2&gt;
  
  
  The Rise of Web apps
&lt;/h2&gt;

&lt;p&gt;JavaScript’s Secret Sauce for World Domination&lt;/p&gt;

&lt;p&gt;In case you haven’t noticed, web apps are everywhere. From Gmail to Netflix, many of the services we use daily are powered by web applications. JavaScript is the lifeblood of these web apps, handling everything from user interactions to fetching data from servers.&lt;/p&gt;

&lt;p&gt;Without JavaScript, your web app would be about as interactive as a rock. In 2024, JavaScript continues to be the go-to language for building web-based applications because it can handle front-end, back-end, and even mobile app development. It’s like having a Swiss Army knife, except this one doesn’t get lost in your drawer.&lt;/p&gt;

&lt;h2&gt;
  
  
  JavaScript is Full Stack Now
&lt;/h2&gt;

&lt;p&gt;Front-End, Back-End, All the Ends&lt;/p&gt;

&lt;p&gt;JavaScript was once just the language you used to make buttons do cool things on the front-end of a website. But in 2024, it’s taking over the back-end too, thanks to Node.js. This means you can use JavaScript to build an entire application — from the user interface to the server that powers it.&lt;/p&gt;

&lt;p&gt;Imagine being able to work on both sides of the equation without switching languages! It’s like being ambidextrous in the coding world. Whether you’re building APIs, web servers, or even desktop apps, JavaScript has you covered. It’s the gift that keeps on giving, no matter which part of the stack you’re working on.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Job Market Loves JavaScript
&lt;/h2&gt;

&lt;p&gt;Get Paid to Do What You Love&lt;/p&gt;

&lt;p&gt;If all this isn’t enough to convince you, let’s talk money. In 2024, JavaScript developers are still in high demand. Why? Because nearly every business out there has a website, and every website needs JavaScript. Whether you’re working at a tech giant or freelancing for small businesses, knowing JavaScript opens a ton of doors.&lt;/p&gt;

&lt;p&gt;Plus, with so many frameworks and libraries (hello, React), you can specialize and find a niche that suits your interests. Want to build sleek, modern UIs? Learn React. Want to dabble in server-side development? Dive into Node.js. JavaScript makes it possible to carve out a career that’s as flexible as you are.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Community That Never Quits
&lt;/h2&gt;

&lt;p&gt;You’ll Never Code Alone&lt;/p&gt;

&lt;p&gt;One of the biggest reasons JavaScript is still relevant today is its massive community. Whether you’re stuck on a problem or want to learn something new, there’s always someone (or a thousand someones) who can help. The JavaScript community is welcoming, passionate, and never sleeps — literally, thanks to developers in every time zone.&lt;/p&gt;

&lt;p&gt;And let’s not forget about the resources! From endless tutorials to countless free courses, learning JavaScript in 2024 is easier than ever. Got a question? Google it, and you’ll find entire Stack Overflow threads dedicated to your exact issue.&lt;/p&gt;

&lt;h2&gt;
  
  
  JavaScript Isn’t Going Anywhere
&lt;/h2&gt;

&lt;p&gt;The Future is Still Bright&lt;/p&gt;

&lt;p&gt;So, why is &lt;strong&gt;JavaScript&lt;/strong&gt; still relevant in 2024? Because it’s everywhere. From simple websites to complex web apps, JavaScript continues to evolve, making it the go-to language for developers at all levels. Whether you’re just starting out or you’ve been coding for years, JavaScript offers a world of possibilities — without the steep learning curve of other programming languages.&lt;/p&gt;

&lt;p&gt;So, if you haven’t already jumped on the JavaScript train, what are you waiting for? It’s a wild ride, and it’s not slowing down anytime soon.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Tailwind tutorial: Make clock/ timer look (in react)</title>
      <dc:creator>dwikbtn</dc:creator>
      <pubDate>Thu, 07 Oct 2021 06:56:25 +0000</pubDate>
      <link>https://forem.com/dwikbtn/tailwind-tutorial-make-clock-timer-look-in-react-4555</link>
      <guid>https://forem.com/dwikbtn/tailwind-tutorial-make-clock-timer-look-in-react-4555</guid>
      <description>&lt;p&gt;Hi everyone in this tutorial we will learn how to make wood timer look with only tailwind css. &lt;/p&gt;

&lt;p&gt;Tailwind CSS is self-described as a utility first CSS framework. Rather than focusing on the functionality of the item being styled, Tailwind is centered around how it should be displayed. In short by using tailwind you don't need really need to naming each class name.&lt;/p&gt;

&lt;p&gt;Your end project will look like this:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yX4JV2Mo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nheun22er197oirar76y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yX4JV2Mo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nheun22er197oirar76y.png" alt="end project"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;you can see the source code &lt;a href="https://github.com/dwikbtn/counter-tailwind"&gt;here&lt;/a&gt; it's working timer. for the working timer maybe we will do in another part.&lt;/p&gt;
&lt;h2&gt;
  
  
  Install React with tailwind
&lt;/h2&gt;

&lt;p&gt;In this tutorial we're using create-react-app and tailwind&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-react-app my-project
cd my-project
npm install -D tailwindcss@npm:@tailwindcss/postcss7-compat postcss@^7 autoprefixer@^9
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;for config you can see in the official tailwind &lt;a href="https://tailwindcss.com/docs/guides/create-react-app"&gt;documentation&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Center the div
&lt;/h2&gt;

&lt;p&gt;let's put our app in the center of screen,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;className=&lt;/span&gt;&lt;span class="s"&gt;"bg-gray-400 min-h-screen flex justify-center items-center flex-col"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;we color the background gray with display flex "justify-center items-center flex-col" part is for center it to x and y axis also we'll make our flex column.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frame and inside display
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;//jsx
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;className=&lt;/span&gt;&lt;span class="s"&gt;"timer-frame "&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="k"&gt;@tailwind&lt;/span&gt; &lt;span class="n"&gt;base&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;@tailwind&lt;/span&gt; &lt;span class="n"&gt;components&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;@tailwind&lt;/span&gt; &lt;span class="n"&gt;utilities&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nc"&gt;.timer-frame&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="err"&gt;@apply&lt;/span&gt; &lt;span class="err"&gt;w-96&lt;/span&gt; &lt;span class="err"&gt;h-40&lt;/span&gt; &lt;span class="err"&gt;bg-gradient-to-b&lt;/span&gt; &lt;span class="err"&gt;from-firstGr&lt;/span&gt; &lt;span class="err"&gt;to-secondGr&lt;/span&gt; &lt;span class="err"&gt;border-border&lt;/span&gt; &lt;span class="err"&gt;border-outer&lt;/span&gt; &lt;span class="err"&gt;rounded-3xl&lt;/span&gt; &lt;span class="err"&gt;flex&lt;/span&gt; &lt;span class="err"&gt;flex-row&lt;/span&gt; &lt;span class="err"&gt;justify-center&lt;/span&gt; &lt;span class="err"&gt;items-center&lt;/span&gt; &lt;span class="err"&gt;shadow-2xl;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;purge&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./src/**/*.{js,jsx,ts,tsx}&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./public/index.html&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="na"&gt;darkMode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// or 'media' or 'class'&lt;/span&gt;
  &lt;span class="na"&gt;theme&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;extend&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;fontFamily&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;inputText&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Monoton&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;colors&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#F59D50&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;firstGr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#EE8C38&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;secondGr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#F48F32&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;timerBg&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#131514&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;borderWidth&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;outer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;15px&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;variants&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;extend&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{},&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;we separate the time-frame into other css file. I usually long tailwind utility to other file. &lt;br&gt;
for the tailwind config, I put my costume color there. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;colors: {
        border: "#F59D50",
        firstGr: "#EE8C38",
        secondGr: "#F48F32",
        timerBg: "#131514",
      },
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;we use gradient using firstr and secondGr for inside frame, so it's not look boring. for the frame we use utility border with above color. the border has utility "rounded" as it said it make round around the div.&lt;/p&gt;

&lt;h2&gt;
  
  
  Inside Numbers
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;className=&lt;/span&gt;&lt;span class="s"&gt;"inside-timer"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;04&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;className=&lt;/span&gt;&lt;span class="s"&gt;"inside-timer"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;04&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;className=&lt;/span&gt;&lt;span class="s"&gt;"inside-timer"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;04&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="k"&gt;@import&lt;/span&gt; &lt;span class="sx"&gt;url("https://fonts.googleapis.com/css2?family=Monoton&amp;amp;display=swap")&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;@tailwind&lt;/span&gt; &lt;span class="n"&gt;base&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;@tailwind&lt;/span&gt; &lt;span class="n"&gt;components&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;@tailwind&lt;/span&gt; &lt;span class="n"&gt;utilities&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nc"&gt;.inside-timer&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="err"&gt;@apply&lt;/span&gt; &lt;span class="err"&gt;w-24&lt;/span&gt; &lt;span class="err"&gt;h-20&lt;/span&gt; &lt;span class="err"&gt;bg-timerBg&lt;/span&gt; &lt;span class="err"&gt;flex&lt;/span&gt; &lt;span class="err"&gt;justify-center&lt;/span&gt; &lt;span class="err"&gt;items-center&lt;/span&gt; &lt;span class="err"&gt;text-white&lt;/span&gt; &lt;span class="err"&gt;mx-2&lt;/span&gt; &lt;span class="err"&gt;text-5xl&lt;/span&gt; &lt;span class="err"&gt;tracking-widest&lt;/span&gt; &lt;span class="err"&gt;font-inputText&lt;/span&gt; &lt;span class="err"&gt;bg-gradient-to-b&lt;/span&gt; &lt;span class="err"&gt;from-gray-900&lt;/span&gt; &lt;span class="err"&gt;to-gray-800;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Maybe you already notice we're using external font you can check the font &lt;a href="https://fonts.google.com/specimen/Monoton"&gt;here&lt;/a&gt;.&lt;br&gt;
to use it include it in your tailwind css.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; fontFamily: {
        inputText: ["Monoton"],
      },
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Again because we're using inside timer more then once we put it in new css class name and apply it.&lt;/p&gt;

&lt;p&gt;we use bg-timerBg utility that black color we added before. &lt;/p&gt;

</description>
      <category>tailwindcss</category>
      <category>react</category>
    </item>
  </channel>
</rss>
