Skip to content

An interactive tech toolkit visualization application featuring a drag-and-drop canvas for creating tech stack mockups on device templates. Users can organize and arrange tech icons on a tablet mockup interface to create visual representations of their technology toolkit.

Notifications You must be signed in to change notification settings

jatin33/tech-toolkit-sm-banner

Repository files navigation

TechStack Canvas 🎨

Create stunning social media banners showcasing your tech stack with an intuitive drag-and-drop canvas interface.

TechStack Canvas

🎯 Live Demo β€’ πŸŽ₯ Video Demo

Best experienced on Desktop

πŸ’‘ Inspiration

This project was inspired by Manu Arora's tweet about showcasing tech stacks visually. We've transformed that inspiration into a fully functional drag-and-drop canvas for creating professional social media banners.

✨ Features

  • 🎨 Drag & Drop Canvas: Intuitive interface for arranging tech icons on realistic device mockups
  • πŸ“± Device Templates: Beautiful tablet mockup with precise scaling and positioning
  • πŸ”§ 26+ Tech Icons: Comprehensive library covering AI, development, design, and productivity tools
  • πŸ“€ Social Media Export: One-click export to PNG optimized for Twitter (1500Γ—500) and LinkedIn (1584Γ—396)
  • πŸŒ™ Modern UI: Clean, dark-themed interface with professional styling
  • ↩️ Undo/Redo: Full history management with keyboard shortcuts (Ctrl/Cmd+Z/Y)
  • πŸ” Smart Search: Real-time icon filtering with availability tracking
  • πŸ‘† Touch Support: Native touch interactions for mobile and tablet users
  • ⚑ High Performance: Smooth interactions with efficient re-rendering

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • npm or yarn

Installation

# Clone the repository
git clone https://github.com/jatin33/tech-toolkit-sm-banner.git
cd tech-toolkit-sm-banner

# Install dependencies
npm install

# Start development server
npm run dev

The application will be available at http://localhost:5173

Building for Production

# Build the project
npm run build

# Preview the production build
npm run preview

🎯 How to Use

  1. Browse Icons: Search through 26+ tech tool icons in the left sidebar
  2. Drag & Drop: Drag icons from the sidebar onto the tablet mockup canvas
  3. Arrange: Reposition icons within the grid by dragging them around
  4. Replace: Drop new icons on existing positions to replace them instantly
  5. Undo/Redo: Use Ctrl+Z/Y (Cmd+Z/Y on Mac) or footer buttons for history navigation
  6. Export: Click Twitter or LinkedIn buttons to download your professional banner

πŸ”§ Tech Stack

  • Frontend: React 19.1.0 + TypeScript 5.8.3
  • Build Tool: Vite 7.0.4 (Lightning fast!)
  • Styling: Tailwind CSS 4.1.11 with custom design tokens
  • Icons: High-quality SVG assets for crisp rendering
  • Export: HTML5 Canvas API for high-quality image generation
  • State Management: React hooks with useReducer pattern for complex state

πŸ“ Project Structure

src/
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ Canvas/           # Main canvas and grid components
β”‚   β”‚   β”œβ”€β”€ DropZoneGrid.tsx
β”‚   β”‚   β”œβ”€β”€ GridCell.tsx
β”‚   β”‚   β”œβ”€β”€ tabletTemplates.ts
β”‚   β”‚   └── TabletPlaceholder.tsx
β”‚   β”œβ”€β”€ Footer/           # Export and undo/redo controls
β”‚   β”‚   β”œβ”€β”€ Footer.tsx
β”‚   β”‚   β”œβ”€β”€ DownloadTwitter.tsx
β”‚   β”‚   └── DownloadLinkedIn.tsx
β”‚   β”œβ”€β”€ Preview/          # Canvas wrapper component
β”‚   β”‚   └── Canvas.tsx
β”‚   └── ThemeProvider.tsx # Theme management
β”œβ”€β”€ hooks/
β”‚   β”œβ”€β”€ useIconHistory.ts # Undo/redo functionality
β”‚   └── useTheme.ts      # Theme state management
β”œβ”€β”€ utils/
β”‚   β”œβ”€β”€ canvasExport.ts  # Image export functionality
β”‚   β”œβ”€β”€ iconActions.ts   # Icon manipulation actions
β”‚   └── iconReducer.ts   # State management reducer
└── App.tsx              # Main application component

🎨 Available Tech Icons

AI & ML Tools

  • OpenAI, Claude, Gemini, Grok, Mistral, Perplexity
  • Hugging Face, Ollama, OpenRouter, DeepSeek

Development Tools

  • GitHub, GitHub Copilot, Cursor, Cline, Replit
  • AWS, Cloudflare, n8n, Make

Design & Productivity

  • Figma, Notion, NotebookLM, v0, Midjourney, ElevenLabs

πŸ–ΌοΈ Export Formats

  • Twitter: 1500Γ—500px (3:1 aspect ratio) - Perfect for Twitter headers
  • LinkedIn: 1584Γ—396px (4:1 aspect ratio) - Optimized for LinkedIn banners
  • Format: PNG with 2x scaling for crisp, high-quality output
  • Background: Solid backgrounds optimized for social media platforms

⌨️ Keyboard Shortcuts

  • Ctrl+Z / Cmd+Z: Undo last action
  • Ctrl+Y / Cmd+Y: Redo last action
  • Ctrl+Shift+Z / Cmd+Shift+Z: Alternative redo

🎯 Key Features Deep Dive

Advanced Drag & Drop System

  • Multi-source dragging: Icons from sidebar + repositioning within grid
  • Smart replacements: Drop icons on occupied cells to replace them instantly
  • Visual feedback: Hover states, drag indicators, and smooth animations
  • Touch support: Works seamlessly on touch devices

Intelligent State Management

  • History tracking: 50-action undo/redo buffer with command pattern
  • Real-time updates: Sidebar automatically updates with available icons
  • Type safety: Full TypeScript coverage for bulletproof state operations

Professional Export System

  • Canvas rendering: HTML5 Canvas for pixel-perfect output
  • Platform optimization: Different dimensions optimized for each social platform
  • Error handling: Comprehensive error management for image operations
  • Automatic download: Files save with descriptive, platform-specific names

πŸ”„ Development Workflow

Available Scripts

npm run dev      # Start development server with HMR
npm run build    # Build for production with optimizations
npm run preview  # Preview production build locally
npm run lint     # Run ESLint for code quality checks

Code Quality Standards

  • TypeScript: Strict type checking for reliability
  • ESLint: React and TypeScript specific linting rules
  • Component Architecture: Modular, reusable, and maintainable components
  • Performance: Optimized re-rendering with React.memo and useCallback

πŸš€ Deployment

The project is configured for seamless deployment:

Vercel (Recommended)

npm i -g vercel && vercel

Netlify

npm run build
# Deploy the dist/ folder to Netlify

AWS Amplify (Current)

Already deployed at: https://main.d1of3vfbkkw17d.amplifyapp.com/

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ Future Enhancements

  • Additional device templates (iPhone, MacBook, desktop setups)
  • Custom icon upload functionality
  • Save/load project configurations
  • More export formats (JPG, SVG, PDF)
  • Social media integration for direct sharing
  • Batch export multiple formats simultaneously
  • Custom text/branding overlay options
  • Mobile-optimized interface improvements

πŸ’« Feedback & Support

Love this project? πŸ˜€

πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Inspiration: Manu Arora (@mannupaaji) for the original tech stack visualization idea
  • Tech Icons: All tech company logos and icons are property of their respective owners
  • Community: Built with ❀️ for builders who want to showcase their tech stack beautifully

Made with ❀️ for the tech community

πŸš€ Live Demo β€’ πŸŽ₯ Video Demo β€’ πŸ› Report Bug β€’ πŸ’‘ Request Feature

About

An interactive tech toolkit visualization application featuring a drag-and-drop canvas for creating tech stack mockups on device templates. Users can organize and arrange tech icons on a tablet mockup interface to create visual representations of their technology toolkit.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published