Remove an Image Background Without Photoshop — Free Browser Tools
Three ways to make an image background transparent without Photoshop: a free browser tool, AI services and GIMP - and how to avoid the usual failures.
Practical articles on building, testing and operating software.
Three ways to make an image background transparent without Photoshop: a free browser tool, AI services and GIMP - and how to avoid the usual failures.
PNG, JPEG, WebP and AVIF compared on strengths, use cases and browser support, with how to serve them conditionally through the picture element.
What a Whois lookup actually shows - registrant, expiry, registrar, name servers - how GDPR changed the results, and how to use it day to day.
What the HTTP status codes developers actually meet mean - 200, 301, 403, 404, 413, 422, 429, 500, 502, 504 - why they happen and how to respond.
How to turn Copy as cURL from Chrome DevTools into fetch, axios, Python requests, PHP or Go, with a table of what each cURL option maps to.
Cookie security attributes explained: Secure, HttpOnly, SameSite, the __Host- prefix and the 4096-byte limit, and what each stops - CSRF, XSS, hijacking.
Six classic JWT vulnerabilities - alg none, key confusion, no expiry, secrets in the payload, no revocation, weak keys - and what to do about each.
Why CSV files come out garbled in Excel and how to fix it: producing UTF-8 with a BOM, the import route, and code samples in PHP and Python.
The Nginx client_max_body_size default of 1m, where to set it, how it produces a 413, and how it interacts with upload_max_filesize in PHP.
The AWS S3 limits (5 GB for a single PUT, 5 TB multipart), the CloudFront body limit and the 10 MB API Gateway cap - and how to work around them.
Implementing file upload with fetch and axios: using FormData, wiring a progress bar, chunking, error handling and the CORS settings that matter.
File uploads in Laravel: Request::file(), validating with mimes and max, saving through Storage::disk()->put(), and configuring the S3 driver.
File uploads in PHP explained: the shape of $_FILES, the UPLOAD_ERR codes, MIME validation with finfo, an extension allowlist and safe storage.
Upload limits, free tiers and monthly pricing compared across ten providers - S3, GCS, Azure Blob, Cloudflare R2, Backblaze B2 - with how to choose.
Configuring PHP uploads under Docker: upload_max_filesize and post_max_size in php.ini, a compose example for Nginx and PHP-FPM, and how to verify.
File uploads in the Next.js App Router: form actions, handling formData in route.ts, saving to Vercel Blob, uploading to S3 and showing progress.
A production checklist for file uploads: size limits, MIME validation with finfo, an extension allowlist, magic-byte checks and a safe storage location.
Covers FileField and ImageField, validation in forms.py, the MEDIA_ROOT and MEDIA_URL settings, and wiring S3 through django-storages.
File uploads in Rails with Active Storage: setup, has_one_attached and has_many_attached, validation, S3 configuration and image variants.
File uploads in Go: receiving multipart with net/http, r.FormFile(), size limits, MIME validation and uploading to S3 with AWS SDK v2.
Uploads on Vercel: the 4.5 MB bodySize limit on Functions, configuring vercel.json, using Vercel Blob, and uploading straight to S3 to sidestep it.
Uploads on Netlify: the 6 MB body limit on Functions, configuring netlify.toml, parsing multipart/form-data, and what to use instead of Large Media.
Uploads on Render: configuring a persistent Disk, setting upload_max_filesize for PHP, wiring S3 through environment variables and a Blueprint example.
Why upload limits are hard to test, and a practical boundary-value procedure using 9.9 MB, 10 MB and 10.1 MB threshold files against real services.
What causes a 413 and how to clear it: client_max_body_size in Nginx, upload_max_filesize and post_max_size in PHP, and how to debug the mismatch.
When to return 422 rather than 400, how Laravel, Django and Rails use it, what it means for uploads, and the RFC 7807 problem-details format.
What triggers a 507 and how to recover: checking disk usage with df and du, keeping logs in check with logrotate, and cloud storage quotas.
PNG, WebP and AVIF compared on visual quality, file size, browser support and encoding speed, with a clear rule for which to pick when optimising.
Why CSV files break in Excel: the difference between Shift_JIS, UTF-8 and UTF-8 with BOM, plus encoding-conversion code in Python and PHP.
Five ways to raise the 2 MB default upload limit in WordPress: wp-config.php, .htaccess, php.ini, functions.php and the host control panel.
A quick reference to the specifications, magic bytes, MIME types and maximum sizes of PNG, JPEG, PDF, ZIP, CSV and JSON - for writing validation.
The difference between MB and MiB: how PHP and Nginx read the units, why Windows and macOS disagree, and what it means for boundary-value testing.
What makes up the 200 to 400 bytes of multipart/form-data overhead in an HTML form, how to calculate it, and how it eats into your size limits.
Why Base64 inflates data by about 33 percent, three bytes becoming four characters, and what that costs in API payloads, email and data URIs.
Why text and CSV shrink by 60 to 85 percent while JPEG and MP4 barely compress, explained from how Deflate works - and when to use Store mode.