Skip to content

Commit 4ca72f6

Browse files
committed
refactor(apps): consolidate image tools into unified ImageStudio
1 parent dfc60b7 commit 4ca72f6

14 files changed

Lines changed: 2070 additions & 1692 deletions

pages/routes.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ export const staticRoutes = [
1010
"/apps/alchemy-lab",
1111
"/apps/ascii-converter",
1212
"/apps/asset-constructor",
13-
"/apps/asset-studio",
1413
"/apps/atmosphere-mixer",
1514
"/apps/banana-converter",
1615
"/apps/base64-converter",
@@ -48,8 +47,7 @@ export const staticRoutes = [
4847
"/apps/github-thumbnail-generator",
4948
"/apps/gokturkish-converter",
5049
"/apps/hash-generator",
51-
"/apps/image-compressor",
52-
"/apps/image-toolkit",
50+
"/apps/image-studio",
5351
"/apps/ip",
5452
"/apps/js-masterclass",
5553
"/apps/json-formatter",

public/apps/apps.json

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -843,22 +843,13 @@
843843
"created_at": "2025-11-27T14:00:00+03:00"
844844
},
845845
{
846-
"slug": "image-toolkit",
847-
"to": "/apps/image-toolkit",
848-
"title": "Image Toolkit",
849-
"description": "A toolkit for basic image manipulations.",
850-
"icon": "ImageIcon",
846+
"slug": "image-studio",
847+
"to": "/apps/image-studio",
848+
"title": "Darkroom",
849+
"description": "A complete image studio — apply creative filters, compress to shrink file size, resize and scale, and convert to WebP/PNG/JPEG with favicon and social-card presets. Single or bulk, all in your browser.",
850+
"icon": "ImagesIcon",
851851
"pinned_order": 13,
852-
"created_at": "2025-11-10T23:58:16+03:00"
853-
},
854-
{
855-
"slug": "image-compressor",
856-
"to": "/apps/image-compressor",
857-
"title": "Image Compressor",
858-
"description": "Compress images to reduce file size while maintaining quality.",
859-
"icon": "ArrowsInLineHorizontalIcon",
860-
"pinned_order": 14,
861-
"created_at": "2025-11-23T12:54:58+03:00"
852+
"created_at": "2026-06-18T12:00:00+03:00"
862853
},
863854
{
864855
"slug": "stopwatch",
@@ -917,15 +908,6 @@
917908
"description": "A minimal, visual map for tracking your daily objectives.",
918909
"icon": "CheckSquareOffsetIcon",
919910
"created_at": "2025-12-20T14:00:00+03:00"
920-
},
921-
{
922-
"slug": "asset-studio",
923-
"to": "/apps/asset-studio",
924-
"title": "Asset Studio",
925-
"description": "Convert source images into optimized web assets, including favicons and social media previews.",
926-
"icon": "AppWindowIcon",
927-
"created_at": "2025-12-20T16:00:00+03:00",
928-
"pinned_order": 22
929911
}
930912
]
931913
},

public/rss.xml

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,34 @@
99
<link>https://fezcode.com</link>
1010
</image>
1111
<generator>RSS for Node</generator>
12-
<lastBuildDate>Wed, 10 Jun 2026 23:52:06 GMT</lastBuildDate>
12+
<lastBuildDate>Fri, 19 Jun 2026 20:09:46 GMT</lastBuildDate>
1313
<atom:link href="https://fezcode.com/rss.xml" rel="self" type="application/rss+xml"/>
14-
<pubDate>Wed, 10 Jun 2026 23:52:05 GMT</pubDate>
14+
<pubDate>Fri, 19 Jun 2026 20:09:46 GMT</pubDate>
1515
<copyright><![CDATA[2026 Ahmed Samil Bulbul]]></copyright>
1616
<language><![CDATA[en]]></language>
1717
<managingEditor><![CDATA[samil.bulbul@gmail.com (Ahmed Samil Bulbul)]]></managingEditor>
1818
<webMaster><![CDATA[samil.bulbul@gmail.com (Ahmed Samil Bulbul)]]></webMaster>
1919
<ttl>60</ttl>
20+
<item>
21+
<title><![CDATA[The 20 Mile March: Consistency Beats Heroics]]></title>
22+
<description><![CDATA[[object Object]]]></description>
23+
<link>https://fezcode.com/blog/the-20-mile-march</link>
24+
<guid isPermaLink="false">https://fezcode.com/blog/the-20-mile-march</guid>
25+
<dc:creator><![CDATA[Ahmed Samil Bulbul]]></dc:creator>
26+
<pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate>
27+
<content:encoded><![CDATA[<p>There is a business idea I keep coming back to, and it is almost insultingly simple: <strong>march twenty miles a day, every day, no matter what.</strong> It comes from Jim Collins and Morten Hansen&#39;s <em>Great by Choice</em> (2011), and once you understand it, you start seeing the failure to do it everywhere.</p>
28+
<p><a href="https://fezcode.com/blog/the-20-mile-march">Read more...</a></p>]]></content:encoded>
29+
</item>
30+
<item>
31+
<title><![CDATA[Dashcam Music Theory: The Only Honest Soundtrack Left]]></title>
32+
<description><![CDATA[[object Object]]]></description>
33+
<link>https://fezcode.com/blog/dashcam-music-theory</link>
34+
<guid isPermaLink="false">https://fezcode.com/blog/dashcam-music-theory</guid>
35+
<dc:creator><![CDATA[Ahmed Samil Bulbul]]></dc:creator>
36+
<pubDate>Sat, 13 Jun 2026 00:00:00 GMT</pubDate>
37+
<content:encoded><![CDATA[<p>Every other piece of footage you have ever watched was <strong>lying to you about how it felt</strong>. The film, the ad, the slow-motion sports montage, the wedding reel — somebody sat in a dark room and decided, with surgical intent, exactly which chord should land the instant the dog dies. That&#39;s not emotion. That&#39;s <em>manipulation with a tempo map</em>. And then, gloriously, there is the <strong>dashcam</strong>.</p>
38+
<p><a href="https://fezcode.com/blog/dashcam-music-theory">Read more...</a></p>]]></content:encoded>
39+
</item>
2040
<item>
2141
<title><![CDATA[PASETO vs JWT: Choosing the Right Token for the Job]]></title>
2242
<description><![CDATA[[object Object]]]></description>

0 commit comments

Comments
 (0)