A modern, customizable bio link application that allows users to create beautiful landing pages to showcase their social media links, projects, and content - similar to Linktree but with enhanced features and full customization.
- ๐ Link Management: Create, edit, and organize your important links
- ๐ Collections: Group related links into organized collections
- ๐ค Profile Customization: Upload avatars, set bio descriptions, and customize your page
- ๐จ Theming: Dark/light mode support with custom gradient backgrounds
- ๐ฑ Responsive Design: Optimized for mobile and desktop viewing
- ๐ Search Functionality: Visitors can search through your links
- ๐ Analytics: Track link clicks and page visits
- ๐ Internationalization: Multi-language support (English, Portuguese)
- ๐ฏ Drag & Drop: Reorder links and collections with intuitive drag-and-drop
- ๐ Authentication: Secure user registration and login system
- ๐ค Sharing: Easy sharing options for your bio page
- ๐ฎ Interactive Mode: Enhanced user interaction features
- ๐ฑ PWA Ready: Progressive Web App capabilities
- ๐ณ Docker Support: Containerized deployment options
- React 18 - Modern React with hooks and functional components
- TypeScript - Type-safe development
- Vite - Fast build tool and development server
- Tailwind CSS - Utility-first CSS framework
- Radix UI - Accessible UI primitives
- React Router DOM - Client-side routing
- React Hook Form + Zod - Form management and validation
- Zustand - State management
- Axios - HTTP client
- i18next - Internationalization
- Lucide React - Icon library
- FontAwesome - Additional icons
- Hello Pangea DND - Drag and drop functionality
- Recharts - Data visualization
- ESLint - Code linting
- PostCSS - CSS processing
- Autoprefixer - CSS vendor prefixes
- Node.js (version 18 or higher)
- pnpm (recommended) or npm
- bio-api - The backend API must be running before starting this frontend application
This project requires the bio-api backend to be running.
Follow the instructions in https://github.com/wellsm/bio-api
-
Clone the repository
git clone https://github.com/wellsm/bio-web.git cd bio-web -
Install dependencies
pnpm install
-
Start the development server
pnpm dev
-
Open your browser Navigate to
http://localhost:8080
# Development
pnpm dev # Start development server with hot reload
# Building
pnpm build # Build for production
pnpm preview # Preview production build locally
# Code Quality
pnpm lint # Run ESLint
# Production
pnpm start # Serve built applicationsrc/
โโโ app/
โ โโโ components/ # Application-specific components
โ โ โโโ bio.tsx # Main bio page component
โ โ โโโ bio-link.tsx # Individual link component
โ โ โโโ bio-collection.tsx # Collection component
โ โ โโโ navbar.tsx # Navigation component
โ โ โโโ ...
โ โโโ contexts/ # React contexts (auth, theme, etc.)
โ โโโ interfaces/ # TypeScript type definitions
โ โโโ pages/ # Page components
โ โโโ stores/ # Zustand stores
โ โโโ css/ # Custom CSS files
โโโ components/
โ โโโ ui/ # Reusable UI components (Radix UI)
โโโ lib/ # Utility functions and configurations
โโโ languages/ # Internationalization files
โโโ main.tsx # Application entry point
The application supports both dark and light themes with custom gradient backgrounds. Users can:
- Switch between dark/light modes
- Create custom gradient backgrounds
- Customize link appearance and layout
Two layout options are available:
- List Layout: Traditional vertical list of links
- Grid Layout: Grid-based layout for better visual organization
# Build Docker image
docker build -f docker/Dockerfile -t bio-web .
# Run container
docker run -p 8080:8080 bio-web# Build for production
pnpm build
# The built files will be in the `dist` directory
# Serve these files with any static file serverCreate a .env file in the root directory for configuration:
# Backend API Configuration (Required)
VITE_API_URL=http://localhost:3000 # URL where bio-api is running
# Add other environment variables here as neededImportant: Make sure the VITE_API_URL points to your running bio-api instance. The default assumes bio-api is running on localhost:3000.
The project includes a Caddyfile for Caddy web server deployment.
The application supports multiple languages:
- English (
en.json) - Portuguese (
pt_BR.json)
To add a new language:
- Create a new JSON file in
src/languages/ - Add translations following the existing structure
- Update the i18n configuration in
src/languages/i18n.ts
- Fork the repository
- Create a 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
- Use TypeScript for all new components
- Follow the existing code style and linting rules
- Add proper type definitions for new features
- Test your changes thoroughly
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions:
- Check the existing issues in the repository
- Create a new issue with detailed information
- Provide steps to reproduce any bugs
Built with โค๏ธ using React, TypeScript, and modern web technologies.