Writing
81 articles across 4 years. Tutorials, guides, and the occasional bug-fix story.
— 2026
- Managing forms and file uploads in React using useActionState
- How to upload files in Laravel with Uploadcare
- Speculation Rules API: The new alternative to prerender
- How do I add signed uploads to an existing Next.js app?
- How do I handle file uploads in a Node.js Express API?
- How do I restrict file types in an Uploadcare uploader?
- How do I use Uploadcare with React Hook Form?
- Introducing the Uploadcare CLI: automate file workflows from the terminal
- How to integrate Uploadcare with n8n for file uploads
— 2025
- How to handle large file uploads
- How to crop an image in HTML and CSS
- How to serve video & audio with Uploadcare video CDN
- Multipart file uploads explained: Scaling large file transfers with Uploadcare
- How to upload files to WordPress — Secure file uploads with Uploadcare
- How to create automatic profile pictures (step-by-step guide)
- Color recognition: Extract dominant colors from any image automatically
- How to compress images for your website without losing quality
- How to crop images using jQuery: Complete developer guide
- Best CDN for video streaming in 2025: Providers compared
- How to upload files in HTML: Complete developer guide
- JavaScript upload image tutorial (upload to server & more)
- React image optimization: Techniques to speed up your web apps
- How to preload images: HTML and JavaScript methods explained
- How to create a custom video player in JavaScript and HTML
- Using Authentication in Astro
- How to add and customize CSS background image
- How to optimize images in Astro: A step-by-step guide
- Rendering Dynamic Blocks Using Astro
- The complete guide to file uploads in Astro applications
- What is adaptive bitrate streaming (ABR) and how to use it
- Implementing Live Preview in Astro
- Implementing Multilingual Content using Directus and Astro
- How to optimize images for the Web: Best practice guide
- Build Forms Dynamically using Directus and Astro
- A Guide to HTTP Live Streaming (HLS)
- Creating responsive images with srcset
- Build a Realtime Chat App with Directus and Astro
- Performance comparison: Uploadcare vs traditional REST API upload methods
- Navigating the codec landscape for 2025: AV1, H.264, H.265, VP8 and VP9
- Create a CMS using Directus and Astro
- Adding overlay and watermarks to your images
- Enhancing image loading experiences with BlurHash
- Create Dynamic Pages for a CMS using Directus and Astro
- How to upload files with Uploadcare and Node.js
- How to generate PDF thumbnails for the web using Uploadcare
- How to automate NSFW image detection with Uploadcare
— 2024
- AVIF format — should you use it instead of WebP or JPEG?
- Best smart image optimization tool? We tested four services head-to-head
- UX best practices for designing an intuitive file uploader
- File uploader validation guide
- Malicious File Uploads Detection with Uploadcare's File Scanning
- Building an accessible file uploader — A developer's guide
- How to upload files in Svelte with Uploadcare
- Introduction to Web Components
- What is OKLCH in CSS and why we use it at Uploadcare
- Handling Large File Uploads - A Developer Guide
- Image optimization for Next.js applications
- File uploading in Android with Kotlin and Uploadcare
- How to Upload Files in Vue.js with Uploadcare
- How to load responsive images with lr-img
- Build an image gallery with Uploadcare JS client SDK and Nuxt.js
- How to upload files using Uploadcare React File Uploader in Next.js
- How to upload files in Webflow using Uploadcare File Uploader
- Build an E-commerce Website With Directus and Next.js
- Deploying Directus to Render.com
- Building a Hotel Booking System with Directus, Next.js, and Stripe
- Deploying Directus to Google Cloud Platform with Docker
- What is cross-browser compatibility, and why should you care?
- How to build a news aggregator with Next.js, Resend, and Apify
- Getting Started with Directus and Remix
- Deploying Directus to AWS EC2 with Docker
- Getting Started with Directus and Astro
- Using Directus Auth with NextAuth.js
— 2023
- TypeScript utility types: when and how to use them
- Serverless web scraping with TypeScript and AWS Lambda
- Improving Your Workflow as a Developer with Bash Aliases
- Mastering Generics in Typescript
- The Differences Between Type and Interface in Typescript
- How to Send Custom Emails from Netlify: A Step-by-Step Guide
- Effectiveness of Developer Relations Programs: A Study of MongoDB, AWS, and Vercel
- How to Contribute to Community Leaders Cm-Tools Repository!