{"id":2806,"date":"2025-10-07T11:12:03","date_gmt":"2025-10-07T11:12:03","guid":{"rendered":"https:\/\/200oksolutions.com\/blog\/?p=2806"},"modified":"2025-12-04T07:44:02","modified_gmt":"2025-12-04T07:44:02","slug":"cloudinary-integration-in-laravel-a-step-by-step-guide","status":"publish","type":"post","link":"https:\/\/www.200oksolutions.com\/blog\/cloudinary-integration-in-laravel-a-step-by-step-guide\/","title":{"rendered":"Cloudinary Integration in Laravel: A Step-by-Step Guide"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/200oksolutions.com\/blog\/wp-content\/uploads\/2025\/10\/Cloudinary-Integration-in-Laravel-1024x576.jpg\" alt=\"Discover Cloudinary Integration in Laravel with a Step-by-Step Guide by 200OK Solutions. Image shows a person working on a laptop with the Laravel logo. Read now at www.200oksolutions.com.\" class=\"wp-image-2812\" srcset=\"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2025\/10\/Cloudinary-Integration-in-Laravel-1024x576.jpg 1024w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2025\/10\/Cloudinary-Integration-in-Laravel-300x169.jpg 300w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2025\/10\/Cloudinary-Integration-in-Laravel-768x432.jpg 768w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2025\/10\/Cloudinary-Integration-in-Laravel-1536x864.jpg 1536w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2025\/10\/Cloudinary-Integration-in-Laravel-2048x1152.jpg 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Media management is a critical part of any modern web application. Instead of storing and serving large image and video files directly from your server, you can offload this to a powerful media service like <strong>Cloudinary<\/strong>. It not only provides storage, but also offers real-time transformations, optimization, and global delivery through CDN.<\/p>\n\n\n\n<p>In this tutorial, we\u2019ll walk through <strong>integrating Cloudinary with a Laravel application<\/strong> to upload and manage images seamlessly.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>1. Create a Free Cloudinary Account<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to Cloudinary Signup.<\/li>\n\n\n\n<li>Create a free account using your email, Google, or GitHub login.<\/li>\n\n\n\n<li>After logging in, navigate to the <strong>Dashboard<\/strong> \u2192 you\u2019ll see your <strong>Cloud name, API Key, and API Secret<\/strong>. These are needed for integration.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2. Create an Upload Preset<\/strong><\/h2>\n\n\n\n<p>Cloudinary uses <strong>upload presets<\/strong> to define upload rules (like allowed formats, storage folder, transformations).<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In your Cloudinary Dashboard, go to <strong>Settings \u2192 Upload \u2192 Upload Presets<\/strong>.<\/li>\n\n\n\n<li>Click <strong>Add Upload Preset<\/strong>.<\/li>\n\n\n\n<li>Give it a name (e.g., laravel_preset) and configure options as needed.<\/li>\n\n\n\n<li>Save it.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>3. Create a Fresh Laravel Project<\/strong><\/h2>\n\n\n\n<p>If you don\u2019t already have a Laravel project, create one:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>composer create-project laravel\/laravel cloudinary_demo<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>4. Install the Cloudinary SDK<\/strong><\/h2>\n\n\n\n<p>Install the Cloudinary Laravel SDK:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>composer require cloudinary-labs\/cloudinary-laravel<\/code><\/pre>\n\n\n\n<p>Then publish the configuration file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan vendor:publish --tag=cloudinary<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><a><\/a> <strong>5. Configure .env<\/strong><\/h2>\n\n\n\n<p>In your Laravel project root, open the .env file and add the Cloudinary credentials.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#Cloudinary Configuration\n\nCLOUDINARY_URL=cloudinary:\/\/&lt;API_KEY&gt;:&lt;API_SECRET&gt; @&lt;CLOUD_NAME&gt;\n\nCLOUDINARY_UPLOAD_PRESET=laravel_preset<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>6. Create Model and Migration<\/strong><\/h2>\n\n\n\n<p>We\u2019ll store uploaded photo details in a database. Run:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan make:model Photo -m<\/code><\/pre>\n\n\n\n<p>Update the migration file (database\/migrations\/xxxx_create_photos_table.php):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Schema::create('photos', function (Blueprint $table) {\n\n$table-&gt;id();\n\n$table-&gt;string('title')-&gt;nullable();\n\n$table-&gt;string('image_url');\n\n$table-&gt;string('image_public_id');\n\n$table-&gt;timestamps();\n\n});<\/code><\/pre>\n\n\n\n<p>Run the migration:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan migrate<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>7. Create a Controller<\/strong><\/h2>\n\n\n\n<p>Generate a controller:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan make:controller PhotoController<\/code><\/pre>\n\n\n\n<p>Update app\/Http\/Controllers\/PhotoController.php:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nnamespace App\\Http\\Controllers;\n\nuse Illuminate\\Http\\Request;\n\nuse App\\Models\\Photo;\n\nuse CloudinaryLabs\\CloudinaryLaravel\\Facades\\Cloudinary;\n\nclass PhotoController extends Controller\n\n{\n\npublic function index()\n\n{\n\n$photos = Photo::latest()-&gt;get();\n\nreturn view('photos.index', compact('photos'));\n\n}\n\npublic function create()\n\n{\n\nreturn view('photos.create');\n\n}\n\npublic function store(Request $request)\n\n{\n\n$request-&gt;validate(&#91;\n\n'title' =&gt; 'nullable|string|max:255',\n\n'image' =&gt; 'required|image|max:2048',\n\n]);\n\n$file = $request-&gt;file('image');\n\n\/\/ Upload to Cloudinary\n\n$uploadResult = Cloudinary::upload($file-&gt;getRealPath(), &#91;\n\n'folder' =&gt; 'laravel_uploads',\n\n'upload_preset' =&gt; env('CLOUDINARY_UPLOAD_PRESET'),\n\n]);\n\nPhoto::create(&#91;\n\n'title' =&gt; $request-&gt;title,\n\n'image_url' =&gt; $uploadResult-&gt;getSecurePath(),\n\n'image_public_id' =&gt; $uploadResult-&gt;getPublicId(),\n\n]);\n\nreturn redirect()-&gt;route('photos.index')-&gt;with('success', 'Photo uploaded successfully!');\n\n}\n\npublic function destroy(Photo $photo)\n\n{\n\nCloudinary::destroy($photo-&gt;image_public_id);\n\n$photo-&gt;delete();\n\nreturn redirect()-&gt;route('photos.index')-&gt;with('success', 'Photo deleted successfully!');\n\n}\n\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>8. Define Routes<\/strong><\/h2>\n\n\n\n<p>In routes\/web.php:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>use App\\Http\\Controllers\\PhotoController;\n\nRoute::get('\/photos', &#91;PhotoController::class, 'index'])-&gt;name('photos.index');\n\nRoute::get('\/photos\/create', &#91;PhotoController::class, 'create'])-&gt;name('photos.create');\n\nRoute::post('\/photos', &#91;PhotoController::class, 'store'])-&gt;name('photos.store');\n\nRoute::delete('\/photos\/{photo}', &#91;PhotoController::class, 'destroy'])-&gt;name('photos.destroy');<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>9. Create Blade Views<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Resources\/views\/layouts\/app.blade.php<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html&gt;\n\n&lt;html&gt;\n\n&lt;head&gt;\n\n&lt;title&gt;Laravel Cloudinary Demo&lt;\/title&gt;\n\n&lt;link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.2\/dist\/css\/bootstrap.min.css\"&gt;\n\n&lt;\/head&gt;\n\n&lt;body&gt;\n\n&lt;div class=\"container mt-4\"&gt;\n\n@yield('content')\n\n&lt;\/div&gt;\n\n&lt;\/body&gt;\n\n&lt;\/html&gt;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>resources\/views\/photos\/index.blade.php<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>@extends('layouts.app')\n\n@section('content')\n\n&lt;div class=\"container\"&gt;\n\n&lt;h2&gt;Uploaded Photos&lt;\/h2&gt;\n\n&lt;a href=\"{{ route('photos.create') }}\" class=\"btn btn-primary mb-3\"&gt;Upload New Photo&lt;\/a&gt;\n\n&lt;div class=\"row\"&gt;\n\n@forelse($photos as $photo)\n\n&lt;div class=\"col-md-4 mb-3\"&gt;\n\n&lt;div class=\"card\"&gt;\n\n&lt;img src=\"{{ $photo-&gt;image_url }}\" class=\"card-img-top\" alt=\"Photo\"&gt;\n\n&lt;div class=\"card-body\"&gt;\n\n&lt;h5&gt;{{ $photo-&gt;title ?? 'Untitled' }}&lt;\/h5&gt;\n\n&lt;form action=\"{{ route('photos.destroy', $photo) }}\" method=\"POST\"&gt;\n\n@csrf\n\n@method('DELETE')\n\n&lt;button class=\"btn btn-danger w-100\"&gt;Delete&lt;\/button&gt;\n\n&lt;\/form&gt;\n\n&lt;\/div&gt;\n\n&lt;\/div&gt;\n\n&lt;\/div&gt;\n\n@empty\n\n&lt;p&gt;No photos uploaded yet.&lt;\/p&gt;\n\n@endforelse\n\n&lt;\/div&gt;\n\n&lt;\/div&gt;\n\n@endsection<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Resources\/views\/photos\/create.blade.php<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>@extends('layouts.app')\n\n@section('content')\n\n&lt;div class=\"container\"&gt;\n\n&lt;h1&gt;Upload Photo&lt;\/h1&gt;\n\n&lt;form method=\"POST\" action=\"{{ route('photos.store') }}\" enctype=\"multipart\/form-data\"&gt;\n\n@csrf\n\n&lt;div class=\"mb-3\"&gt;\n\n&lt;label for=\"title\"&gt;Title&lt;\/label&gt;\n\n&lt;input type=\"text\" name=\"title\" class=\"form-control\"&gt;\n\n&lt;\/div&gt;\n\n&lt;div class=\"mb-3\"&gt;\n\n&lt;label for=\"image\"&gt;Choose Image&lt;\/label&gt;\n\n&lt;input type=\"file\" name=\"image\" class=\"form-control\" required&gt;\n\n&lt;\/div&gt;\n\n&lt;button type=\"submit\" class=\"btn btn-primary\"&gt;Upload&lt;\/button&gt;\n\n&lt;\/form&gt;\n\n&lt;\/div&gt;\n\n@endsection<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>10. Test the Application<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Run the app:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan serve<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Visit http:\/\/&lt;host:port&gt;\/photos\/create.<\/li>\n\n\n\n<li>Upload an image \u2192 it will be stored in <strong>Cloudinary<\/strong> and a record saved in your database.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h2>\n\n\n\n<p>You\u2019ve successfully integrated <strong>Cloudinary with Laravel<\/strong>. Now your images are stored in the cloud, optimized automatically, and served globally via CDN. From here, you can explore <strong>advanced features<\/strong> like transformations (resize, crop, format conversion), video uploads, and automatic optimization.<\/p>\n\n\n<div class=\"is-default-size wp-block-site-logo\"><a href=\"https:\/\/www.200oksolutions.com\/blog\/\" class=\"custom-logo-link light-mode-logo\" rel=\"home\"><img decoding=\"async\" width=\"484\" height=\"191\" src=\"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2026\/01\/cropped-200ok_logo.png\" class=\"custom-logo\" alt=\"Web Development, Software, and App Blog | 200OK Solutions\" srcset=\"https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2026\/01\/cropped-200ok_logo.png 484w, https:\/\/www.200oksolutions.com\/blog\/wp-content\/uploads\/2026\/01\/cropped-200ok_logo-300x118.png 300w\" sizes=\"(max-width: 484px) 100vw, 484px\" \/><\/a><\/div>","protected":false},"excerpt":{"rendered":"<p>Media management is a critical part of any modern web application. Instead of storing and serving large&hellip;<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28,1],"tags":[1297,1300,1301,1298,1207,1299,1302],"class_list":["post-2806","post","type-post","status-publish","format-standard","hentry","category-laravel","category-php","tag-cloudinary-integration","tag-cloudinary-laravel-tutorial","tag-cloudinary-sdk","tag-laravel-cloudinary","tag-laravel-file-upload","tag-laravel-image-upload","tag-laravel-media-management"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Cloudinary Integration in Laravel: Step-by-Step Tutorial Web Development, Software, and App Blog | 200OK Solutions<\/title>\n<meta name=\"description\" content=\"Learn how to integrate Cloudinary with Laravel for seamless image upload and management. Step-by-step guide with Cloudinary SDK, upload presets, and optimized cloud storage\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/200oksolutions.com\/blog\/cloudinary-integration-laravel\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cloudinary Integration in Laravel: Step-by-Step Tutorial Web Development, Software, and App Blog | 200OK Solutions\" \/>\n<meta property=\"og:description\" content=\"Learn how to integrate Cloudinary with Laravel for seamless image upload and management. Step-by-step guide with Cloudinary SDK, upload presets, and optimized cloud storage\" \/>\n<meta property=\"og:url\" content=\"https:\/\/200oksolutions.com\/blog\/cloudinary-integration-laravel\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Development, Software, and App Blog | 200OK Solutions\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-07T11:12:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-04T07:44:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/200oksolutions.com\/blog\/wp-content\/uploads\/2025\/10\/Cloudinary-Integration-in-Laravel-1024x576.jpg\" \/>\n<meta name=\"author\" content=\"Piyush Solanki\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Piyush Solanki\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cloudinary Integration in Laravel: Step-by-Step Tutorial Web Development, Software, and App Blog | 200OK Solutions","description":"Learn how to integrate Cloudinary with Laravel for seamless image upload and management. Step-by-step guide with Cloudinary SDK, upload presets, and optimized cloud storage","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/200oksolutions.com\/blog\/cloudinary-integration-laravel\/","og_locale":"en_US","og_type":"article","og_title":"Cloudinary Integration in Laravel: Step-by-Step Tutorial Web Development, Software, and App Blog | 200OK Solutions","og_description":"Learn how to integrate Cloudinary with Laravel for seamless image upload and management. Step-by-step guide with Cloudinary SDK, upload presets, and optimized cloud storage","og_url":"https:\/\/200oksolutions.com\/blog\/cloudinary-integration-laravel\/","og_site_name":"Web Development, Software, and App Blog | 200OK Solutions","article_published_time":"2025-10-07T11:12:03+00:00","article_modified_time":"2025-12-04T07:44:02+00:00","og_image":[{"url":"https:\/\/200oksolutions.com\/blog\/wp-content\/uploads\/2025\/10\/Cloudinary-Integration-in-Laravel-1024x576.jpg","type":"","width":"","height":""}],"author":"Piyush Solanki","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Piyush Solanki","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/200oksolutions.com\/blog\/cloudinary-integration-laravel\/#article","isPartOf":{"@id":"https:\/\/www.200oksolutions.com\/blog\/cloudinary-integration-in-laravel-a-step-by-step-guide\/"},"author":{"name":"Piyush Solanki","@id":"https:\/\/www.200oksolutions.com\/blog\/#\/schema\/person\/e07f6b8e3c9a90ce7b3b09427d26155e"},"headline":"Cloudinary Integration in Laravel: A Step-by-Step Guide","datePublished":"2025-10-07T11:12:03+00:00","dateModified":"2025-12-04T07:44:02+00:00","mainEntityOfPage":{"@id":"https:\/\/www.200oksolutions.com\/blog\/cloudinary-integration-in-laravel-a-step-by-step-guide\/"},"wordCount":352,"commentCount":0,"publisher":{"@id":"https:\/\/www.200oksolutions.com\/blog\/#organization"},"image":{"@id":"https:\/\/200oksolutions.com\/blog\/cloudinary-integration-laravel\/#primaryimage"},"thumbnailUrl":"https:\/\/200oksolutions.com\/blog\/wp-content\/uploads\/2025\/10\/Cloudinary-Integration-in-Laravel-1024x576.jpg","keywords":["Cloudinary Integration","Cloudinary Laravel Tutorial","Cloudinary SDK","Laravel Cloudinary","laravel file upload","Laravel Image Upload","Laravel Media Management"],"articleSection":["Laravel","PHP"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/200oksolutions.com\/blog\/cloudinary-integration-laravel\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.200oksolutions.com\/blog\/cloudinary-integration-in-laravel-a-step-by-step-guide\/","url":"https:\/\/200oksolutions.com\/blog\/cloudinary-integration-laravel\/","name":"Cloudinary Integration in Laravel: Step-by-Step Tutorial Web Development, Software, and App Blog | 200OK Solutions","isPartOf":{"@id":"https:\/\/www.200oksolutions.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/200oksolutions.com\/blog\/cloudinary-integration-laravel\/#primaryimage"},"image":{"@id":"https:\/\/200oksolutions.com\/blog\/cloudinary-integration-laravel\/#primaryimage"},"thumbnailUrl":"https:\/\/200oksolutions.com\/blog\/wp-content\/uploads\/2025\/10\/Cloudinary-Integration-in-Laravel-1024x576.jpg","datePublished":"2025-10-07T11:12:03+00:00","dateModified":"2025-12-04T07:44:02+00:00","description":"Learn how to integrate Cloudinary with Laravel for seamless image upload and management. Step-by-step guide with Cloudinary SDK, upload presets, and optimized cloud storage","breadcrumb":{"@id":"https:\/\/200oksolutions.com\/blog\/cloudinary-integration-laravel\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/200oksolutions.com\/blog\/cloudinary-integration-laravel\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/200oksolutions.com\/blog\/cloudinary-integration-laravel\/#primaryimage","url":"https:\/\/200oksolutions.com\/blog\/wp-content\/uploads\/2025\/10\/Cloudinary-Integration-in-Laravel-1024x576.jpg","contentUrl":"https:\/\/200oksolutions.com\/blog\/wp-content\/uploads\/2025\/10\/Cloudinary-Integration-in-Laravel-1024x576.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/200oksolutions.com\/blog\/cloudinary-integration-laravel\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.200oksolutions.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Home > Blog > Cloudinary Integration in Laravel"}]},{"@type":"WebSite","@id":"https:\/\/www.200oksolutions.com\/blog\/#website","url":"https:\/\/www.200oksolutions.com\/blog\/","name":"Web Development, Software, and App Blog | 200OK Solutions","description":"","publisher":{"@id":"https:\/\/www.200oksolutions.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.200oksolutions.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.200oksolutions.com\/blog\/#organization","name":"Web Development Blog | Software Blog | App Blog","url":"https:\/\/www.200oksolutions.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.200oksolutions.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/200oksolutions.com\/blog\/wp-content\/uploads\/2025\/09\/200ok_logo-CGzMrWDu.png","contentUrl":"https:\/\/200oksolutions.com\/blog\/wp-content\/uploads\/2025\/09\/200ok_logo-CGzMrWDu.png","width":500,"height":191,"caption":"Web Development Blog | Software Blog | App Blog"},"image":{"@id":"https:\/\/www.200oksolutions.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.instagram.com\/200ok_solutions\/"]},{"@type":"Person","@id":"https:\/\/www.200oksolutions.com\/blog\/#\/schema\/person\/e07f6b8e3c9a90ce7b3b09427d26155e","name":"Piyush Solanki","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.200oksolutions.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/962a2b0b4db856e6851ec7d838597a0395adcaae9c0091d223de9942a4254461?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/962a2b0b4db856e6851ec7d838597a0395adcaae9c0091d223de9942a4254461?s=96&d=mm&r=g","caption":"Piyush Solanki"},"description":"Piyush is a seasoned PHP Tech Lead with 10+ years of experience architecting and delivering scalable web and mobile backend solutions for global brands and fast-growing SMEs. He specializes in PHP, MySQL, CodeIgniter, WordPress, and custom API development, helping businesses modernize legacy systems and launch secure, high-performance digital products. He collaborates closely with mobile teams building Android &amp; iOS apps , developing RESTful APIs, cloud integrations, and secure payment systems using platforms like Stripe, AWS S3, and OTP\/SMS gateways. His work extends across CMS customization, microservices-ready backend architectures, and smooth product deployments across Linux and cloud-based environments. Piyush also has a strong understanding of modern front-end technologies such as React and TypeScript, enabling him to contribute to full-stack development workflows and advanced admin panels. With a successful delivery track record in the UK market and experience building digital products for sectors like finance, hospitality, retail, consulting, and food services, Piyush is passionate about helping SMEs scale technology teams, improve operational efficiency, and accelerate innovation through backend excellence and digital tools.","url":"https:\/\/www.200oksolutions.com\/blog\/author\/piyush\/"}]}},"_links":{"self":[{"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/posts\/2806","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=2806"}],"version-history":[{"count":2,"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/posts\/2806\/revisions"}],"predecessor-version":[{"id":2813,"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/posts\/2806\/revisions\/2813"}],"wp:attachment":[{"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=2806"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=2806"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.200oksolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=2806"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}