<?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: Anas Khalid</title>
    <description>The latest articles on DEV Community by Anas Khalid (@trytoolhub).</description>
    <link>https://dev.to/trytoolhub</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4089458%2F2bdb1885-e923-415c-993c-809162038238.png</url>
      <title>DEV Community: Anas Khalid</title>
      <link>https://dev.to/trytoolhub</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/trytoolhub"/>
    <language>en</language>
    <item>
      <title>5 Ways to Get a Unix Timestamp (and Use It in Discord)</title>
      <dc:creator>Anas Khalid</dc:creator>
      <pubDate>Mon, 28 Sep 2026 13:06:06 +0000</pubDate>
      <link>https://dev.to/trytoolhub/5-ways-to-get-a-unix-timestamp-and-use-it-in-discord-278a</link>
      <guid>https://dev.to/trytoolhub/5-ways-to-get-a-unix-timestamp-and-use-it-in-discord-278a</guid>
      <description>&lt;p&gt;Discord lets you post a time that shows up in every reader's own timezone. You just need the Unix timestamp for that moment, in seconds.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Discord syntax
&lt;/h2&gt;



&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Style&lt;/th&gt;
&lt;th&gt;Shows as&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;t&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;16:20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;T&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;16:20:30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;20/04/2021&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;D&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;20 April 2021&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;f&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;20 April 2021 16:20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;F&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Tuesday, 20 April 2021 16:20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;R&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2 months ago (updates live)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Getting the timestamp
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. In code&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JavaScript: &lt;code&gt;Math.floor(Date.now() / 1000)&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Python: &lt;code&gt;int(time.time())&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Terminal (macOS/Linux): &lt;code&gt;date +%s&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. HammerTime&lt;/strong&gt;&lt;br&gt;
Open-source and built for exactly this. Pick a date, copy the tag for the style you want.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. A general epoch converter&lt;/strong&gt;&lt;br&gt;
Sites like epochconverter.com or unixtimestamp.com convert both ways, which helps when you need to read an existing timestamp too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Your bot library&lt;/strong&gt;&lt;br&gt;
discord.js and discord.py both have helpers for formatting timestamps, so you can skip manual conversion in a bot.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. A browser-based generator&lt;/strong&gt;&lt;br&gt;
Disclosure: I maintain one at &lt;a href="https://trytoolhub.net/tools/discord-timestamp-generator?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=discord-timestamp" rel="noopener noreferrer"&gt;ToolHub Discord-Timestamp-Generator&lt;/a&gt; It covers all 7 styles and runs client-side.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two things that trip people up
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Discord expects &lt;strong&gt;seconds&lt;/strong&gt;, but JavaScript's &lt;code&gt;Date.now()&lt;/code&gt; returns &lt;strong&gt;milliseconds&lt;/strong&gt;. Divide by 1000 or your date lands in the year 50000-something.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;R&lt;/code&gt; is the best style for events, since it becomes a live countdown.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Which method do you use? I'm curious whether most people script it or use a site.&lt;/p&gt;

</description>
      <category>discord</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I built a PDF compressor that never uploads your file — here's the actual technique</title>
      <dc:creator>Anas Khalid</dc:creator>
      <pubDate>Thu, 03 Sep 2026 10:25:56 +0000</pubDate>
      <link>https://dev.to/trytoolhub/i-built-a-pdf-compressor-that-never-uploads-your-file-heres-the-actual-technique-575m</link>
      <guid>https://dev.to/trytoolhub/i-built-a-pdf-compressor-that-never-uploads-your-file-heres-the-actual-technique-575m</guid>
      <description>&lt;p&gt;Added PDF compression to ToolHub, and wanted to write up the actual approach since it wasn't as simple as "just use an API."&lt;/p&gt;

&lt;p&gt;The obvious easy path was a third-party compression API — but that would mean uploading the user's PDF to someone else's server, which directly contradicts the "nothing leaves your browser" thing the rest of the site is built around. So instead: each page gets rendered to an image (reusing the same pdf.js pipeline from an earlier PDF→PowerPoint feature), recompressed with a quality slider using the same canvas technique the Image Compressor already uses, then rebuilt into a new PDF with pdf-lib. Entirely client-side, zero uploads.&lt;/p&gt;

&lt;p&gt;Before touching the real browser code, I tested the whole pipeline in a Node harness — generated a 4.7MB image-heavy test PDF, ran it through the compression logic, got a genuine 72% size reduction, then independently verified the output with pypdf (extracted the actual embedded image and visually confirmed it wasn't corrupted, not just "the script ran without erroring").&lt;/p&gt;

&lt;p&gt;One honest tradeoff worth mentioning: since each page becomes a compressed image, text in the output isn't selectable anymore. Stated plainly in the tool itself rather than hidden — the right fit for image-heavy PDFs (scans, photo-heavy docs), not for anything where staying searchable matters.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://trytoolhub.net/tools/compress-pdf?utm_source=devto&amp;amp;utm_medium=community&amp;amp;utm_campaign=pdf_compress_launch" rel="noopener noreferrer"&gt;ToolHub-PdfCompressor&lt;/a&gt;&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>javascript</category>
      <category>performance</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Foundry &amp; Flame — A Full Restaurant Website + Admin Panel Template (React)</title>
      <dc:creator>Anas Khalid</dc:creator>
      <pubDate>Sat, 29 Aug 2026 04:12:10 +0000</pubDate>
      <link>https://dev.to/trytoolhub/foundry-flame-a-full-restaurant-website-admin-panel-template-react-46d8</link>
      <guid>https://dev.to/trytoolhub/foundry-flame-a-full-restaurant-website-admin-panel-template-react-46d8</guid>
      <description>&lt;p&gt;I built Foundry &amp;amp; Flame, a complete restaurant website template with a working admin panel — menu management, content editing, and a clean customer-facing site out of the box. No more hardcoding menu items or hiring a dev every time a restaurant wants to change a price.&lt;/p&gt;

&lt;p&gt;Built with React, it's meant for freelancers, agencies, or restaurant owners who want something production-ready instead of starting from scratch. &lt;br&gt;
Live demo:&lt;a href="https://modernrestaurant-website.vercel.app/" rel="noopener noreferrer"&gt;Foundry&amp;amp;Flame&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would love feedback from other devs — especially on the admin UX.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>react</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Acted on some feedback about ToolHub's positioning - here's the actual change</title>
      <dc:creator>Anas Khalid</dc:creator>
      <pubDate>Sun, 23 Aug 2026 11:38:21 +0000</pubDate>
      <link>https://dev.to/trytoolhub/acted-on-some-feedback-about-toolhubs-positioning-heres-the-actual-change-o2a</link>
      <guid>https://dev.to/trytoolhub/acted-on-some-feedback-about-toolhubs-positioning-heres-the-actual-change-o2a</guid>
      <description>&lt;p&gt;Post body&lt;/p&gt;

&lt;p&gt;Posted about ToolHub here a bit ago (free tools that run entirely in the browser - image, PDF, dev tools, etc.) and got a comment that stuck with me: the "no upload" angle is real, but I should lean into it hard for anything work-related specifically - contracts, financial data, anything someone would actually worry about touching a random server, not just present it as a generic privacy bullet point.&lt;/p&gt;

&lt;p&gt;That's a sharper, more specific pitch than what was actually on the site, so I went and changed it:&lt;/p&gt;

&lt;p&gt;New homepage section calling this out directly, instead of it being one line among several trust badges&lt;br&gt;
A real blog post on the actual mechanism - what "upload first, process second" tools are doing under the hood, and how to verify any tool's real behavior yourself (open dev tools, watch the Network tab, see if your file gets uploaded at all)&lt;br&gt;
A targeted note directly on the PDF/Word/Excel conversion pages, since that's exactly where someone with a real contract or financial document would land&lt;/p&gt;

&lt;p&gt;Nothing scientific here yet - no A/B test, no real traffic data, just shipped it within the last day or two. Wanted to post the follow-through rather than let the feedback just disappear into a comment thread. Will come back with actual numbers once there's something real to report.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://trytoolhub.net/?utm_source=devto&amp;amp;utm_medium=community&amp;amp;utm_campaign=positioning_update" rel="noopener noreferrer"&gt;TryToolHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>webdev</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>I built 45+ free tools that process files entirely in the browser — here's the architecture</title>
      <dc:creator>Anas Khalid</dc:creator>
      <pubDate>Sat, 22 Aug 2026 10:03:49 +0000</pubDate>
      <link>https://dev.to/trytoolhub/i-built-45-free-tools-that-process-files-entirely-in-the-browser-heres-the-architecture-58kh</link>
      <guid>https://dev.to/trytoolhub/i-built-45-free-tools-that-process-files-entirely-in-the-browser-heres-the-architecture-58kh</guid>
      <description>&lt;p&gt;Most free "compress this image" or "convert this PDF" sites work the same way: upload your file to their server, process it, send it back. I built ToolHub to avoid that where possible — most of the 45+ tools on there run entirely in the browser, so the file never actually leaves your device.&lt;/p&gt;

&lt;p&gt;A quick sample of what's on there:&lt;/p&gt;

&lt;p&gt;Image tools — compressor, resizer, cropper, format conversion, all processed client-side with a live before/after preview&lt;br&gt;
PDF tools — merge, split, compress, and conversion to/from Word, Excel, and PowerPoint (that last one was the hardest to build — no good client-side library exists for generating real .pptx files, so I ended up hand-building the OOXML structure and verifying it with python-pptx before shipping)&lt;br&gt;
Developer tools — JSON formatter, regex tester, hash generator, Base64, UUID generator&lt;br&gt;
Color tools — color picker (samples real pixel values from an uploaded image), palette generator, format converters&lt;br&gt;
A couple of social tools — YouTube thumbnail downloader, Instagram image resizer&lt;/p&gt;

&lt;p&gt;Stack: React + Vite frontend, Node/Express/MongoDB backend for the account/history/favorites side — the file processing itself never touches the server.&lt;/p&gt;

&lt;p&gt;Still early on distribution. If anyone's got thoughts on the tools, or on "browser-based, no upload" as a real differentiator vs. just another free tool site, I'd like to hear it.&lt;/p&gt;

&lt;p&gt;&lt;a href="//trytoolhub.net"&gt;TOOLHUB&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
    </item>
  </channel>
</rss>
