Skip to content

Commit fa78158

Browse files
committed
fix: add favicon and improve SEO metadata
Fixes #38 - Add favicon.ico and manifest.json to public directory - Update page title to match main site SEO format - Add structured data (JSON-LD) for WebSite, SoftwareApplication, and Organization schemas - Fix title duplication issue (was showing "Typelets | Typelets...") - Update meta descriptions to emphasize zero-knowledge privacy and code execution - Align SEO metadata with typelets.com main site
1 parent d0f0b59 commit fa78158

File tree

5 files changed

+89
-13
lines changed

5 files changed

+89
-13
lines changed

index.html

Lines changed: 63 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
<meta charset="UTF-8" />
55
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
66
<!-- Basic Index -->
7-
<title>Secure Encrypted Notes</title>
8-
<meta name="description" content="A secure notes app that puts privacy first. Your thoughts are encrypted on your device before they reach our servers." />
7+
<title>Secure Encrypted Notes - Typelets | iOS, Android & Web | Zero-Knowledge AES-256</title>
8+
<meta name="description" content="Secure encrypted notes with zero-knowledge privacy and integrated code execution for developers. Available on iOS, Android, and Web." />
99
<meta name="keywords" content="encrypted notes, secure notes app, privacy, end-to-end encryption, note taking, markdown editor, offline notes, AES-256 encryption, zero-knowledge, private notes" />
1010
<meta name="author" content="Typelets" />
1111
<meta name="application-name" content="Typelets" />
@@ -21,16 +21,16 @@
2121
<meta name="apple-mobile-web-app-title" content="Typelets" />
2222
<!-- Open Graph -->
2323
<meta property="og:type" content="website" />
24-
<meta property="og:title" content="Typelets - Encrypted Notes, Simplified" />
25-
<meta property="og:description" content="A secure notes app that puts privacy first. Your thoughts are encrypted on your device before they reach our servers." />
24+
<meta property="og:title" content="Secure Encrypted Notes - Typelets | Zero-Knowledge AES-256" />
25+
<meta property="og:description" content="Secure encrypted notes with zero-knowledge privacy and integrated code execution for developers. Available on iOS, Android, and Web." />
2626
<meta property="og:url" content="https://app.typelets.com" />
2727
<meta property="og:image" content="https://app.typelets.com/og-image.jpg" />
2828
<meta property="og:site_name" content="Typelets" />
2929
<meta property="og:locale" content="en_US" />
3030
<!-- Twitter Card -->
3131
<meta name="twitter:card" content="summary_large_image" />
32-
<meta name="twitter:title" content="Typelets - Encrypted Notes, Simplified" />
33-
<meta name="twitter:description" content="A secure notes app that puts privacy first. Your thoughts are encrypted on your device before they reach our servers." />
32+
<meta name="twitter:title" content="Secure Encrypted Notes - Typelets | Zero-Knowledge AES-256" />
33+
<meta name="twitter:description" content="Secure encrypted notes with zero-knowledge privacy and integrated code execution for developers. Available on iOS, Android, and Web." />
3434
<meta name="twitter:image" content="https://app.typelets.com/og-image.jpg" />
3535
<meta name="twitter:site" content="@typelets" />
3636
<meta name="twitter:creator" content="@typelets" />
@@ -95,6 +95,63 @@
9595
}
9696
})();
9797
</script>
98+
<!-- Structured Data for SEO -->
99+
<script type="application/ld+json">
100+
{
101+
"@context": "https://schema.org",
102+
"@type": "WebSite",
103+
"name": "Typelets",
104+
"url": "https://app.typelets.com",
105+
"potentialAction": {
106+
"@type": "SearchAction",
107+
"target": "https://app.typelets.com/?q={search_term_string}",
108+
"query-input": "required name=search_term_string"
109+
}
110+
}
111+
</script>
112+
<script type="application/ld+json">
113+
{
114+
"@context": "https://schema.org",
115+
"@type": "SoftwareApplication",
116+
"name": "Typelets",
117+
"description": "Secure encrypted notes app with zero-knowledge AES-256 encryption and live code execution for 15+ programming languages",
118+
"operatingSystem": ["Web", "iOS", "Android"],
119+
"applicationCategory": ["ProductivityApplication", "DeveloperApplication"],
120+
"offers": {
121+
"@type": "Offer",
122+
"price": "0",
123+
"priceCurrency": "USD"
124+
},
125+
"downloadUrl": [
126+
"https://apps.apple.com/app/typelets/id6740360262",
127+
"https://play.google.com/store/apps/details?id=com.batalabs.typelets",
128+
"https://app.typelets.com"
129+
],
130+
"aggregateRating": {
131+
"@type": "AggregateRating",
132+
"ratingValue": "4.8",
133+
"ratingCount": "150"
134+
}
135+
}
136+
</script>
137+
<script type="application/ld+json">
138+
{
139+
"@context": "https://schema.org",
140+
"@type": "Organization",
141+
"name": "Bata Labs, LLC",
142+
"url": "https://typelets.com",
143+
"logo": "https://typelets.com/assets/images/logo/logo.png",
144+
"contactPoint": {
145+
"@type": "ContactPoint",
146+
"email": "typelets@typelets.com",
147+
"contactType": "Customer Support"
148+
},
149+
"sameAs": [
150+
"https://github.com/typelets",
151+
"https://x.com/typelets"
152+
]
153+
}
154+
</script>
98155
</head>
99156
<body>
100157
<div id="root"></div>

public/favicon.ico

15 KB
Binary file not shown.

public/manifest.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"name": "Typelets - Secure Encrypted Notes",
3+
"short_name": "Typelets",
4+
"description": "Secure, encrypted notes with file attachments. Works completely offline with automatic sync. Your thoughts stay private with end-to-end encryption.",
5+
"start_url": "/",
6+
"display": "standalone",
7+
"background_color": "#ffffff",
8+
"theme_color": "#3b82f6",
9+
"orientation": "any",
10+
"scope": "/",
11+
"categories": ["productivity", "utilities", "business"],
12+
"icons": [
13+
{
14+
"src": "/favicon.ico",
15+
"sizes": "48x48 32x32 16x16",
16+
"type": "image/x-icon"
17+
}
18+
]
19+
}

src/components/common/SEO/index.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ interface SEOProps {
1111

1212
export default function Index({
1313
title,
14-
description = 'A secure notes app that puts privacy first. Your thoughts are encrypted on your device before they reach our servers.',
14+
description = 'Secure encrypted notes with zero-knowledge privacy and integrated code execution for developers. Available on iOS, Android, and Web.',
1515
image = '/og-image.jpg',
1616
url,
1717
type = 'website',
@@ -30,8 +30,8 @@ export default function Index({
3030
'encrypted storage',
3131
],
3232
}: SEOProps) {
33-
const siteTitle = 'Typelets - Encrypted notes, simplified';
34-
const fullTitle = title ? `Typelets | ${title}` : siteTitle;
33+
const siteTitle = 'Secure Encrypted Notes - Typelets | iOS, Android & Web | Zero-Knowledge AES-256';
34+
const fullTitle = title ? `${title} | Typelets` : siteTitle;
3535
const currentUrl =
3636
url ?? (typeof window !== 'undefined' ? window.location.href : '');
3737

src/constants/index.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ export const CLERK_CONFIG = {
3232
// Index Config
3333
export const SEO_CONFIG = {
3434
signedOut: {
35-
title: `Sign In - ${APP_NAME}`,
36-
description: `Sign in to ${APP_NAME} - your secure, encrypted notes app.`,
35+
title: 'Sign In',
36+
description: 'Sign in to Typelets - your secure, encrypted notes app with zero-knowledge privacy.',
3737
keywords: [
3838
'sign in',
3939
'login',
@@ -43,8 +43,8 @@ export const SEO_CONFIG = {
4343
],
4444
},
4545
signedIn: {
46-
title: `${APP_NAME} - Secure Encrypted Notes`,
47-
description: `Access and manage your encrypted notes securely with ${APP_NAME}.`,
46+
title: 'Secure Encrypted Notes',
47+
description: 'Secure encrypted notes with zero-knowledge privacy and integrated code execution for developers. Available on iOS, Android, and Web.',
4848
keywords: [
4949
'dashboard',
5050
'encrypted notes',

0 commit comments

Comments
 (0)