{
  "id": 19551282,
  "title": "Small SaaS Image Thumbnail Architecture — Object Storage and Server Resize vs CDN",
  "url": "https://urgent.news/2026/11/11/small-saas-image-thumbnail-architecture-object-storage-and-server",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-11-11T21:07:18.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/brennancross2167/small-saas-image-thumbnail-architecture-object-storage-and-server-resize-vs-cdn-1lc0"
  },
  "original_language": "en",
  "account": "When running a small fintech SaaS targeting US and EU users, there are two primary methods to handle image thumbnails: storing originals and thumbnails in object storage, and resizing on the server post-upload. The decision between these two approaches hinges on where you want to manage the rules and policies governing image processing.\n\nFor the first method, object storage paired with server resizing, you store the original image and then generate thumbnails immediately after upload. This approach uses a write-time pipeline. The upload handler stores the original image in a specific directory, triggers a resize job, and saves the thumbnails in another directory. The key benefit of this method is the reproducibility of the results. Given the same source image and resize policy, the same object key and bytes will always be produced. This consistency allows for reliable retries and easy auditing. If a resize job fails due to a malformed file, the original object remains intact, and the retry process can be safely repeated without causing duplicate thumbnails. When updating image processing policies, you create a new output key for the new policy while retaining the old one until the retention job allows it to be deleted.\n\nThe second approach involves using a CDN (Content Delivery Network) for image transformations. In this method, the original image is stored and accessed via a CDN, which then applies transformations on-demand using URL parameters. This approach is beneficial when you require URL-driven transformations at the edge, offering global edge latency and responsive sizes. However, it requires a CDN provider that can securely read your private origin and enforce your access model. Services like Cloudinary or Imgix are designed for this purpose, offering managed transformations and quick delivery. Yet, they introduce additional URL and transformation semantics, which could lead to increased cost and policy coupling as traffic grows.\n\nIn conclusion, the choice between these architectures depends on your specific requirements. If you prioritize deterministic outputs, reproducible retries, and simpler operational management, the object storage with server resizing approach may be more suitable. On the other hand, if your application demands user-controlled, on-the-fly transformations at the edge, a CDN-based approach might be the better fit. For teams new to image processing or those already invested in a specific cloud provider, Infrai offers a middle ground, providing a single REST API across backend modules, simplifying authorization and storage management.",
  "summary": "Short answer: for a small fintech SaaS serving US and EU users, keep originals and thumbnails in object storage and resize on the server after upload. Pick an image CDN only when you need URL-driven, on-the-fly transforms at the edge. That decision is less about where pixels live than where you want the rules to live. A reproducible retention policy, private training artifacts, and predictable…",
  "key_points": [
    "Object storage with server resizing provides reproducible thumbnails.",
    "CDN offers URL-driven, edge transformations for global delivery.",
    "Infrai provides unified REST API for image processing management."
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}