Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
7aff19a
feat: Add tg mini app landing page
Dhruv-Varshney-developer Aug 26, 2025
ddd8d35
fix: hero image path
Dhruv-Varshney-developer Aug 26, 2025
6303b9d
fix: Remove why you need this section!
Dhruv-Varshney-developer Aug 26, 2025
3debdf0
fix: Hero section background and picture.
Dhruv-Varshney-developer Aug 28, 2025
44cd407
fix: gap between hero and earn rewards section
Dhruv-Varshney-developer Aug 28, 2025
6451e28
fix: hero text size
Dhruv-Varshney-developer Aug 28, 2025
c21409a
fix: hero section copy.
Dhruv-Varshney-developer Aug 28, 2025
efdd3ed
feat: Add link and add a div
Dhruv-Varshney-developer Aug 28, 2025
f9c70b3
fix: name and order in the dropdown.
Dhruv-Varshney-developer Sep 1, 2025
6f3051a
fix: standardize telegram page styling with referral page design.
Dhruv-Varshney-developer Sep 1, 2025
e5cd44f
fix: color of "start backup now" button.
Dhruv-Varshney-developer Sep 1, 2025
c27a101
chore: clean irrelevant comments.
Dhruv-Varshney-developer Sep 1, 2025
af59bcf
feat: Redesign tgminiapp page with consistent Card layouts and styling
Dhruv-Varshney-developer Sep 1, 2025
0fc88e3
feat: Add tg mini app link with utm
Dhruv-Varshney-developer Sep 15, 2025
81fa986
fix: wording update
Dhruv-Varshney-developer Sep 15, 2025
0e37254
update banner text
Dhruv-Varshney-developer Sep 15, 2025
cc170b1
feat: Improve color and text of notice banner
Dhruv-Varshney-developer Sep 20, 2025
3bd38fd
feat: update bg image, text, and copy at multiple places.
Dhruv-Varshney-developer Sep 20, 2025
10ff664
fix: tg mini app landing page matching latest design.
Dhruv-Varshney-developer Sep 20, 2025
054e5bf
feat: Add new icons in cards.
Dhruv-Varshney-developer Sep 20, 2025
1b8b7de
fix: update metadata
Dhruv-Varshney-developer Sep 20, 2025
f455b2d
feat: add social proof banner + css update
Dhruv-Varshney-developer Sep 20, 2025
47f110a
refactor: css
Dhruv-Varshney-developer Sep 21, 2025
2f6e9bc
fix: color
Dhruv-Varshney-developer Sep 21, 2025
96a4613
fix: CSS across hero and trusted by section
Dhruv-Varshney-developer Sep 21, 2025
2a3aedf
refactor: simplify hero CSS and fix responsive layout issues
Dhruv-Varshney-developer Sep 21, 2025
e5fabfe
feat: Add base64 encoded url for tgmini app
Dhruv-Varshney-developer Sep 24, 2025
b01c79c
feat: update landing page UTM tracking parameters
Dhruv-Varshney-developer Sep 30, 2025
2092703
fix: replace opensea with bluesky as partners
Dhruv-Varshney-developer Oct 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions app.config.ts
Comment thread
Dhruv-Varshney-developer marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
export default defineAppConfig({
dateFormat: 'MMM DD, YYYY',
notice: {
text: 'EARN RACHA POINTS AND STORAGE CREDITS BY REFERRING FRIENDS <u>LEARN MORE</u>',
href: '/referrals',
text: '<u>Click Here to Earn From Your TG Chats</u>',
href: '/tgminiapp',
displayUntil: '2025-12-31', // use ISO date format or final day +1 in yyyy-mm-dd
},
actions: {
Expand All @@ -15,6 +15,7 @@ export default defineAppConfig({
{
text: 'Product',
dropdown: [
{ text: 'Telegram Backup', href: '/tgminiapp' },
{ text: 'Bluesky Storage', href: 'https://bsky.storage' },
{ text: 'Storacha AI', href: 'https://storacha.ai' },
{ text: 'Storacha Console', href: 'https://console.storacha.network/' },
Expand Down
3 changes: 2 additions & 1 deletion components/Notice.vue
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ onMounted(() => {
<template>
<div
v-if="isVisible"
class="bg-brand-5 p-3 text-center text-sm text-brand-1 font-heading uppercase"
class="p-3 text-center text-sm text-white font-heading uppercase"
style="background: linear-gradient(90deg, #E81E25 0%, #F6CB55 100%);"
>
<AppLink :href="href" class="block w-full" v-html="text" />
</div>
Expand Down
246 changes: 246 additions & 0 deletions pages/tgminiapp.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,246 @@
<script setup lang="ts">

// SEO metadata for telegram backup page
useSeoMeta({
title: 'Telegram Mini App | Secure Decentralized Storage - Storacha',
description: 'Backup your Telegram chats to Storacha\'s decentralized storage. Safe, private, encrypted backups that you control forever.',
ogTitle: 'Don\'t Lose Your Telegram Chats - Backup with Storacha',
ogDescription: 'Secure your 1-on-1s, groups, and channels with encrypted backups on decentralized storage.',
ogImage: '/img/tgminiapp/tgminiapp-og.png',
keywords: 'telegram backup, chat backup, decentralized storage, encrypted backup, secure messaging',
})

// Structured data for telegram backup page
useHead({
script: [{
type: 'application/ld+json',
innerHTML: JSON.stringify({
'@context': 'https://schema.org',
'@type': 'WebPage',
'name': 'Telegram Chat Backup',
'description': 'Backup your Telegram chats to Storacha\'s secure decentralized storage network.',
'url': 'https://storacha.network/tgminiapp',
'isPartOf': {
'@type': 'WebSite',
'name': 'Storacha Network',
'url': 'https://storacha.network',
},
'mainEntity': {
'@type': 'SoftwareApplication',
'name': 'Storacha Telegram Backup',
'description': 'Secure, encrypted backup solution for Telegram chats using decentralized storage.',
'provider': {
'@type': 'Organization',
'name': 'Storacha Network',
},
},
}),
}],
})

</script>

<template>
<TransitionProvider>
<!-- Hero Section -->
<Section class="telegram-hero-bg bg-brand-2">
<HeroBase class="min-h-150 lg:min-h-180 pt-16 md:pt-26 lg:pt-24">
<template #left>
<SectionHeader class="color-brand-3" eyebrow="BACKUP AND EARN LOYALTY POINTS"
title="Don't Lose Your Telegram Chats"
description="Backup with Storacha’s decentralized storage - safe, private, forever." />
<div class="mt-6 color-brand-3 prose p1">
<NuxtLink href="https://t.me/storacha_bot/backup?startapp=dXRtX3NvdXJjZT1zdG9yYWNoYV9sYW5kaW5nX3BhZ2UmdXRtX21lZGl1bT13ZWJzaXRl
" class="btn no-underline">
Store-2-earn
</NuxtLink>
</div>
</template>
</HeroBase>
</Section>
<Section class="social-proof-section bg-brand-2 hidden lg:block" padding>
<div class="flex items-center justify-between px-6 md:px-12 lg:px-15">
<div class="flex items-center px-3 py-2 md:px-4 rounded-full border border-black">
<span class="text-xs md:text-sm font-medium text-black">Trusted By</span>
</div>

<img src="/img/tgminiapp/logos/filecoin.png" alt="Filecoin" class="h-6 md:h-8">
<img src="/img/tgminiapp/logos/infura.png" alt="INFURA" class="h-6 md:h-8">
<img src="/img/tgminiapp/logos/bluesky.png" alt="Bluesky" class="h-6 md:h-8">
<img src="/img/tgminiapp/logos/magic-eden.png" alt="MAGIC EDEN" class="h-6 md:h-8">
</div>
</Section>

<!-- Earn Rewards Section -->
<Section full-width>
<Split>
<SplitCell :bg="{ outer: 'bg-white', inner: 'rewards-bg' }" />
<SplitCell :bg="{ outer: 'bg-white' }" padding>
<div class="flex items-center color-brand-3">
<div>
<Heading type="h2" class="font-medium">
Back Up And Earn Rewards </Heading>

<div class="prose p1">
<p>
Earn <span class="highlight">10,000</span> mini Rachas per GB!<br>
Secure your data and earn rewards together.
</p>

<NuxtLink href="https://t.me/storacha_bot/backup?startapp=dXRtX3NvdXJjZT1zdG9yYWNoYV9sYW5kaW5nX3BhZ2UmdXRtX21lZGl1bT13ZWJzaXRl
" class="btn no-underline">
Start Backup Now
</NuxtLink>
</div>
</div>
</div>
</SplitCell>
</Split>
</Section>

<!-- How to Get Started Section -->
<Section class="bg-brand-4" padding>
<div class="color-brand-3">
<SectionHeader title="How to Get Started" center />
</div>
<div class="grid grid-cols-1 mt-12 gap-4 sm:grid-cols-3">
<Card title="Step 1: Authorize OTP">
<div class="flex flex-col gap-8">
<div class="min-h-30 flex items-center justify-center">
<img src="/img/tgminiapp/cards/chat.png" alt="Step 1: Authorize OTP" class="max-h-24">
</div>
<p class="font-sans p2">
Give permission so the miniapp can read your chats (we can't back them up otherwise).
</p>
</div>
</Card>
<Card title="Step 2: Create Storacha Account">
<div class="flex flex-col gap-8">
<div class="min-h-30 flex items-center justify-center">
<img src="/img/tgminiapp/cards/racha-click.png" alt="Step 2: Create Storacha Account" class="max-h-24">
</div>
<p class="font-sans p2">
It takes seconds. Your encryption key is generated on your device.
</p>
</div>
</Card>
<Card title="Step 3: Start Backup">
<div class="flex flex-col gap-8">
<div class="min-h-30 flex items-center justify-center">
<img src="/img/tgminiapp/cards/folder.png" alt="Step 3: Start Backup" class="max-h-24">
</div>
<p class="font-sans p2">
Start your backup in seconds: simple, private, and encrypted.
</p>
</div>
</Card>
</div>




</Section>

<!-- Security & Benefits Section -->
<Section class="bg-brand-4" padding>
<div class="color-brand-3">
<SectionHeader title="Security & Benefits" center />
</div>
<div class="grid grid-cols-1 mt-12 gap-4 lg:grid-cols-4 md:grid-cols-2">
<Card title="Your Key, Your Data">
<div class="flex flex-col gap-8">
<div class="min-h-30 flex items-center justify-center">
<img src="/img/tgminiapp/cards/chat-lock.png" alt="Your Key, Your Data" class="max-h-24">
</div>
<p class="font-sans p3">
Encryption happens on your device. We never see your messages.
</p>
</div>
</Card>
<Card title="Decentralized">
<div class="flex flex-col gap-8">
<div class="min-h-30 flex items-center justify-center">
<img src="/img/tgminiapp/cards/decentralized-network.png" alt="Decentralized" class="max-h-24">
</div>
<p class="font-sans p3">
No central point of failure. Your chats are always recoverable.
</p>
</div>
</Card>
<Card title="Earn Rewards">
<div class="flex flex-col gap-8">
<div class="min-h-30 flex items-center justify-center">
<img src="/img/tgminiapp/cards/racha-coins.png" alt="Earn Rewards" class="max-h-24">
</div>
<p class="font-sans p3">
Back up and stack loyalty points.
</p>
</div>
</Card>
<Card title="MiniApp Magic">
<div class="flex flex-col gap-8">
<div class="min-h-30 flex items-center justify-center">
<img src="/img/tgminiapp/cards/tg-click.png" alt="MiniApp Magic" class="max-h-24">
</div>
<p class="font-sans p3">
Open inside Telegram via bot. No downloads, no hassle.
</p>
</div>
</Card>
</div>
</Section>

<!-- Final CTA Section -->
<Section class="text-center color-brand-3" style="background: #EFE4F3;" padding>
<Heading type="h2" class="mb-4 font-medium font-bold">
Don't wait until it's too late.
</Heading>
<div class="mx-auto max-w-xl">
<p class="mb-6 text-lg prose p1">
Protect your Telegram chats today with Storacha.
</p>
</div>
<NuxtLink href="https://t.me/storacha_bot/backup?startapp=dXRtX3NvdXJjZT1zdG9yYWNoYV9sYW5kaW5nX3BhZ2UmdXRtX21lZGl1bT13ZWJzaXRl
" class="btn no-underline">
Start Backup Now
</NuxtLink>
</Section>
</TransitionProvider>
</template>

<style lang="postcss">
.rewards-bg {
background: url(/img/tgminiapp/rewards.png) no-repeat bottom right;
background-size: contain;
}

.social-proof-section {
border-bottom: 1px solid #e2e8f0;
}

.highlight {
font-weight: bold;
font-size: 1.2em;
}

@screen md {
.telegram-hero-bg {
background-image: url(/img/tgminiapp/hero.png);
background-repeat: no-repeat;
background-position: bottom right ;
background-size: auto 55%;
}
}

@screen lg {
.telegram-hero-bg {
background-size: auto 60%;
}
}

@screen xl {
.telegram-hero-bg {
background-size: auto 65%;
}
}
</style>
Binary file added public/img/tgminiapp/cards/chat-lock.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/tgminiapp/cards/chat.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/tgminiapp/cards/folder.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/tgminiapp/cards/racha-click.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/tgminiapp/cards/racha-coins.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/tgminiapp/cards/tg-click.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/tgminiapp/hero.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/tgminiapp/logos/bluesky.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/tgminiapp/logos/filecoin.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/tgminiapp/logos/infura.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/tgminiapp/logos/magic-eden.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/tgminiapp/rewards.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/tgminiapp/tgminiapp-og.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading