New:Microsoft Teams Notifications Are Now Available in Socket.Learn more β†’
Get Started

opentwig

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

opentwig

opentwig 🌿 is an open source link in bio page generator.

Source
npmnpm
Version
1.0.0
Version published
Weekly downloads
11
-38.89%
Maintainers
1
Weekly downloads
Β 
Created
Source

OpenTwig 🌿

OpenTwig is an open source personal link page generator that creates beautiful, customizable "link in bio" pages. Instead of relying on third-party services, users can define their configuration and instantly create a fully functional static site they own and control.

✨ Features

  • 🎨 Multiple Themes: Choose from 4 built-in themes (default, dark, minimal, colorful)
  • πŸ“± Mobile Responsive: Optimized for all devices with mobile-first design
  • πŸš€ Fast & Lightweight: Generates static HTML/CSS with minimal dependencies
  • πŸ”— Easy Link Management: Simple JSON configuration for all your links
  • πŸ–ΌοΈ Avatar Support: Custom profile pictures with automatic processing
  • πŸ“Š Open Graph Images: Auto-generated social media preview images
  • πŸ“± QR Code Generation: Built-in QR codes for easy mobile sharing
  • 🎭 Modal Dialogs: Support for rich content in footer links
  • πŸ“€ Share Functionality: Native Web Share API integration
  • ⚑ CSS Optimization: Automatic CSS minification and autoprefixing
  • πŸ› οΈ CLI Interface: Simple command-line interface with helpful commands

πŸš€ Quick Start

Installation & Usage

# Create a new project
npx opentwig --init

# Edit the generated config.json with your information
# Then generate your page
npx opentwig

Prerequisites

  • Node.js (v14 or higher)
  • npm or yarn

πŸ“– Configuration

OpenTwig uses a simple JSON configuration file (config.json) to define your page. Here's the complete configuration structure:

{
  "theme": "default",
  "url": "https://links.yourwebsite.com",
  "title": "Your Name - opentwig 🌿",
  "name": "Your Name",
  "content": "Hello World! Here is my bio.",
  "minify": true,
  "avatar": {
    "path": "./avatar.png"
  },
  "links": [
    {
      "url": "https://twitter.com",
      "title": "Twitter"
    },
    {
      "url": "https://instagram.com",
      "title": "Instagram"
    }
  ],
  "footerLinks": [
    {
      "title": "Contact",
      "url": "mailto:mail@mail.com"
    },
    {
      "title": "Privacy",
      "content": "Your privacy policy content here..."
    }
  ],
  "share": {
    "title": "Your Name - opentwig 🌿",
    "url": "https://links.yourwebsite.com",
    "text": "Share"
  }
}

Configuration Options

OptionTypeDescription
themestringTheme name (default, dark, minimal, colorful)
urlstringYour page URL (for Open Graph and QR codes)
titlestringPage title (appears in browser tab)
namestringYour display name
contentstringBio/description text
minifybooleanEnable CSS minification (default: true)
avatarobjectAvatar image configuration
avatar.pathstringPath to your avatar image
linksarrayArray of link objects with url and title
footerLinksarrayFooter links (can be URLs or modal dialogs)
shareobjectWeb Share API configuration

🎨 Themes

OpenTwig includes 4 beautiful themes:

  • Default: Clean, modern design with subtle shadows and rounded corners
  • Dark: Dark mode variant of the default theme
  • Minimal: Simplified, minimalist design
  • Colorful: Vibrant color scheme

All themes are mobile-responsive and include:

  • Custom avatar display
  • Link buttons with hover effects
  • Modal dialogs for rich content
  • QR code integration
  • Share button functionality

πŸ› οΈ CLI Commands

# Show help information
npx opentwig --help

# Create sample config.json
npx opentwig --init

# Generate page from config.json
npx opentwig

πŸ“ Output Files

OpenTwig generates the following files in the dist/ directory:

  • index.html - Main HTML page
  • style.css - Processed and optimized CSS
  • avatar.png - Processed avatar image
  • og-image.jpg - Open Graph image for social sharing
  • qr.svg - QR code for mobile sharing

πŸ”§ Development

Project Structure

opentwig/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ index.js              # Main entry point
β”‚   β”œβ”€β”€ constants.js          # Application constants
β”‚   └── utils/                # Utility functions
β”‚       β”œβ”€β”€ buildPage.js      # Page building logic
β”‚       β”œβ”€β”€ generateHTML.js   # HTML generation
β”‚       β”œβ”€β”€ generateOGImage.js # Open Graph image creation
β”‚       β”œβ”€β”€ generateQR.js     # QR code generation
β”‚       β”œβ”€β”€ processCSS.js     # CSS processing and optimization
β”‚       └── ...
β”œβ”€β”€ theme/
β”‚   β”œβ”€β”€ default/              # Default theme
β”‚   β”‚   β”œβ”€β”€ index.js         # Theme template
β”‚   β”‚   β”œβ”€β”€ style.css        # Theme styles
β”‚   β”‚   └── components/      # Reusable components
β”‚   β”œβ”€β”€ dark/                # Dark theme
β”‚   β”œβ”€β”€ minimal/             # Minimal theme
β”‚   └── colorful/            # Colorful theme
└── dist/                    # Generated output

Key Features Implementation

  • Image Processing: Uses Sharp for avatar and OG image processing
  • QR Code Generation: Uses qrcode library for SVG QR codes
  • CSS Processing: PostCSS with autoprefixer and minification
  • HTML Generation: Component-based template system
  • Theme System: Modular theme architecture with component support

🌐 Deployment

Since OpenTwig generates static files, you can deploy to any static hosting service:

  • GitHub Pages: Push dist/ folder to a repository
  • Netlify: Drag and drop the dist/ folder
  • Vercel: Connect your repository
  • AWS S3: Upload files to an S3 bucket
  • Any web server: Upload the dist/ folder to your server

πŸ“ License

MIT License - see LICENSE file for details

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Keywords

link-in-bio

FAQs

Package last updated on 21 Sep 2025

Related posts