Skip to content

πŸ”— A modern link-in-bio application built with React and TypeScript. Create customizable landing pages with multiple links for social media profiles, portfolios, and personal branding.

License

Notifications You must be signed in to change notification settings

andrejkoller/linksheet-frontend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

73 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Short description

A modern link-in-bio application that allows users to create customizable landing pages with multiple links – perfect for social media profiles, portfolios, and personal branding.

This is the frontend part of the application, built with React and TypeScript, connecting to a REST API backend.

✨ Features

  • 🎨 Clean & Responsive UI - Beautiful interface that works on all devices
  • πŸ”— Link Management - Create, organize, and manage multiple links
  • 🎯 Link Spaces - Group your links into different categories
  • πŸ‘€ User Profiles - Customizable personal profile pages
  • 🎭 Appearance Customization - Personalize your link page
  • πŸ” Authentication - Secure user registration and login

πŸ› οΈ Technologies Used

  • React 19 - Modern React with latest features
  • TypeScript - Type-safe development
  • Vite - Fast build tool and development server
  • Chakra UI - Component library for consistent UI
  • React Router - Client-side routing
  • Axios - HTTP client for API calls
  • React Toastify - Beautiful notifications
  • React Icons - Icon library

πŸ“‹ Prerequisites

  • Node.js (v18 or higher recommended)
  • npm or yarn
  • Backend API running (default: https://localhost:7187/api)

πŸ“¦ Installation

  1. Clone the repository
git clone https://github.com/andrejkoller/linksheet-frontend.git
cd linksheet-frontend
  1. Install dependencies
npm install
  1. Configure API endpoint

Update the API base URL in src/services/axios-instance.ts if your backend runs on a different address:

baseURL: "https://localhost:7187/api"; // Change this to your backend URL
  1. Start development server
npm run dev

The application will be available at http://localhost:5173 (or another port if 5173 is in use).

πŸ”Œ API Integration

The application communicates with a backend API through the axios instance configured in src/services/axios-instance.ts.

Key Features:

  • Automatic JWT token injection from localStorage
  • Automatic redirect to login on 401 (Unauthorized)
  • Centralized error handling

Services:

  • auth-service.ts - Authentication (login, register)
  • user-service.ts - User management
  • link-service.ts - Link CRUD operations
  • link-space-service.ts - Link space management
  • faq-service.ts - FAQ content

🌐 Routes

  • / - Home page
  • /login - User login
  • /register - User registration
  • /templates - Template gallery
  • /discover - Discover other users
  • /learn - Learning resources
  • /dashboard - User dashboard (protected)
    • /dashboard/ - Manage links
    • /dashboard/appearance - Customize appearance
    • /dashboard/account - Account settings
  • /dashboard/:username - Public profile page

πŸ” Authentication

The app uses JWT-based authentication:

  1. User logs in via /login
  2. JWT token is stored in localStorage
  3. Token is automatically included in API requests
  4. Protected routes redirect to login if token is missing/invalid

πŸ”— Related

πŸ“Έ Screenshots

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5 Screenshot 6 Screenshot 7 Screenshot 8 Screenshot 9 Screenshot 10 Screenshot 11 Screenshot 12

About

πŸ”— A modern link-in-bio application built with React and TypeScript. Create customizable landing pages with multiple links for social media profiles, portfolios, and personal branding.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages