Skip to content
Open

Pipu #513

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
7e45ca2
Update .env.example
LisyanDEWS Jun 25, 2026
a131692
Update vite.config.ts
LisyanDEWS Jun 25, 2026
db6e6af
Update vite.config.ts
LisyanDEWS Jun 25, 2026
25a63d1
Add Cloudflare Pages configuration (wrangler.toml)
LisyanDEWS Jun 25, 2026
3030b36
Fix postinstall script to preserve .cache and dist directories for Cl…
LisyanDEWS Jun 25, 2026
c58e0ad
Optimize Vite config for Cloudflare Pages deployment
LisyanDEWS Jun 25, 2026
8fb3475
Add mock modules for fs, path, crypto to prevent Cloudflare build errors
LisyanDEWS Jun 25, 2026
129c5d7
Fix wrangler.toml for Cloudflare Pages compatibility
LisyanDEWS Jun 25, 2026
eff92ca
Add .distignore to exclude bundle-stats from Cloudflare deployment
LisyanDEWS Jun 25, 2026
f82b33a
Disable bundleStats completely for production builds to avoid Cloudfl…
LisyanDEWS Jun 25, 2026
a05f86d
Remove all bundle-stats and visualizer plugins to prevent build-stats…
LisyanDEWS Jun 25, 2026
d596dd4
Remove analytics field from wrangler.toml
LisyanDEWS Jun 25, 2026
97081f4
Add terser minification and optimize chunk splitting for Cloudflare 2…
LisyanDEWS Jun 25, 2026
6d2a004
Add terser to devDependencies for minification
LisyanDEWS Jun 25, 2026
bd637a9
Remove package-lock.json to regenerate with terser
LisyanDEWS Jun 25, 2026
e1d56b7
Disable sourcemaps in production and exclude build artifacts from dep…
LisyanDEWS Jun 25, 2026
1dbbc6c
Fix .distignore paths for Cloudflare Pages validation
LisyanDEWS Jun 26, 2026
3124c08
Remove build-stats.json after production build
LisyanDEWS Jun 26, 2026
1bc8647
Add workflow to check for large file sizes
LisyanDEWS Jun 26, 2026
1035530
Rebrand app config for LisyanGramm and remove official Telegram identity
LisyanDEWS Jun 26, 2026
2a020f4
Rebrand index.html for LisyanGramm and add unofficial client warning
LisyanDEWS Jun 26, 2026
acbd5b2
Rebrand README for LisyanGramm unofficial client
LisyanDEWS Jun 26, 2026
e2a285b
Rebrand version notification for LisyanGramm
LisyanDEWS Jun 26, 2026
7f1aa88
Rebrand desktop landing page for LisyanGramm
LisyanDEWS Jun 26, 2026
9dc2cdd
Rebrand unsupported desktop landing page for LisyanGramm
LisyanDEWS Jun 26, 2026
0f42376
Restyle desktop landing page for LisyanGramm dark theme
LisyanDEWS Jun 26, 2026
477e6f2
Add Google site verification file
LisyanDEWS Jun 26, 2026
7b35040
Add alternate Google verification file
LisyanDEWS Jun 26, 2026
b5a0c62
Fix typo in Google site verification file extension
LisyanDEWS Jun 26, 2026
474b134
Add files via upload
LisyanDEWS Jun 26, 2026
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
4 changes: 4 additions & 0 deletions .distignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
bundle-stats/
build-stats.json
statoscope-report.html
**/*.map
8 changes: 4 additions & 4 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
NODE_ENV=development
NODE_ENV=production

TELEGRAM_API_ID=
TELEGRAM_API_HASH=
TELEGRAM_API_ID=39871706
TELEGRAM_API_HASH=6be8f200e5fef3b81fcee5b6d04d49e1

BASE_URL=https://web.telegram.org/a/
BASE_URL=https://my-tg-client.pages.dev/
28 changes: 28 additions & 0 deletions .github/workflows/check-file-sizes.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Check file sizes

on:
pull_request:
push:

jobs:
check-sizes:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Check for large files
run: |
echo "🔍 Checking for files larger than 25 MiB..."
LARGE_FILES=$(find . -type f -size +25M ! -path './.git/*' ! -path './.github/*' 2>/dev/null | head -20)

if [ -n "$LARGE_FILES" ]; then
echo "❌ ERROR: Found files larger than 25 MiB (Cloudflare Pages limit):"
echo "$LARGE_FILES"
echo ""
echo "Please remove these files or add them to .gitignore"
exit 1
else
echo "✅ All files are within size limits!"
fi
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
dist/build-stats.json
dist/**/*.map
node_modules
.cache
.env
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Telegram Web A
# LisyanGramm (unofficial web client)

This project won the first prize 🥇 at [Telegram Lightweight Client Contest](https://contest.com/javascript-web-3) and now is an official Telegram client available to anyone at [web.telegram.org/a](https://web.telegram.org/a).
LisyanGramm is an unofficial web client for Telegram. It is not affiliated with or endorsed by Telegram.

According to the original contest rules, it has nearly zero dependencies and is fully based on its own [Teact](https://github.com/Ajaxy/teact) framework (which re-implements React paradigm). It also uses a custom version of [GramJS](https://github.com/gram-js/gramjs) as an MTProto implementation.
The project is based on its own [Teact](https://github.com/Ajaxy/teact) framework (which re-implements the React paradigm) and uses a custom version of [GramJS](https://github.com/gram-js/gramjs) as an MTProto implementation.

The project incorporates lots of technologically advanced features, modern Web APIs and techniques: WebSockets, Web Workers and WebAssembly, multi-level caching and PWA, voice recording and media streaming, cryptography and raw binary data operations, optimistic and progressive interfaces, complicated CSS/Canvas/SVG animations, reactive data streams, and so much more.
The project incorporates modern Web APIs and techniques: WebSockets, Web Workers and WebAssembly, multi-level caching and PWA, voice recording and media streaming, cryptography and raw binary data operations, optimistic and progressive interfaces, complicated CSS/Canvas/SVG animations, reactive data streams, and so much more.

Feel free to explore, provide feedback and contribute.

Expand Down Expand Up @@ -53,4 +53,4 @@ await invoke(new GramJs.help.GetAppConfig())
* fastblur

## Bug reports and Suggestions
If you find an issue with this app, let Telegram know using the [Suggestions Platform](https://bugs.telegram.org/c/4002).
If you find an issue with this app, use the project issue tracker or contact the maintainer.
1 change: 1 addition & 0 deletions google314d5fa0d1bccabf (1).html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
google-site-verification: google314d5fa0d1bccabf.html
1 change: 1 addition & 0 deletions google314d5fa0d1bccabf.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
google-site-verification: google314d5fa0d1bccabf.htmл
22 changes: 11 additions & 11 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@
<meta charset="UTF-8">

<title>
%TG_APP_TITLE%
LisyanGramm (unofficial web client)
</title>

<meta name="title" content="%TG_APP_TITLE%">
<meta name="title" content="LisyanGramm (unofficial web client)">
<meta name="description"
content="Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.">
content="LisyanGramm is an unofficial web client for Telegram. It is not affiliated with or endorsed by Telegram.">
<meta name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no, shrink-to-fit=no, viewport-fit=cover">
<meta name="mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-title" content="%TG_APP_TITLE%">
<meta name="mobile-web-app-title" content="LisyanGramm">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-title" content="%TG_APP_TITLE%">
<meta name="application-name" content="%TG_APP_TITLE%">
<meta name="apple-mobile-web-app-title" content="LisyanGramm">
<meta name="application-name" content="LisyanGramm">
<meta name="msapplication-TileColor" content="#2b5797">
<meta name="msapplication-config" content="./browserconfig.xml">
<meta name="theme-color" content="#ffffff">
Expand All @@ -28,17 +28,17 @@
<!-- Open Graph / Facebook -->
<meta property="og:type" content="website">
<meta property="og:url" content="%TG_PUBLIC_URL%">
<meta property="og:title" content="%TG_APP_TITLE%">
<meta property="og:title" content="LisyanGramm (unofficial web client)">
<meta property="og:description"
content="Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.">
content="LisyanGramm is an unofficial web client for Telegram. It is not affiliated with or endorsed by Telegram.">
<meta property="og:image" content="./%TG_MAIN_ICON%.png">

<!-- Twitter -->
<meta property="twitter:card" content="summary_large_image">
<meta property="twitter:url" content="%TG_PUBLIC_URL%">
<meta property="twitter:title" content="%TG_APP_TITLE%">
<meta property="twitter:title" content="LisyanGramm (unofficial web client)">
<meta property="twitter:description"
content="Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.">
content="LisyanGramm is an unofficial web client for Telegram. It is not affiliated with or endorsed by Telegram.">
<meta property="twitter:image" content="./%TG_MAIN_ICON%.png">

<link rel="canonical" href="%TG_PUBLIC_URL%">
Expand All @@ -62,7 +62,7 @@
<body id="root">
<noscript>
<video src="./nojs.mp4" class="nojs-video" muted loop autoplay playsinline disablePictureInPicture></video>
<h1>Telegram Web</h1>
<h1>LisyanGramm</h1>
<p>Please, enable JavaScript to open the app.</p>
</noscript>
<div id="portals"></div>
Expand Down
Loading