<?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: Khalid Danishyar</title>
    <description>The latest articles on DEV Community by Khalid Danishyar (@danishyarkh).</description>
    <link>https://dev.to/danishyarkh</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%2F3640962%2Fcaa49a96-79cc-41bd-b640-cf6530757244.jpg</url>
      <title>DEV Community: Khalid Danishyar</title>
      <link>https://dev.to/danishyarkh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/danishyarkh"/>
    <language>en</language>
    <item>
      <title>I got tired of fighting Jupyter notebook exports, so I built JupyTools</title>
      <dc:creator>Khalid Danishyar</dc:creator>
      <pubDate>Sun, 10 May 2026 03:41:23 +0000</pubDate>
      <link>https://dev.to/danishyarkh/i-got-tired-of-fighting-jupyter-notebook-exports-so-i-built-jupytools-585h</link>
      <guid>https://dev.to/danishyarkh/i-got-tired-of-fighting-jupyter-notebook-exports-so-i-built-jupytools-585h</guid>
      <description>&lt;p&gt;If you work with Jupyter notebooks long enough, you eventually hit the same annoying wall:&lt;br&gt;
Your notebook works perfectly… but now someone wants it in another format.&lt;br&gt;
A professor asks for a PDF.&lt;br&gt;
A manager wants a Word document.&lt;br&gt;
A teammate needs clean Markdown for GitHub.&lt;br&gt;
Someone else just wants to open the notebook without installing Jupyter.&lt;br&gt;
And suddenly you’re debugging &lt;code&gt;nbconvert&lt;/code&gt;, installing Pandoc, fighting LaTeX errors, or trying to clean giant notebook outputs before pushing to Git.&lt;br&gt;
I ran into this problem constantly while working between notebooks, documentation, and reports. Sometimes I was on a locked-down work machine. Sometimes I was helping students. Sometimes I just needed a quick export without rebuilding an entire Python environment.&lt;br&gt;
That frustration became JupyTools.&lt;br&gt;
What JupyTools does&lt;br&gt;
👉 &lt;strong&gt;&lt;a href="https://jupytools.com" rel="noopener noreferrer"&gt;https://jupytools.com/&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
JupyTools is a browser-based toolkit for working with Jupyter notebooks.&lt;br&gt;
No installs.&lt;br&gt;
No account.&lt;br&gt;
No server-side processing for core tools.&lt;br&gt;
Everything runs directly in your browser session.&lt;br&gt;
You can:&lt;br&gt;
• Convert &lt;code&gt;.ipynb&lt;/code&gt; to Word (&lt;code&gt;.docx&lt;/code&gt;)&lt;br&gt;
• Export notebooks to PDF&lt;br&gt;
• Generate Markdown for GitHub&lt;br&gt;
• Create HTML exports&lt;br&gt;
• Convert notebooks to Python scripts&lt;br&gt;
• Turn Python scripts back into notebooks&lt;br&gt;
• Clean notebook outputs before sharing&lt;br&gt;
• Merge multiple notebooks&lt;br&gt;
• Split large notebooks into smaller sections&lt;br&gt;
• Open and preview notebooks directly in the browser&lt;br&gt;
The main goal was simple:&lt;br&gt;
Make notebook workflows feel lightweight again.&lt;br&gt;
The problem with notebook exports&lt;br&gt;
Most notebook tools are built for people who already have a full local Python environment.&lt;br&gt;
That sounds fine until you switch machines, work with students, collaborate across teams, or need to submit something quickly.&lt;br&gt;
In practice, I kept seeing the same issues:&lt;br&gt;
• &lt;code&gt;nbconvert&lt;/code&gt; dependencies breaking&lt;br&gt;
• Pandoc not installed&lt;br&gt;
• PDF exports failing because of LaTeX&lt;br&gt;
• Huge notebooks bloated with outputs&lt;br&gt;
• Reviewers unable to open &lt;code&gt;.ipynb&lt;/code&gt;&lt;br&gt;
• Git diffs polluted by execution metadata&lt;br&gt;
• People asking for Word files instead of notebooks&lt;br&gt;
The worst part is that none of these problems are related to the actual analysis.&lt;br&gt;
They’re just workflow friction.&lt;br&gt;
So instead of adding another desktop dependency, I built a tool that works directly in the browser.&lt;br&gt;
Why browser-based matters&lt;br&gt;
One thing I learned from working with notebooks in different environments is that setup friction kills momentum.&lt;br&gt;
Sometimes you only need a quick conversion.&lt;br&gt;
Sometimes you’re borrowing a machine.&lt;br&gt;
Sometimes IT policies block installs entirely.&lt;br&gt;
Sometimes you’re helping a non-technical teammate who just needs a readable document.&lt;br&gt;
With JupyTools, you open the site, drop the file, choose the export format, and download the result.&lt;br&gt;
That’s it.&lt;br&gt;
No environment setup.&lt;br&gt;
No login wall.&lt;br&gt;
No “install these six packages first.”&lt;/p&gt;

&lt;p&gt;The features I personally use most&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://jupytools.com/ipynb-to-docx" rel="noopener noreferrer"&gt;IPYNB → DOCX&lt;/a&gt;
This became surprisingly useful.
A lot of people still review work in Microsoft Word. Researchers, professors, managers, and clients often prefer editable documents over notebooks.
The DOCX export keeps:
• Headings
• Markdown structure
• Code blocks
• Inline outputs
• Images and plots&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That means you can hand in a real Word document without manually copying notebook content into another editor.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://jupytools.com/ipynb-output-cleaner" rel="noopener noreferrer"&gt;Notebook Output Cleaner&lt;/a&gt;
If you use Git with notebooks, you already know the pain.
A tiny code change creates a massive diff because outputs, execution counts, or metadata changed.
Before sharing notebooks publicly, I almost always clean them first.
The cleaner removes noisy outputs while keeping the notebook structure intact.
It’s especially useful before:
• Git commits
• Pull requests
• Email attachments
• Sharing notebooks with students
• Uploading examples publicly&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://jupytools.com/ipynb-viewer" rel="noopener noreferrer"&gt;Notebook Viewer&lt;/a&gt;
Sometimes people just want to read a notebook.
Not run it.
Not install Jupyter.
Just open it.
The viewer lets you inspect Markdown, code cells, and outputs directly in the browser.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnci4rrciasi38n4ip9ys.png" alt=" " width="800" height="481"&gt;
I originally built this because I kept sending notebooks to people who couldn’t open them properly.&lt;/li&gt;
&lt;li&gt;Merge + Split notebooks
This came from teaching workflows.
I often had:
• multiple labs that needed to become one notebook
• giant notebooks that needed to be split into lessons
Most notebook tools don’t handle this cleanly.
Now I use merge/split constantly for tutorials and documentation prep.
Privacy was a big requirement
One thing I strongly wanted from the beginning:
Your notebook should stay local whenever possible.
A lot of notebooks contain:
API keys
• internal datasets
• experiment outputs
• customer information
• unreleased research
That’s why the core conversion flow runs client-side in the browser.
Your files stay in the browser session until you download the result.
I built it this way because I personally don’t like uploading notebooks to random conversion services either.
Who this is for
&lt;strong&gt;&lt;a href="https://jupytools.com/" rel="noopener noreferrer"&gt;JupyTools&lt;/a&gt;&lt;/strong&gt; is especially useful if you:
• Work with Jupyter regularly
• Teach data science or Python
• Submit notebooks for grading
• Share notebooks with non-technical teams
• Need Word or PDF exports often
• Use GitHub heavily
• Review notebooks on different machines
• Want quick conversions without local setup
The workflow I use now
My current notebook workflow looks something like this:&lt;/li&gt;
&lt;li&gt; Build analysis in Jupyter or VS Code&lt;/li&gt;
&lt;li&gt; Clean outputs before commit&lt;/li&gt;
&lt;li&gt; Export Markdown for docs&lt;/li&gt;
&lt;li&gt; Export PDF for sharing&lt;/li&gt;
&lt;li&gt; Generate DOCX when stakeholders want edits&lt;/li&gt;
&lt;li&gt; Bundle everything into ZIP when handing off work
That entire process now takes a couple of minutes.
Before building this, I used to spend way too much time fighting tooling instead of focusing on the actual work.
Things I still want to improve
I’m actively improving:
• export formatting
• large notebook handling
• syntax highlighting
• table rendering
• mobile experience
• notebook preview performance
I also want to add more workflow-focused utilities instead of turning this into “just another converter site.”
The goal is to support the real day-to-day notebook workflow developers and analysts already have.
Final thoughts
Jupyter notebooks became the standard for experimentation, teaching, and data science work.
But the surrounding tooling still feels more complicated than it should.
I built JupyTools because I wanted a faster, simpler way to move between notebooks, documents, scripts, and shareable formats without constantly rebuilding environments.
If that sounds useful to you, I’d genuinely love feedback from the DEV community.
👉 &lt;a href="https://jupytools.com" rel="noopener noreferrer"&gt;https://jupytools.com/&lt;/a&gt;
Especially:
• 
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffz90pkl6hjpk1586v4ox.png" alt=" " width="800" height="467"&gt;export issues
• formatting bugs
• missing formats
• workflow pain points
• notebook utilities you wish existed
I’m building this primarily for developers, analysts, researchers, and students who live inside notebooks every day.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>productivity</category>
      <category>python</category>
      <category>showdev</category>
      <category>tooling</category>
    </item>
    <item>
      <title>JPG to Excel: Stop Retyping Table Data From Images Like It's 2005</title>
      <dc:creator>Khalid Danishyar</dc:creator>
      <pubDate>Tue, 17 Mar 2026 12:46:15 +0000</pubDate>
      <link>https://dev.to/danishyarkh/jpg-to-excel-stop-retyping-table-data-from-images-like-its-2005-3kci</link>
      <guid>https://dev.to/danishyarkh/jpg-to-excel-stop-retyping-table-data-from-images-like-its-2005-3kci</guid>
      <description>&lt;p&gt;&lt;strong&gt;You know that specific kind of workplace suffering where the answer is right in front of you — literally visible on your screen — but completely out of reach?&lt;/strong&gt;&lt;br&gt;
That's the JPG to Excel problem.&lt;br&gt;
Someone sends you a photo of a table. Or you've got a scanned report. Or you screenshot a pricing grid from a website that won't let you copy text. The data is right there. Every row, every column, every number — perfectly readable. And yet getting it into a spreadsheet means one thing: typing it all out by hand, one cell at a time, praying you don't make a mistake on row 17.&lt;br&gt;
I've been in that chair. A lot of people have. And it's genuinely one of those friction points that nobody complains about loudly enough, because it feels too mundane to escalate — but quietly eats hours every single week.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Generic OCR Doesn't Cut It
&lt;/h2&gt;

&lt;p&gt;The first thing most people try when they need to convert JPG to Excel is a standard OCR tool. Makes sense on paper. OCR reads text from images. You need text from an image. Problem solved, right?&lt;br&gt;
Not quite.&lt;/p&gt;

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

&lt;p&gt;Standard OCR tools read text the way a child reads a page before they understand sentences — left to right, top to bottom, no concept of what the structure means. So you get output that looks like this: a long block of text where your column headers and row values are all mashed together, and you spend the next twenty minutes figuring out which number belonged to which cell.&lt;br&gt;
That's not a spreadsheet. That's a different problem wearing the same coat.&lt;br&gt;
What you actually need when you want to convert from JPG to Excel isn't just text recognition — it's table structure recognition. The tool needs to understand that these values belong in these columns, those labels belong in those rows, and the whole thing needs to output as a properly structured XLSX file that opens cleanly in Excel or Google Sheets.&lt;br&gt;
That distinction is everything.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Tool That Actually Gets It Right
&lt;/h2&gt;

&lt;p&gt;Asli Tools' JPG to Excel converter is built around exactly that distinction. It doesn't just extract text — it detects table structure and maps your data into the correct cells in a proper Excel file.&lt;br&gt;
Here's the workflow:&lt;/p&gt;

&lt;p&gt;Go to &lt;strong&gt;&lt;a href="https://aslitools.com/tools/jpg-to-xlsx/" rel="noopener noreferrer"&gt;aslitools.com/tools/jpg-to-xlsx/&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
Drag your JPG in — or click to browse&lt;br&gt;
Hit Convert to Excel&lt;br&gt;
Download your XLSX file&lt;/p&gt;

&lt;p&gt;That's genuinely it. No account. No installation. No credit card. You want to convert JPG to Excel free — this is it, no strings attached.&lt;br&gt;
The output is a standard XLSX file that opens in Excel, Google Sheets, LibreOffice, or anywhere else you work with spreadsheets. Clean formatting. No watermarks. No catches.&lt;/p&gt;

&lt;h2&gt;
  
  
  Batch Conversion Changes Everything
&lt;/h2&gt;

&lt;p&gt;The feature that took this from "useful" to "genuinely transformative" for my workflow is batch processing.&lt;br&gt;
You can upload up to 50 images at once. Each image converts to its own XLSX file. Download them all in a single ZIP.&lt;br&gt;
If you're dealing with a multi-page scanned report, a stack of photographed forms, or an archive of historical tables — this is the feature that makes the whole thing practical. What would otherwise be an afternoon of copy-typing becomes a few minutes of uploading and downloading.&lt;/p&gt;

&lt;p&gt;Real Situations Where This Saves You&lt;br&gt;
Let me get specific about where this JPG to Excel converter actually earns its keep:&lt;br&gt;
Legacy document archives. Old printed reports, paper records, filed spreadsheets that were never digitized. Photograph them or scan them, run them through, get structured data out.&lt;br&gt;
Client-submitted materials. Clients who send photos of their hand-drawn tables or printed price lists (this happens more than anyone admits). No more manual transcription.&lt;br&gt;
Research and analysis. Tables embedded in academic PDFs, screenshots from locked websites, photos from conferences and whiteboards. JPG convert to Excel in seconds instead of minutes.&lt;br&gt;
Scanned invoices and forms. Finance teams who receive physical documents and need the data in a workable format before end of day.&lt;br&gt;
Screenshot workflows. Any time you capture a table from your screen — competitor pricing, data from an app that won't export, a table from a PowerPoint someone sent — you can convert it straight to Excel without touching a keyboard.&lt;/p&gt;

&lt;h2&gt;
  
  
  What About Excel to JPG?
&lt;/h2&gt;

&lt;p&gt;Worth mentioning the reverse use case too: sometimes you need to go the other direction and convert Excel to JPG. Maybe you want to embed a table in a presentation, share a clean image on social media, or send a non-editable snapshot of data to a client.&lt;br&gt;
If you need to convert Excel to JPG format — turn a spreadsheet into an image — Asli Tools covers that direction too. The Excel to JPG converter works on the same principles: simple upload, clean output, no installation required.&lt;br&gt;
So whether your workflow runs from image to spreadsheet or spreadsheet to image, convert excel to jpg or jpg convert to excel, the same platform handles both directions. That kind of coverage matters when you're dealing with data in the real world, which rarely moves in just one direction.&lt;/p&gt;

&lt;p&gt;Tips for Getting the Best Results&lt;br&gt;
A few things that consistently improve output quality:&lt;br&gt;
Use high-contrast, well-lit images. The clearer the table lines and text, the more accurate the cell detection. A flatbed scan or a crisp screenshot will always outperform a blurry phone photo.&lt;br&gt;
Keep the table straight in the frame. Slight angles are usually fine. Significant rotation isn't. If you're photographing a printed document, get it as flat as possible.&lt;/p&gt;

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

&lt;p&gt;Crop to just the table. Removing extra whitespace or surrounding content helps the tool focus on what matters.&lt;br&gt;
One table per image when possible. Complex layouts with multiple tables on a single page sometimes do better when split into separate images.&lt;br&gt;
Do a quick spot-check. Especially for merged cells or irregular headers, a thirty-second review against the original saves any downstream confusion.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Honest Bottom Line
&lt;/h2&gt;

&lt;p&gt;There's nothing revolutionary about wanting to convert JPG to Excel. It's a mundane problem. But mundane problems that waste hours every week deserve good solutions.&lt;br&gt;
Asli Tools built one. It's free, it requires nothing from you except the image, and it handles the structural part that every other solution fumbles. Whether you need to convert from JPG to Excel for a one-off task or it's a recurring part of your workflow, it belongs in your toolkit.&lt;br&gt;
Go try it: &lt;strong&gt;&lt;a href="https://aslitools.com/tools/jpg-to-xlsx/" rel="noopener noreferrer"&gt;Jpg to Excel&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
Your spreadsheets will be ready before your coffee gets cold.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Using a different method for image-to-spreadsheet conversion? Share it in the comments — always looking for better approaches.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>resources</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I Built AsliTools.com Using Modern Frontend Technologies — Now Serving 15K+ Monthly Users</title>
      <dc:creator>Khalid Danishyar</dc:creator>
      <pubDate>Mon, 02 Mar 2026 07:40:15 +0000</pubDate>
      <link>https://dev.to/danishyarkh/i-built-aslitoolscom-using-modern-frontend-technologies-now-serving-15k-monthly-users-9ai</link>
      <guid>https://dev.to/danishyarkh/i-built-aslitoolscom-using-modern-frontend-technologies-now-serving-15k-monthly-users-9ai</guid>
      <description>&lt;p&gt;Over the last few months, I’ve been building AsliTools.com — a privacy-first platform offering 250+ free online tools for file conversion, PDFs, images, calculators, and more.&lt;/p&gt;

&lt;p&gt;What started as a small side project to solve my own frustrations has now grown to 15,000+ monthly users — entirely organic.&lt;/p&gt;

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

&lt;p&gt;In this post, I want to share the developer side of the story:&lt;/p&gt;

&lt;p&gt;Why I built it&lt;/p&gt;

&lt;p&gt;The frontend architecture decisions&lt;/p&gt;

&lt;p&gt;Performance and privacy challenges&lt;/p&gt;

&lt;p&gt;And what scaling to 15K+ users taught me&lt;/p&gt;

&lt;p&gt;The Initial Idea&lt;/p&gt;

&lt;p&gt;As a developer, I constantly needed quick utilities:&lt;/p&gt;

&lt;p&gt;Merge or split PDFs&lt;/p&gt;

&lt;p&gt;Convert file formats&lt;/p&gt;

&lt;p&gt;Compress images&lt;/p&gt;

&lt;p&gt;Remove backgrounds&lt;/p&gt;

&lt;p&gt;Generate QR codes&lt;/p&gt;

&lt;p&gt;Every existing platform had one or more of these issues:&lt;/p&gt;

&lt;p&gt;Forced signups&lt;/p&gt;

&lt;p&gt;Aggressive paywalls&lt;/p&gt;

&lt;p&gt;File size limits&lt;/p&gt;

&lt;p&gt;Slow processing&lt;/p&gt;

&lt;p&gt;Questionable privacy&lt;/p&gt;

&lt;p&gt;I wanted to build something different:&lt;/p&gt;

&lt;p&gt;Fast. Private. No login. No nonsense.&lt;/p&gt;

&lt;p&gt;Tech Stack &amp;amp; Frontend Approach&lt;/p&gt;

&lt;p&gt;This project was heavily frontend-driven by design.&lt;/p&gt;

&lt;p&gt;The core principle:&lt;br&gt;
Process as much as possible directly in the browser.&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Better privacy&lt;/p&gt;

&lt;p&gt;Reduced server costs&lt;/p&gt;

&lt;p&gt;Faster perceived performance&lt;/p&gt;

&lt;p&gt;Easier horizontal scaling&lt;/p&gt;

&lt;p&gt;What I Used&lt;/p&gt;

&lt;p&gt;Without going too deep into implementation details, the stack focuses on:&lt;/p&gt;

&lt;p&gt;Modern React-based architecture&lt;/p&gt;

&lt;p&gt;Optimized component structure for reusability&lt;/p&gt;

&lt;p&gt;Client-side file processing APIs&lt;/p&gt;

&lt;p&gt;Web Workers for heavy processing tasks&lt;/p&gt;

&lt;p&gt;Efficient state management&lt;/p&gt;

&lt;p&gt;Lazy loading &amp;amp; code splitting&lt;/p&gt;

&lt;p&gt;SEO-optimized rendering strategy&lt;/p&gt;

&lt;p&gt;Performance-focused asset delivery&lt;/p&gt;

&lt;p&gt;A big challenge was keeping bundle size under control while supporting 110+ formats and 250+ tools.&lt;/p&gt;

&lt;p&gt;Tree-shaking, dynamic imports, and aggressive optimization were essential.&lt;/p&gt;

&lt;p&gt;Performance as a Core Feature&lt;/p&gt;

&lt;p&gt;When building utility tools, speed is not optional — it is the product.&lt;/p&gt;

&lt;p&gt;I focused on:&lt;/p&gt;

&lt;p&gt;Minimal UI friction&lt;/p&gt;

&lt;p&gt;3-step workflows (Upload → Select → Convert)&lt;/p&gt;

&lt;p&gt;Fast first contentful paint&lt;/p&gt;

&lt;p&gt;Smooth interactions even on slower devices&lt;/p&gt;

&lt;p&gt;Lightweight UI with no unnecessary animations&lt;/p&gt;

&lt;p&gt;Every extra second of delay increases drop-off.&lt;/p&gt;

&lt;p&gt;With 15K+ monthly users now, performance consistency matters more than ever.&lt;/p&gt;

&lt;p&gt;Privacy by Architecture&lt;/p&gt;

&lt;p&gt;One of the most important decisions:&lt;/p&gt;

&lt;p&gt;Files should never leave the user’s device whenever possible.&lt;/p&gt;

&lt;p&gt;Most conversions and processing happen directly in the browser.&lt;/p&gt;

&lt;p&gt;That means:&lt;/p&gt;

&lt;p&gt;No file storage&lt;/p&gt;

&lt;p&gt;No user accounts&lt;/p&gt;

&lt;p&gt;No background tracking&lt;/p&gt;

&lt;p&gt;No personal data handling&lt;/p&gt;

&lt;p&gt;This significantly simplifies compliance, improves user trust, and reduces backend complexity.&lt;/p&gt;

&lt;p&gt;Scaling to 15K+ Monthly Users&lt;/p&gt;

&lt;p&gt;What surprised me most wasn’t the traffic growth.&lt;/p&gt;

&lt;p&gt;It was how sensitive users are to friction.&lt;/p&gt;

&lt;p&gt;Small UX changes impacted engagement more than adding new tools.&lt;/p&gt;

&lt;p&gt;Some lessons from real usage data:&lt;/p&gt;

&lt;p&gt;Clear tool categorization improves retention&lt;/p&gt;

&lt;p&gt;Faster processing increases repeat visits&lt;/p&gt;

&lt;p&gt;Simplicity outperforms feature overload&lt;/p&gt;

&lt;p&gt;Trust signals matter&lt;/p&gt;

&lt;p&gt;Organic traffic is now consistently above 15,000 users per month, and it’s growing steadily.&lt;/p&gt;

&lt;p&gt;No paid ads so far.&lt;/p&gt;

&lt;p&gt;Challenges&lt;/p&gt;

&lt;p&gt;Building 250+ tools isn’t just about duplicating templates.&lt;/p&gt;

&lt;p&gt;Each tool introduces:&lt;/p&gt;

&lt;p&gt;Edge cases&lt;/p&gt;

&lt;p&gt;Format inconsistencies&lt;/p&gt;

&lt;p&gt;Browser compatibility issues&lt;/p&gt;

&lt;p&gt;Performance tradeoffs&lt;/p&gt;

&lt;p&gt;Supporting multiple file types at scale while keeping everything lightweight required careful architectural planning.&lt;/p&gt;

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

&lt;p&gt;Now that the foundation is stable, I’m exploring:&lt;/p&gt;

&lt;p&gt;Advanced batch processing&lt;/p&gt;

&lt;p&gt;More developer-focused utilities&lt;/p&gt;

&lt;p&gt;API access&lt;/p&gt;

&lt;p&gt;Further performance improvements&lt;/p&gt;

&lt;p&gt;Sustainable monetization without breaking the “free &amp;amp; private” promise&lt;/p&gt;

&lt;p&gt;Why I’m Sharing This&lt;/p&gt;

&lt;p&gt;Because building real utility products teaches you different lessons than building SaaS dashboards.&lt;/p&gt;

&lt;p&gt;You learn about:&lt;/p&gt;

&lt;p&gt;UX psychology&lt;/p&gt;

&lt;p&gt;Performance engineering&lt;/p&gt;

&lt;p&gt;Privacy-first architecture&lt;/p&gt;

&lt;p&gt;Scalability without complexity&lt;/p&gt;

&lt;p&gt;If you're a frontend developer thinking about building something practical and high-traffic — utility products are underrated.&lt;/p&gt;

&lt;p&gt;If you want to check it out:&lt;br&gt;
&lt;a href="https://aslitools.com" rel="noopener noreferrer"&gt;https://aslitools.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’d love feedback from fellow developers — especially around architecture, scaling, and frontend optimization strategies.&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>showdev</category>
      <category>sideprojects</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Transactional and Marketing Emails for AsanTyping.com</title>
      <dc:creator>Khalid Danishyar</dc:creator>
      <pubDate>Tue, 02 Dec 2025 11:20:03 +0000</pubDate>
      <link>https://dev.to/danishyarkh/transactional-and-marketing-emails-for-asantypingcom-112i</link>
      <guid>https://dev.to/danishyarkh/transactional-and-marketing-emails-for-asantypingcom-112i</guid>
      <description>&lt;p&gt;Over the past few weeks, I’ve been exploring different email service providers for transactional emails for AsanTyping.com. I tested MailerLite, Mailgun, Mailchimp, and even AWS SES.&lt;/p&gt;

&lt;p&gt;What I found:&lt;/p&gt;

&lt;p&gt;Most platforms are either too expensive, especially when it comes to marketing emails&lt;/p&gt;

&lt;p&gt;AWS SES is definitely the cheapest for transactional emails, but once you add marketing features, the pricing climbs quickly&lt;/p&gt;

&lt;p&gt;For my current needs, I needed something simple, reliable, and budget-friendly&lt;/p&gt;

&lt;p&gt;So for now, I’ve decided to use Resend’s free plan for all transactional emails — and honestly, it’s been a great fit.&lt;/p&gt;

&lt;p&gt;I’ve just finished integrating it, and now:&lt;br&gt;
✅ Email verification&lt;br&gt;
✅ Forgot password emails&lt;br&gt;
✅ Welcome emails&lt;br&gt;
…are all live and fully functional!&lt;/p&gt;

&lt;p&gt;It feels good to check this off the list. If you’re building something early-stage and want a lightweight solution for transactional emails, Resend might be worth a look.&lt;/p&gt;

</description>
      <category>startup</category>
      <category>aws</category>
      <category>backend</category>
      <category>tooling</category>
    </item>
    <item>
      <title>Best Next.js Portfolio for Full Stack Web Developers! (Live Demo Included)</title>
      <dc:creator>Khalid Danishyar</dc:creator>
      <pubDate>Tue, 02 Dec 2025 10:40:15 +0000</pubDate>
      <link>https://dev.to/danishyarkh/best-nextjs-portfolio-for-full-stack-web-developers-live-demo-included-k26</link>
      <guid>https://dev.to/danishyarkh/best-nextjs-portfolio-for-full-stack-web-developers-live-demo-included-k26</guid>
      <description>&lt;p&gt;Creating a standout portfolio is one of the most important steps for any Full Stack Web Developer in 2025. Whether you're applying for jobs, attracting freelance clients, or showcasing your technical expertise, your portfolio is your digital identity.&lt;/p&gt;

&lt;p&gt;Today, I want to highlight one of the best developer portfolios built with Next.js, modern UI, fast performance, clean animations, and SEO-ready structure — a perfect inspiration for developers who want to build or improve their own portfolio site.&lt;/p&gt;

&lt;p&gt;Live Demo: &lt;a href="https://khaliddanishyar.com" rel="noopener noreferrer"&gt;https://khaliddanishyar.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Why a Next.js Portfolio Matters in 2025&lt;/p&gt;

&lt;p&gt;Next.js continues to dominate the modern web ecosystem thanks to its:&lt;/p&gt;

&lt;p&gt;Blazing fast performance&lt;/p&gt;

&lt;p&gt;SEO optimization with Server-Side Rendering (SSR)&lt;/p&gt;

&lt;p&gt;File-based routing&lt;/p&gt;

&lt;p&gt;Image optimization&lt;/p&gt;

&lt;p&gt;Seamless API integration&lt;/p&gt;

&lt;p&gt;Support for modern UI frameworks like Tailwind CSS&lt;/p&gt;

&lt;p&gt;If you're a Full Stack Web Developer, using Next.js for your portfolio is not only powerful — it's strategic.&lt;/p&gt;

&lt;p&gt;A Perfect Example: Khalid Danishyar’s Full Stack Developer Portfolio&lt;/p&gt;

&lt;p&gt;One of the most polished and professional examples of a Next.js portfolio is built by Khalid Danishyar, a Full Stack Web Developer with 7+ years of experience.&lt;/p&gt;

&lt;p&gt;His portfolio demonstrates what a modern developer website should include:&lt;/p&gt;

&lt;p&gt;Key Features That Make This Next.js Portfolio Stand Out&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Clean &amp;amp; Professional Hero Section&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The homepage immediately highlights:&lt;/p&gt;

&lt;p&gt;Developer name&lt;/p&gt;

&lt;p&gt;Specialization (Full Stack Web Developer)&lt;/p&gt;

&lt;p&gt;Tech stack badges (Laravel, Next.js, React, Tailwind CSS, WordPress)&lt;/p&gt;

&lt;p&gt;This instantly communicates skills to recruiters and clients.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Strong Personal Branding&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The site uses:&lt;/p&gt;

&lt;p&gt;A friendly greeting&lt;/p&gt;

&lt;p&gt;A professional high-quality photo&lt;/p&gt;

&lt;p&gt;A compelling summary of experience and education&lt;/p&gt;

&lt;p&gt;These elements build trust and authenticity — crucial for conversions.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Metrics That Impress&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Showcasing numbers like:&lt;/p&gt;

&lt;p&gt;80+ Projects&lt;/p&gt;

&lt;p&gt;60+ Clients&lt;/p&gt;

&lt;p&gt;7+ Years of Experience&lt;/p&gt;

&lt;p&gt;helps build instant credibility and sets expectations.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Clear Call-to-Action Buttons&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The buttons are designed to drive engagement:&lt;/p&gt;

&lt;p&gt;Contact Me&lt;/p&gt;

&lt;p&gt;View Portfolio&lt;/p&gt;

&lt;p&gt;Services&lt;/p&gt;

&lt;p&gt;A strong CTA layout increases conversions significantly.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fully Responsive &amp;amp; Fast&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The portfolio is optimized for:&lt;/p&gt;

&lt;p&gt;Desktop&lt;/p&gt;

&lt;p&gt;Tablet&lt;/p&gt;

&lt;p&gt;Mobile&lt;/p&gt;

&lt;p&gt;Thanks to Next.js + Tailwind CSS, the performance remains smooth with minimal load time.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;SEO Optimized Structure&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The site is structured following SEO best practices:&lt;/p&gt;

&lt;p&gt;Semantic HTML&lt;/p&gt;

&lt;p&gt;Optimized metadata&lt;/p&gt;

&lt;p&gt;Fast load speeds&lt;/p&gt;

&lt;p&gt;Server-side rendering&lt;/p&gt;

&lt;p&gt;Clean URL structure&lt;/p&gt;

&lt;p&gt;This makes it more discoverable on Google search.&lt;/p&gt;

&lt;p&gt;Modern UI + Clean Code = A Winning Combination&lt;/p&gt;

&lt;p&gt;Using a tech stack like:&lt;/p&gt;

&lt;p&gt;Next.js&lt;/p&gt;

&lt;p&gt;React&lt;/p&gt;

&lt;p&gt;Tailwind CSS&lt;/p&gt;

&lt;p&gt;Laravel (backend projects)&lt;/p&gt;

&lt;p&gt;WordPress (CMS projects)&lt;/p&gt;

&lt;p&gt;this portfolio is both visually impressive and technically solid — exactly what clients and employers want.&lt;/p&gt;

&lt;p&gt;Want to See the Live Demo?&lt;/p&gt;

&lt;p&gt;Visit the Full Portfolio Website:&lt;br&gt;
&lt;a href="https://khaliddanishyar.com" rel="noopener noreferrer"&gt;https://khaliddanishyar.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Explore the layout, UI, project examples, and structure — and use it as inspiration for your own Next.js portfolio website.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
