Turn Telegram posts into beautiful, shareable cards.
TGav is a web application that takes any public Telegram message link and converts it into a stunning, customizable image that you can instantly download and share on social media.
- Single Post Mode: Paste any public Telegram post link to instantly generate a beautiful preview card.
- Thread Mode: Combine up to 3 related Telegram posts into a cohesive "Thread Card" that reads like a story.
- Multiple Themes: Choose between several stunning aesthetics to match your vibe:
- 🌙 Midnight: Sleek, modern blue/dark default.
- ⚫ Dark: Minimalist and clean dark mode.
- ⚪ Light: Crisp, readable, and bright.
- 🌈 Gradient: A vibrant purple/blue pop of color.
- One-Click Download: Save your generated card instantly as a high-quality PNG.
- No Sign-Up Required: 100% free, runs entirely in the browser.
- Framework: React 18 with Vite
- Styling: Tailwind CSS (for rapid, utility-first styling)
- Image Generation:
html2canvas(for seamlessly converting React DOM elements to PNG images) - Data Fetching: Custom web scraping logic utilizing
DOMParserand proxy services to read public Telegram embeds.
Follow these steps to run the project locally on your machine.
- Node.js (v18 or higher recommended)
- npm or yarn
-
Clone the repository
git clone https://github.com/yourusername/tgav.git cd tgav -
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser and navigate to
http://localhost:5173.
Under the hood, TGav is lightweight and doesn't require official API keys! When you paste a URL:
- It requests the public widget version of the Telegram message (
?embed=1). - It routes the request through a proxy to bypass browser CORS restrictions.
- It parses the HTML using the native
DOMParserto extract the message text, channel name, author info, avatar, and timestamp. - The extracted data is passed into custom React components (
<CardPreview />) resulting in a beautiful visual output!
Contributions are always welcome! If you have any ideas, UI improvements, or bug reports, feel free to open an issue or submit a pull request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
