{"id":33717,"date":"2024-05-07T07:00:00","date_gmt":"2024-05-07T14:00:00","guid":{"rendered":"https:\/\/cloudinary.com\/blog\/?p=33717"},"modified":"2024-07-30T14:42:07","modified_gmt":"2024-07-30T21:42:07","slug":"photocrate-open-source-photo-library","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library","title":{"rendered":"PhotoCrate: The Open-Source Photo Library Built on Cloudinary"},"content":{"rendered":"\n<p>There are as many reasons we stop what we\u2019re doing to capture that perfect image as there are, well, images. There are billions of images now, no, many trillions of images, each one a moment in time, a tiny instant of our lives and experiences that we felt a need to capture, to save, and revisit later to remind ourselves of what it was like to be alive in that instant.&nbsp;<\/p>\n\n\n\n<p>Now that we\u2019re all taking more photos than ever before, managing and organizing this always-expanding library of memories&nbsp; has become more challenging.The catalog of our memories deserves special treatment.<\/p>\n\n\n\n<p>Which is why <a href=\"https:\/\/photocrate.vercel.app\/\">PhotoCrate<\/a> as created, an <a href=\"https:\/\/github.com\/cloudinary-community\/photocrate\">open-source web app<\/a> built on Next.js, as a way to simplify the way you organize and manage your personal photo library, complete with interactive editing and creations, allowing you to get creative.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img width=\"1024\" height=\"581\" data-public-id=\"Web_Assets\/blog\/image_3457040c7d\/image_3457040c7d.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_581,c_scale\/f_auto,q_auto\/v1719327848\/Web_Assets\/blog\/image_3457040c7d\/image_3457040c7d.png?_i=AA\" alt=\"PhotoCrate photo library\" class=\"wp-post-33717 wp-image-34570\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1719327848\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327848\/Web_Assets\/blog\/image_3457040c7d\/image_3457040c7d.png?_i=AA 1723w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327848\/Web_Assets\/blog\/image_3457040c7d\/image_3457040c7d.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327848\/Web_Assets\/blog\/image_3457040c7d\/image_3457040c7d.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327848\/Web_Assets\/blog\/image_3457040c7d\/image_3457040c7d.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327848\/Web_Assets\/blog\/image_3457040c7d\/image_3457040c7d.png?_i=AA 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">What is PhotoCrate?<\/h2>\n\n\n\n<p>PhotoCrate is an open-source web app built as a Starter Template to instantly self-host and deploy your own photo library. It&#8217;s built with Next.js, a React framework, and Cloudinary, the leading image and <a href=\"https:\/\/cloudinary.com\/video_api\">video API<\/a>, to provide you with the ability to upload, manage, and transform your library.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img width=\"1024\" height=\"520\" data-public-id=\"Web_Assets\/blog\/image_12f0a0\/image_12f0a0.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_520,c_scale\/f_auto,q_auto\/v1719327840\/Web_Assets\/blog\/image_12f0a0\/image_12f0a0.png?_i=AA\" alt=\"PhotoCrate powered by Cloudinary\" class=\"wp-post-33717 wp-image-34571\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1719327840\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327840\/Web_Assets\/blog\/image_12f0a0\/image_12f0a0.png?_i=AA 2362w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327840\/Web_Assets\/blog\/image_12f0a0\/image_12f0a0.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327840\/Web_Assets\/blog\/image_12f0a0\/image_12f0a0.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327840\/Web_Assets\/blog\/image_12f0a0\/image_12f0a0.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327840\/Web_Assets\/blog\/image_12f0a0\/image_12f0a0.png?_i=AA 1536w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327840\/Web_Assets\/blog\/image_12f0a0\/image_12f0a0.png?_i=AA 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>PhotoCrate includes a gallery view with the ability to preview all the images in your collection and an editor with capabilities like AI-powered enhancements, background removal, filters, dynamic cropping and resizing, and other effects.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img width=\"1024\" height=\"583\" data-public-id=\"Web_Assets\/blog\/Blog-Photobox-3\/Blog-Photobox-3.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_583,c_scale\/f_auto,q_auto\/v1715104264\/Web_Assets\/blog\/Blog-Photobox-3\/Blog-Photobox-3.png?_i=AA\" alt=\"Edit photos like removing a background\" class=\"wp-post-33717 wp-image-33720\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1715104264\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1715104264\/Web_Assets\/blog\/Blog-Photobox-3\/Blog-Photobox-3.png?_i=AA 1999w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1715104264\/Web_Assets\/blog\/Blog-Photobox-3\/Blog-Photobox-3.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1715104264\/Web_Assets\/blog\/Blog-Photobox-3\/Blog-Photobox-3.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1715104264\/Web_Assets\/blog\/Blog-Photobox-3\/Blog-Photobox-3.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1715104264\/Web_Assets\/blog\/Blog-Photobox-3\/Blog-Photobox-3.png?_i=AA 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n<div class='c-callout  c-callout--inline-title c-callout--note'><strong class='c-callout__title'>Note:<\/strong> <p>Background removal requires the <a href=\"https:\/\/cloudinary.com\/documentation\/cloudinary_ai_background_removal_addon\">Cloudinary AI Background Removal add-on<\/a>.<\/p>\n<\/div>\n\n\n<p>Using Creations you can create Collages, Animations, and Color Pop to bring new life to your existing photos, and organize them by marking your favorites.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img width=\"1024\" height=\"588\" data-public-id=\"Web_Assets\/blog\/Blog-Photobox-4\/Blog-Photobox-4.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_588,c_scale\/f_auto,q_auto\/v1715104258\/Web_Assets\/blog\/Blog-Photobox-4\/Blog-Photobox-4.png?_i=AA\" alt=\"Creating a Collage with Photobox\" class=\"wp-post-33717 wp-image-33721\" style=\"width:842px;height:auto\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1715104258\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1715104258\/Web_Assets\/blog\/Blog-Photobox-4\/Blog-Photobox-4.png?_i=AA 1999w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1715104258\/Web_Assets\/blog\/Blog-Photobox-4\/Blog-Photobox-4.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1715104258\/Web_Assets\/blog\/Blog-Photobox-4\/Blog-Photobox-4.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1715104258\/Web_Assets\/blog\/Blog-Photobox-4\/Blog-Photobox-4.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1715104258\/Web_Assets\/blog\/Blog-Photobox-4\/Blog-Photobox-4.png?_i=AA 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">How Does PhotoCrate Work?<\/h2>\n\n\n\n<p>PhotoCrate leverages the Next.js App Router to build a dynamic experience, including using Server Components to optimize app performance and reliably manage requests to Cloudinary.<\/p>\n\n\n\n<p>To deliver a powerful photo library and interactive editor, PhotoCrate uses Cloudinary uploading and storage, which instantly accesses the transformation API and advanced AI capabilities.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Getting Started With PhotoCrate<\/h2>\n\n\n\n<p>You can get started two ways with PhotoCrate. The first is to deploy your new project. Second, create it locally.<\/p>\n\n\n\n<p>To deploy, you can use web platforms like Vercel, to <a href=\"https:\/\/vercel.com\/new\/clone?demo-description=Photo%20library%20and%20interactive%20editor%20built%20with%20Next.js&amp;demo-image=https%3A%2F%2Fres.cloudinary.com%2Fphotocrate%2Fimage%2Fupload%2Ff_auto%2Fq_auto%2Fassets%2Fvercel-deploy-photocrate-media-library_gutzgq&amp;demo-title=PhotoCrate&amp;demo-url=https%3A%2F%2Fdemo.photocrate.dev%2F&amp;project-name=PhotoCrate&amp;repository-name=photocrate&amp;repository-url=https%3A%2F%2Fgithub.com%2Fcloudinary-community%2Fphotocrate&amp;env=NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME,NEXT_PUBLIC_CLOUDINARY_API_KEY,CLOUDINARY_API_SECRET&amp;envDescription=Cloudinary%20credentials%20needed%20to%20connect%20PhotoCrate%20to%20your%20account.&amp;envLink=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D1SIp9VL5TMo\">instantly deploy<\/a> a new instance of PhotoCrate.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/vercel.com\/new\/clone?demo-description=Photo%20library%20and%20interactive%20editor%20built%20with%20Next.js&amp;demo-image=https%3A%2F%2Fres.cloudinary.com%2Fphotocrate%2Fimage%2Fupload%2Ff_auto%2Fq_auto%2Fassets%2Fvercel-deploy-photocrate-media-library_gutzgq&amp;demo-title=PhotoCrate&amp;demo-url=https%3A%2F%2Fdemo.photocrate.dev%2F&amp;project-name=PhotoCrate&amp;repository-name=photocrate&amp;repository-url=https%3A%2F%2Fgithub.com%2Fcloudinary-community%2Fphotocrate&amp;env=NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME,NEXT_PUBLIC_CLOUDINARY_API_KEY,CLOUDINARY_API_SECRET&amp;envDescription=Cloudinary%20credentials%20needed%20to%20connect%20PhotoCrate%20to%20your%20account.&amp;envLink=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D1SIp9VL5TMo\"><img width=\"103\" height=\"32\" data-public-id=\"Web_Assets\/blog\/Blog-Photobox-5\/Blog-Photobox-5.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_103,h_32,c_scale\/f_auto,q_auto\/v1715104256\/Web_Assets\/blog\/Blog-Photobox-5\/Blog-Photobox-5.png?_i=AA\" alt=\"Deploy Photobox to Vercel\" class=\"wp-post-33717 wp-image-33722\" style=\"object-fit:cover\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1715104256\" data-seo=\"1\" \/><\/a><\/figure><\/div>\n\n\n<p>To get started locally, run the following command in your terminal:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\"><span class=\"hljs-string\">``<\/span><span class=\"hljs-string\">`bash\nnpx create-next-app@latest -e https:\/\/github.com\/cloudinary-community\/photocrate photocrate\n`<\/span><span class=\"hljs-string\">``<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Configure your Cloudinary environment variables:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\">```bash\nNEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=\"<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Your<\/span> <span class=\"hljs-attr\">Cloud<\/span> <span class=\"hljs-attr\">Name<\/span>&gt;<\/span>\"\nNEXT_PUBLIC_CLOUDINARY_API_KEY=\"<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Your<\/span> <span class=\"hljs-attr\">API<\/span> <span class=\"hljs-attr\">Key<\/span>&gt;<\/span>\"\nCLOUDINARY_API_SECRET=\"<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Your<\/span> <span class=\"hljs-attr\">API<\/span> <span class=\"hljs-attr\">Secret<\/span>&gt;<\/span>\"\n```<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>And start your project:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\"><span class=\"hljs-string\">``<\/span><span class=\"hljs-string\">`bash\nnpm run dev\n`<\/span><span class=\"hljs-string\">``<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Your new PhotoCrate will be available at http:\/\/localhost:3000, leaving you only one thing to do: Upload photos!<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img width=\"1024\" height=\"572\" data-public-id=\"Web_Assets\/blog\/image_164c5b\/image_164c5b.png\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/w_1024,h_572,c_scale\/f_auto,q_auto\/v1719327831\/Web_Assets\/blog\/image_164c5b\/image_164c5b.png?_i=AA\" alt=\"Empty PhotoCrate\" class=\"wp-post-33717 wp-image-34573\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1719327831\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327831\/Web_Assets\/blog\/image_164c5b\/image_164c5b.png?_i=AA 3454w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327831\/Web_Assets\/blog\/image_164c5b\/image_164c5b.png?_i=AA 300w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327831\/Web_Assets\/blog\/image_164c5b\/image_164c5b.png?_i=AA 768w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327831\/Web_Assets\/blog\/image_164c5b\/image_164c5b.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327831\/Web_Assets\/blog\/image_164c5b\/image_164c5b.png?_i=AA 1536w, https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327831\/Web_Assets\/blog\/image_164c5b\/image_164c5b.png?_i=AA 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Join the PhotoCrate Community<\/h2>\n\n\n\n<p>PhotoCrate was built and released as an open-source project, allowing you to have full control over your photo library and make PhotoCrate even more powerful.<\/p>\n\n\n\n<p>Head over to the <a href=\"https:\/\/github.com\/cloudinary-community\/photobox\">PhotoCrate GitHub<\/a> to learn how you can get involved or join the <a href=\"https:\/\/discord.gg\/cloudinary.\">Cloudinary Discord<\/a> to share your own PhotoCrate!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>There are as many reasons we stop what we\u2019re doing to capture that perfect image as there are, well, images. There are billions of images now, no, many trillions of images, each one a moment in time, a tiny instant of our lives and experiences that we felt a need to capture, to save, and [&hellip;]<\/p>\n","protected":false},"author":87,"featured_media":34575,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[89,165],"class_list":["post-33717","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-digital-asset-management","tag-image-transformation"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Organize Your Photo Library With PhotoCrate &amp; Cloudinary<\/title>\n<meta name=\"description\" content=\"PhotoCrate, an open-source web app built on Next.js and Cloudinary, simplifies the management of your personal photo library.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PhotoCrate: The Open-Source Photo Library Built on Cloudinary\" \/>\n<meta property=\"og:description\" content=\"PhotoCrate, an open-source web app built on Next.js and Cloudinary, simplifies the management of your personal photo library.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-05-07T14:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-30T21:42:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1719327895\/Web_Assets\/blog\/photocrate-featured-image\/photocrate-featured-image-png?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"1521\" \/>\n\t<meta property=\"og:image:height\" content=\"837\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"melindapham\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library\"},\"author\":{\"name\":\"melindapham\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9\"},\"headline\":\"PhotoCrate: The Open-Source Photo Library Built on Cloudinary\",\"datePublished\":\"2024-05-07T14:00:00+00:00\",\"dateModified\":\"2024-07-30T21:42:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library\"},\"wordCount\":451,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327895\/Web_Assets\/blog\/photocrate-featured-image\/photocrate-featured-image.png?_i=AA\",\"keywords\":[\"Digital Asset Management\",\"Image Transformation\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2024\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library\",\"url\":\"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library\",\"name\":\"Organize Your Photo Library With PhotoCrate & Cloudinary\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327895\/Web_Assets\/blog\/photocrate-featured-image\/photocrate-featured-image.png?_i=AA\",\"datePublished\":\"2024-05-07T14:00:00+00:00\",\"dateModified\":\"2024-07-30T21:42:07+00:00\",\"description\":\"PhotoCrate, an open-source web app built on Next.js and Cloudinary, simplifies the management of your personal photo library.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327895\/Web_Assets\/blog\/photocrate-featured-image\/photocrate-featured-image.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327895\/Web_Assets\/blog\/photocrate-featured-image\/photocrate-featured-image.png?_i=AA\",\"width\":1521,\"height\":837},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PhotoCrate: The Open-Source Photo Library Built on Cloudinary\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"name\":\"Cloudinary Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudinary.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\",\"name\":\"Cloudinary Blog\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"width\":312,\"height\":60,\"caption\":\"Cloudinary Blog\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9\",\"name\":\"melindapham\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g\",\"caption\":\"melindapham\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Organize Your Photo Library With PhotoCrate & Cloudinary","description":"PhotoCrate, an open-source web app built on Next.js and Cloudinary, simplifies the management of your personal photo library.","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:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library","og_locale":"en_US","og_type":"article","og_title":"PhotoCrate: The Open-Source Photo Library Built on Cloudinary","og_description":"PhotoCrate, an open-source web app built on Next.js and Cloudinary, simplifies the management of your personal photo library.","og_url":"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library","og_site_name":"Cloudinary Blog","article_published_time":"2024-05-07T14:00:00+00:00","article_modified_time":"2024-07-30T21:42:07+00:00","og_image":[{"width":1521,"height":837,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1719327895\/Web_Assets\/blog\/photocrate-featured-image\/photocrate-featured-image-png?_i=AA","type":"image\/png"}],"author":"melindapham","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library"},"author":{"name":"melindapham","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9"},"headline":"PhotoCrate: The Open-Source Photo Library Built on Cloudinary","datePublished":"2024-05-07T14:00:00+00:00","dateModified":"2024-07-30T21:42:07+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library"},"wordCount":451,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327895\/Web_Assets\/blog\/photocrate-featured-image\/photocrate-featured-image.png?_i=AA","keywords":["Digital Asset Management","Image Transformation"],"inLanguage":"en-US","copyrightYear":"2024","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library","url":"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library","name":"Organize Your Photo Library With PhotoCrate & Cloudinary","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327895\/Web_Assets\/blog\/photocrate-featured-image\/photocrate-featured-image.png?_i=AA","datePublished":"2024-05-07T14:00:00+00:00","dateModified":"2024-07-30T21:42:07+00:00","description":"PhotoCrate, an open-source web app built on Next.js and Cloudinary, simplifies the management of your personal photo library.","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327895\/Web_Assets\/blog\/photocrate-featured-image\/photocrate-featured-image.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327895\/Web_Assets\/blog\/photocrate-featured-image\/photocrate-featured-image.png?_i=AA","width":1521,"height":837},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/photocrate-open-source-photo-library#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PhotoCrate: The Open-Source Photo Library Built on Cloudinary"}]},{"@type":"WebSite","@id":"https:\/\/cloudinary.com\/blog\/#website","url":"https:\/\/cloudinary.com\/blog\/","name":"Cloudinary Blog","description":"","publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudinary.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudinary.com\/blog\/#organization","name":"Cloudinary Blog","url":"https:\/\/cloudinary.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","width":312,"height":60,"caption":"Cloudinary Blog"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9","name":"melindapham","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g","caption":"melindapham"}}]}},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1719327895\/Web_Assets\/blog\/photocrate-featured-image\/photocrate-featured-image.png?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/33717","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/users\/87"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=33717"}],"version-history":[{"count":5,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/33717\/revisions"}],"predecessor-version":[{"id":34920,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/33717\/revisions\/34920"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/34575"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=33717"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=33717"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=33717"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}