An online app for generating high-quality word clouds perfectly sized for LinkedIn profile banners (1200Γ400px).
- π¨ Custom Color Palettes: Choose your own colors for the word cloud
- π Shuffle Functionality: Generate new layouts with the same words
- π Line-Delimited Input: Enter one word per line for easy organization
- π LinkedIn Banner Size: Perfectly sized at 1200Γ400px for LinkedIn profiles
- πΎ Download PNG: Save your word cloud as a high-quality PNG image
- π― Professional Design: Clean, modern interface with LinkedIn branding
- Frontend: React with TypeScript
- Backend: CloudFlare Workers
- Styling: Modern CSS with responsive design
- Canvas: HTML5 Canvas for word cloud rendering
liwordcloud/
βββ frontend/ # React TypeScript application
β βββ src/
β β βββ components/
β β β βββ WordCloudGenerator.tsx
β β β βββ WordCloudGenerator.css
β β βββ App.tsx
β β βββ index.tsx
β βββ package.json
βββ backend/ # CloudFlare Workers API
β βββ src/
β β βββ index.ts
β βββ wrangler.toml
β βββ package.json
βββ package.json # Root package.json with scripts
- Node.js (v16 or higher)
- npm or yarn
- Clone the repository:
git clone https://github.com/tsew/liwordcloud.git
cd liwordcloud- Install all dependencies:
npm run install:allStart both frontend and backend in development mode:
# Terminal 1: Start the backend (CloudFlare Workers)
npm run dev:backend
# Terminal 2: Start the frontend (React)
npm run dev:frontendThe application will be available at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8787
# Build frontend
npm run build:frontend
# Build backend
npm run build:backendThe frontend needs to know the backend API URL. For local development, this is automatically set to http://localhost:8787.
For production deployment:
- Copy the environment example file:
cp frontend/.env.example frontend/.env.production.local- Update the API URL in the file:
# In frontend/.env.production.local
REACT_APP_API_URL=https://your-worker.your-account.workers.dev- Rebuild the frontend:
npm run build:frontendGenerates a word cloud from input text.
Request Body:
{
"input": "React\nTypeScript\nJavaScript\nWeb Development",
"colors": ["#1a73e8", "#34a853", "#fbbc04", "#ea4335"],
"width": 1200,
"height": 400
}Response:
{
"success": true,
"data": [
{
"text": "React",
"size": 54,
"color": "#1a73e8",
"x": 429.7,
"y": 396.5
}
],
"width": 1200,
"height": 400
}- Enter Words: Type your skills, technologies, or keywords (one per line) in the text area
- Choose Colors: Use the default colors or add your own using the color picker
- Generate: Click "Generate" to create your word cloud
- Shuffle: Click "π Shuffle" to create a new layout with the same words
- Download: Click "π₯ Download PNG" to save your word cloud
- Configure your CloudFlare account with Wrangler:
npx wrangler login- Deploy the backend from the root directory:
npm run deployOr use wrangler directly:
npx wrangler deployThe frontend can be deployed to any static hosting service:
- Vercel: Connect your GitHub repository
- Netlify: Drag and drop the
frontend/buildfolder - GitHub Pages: Use the built files from
frontend/build
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Designed specifically for LinkedIn profile banners
- Built with modern web technologies for optimal performance
- Responsive design for all device types


