close

DEV Community

Muhamad Revanza Rafif Hamdani profile picture

Muhamad Revanza Rafif Hamdani

404 bio not found

Joined Joined on 
Products, One Core, 2GB of RAM: How Upload Rejections Became My Most Reliable Build Step**

Products, One Core, 2GB of RAM: How Upload Rejections Became My Most Reliable Build Step**

Comments
4 min read
Your Batch Job Posted Twice and Got the Account Flagged — Here's the Tracker That Prevents It**

Your Batch Job Posted Twice and Got the Account Flagged — Here's the Tracker That Prevents It**

Comments
4 min read
From Fun Art to Finished Product: The Four Anti-Stall Scripts That Closed 36 of 39 Gaps**

From Fun Art to Finished Product: The Four Anti-Stall Scripts That Closed 36 of 39 Gaps**

Comments
4 min read
Shipping 39 Packaged Products with Only Pillow and reportlab: A Batch Pipeline Starter Kit**

Shipping 39 Packaged Products with Only Pillow and reportlab: A Batch Pipeline Starter Kit**

Comments
4 min read
The Buyer Wanted Vectors, So We Shipped the 1280 720 Cover Anyway — Here's Why**

The Buyer Wanted Vectors, So We Shipped the 1280 720 Cover Anyway — Here's Why**

Comments
4 min read
A Single-Core 2 GB Server, Two Packages, and 39 Packaged Products: The Raster Rendering Loop That Made It Work**

A Single-Core 2 GB Server, Two Packages, and 39 Packaged Products: The Raster Rendering Loop That Made It Work**

Comments
4 min read
The 1280 720 Lesson: Why a Zip Isn't Shippable Until It Has a Cover"**

The 1280 720 Lesson: Why a Zip Isn't Shippable Until It Has a Cover"**

Comments
3 min read
Why pack_product.py Renders Both a 1280Ã 720 Cover and a 600Ã 600 Thumbnail

Why pack_product.py Renders Both a 1280Ã 720 Cover and a 600Ã 600 Thumbnail

Comments
4 min read
Products, One Prompt Engine: The Four Python Scripts That Did the Whole Job**

Products, One Prompt Engine: The Four Python Scripts That Did the Whole Job**

Comments
3 min read
One Wrong CSV Header and You're Rejected: Building Exact Adobe, Vecteezy, and Dreamstime Uploads for 39 Products**

One Wrong CSV Header and You're Rejected: Building Exact Adobe, Vecteezy, and Dreamstime Uploads for 39 Products**

Comments
4 min read
The Real Costs Behind Near-Zero AI Image Generation: One Server, Two Packages, 39 Products

The Real Costs Behind Near-Zero AI Image Generation: One Server, Two Packages, 39 Products

Comments
4 min read
How I Kept AI Asset Production Near Zero Cost With Only Pillow And Reportlab

How I Kept AI Asset Production Near Zero Cost With Only Pillow And Reportlab

Comments
4 min read
Why Every Generated Asset Needs A Second Model Before It Ships

Why Every Generated Asset Needs A Second Model Before It Ships

Comments
4 min read
How I Kept AI Image Generation Costs Near Zero Running On A 2 GB Single-Core Server

How I Kept AI Image Generation Costs Near Zero Running On A 2 GB Single-Core Server

Comments
4 min read
Four Python Scripts That Package Stock Assets With Only Pillow And Reportlab

Four Python Scripts That Package Stock Assets With Only Pillow And Reportlab

Comments
4 min read
Why Metadata CSVs And Double-Post Tracking Cost More Than Generation In My Stock Pipeline

Why Metadata CSVs And Double-Post Tracking Cost More Than Generation In My Stock Pipeline

Comments
4 min read
The Four-Script Philosophy: How Fewer Tools Shipped 39 Stock Products

The Four-Script Philosophy: How Fewer Tools Shipped 39 Stock Products

Comments
4 min read
Why Four Python Scripts Beat a Framework for Stock Asset Packaging

Why Four Python Scripts Beat a Framework for Stock Asset Packaging

Comments
4 min read
Metadata CSVs, Upload Ledgers, and Covers: The Four Scripts Behind 39 Products

Metadata CSVs, Upload Ledgers, and Covers: The Four Scripts Behind 39 Products

Comments
4 min read
Testing Your Metadata CSV Against Adobe, Vecteezy And Dreamstime Before Upload

Testing Your Metadata CSV Against Adobe, Vecteezy And Dreamstime Before Upload

Comments
4 min read
When My Python Scripts Hit Their Limit And I Started Outsourcing The Boring Parts

When My Python Scripts Hit Their Limit And I Started Outsourcing The Boring Parts

Comments
4 min read
Outsourcing Metadata And Packaging When One Server And Four Scripts Stopped Scaling

Outsourcing Metadata And Packaging When One Server And Four Scripts Stopped Scaling

Comments
4 min read
The Four Tasks I Stopped Scripting And Now Hand Off Before Every Upload Batch

The Four Tasks I Stopped Scripting And Now Hand Off Before Every Upload Batch

Comments
4 min read
From Filename To Findable: A Naming System For Stock Metadata CSVs

From Filename To Findable: A Naming System For Stock Metadata CSVs

Comments
4 min read
From Prompt Engine to Finished Product: The Four Standard-Library Scripts That Do the Boring Work**

From Prompt Engine to Finished Product: The Four Standard-Library Scripts That Do the Boring Work**

Comments
1 min read
Here are three dev.to article titles grounded in the project's actual details:

Here are three dev.to article titles grounded in the project's actual details:

Comments
1 min read
Your Art File Isn't the Product: Four Python Scripts That Close the Last Mile"**

Your Art File Isn't the Product: Four Python Scripts That Close the Last Mile"**

Comments
1 min read
The 1280 720 Lesson: Why a Zip Isn't Shippable Until It Has a Cover"**

The 1280 720 Lesson: Why a Zip Isn't Shippable Until It Has a Cover"**

Comments
1 min read
39 Products, One 2 GB Server: The Unglamorous Work That 'Finished' Actually Costs"**

39 Products, One 2 GB Server: The Unglamorous Work That 'Finished' Actually Costs"**

Comments
1 min read
Here are three dev.to article titles grounded in the actual project details:

Here are three dev.to article titles grounded in the actual project details:

Comments
1 min read
The 1280 720 Lesson: Why a Zip Isn't Shippable Until It Has a Cover"**

The 1280 720 Lesson: Why a Zip Isn't Shippable Until It Has a Cover"**

Comments
1 min read
From Filenames to Real Titles: Adding `titles.json` to a Pipeline That Packaged 39 Products"**

From Filenames to Real Titles: Adding `titles.json` to a Pipeline That Packaged 39 Products"**

Comments
1 min read
Two Packages Only: Why a Lean requirements.txt Sells More Copies

Two Packages Only: Why a Lean requirements.txt Sells More Copies

Comments
1 min read
One Prompt Engine, 39 Products: The Assembly Line That Packs Stock Assets

One Prompt Engine, 39 Products: The Assembly Line That Packs Stock Assets

Comments
1 min read
Four Python Scripts Moved 39 Products From Folder To Upload CSV

Four Python Scripts Moved 39 Products From Folder To Upload CSV

Comments
1 min read
The 1280 720 Lesson: Why a Zip Isn't Shippable Until It Has a Cover"**

The 1280 720 Lesson: Why a Zip Isn't Shippable Until It Has a Cover"**

Comments
4 min read
Products On A 2 GB Server: Metadata, Tracking And Packaging Line

Products On A 2 GB Server: Metadata, Tracking And Packaging Line

Comments
1 min read
The 1280 720 Lesson: Why a Zip Isn't Shippable Until It Has a Cover"**

The 1280 720 Lesson: Why a Zip Isn't Shippable Until It Has a Cover"**

Comments
4 min read
Double-Posting Gets Stock Accounts Flagged: upload_tracker.py Prevents It

Double-Posting Gets Stock Accounts Flagged: upload_tracker.py Prevents It

Comments
4 min read
The 1280 720 Lesson: Why a Zip Isn't Shippable Until It Has a Cover"**

The 1280 720 Lesson: Why a Zip Isn't Shippable Until It Has a Cover"**

Comments
3 min read
Why pack_product.py Renders Both a 1280Ã 720 Cover and a 600Ã 600 Thumbnail

Why pack_product.py Renders Both a 1280Ã 720 Cover and a 600Ã 600 Thumbnail

Comments
4 min read
à 720 or 600à 600: What Each Size Does in pack_product.py and Why

à 720 or 600à 600: What Each Size Does in pack_product.py and Why

Comments
4 min read
md2pdf.py: Turning Markdown Docs Into Premium PDF Add-Ons With Reportlab

md2pdf.py: Turning Markdown Docs Into Premium PDF Add-Ons With Reportlab

Comments
4 min read
One Command To Product: Styled PDFs As Paid Add-Ons Using md2pdf.py

One Command To Product: Styled PDFs As Paid Add-Ons Using md2pdf.py

Comments
4 min read
The 1280 720 Lesson: Why a Zip Isn't Shippable Until It Has a Cover"**

The 1280 720 Lesson: Why a Zip Isn't Shippable Until It Has a Cover"**

Comments
4 min read
Why pack_product.py Renders Both a 1280Ã 720 Cover and a 600Ã 600 Thumbnail

Why pack_product.py Renders Both a 1280Ã 720 Cover and a 600Ã 600 Thumbnail

Comments
4 min read
à 720 or 600à 600: What Each Size Does in pack_product.py and Why

à 720 or 600à 600: What Each Size Does in pack_product.py and Why

Comments
4 min read
Half Your Scripts Need Zero Installs: Why Stdlib-Only Products Sell Better

Half Your Scripts Need Zero Installs: Why Stdlib-Only Products Sell Better

Comments
4 min read
The 1280 720 Lesson: Why a Zip Isn't Shippable Until It Has a Cover"**

The 1280 720 Lesson: Why a Zip Isn't Shippable Until It Has a Cover"**

Comments
4 min read
Why pack_product.py Renders Both a 1280Ã 720 Cover and a 600Ã 600 Thumbnail

Why pack_product.py Renders Both a 1280Ã 720 Cover and a 600Ã 600 Thumbnail

Comments
4 min read
à 720 or 600à 600: What Each Size Does in pack_product.py and Why

à 720 or 600à 600: What Each Size Does in pack_product.py and Why

Comments
3 min read
The 1280 720 Lesson: Why a Zip Isn't Shippable Until It Has a Cover"**

The 1280 720 Lesson: Why a Zip Isn't Shippable Until It Has a Cover"**

Comments
4 min read
Why pack_product.py Renders Both a 1280Ã 720 Cover and a 600Ã 600 Thumbnail

Why pack_product.py Renders Both a 1280Ã 720 Cover and a 600Ã 600 Thumbnail

Comments
4 min read
Why pack_product.py Renders Both a 1280Ã 720 Cover and a 600Ã 600 Thumbnail

Why pack_product.py Renders Both a 1280Ã 720 Cover and a 600Ã 600 Thumbnail

Comments
4 min read
à 720 or 600à 600: What Each Size Does in pack_product.py and Why

à 720 or 600à 600: What Each Size Does in pack_product.py and Why

Comments
4 min read
Zip, Cover, Thumbnail: The Packaging Script That Made 39 Products Look Finished**

Zip, Cover, Thumbnail: The Packaging Script That Made 39 Products Look Finished**

Comments
4 min read
The 1280 720 Lesson: Why a Zip Isn't Shippable Until It Has a Cover"**

The 1280 720 Lesson: Why a Zip Isn't Shippable Until It Has a Cover"**

Comments
4 min read
Why pack_product.py Renders Both a 1280Ã 720 Cover and a 600Ã 600 Thumbnail

Why pack_product.py Renders Both a 1280Ã 720 Cover and a 600Ã 600 Thumbnail

Comments
4 min read
# 3 dev.to Article Titles: "Finished Product" Beyond the Art File

# 3 dev.to Article Titles: "Finished Product" Beyond the Art File

Comments
4 min read
39 Products, One 2 GB Server: What Makes a File 'Finished' When the CSV Header Decides"**

39 Products, One 2 GB Server: What Makes a File 'Finished' When the CSV Header Decides"**

Comments
4 min read
loading...