Skip to content

Commit 731b295

Browse files
authored
fix: minor UI consistency update (#8)
* sitemap, robots.txt fixes * keep UI more consistent on web and desktop
1 parent 7bef7ca commit 731b295

20 files changed

Lines changed: 1008 additions & 554 deletions

index.html

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,29 @@
4343
<meta property="twitter:title" content="TryDevUtils - Essential Developer Utilities | Web & Desktop App" />
4444
<meta name="twitter:description" content="Free open source developer utilities for JWT decoding, encoding, JSON formatting, validation, and UUID generation, Base64 converter, Timestamp/date converter, Text diff, Cron parser, Colour converter, Hash generator, Yaml validator. Available as a web app and desktop app for macOS, Windows, and Linux. All processing happens locally — no data leaves your device." />
4545
<meta name="twitter:image" content="/og_trydevutils.png" />
46+
47+
<link rel="canonical" href="https://www.trydevutils.com/" />
48+
49+
<script type="application/ld+json">
50+
{
51+
"@context": "https://schema.org",
52+
"@type": "WebApplication",
53+
"name": "TryDevUtils",
54+
"url": "https://www.trydevutils.com",
55+
"description": "Free open source developer utilities — JWT decoder, JSON formatter, Base64 converter, UUID generator, Hash generator, Cron parser, and more. Available as a web app and native desktop app for macOS, Windows, and Linux. All processing happens locally.",
56+
"applicationCategory": "DeveloperApplication",
57+
"operatingSystem": "Web, macOS, Windows, Linux",
58+
"license": "https://opensource.org/licenses/MIT",
59+
"softwareHelp": {
60+
"@type": "WebPage",
61+
"url": "https://github.com/gammabowl/try-devutils"
62+
},
63+
"downloadUrl": "https://github.com/gammabowl/try-devutils/releases",
64+
"screenshot": "https://www.trydevutils.com/og_trydevutils.png",
65+
"featureList": "JWT Decoder, JSON Formatter, Base64 Converter, UUID Generator, Hash Generator, Cron Parser, Regex Tester, SQL Formatter, YAML Validator, URL Encoder, Timestamp Converter, Text Diff, Colour Converter, Markdown Preview, Key Pair Generator, SSL Certificate Decoder, HTTP Status Codes, MIME Type Lookup, Zlib Compressor, Number Base Converter, String Analyser",
66+
"isAccessibleForFree": true
67+
}
68+
</script>
4669
</head>
4770

4871
<body>

public/robots.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
11
User-agent: *
2+
Allow: /
3+
4+
Sitemap: https://www.trydevutils.com/sitemap.xml
5+
Allow: /

public/sitemap.xml

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,134 +1,134 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
33
<url>
4-
<loc>https://trydevutils.com/</loc>
5-
<lastmod>2024-02-04</lastmod>
4+
<loc>https://www.trydevutils.com/</loc>
5+
<lastmod>2026-02-09</lastmod>
66
<changefreq>weekly</changefreq>
77
<priority>1.0</priority>
88
</url>
99
<url>
10-
<loc>https://trydevutils.com/util/base64</loc>
11-
<lastmod>2024-02-04</lastmod>
10+
<loc>https://www.trydevutils.com/base64</loc>
11+
<lastmod>2026-02-09</lastmod>
1212
<changefreq>monthly</changefreq>
1313
<priority>0.8</priority>
1414
</url>
1515
<url>
16-
<loc>https://trydevutils.com/util/color</loc>
17-
<lastmod>2024-02-04</lastmod>
16+
<loc>https://www.trydevutils.com/color</loc>
17+
<lastmod>2026-02-09</lastmod>
1818
<changefreq>monthly</changefreq>
1919
<priority>0.8</priority>
2020
</url>
2121
<url>
22-
<loc>https://trydevutils.com/util/cron</loc>
23-
<lastmod>2024-02-04</lastmod>
22+
<loc>https://www.trydevutils.com/cron</loc>
23+
<lastmod>2026-02-09</lastmod>
2424
<changefreq>monthly</changefreq>
2525
<priority>0.8</priority>
2626
</url>
2727
<url>
28-
<loc>https://trydevutils.com/util/hash</loc>
29-
<lastmod>2024-02-04</lastmod>
28+
<loc>https://www.trydevutils.com/hash</loc>
29+
<lastmod>2026-02-09</lastmod>
3030
<changefreq>monthly</changefreq>
3131
<priority>0.8</priority>
3232
</url>
3333
<url>
34-
<loc>https://trydevutils.com/util/json</loc>
35-
<lastmod>2024-02-04</lastmod>
34+
<loc>https://www.trydevutils.com/json</loc>
35+
<lastmod>2026-02-09</lastmod>
3636
<changefreq>monthly</changefreq>
3737
<priority>0.8</priority>
3838
</url>
3939
<url>
40-
<loc>https://trydevutils.com/util/jwt</loc>
41-
<lastmod>2024-02-04</lastmod>
40+
<loc>https://www.trydevutils.com/jwt</loc>
41+
<lastmod>2026-02-09</lastmod>
4242
<changefreq>monthly</changefreq>
4343
<priority>0.8</priority>
4444
</url>
4545
<url>
46-
<loc>https://trydevutils.com/util/keypair</loc>
47-
<lastmod>2024-02-04</lastmod>
46+
<loc>https://www.trydevutils.com/keypair</loc>
47+
<lastmod>2026-02-09</lastmod>
4848
<changefreq>monthly</changefreq>
4949
<priority>0.8</priority>
5050
</url>
5151
<url>
52-
<loc>https://trydevutils.com/util/markdown</loc>
53-
<lastmod>2024-02-04</lastmod>
52+
<loc>https://www.trydevutils.com/markdown</loc>
53+
<lastmod>2026-02-09</lastmod>
5454
<changefreq>monthly</changefreq>
5555
<priority>0.8</priority>
5656
</url>
5757
<url>
58-
<loc>https://trydevutils.com/util/numberbase</loc>
59-
<lastmod>2024-02-04</lastmod>
58+
<loc>https://www.trydevutils.com/numberbase</loc>
59+
<lastmod>2026-02-09</lastmod>
6060
<changefreq>monthly</changefreq>
6161
<priority>0.8</priority>
6262
</url>
6363
<url>
64-
<loc>https://trydevutils.com/util/regex</loc>
65-
<lastmod>2024-02-04</lastmod>
64+
<loc>https://www.trydevutils.com/regex</loc>
65+
<lastmod>2026-02-09</lastmod>
6666
<changefreq>monthly</changefreq>
6767
<priority>0.8</priority>
6868
</url>
6969
<url>
70-
<loc>https://trydevutils.com/util/sql</loc>
71-
<lastmod>2024-02-04</lastmod>
70+
<loc>https://www.trydevutils.com/sql</loc>
71+
<lastmod>2026-02-09</lastmod>
7272
<changefreq>monthly</changefreq>
7373
<priority>0.8</priority>
7474
</url>
7575
<url>
76-
<loc>https://trydevutils.com/util/ssl</loc>
77-
<lastmod>2024-02-04</lastmod>
76+
<loc>https://www.trydevutils.com/ssl</loc>
77+
<lastmod>2026-02-09</lastmod>
7878
<changefreq>monthly</changefreq>
7979
<priority>0.8</priority>
8080
</url>
8181
<url>
82-
<loc>https://trydevutils.com/util/string</loc>
83-
<lastmod>2024-02-04</lastmod>
82+
<loc>https://www.trydevutils.com/string</loc>
83+
<lastmod>2026-02-09</lastmod>
8484
<changefreq>monthly</changefreq>
8585
<priority>0.8</priority>
8686
</url>
8787
<url>
88-
<loc>https://trydevutils.com/util/diff</loc>
89-
<lastmod>2024-02-04</lastmod>
88+
<loc>https://www.trydevutils.com/diff</loc>
89+
<lastmod>2026-02-09</lastmod>
9090
<changefreq>monthly</changefreq>
9191
<priority>0.8</priority>
9292
</url>
9393
<url>
94-
<loc>https://trydevutils.com/util/timestamp</loc>
95-
<lastmod>2024-02-04</lastmod>
94+
<loc>https://www.trydevutils.com/timestamp</loc>
95+
<lastmod>2026-02-09</lastmod>
9696
<changefreq>monthly</changefreq>
9797
<priority>0.8</priority>
9898
</url>
9999
<url>
100-
<loc>https://trydevutils.com/util/url</loc>
101-
<lastmod>2024-02-04</lastmod>
100+
<loc>https://www.trydevutils.com/url</loc>
101+
<lastmod>2026-02-09</lastmod>
102102
<changefreq>monthly</changefreq>
103103
<priority>0.8</priority>
104104
</url>
105105
<url>
106-
<loc>https://trydevutils.com/util/uuid</loc>
107-
<lastmod>2024-02-04</lastmod>
106+
<loc>https://www.trydevutils.com/uuid</loc>
107+
<lastmod>2026-02-09</lastmod>
108108
<changefreq>monthly</changefreq>
109109
<priority>0.8</priority>
110110
</url>
111111
<url>
112-
<loc>https://trydevutils.com/util/yaml</loc>
113-
<lastmod>2024-02-04</lastmod>
112+
<loc>https://www.trydevutils.com/yaml</loc>
113+
<lastmod>2026-02-09</lastmod>
114114
<changefreq>monthly</changefreq>
115115
<priority>0.8</priority>
116116
</url>
117117
<url>
118-
<loc>https://trydevutils.com/util/zlib</loc>
119-
<lastmod>2024-02-04</lastmod>
118+
<loc>https://www.trydevutils.com/zlib</loc>
119+
<lastmod>2026-02-09</lastmod>
120120
<changefreq>monthly</changefreq>
121121
<priority>0.8</priority>
122122
</url>
123123
<url>
124-
<loc>https://trydevutils.com/util/httpstatus</loc>
125-
<lastmod>2024-02-04</lastmod>
124+
<loc>https://www.trydevutils.com/httpstatus</loc>
125+
<lastmod>2026-02-09</lastmod>
126126
<changefreq>monthly</changefreq>
127127
<priority>0.8</priority>
128128
</url>
129129
<url>
130-
<loc>https://trydevutils.com/util/mimetype</loc>
131-
<lastmod>2024-02-04</lastmod>
130+
<loc>https://www.trydevutils.com/mimetype</loc>
131+
<lastmod>2026-02-09</lastmod>
132132
<changefreq>monthly</changefreq>
133133
<priority>0.8</priority>
134134
</url>

src/components/DesktopLayout.tsx

Lines changed: 45 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -284,41 +284,52 @@ export function DesktopLayout() {
284284
</main>
285285
</div>
286286

287-
{/* Status bar */}
288-
<footer className="border-t border-border/50 bg-card/40 h-8 px-4 shrink-0 select-none flex items-center justify-between text-xs text-muted-foreground/70">
289-
<div className="flex items-center gap-4">
290-
<div className="flex items-center gap-1.5">
291-
<Monitor className="h-3 w-3 text-green-600" />
292-
<span>All processing happens locally</span>
293-
</div>
294-
<div className="flex items-center gap-1.5">
295-
<EyeOff className="h-3 w-3 text-blue-600" />
296-
<span>No tracking, not even analytics</span>
297-
</div>
298-
<div className="flex items-center gap-1.5">
299-
<span className="text-red-500 text-[10px]">🚫</span>
300-
<span>Ad-free</span>
301-
</div>
302-
</div>
303-
<div className="flex items-center gap-4">
304-
<div className="flex items-center gap-1.5">
305-
<Code className="h-3 w-3 text-purple-600" />
306-
<span>Open source</span>
287+
{/* Footer (same as web desktop view) */}
288+
<footer className="border-t border-border/50 bg-card/30 backdrop-blur-sm mt-auto">
289+
<div className="container mx-auto px-4 py-2 md:py-3">
290+
<div className="flex items-center justify-between gap-2 md:gap-4">
291+
<div className="flex items-center gap-2 lg:gap-6 text-sm">
292+
<span className="font-medium lg:hidden text-xs">Local . Private . Ad-free . Opensource</span>
293+
<div className="hidden lg:flex items-center gap-1.5 text-muted-foreground" title="All processing happens locally">
294+
<Monitor className="h-4 w-4 text-green-600" />
295+
<span className="font-medium">All processing happens locally</span>
296+
</div>
297+
<div className="hidden lg:flex items-center gap-1.5 text-muted-foreground" title="No tracking, not even analytics">
298+
<EyeOff className="h-4 w-4 text-blue-600" />
299+
<span className="font-medium">No tracking, not even analytics</span>
300+
</div>
301+
<div className="hidden lg:flex items-center gap-1.5 text-muted-foreground" title="Ad-free">
302+
<span className="text-red-500 text-sm">🚫</span>
303+
<span className="font-medium">Ad-free</span>
304+
</div>
305+
<div className="hidden lg:flex items-center gap-1.5 text-muted-foreground" title="Open source">
306+
<Code className="h-4 w-4 text-purple-600" />
307+
<span className="font-medium">Open source</span>
308+
</div>
309+
</div>
310+
<div className="flex items-center gap-2 md:gap-6 text-sm">
311+
<a
312+
href="https://github.com/gammabowl/try-devutils/issues/new?template=feature_request.md"
313+
target="_blank"
314+
rel="noopener noreferrer"
315+
className="flex items-center gap-1.5 text-muted-foreground hover:text-foreground transition-colors"
316+
title="Feature Request"
317+
>
318+
<Lightbulb className="h-4 w-4 text-yellow-500" />
319+
<span className="font-medium hidden md:inline">Feature Request</span>
320+
</a>
321+
<a
322+
href="https://github.com/gammabowl/try-devutils/issues/new?template=bug_report.md"
323+
target="_blank"
324+
rel="noopener noreferrer"
325+
className="flex items-center gap-1.5 text-muted-foreground hover:text-foreground transition-colors"
326+
title="Report Bug"
327+
>
328+
<Bug className="h-4 w-4 text-red-500" />
329+
<span className="font-medium hidden md:inline">Report Bug</span>
330+
</a>
331+
</div>
307332
</div>
308-
<button
309-
onClick={() => window.open("https://github.com/gammabowl/try-devutils/issues/new?template=feature_request.md", "_blank")}
310-
className="flex items-center gap-1.5 hover:text-foreground transition-colors"
311-
>
312-
<Lightbulb className="h-3 w-3 text-yellow-500" />
313-
<span>Feature Request</span>
314-
</button>
315-
<button
316-
onClick={() => window.open("https://github.com/gammabowl/try-devutils/issues/new?template=bug_report.md", "_blank")}
317-
className="flex items-center gap-1.5 hover:text-foreground transition-colors"
318-
>
319-
<Bug className="h-3 w-3 text-red-500" />
320-
<span>Report Bug</span>
321-
</button>
322333
</div>
323334
</footer>
324335
</div>

src/components/Layout.tsx

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,11 @@ export function Layout() {
2727

2828
{/* Header */}
2929
<header className="border-b border-border/50 bg-card/50 backdrop-blur-sm sticky top-0 z-10">
30-
<div className="container mx-auto px-4 py-6">
31-
<div className="flex items-center gap-3">
32-
<Link to="/" className="flex items-center gap-3 hover:opacity-80 transition-opacity">
33-
<img src="/logo.png" alt="TryDevUtils Logo" className="h-9 w-9 rounded-lg" />
34-
<div>
35-
<h1 className="text-2xl font-bold text-foreground">TryDevUtils</h1>
36-
<p className="text-sm text-muted-foreground">Essential developer utilities — web & desktop</p>
37-
</div>
30+
<div className="container mx-auto px-4 py-3 sm:py-6">
31+
<div className="flex items-center gap-1 sm:gap-2">
32+
<Link to="/" className="flex items-center gap-1 sm:gap-2 hover:opacity-80 transition-opacity">
33+
<img src="/logo.png" alt="TryDevUtils Logo" className="h-8 w-8 sm:h-9 sm:w-9 rounded-lg" />
34+
<h1 className="text-lg sm:text-2xl font-bold text-foreground">TryDevUtils</h1>
3835
</Link>
3936
<div className="ml-auto flex items-center gap-1">
4037
{/* Action buttons group */}
@@ -178,44 +175,49 @@ export function Layout() {
178175

179176
{/* Footer */}
180177
<footer className="border-t border-border/50 bg-card/30 backdrop-blur-sm mt-auto">
181-
<div className="container mx-auto px-4 py-6">
182-
<div className="flex flex-col sm:flex-row items-center justify-between gap-4">
183-
<div className="flex flex-wrap items-center justify-center sm:justify-start gap-x-6 gap-y-3 text-sm">
184-
<div className="flex items-center gap-2 text-muted-foreground">
178+
<div className="container mx-auto px-4 py-2 md:py-3">
179+
<div className="flex items-center justify-between gap-2 md:gap-4">
180+
{/* Compact footer for all except desktop */}
181+
<div className="flex items-center gap-2 lg:gap-6 text-sm">
182+
<span className="font-medium lg:hidden text-xs">Local . Private . Ad-free . Opensource</span>
183+
<div className="hidden lg:flex items-center gap-1.5 text-muted-foreground" title="All processing happens locally">
185184
<Monitor className="h-4 w-4 text-green-600" />
186185
<span className="font-medium">All processing happens locally</span>
187186
</div>
188-
<div className="flex items-center gap-2 text-muted-foreground">
187+
<div className="hidden lg:flex items-center gap-1.5 text-muted-foreground" title="No tracking, not even analytics">
189188
<EyeOff className="h-4 w-4 text-blue-600" />
190189
<span className="font-medium">No tracking, not even analytics</span>
191190
</div>
192-
<div className="flex items-center gap-2 text-muted-foreground">
193-
<span className="text-red-500">🚫</span>
191+
<div className="hidden lg:flex items-center gap-1.5 text-muted-foreground" title="Ad-free">
192+
<span className="text-red-500 text-sm">🚫</span>
194193
<span className="font-medium">Ad-free</span>
195194
</div>
196-
</div>
197-
<div className="flex flex-wrap items-center justify-center gap-x-6 gap-y-3 text-sm">
198-
<div className="flex items-center gap-2 text-muted-foreground">
195+
<div className="hidden lg:flex items-center gap-1.5 text-muted-foreground" title="Open source">
199196
<Code className="h-4 w-4 text-purple-600" />
200197
<span className="font-medium">Open source</span>
201198
</div>
199+
</div>
200+
{/* Links - always visible */}
201+
<div className="flex items-center gap-2 md:gap-6 text-sm">
202202
<a
203203
href="https://github.com/gammabowl/try-devutils/issues/new?template=feature_request.md"
204204
target="_blank"
205205
rel="noopener noreferrer"
206-
className="flex items-center gap-2 text-muted-foreground hover:text-foreground transition-colors"
206+
className="flex items-center gap-1.5 text-muted-foreground hover:text-foreground transition-colors"
207+
title="Feature Request"
207208
>
208209
<Lightbulb className="h-4 w-4 text-yellow-500" />
209-
<span className="font-medium">Feature Request</span>
210+
<span className="font-medium hidden md:inline">Feature Request</span>
210211
</a>
211212
<a
212213
href="https://github.com/gammabowl/try-devutils/issues/new?template=bug_report.md"
213214
target="_blank"
214215
rel="noopener noreferrer"
215-
className="flex items-center gap-2 text-muted-foreground hover:text-foreground transition-colors"
216+
className="flex items-center gap-1.5 text-muted-foreground hover:text-foreground transition-colors"
217+
title="Report Bug"
216218
>
217219
<Bug className="h-4 w-4 text-red-500" />
218-
<span className="font-medium">Report Bug</span>
220+
<span className="font-medium hidden md:inline">Report Bug</span>
219221
</a>
220222
</div>
221223
</div>

0 commit comments

Comments
 (0)