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.
- π¨ 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
- 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
- Node.js (v18 or higher recommended)
- npm or yarn
- Backend API running (default:
https://localhost:7187/api)
- Clone the repository
git clone https://github.com/andrejkoller/linksheet-frontend.git
cd linksheet-frontend- Install dependencies
npm install- 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- Start development server
npm run devThe application will be available at http://localhost:5173 (or another port if 5173 is in use).
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 managementlink-service.ts- Link CRUD operationslink-space-service.ts- Link space managementfaq-service.ts- FAQ content
/- 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
The app uses JWT-based authentication:
- User logs in via
/login - JWT token is stored in localStorage
- Token is automatically included in API requests
- Protected routes redirect to login if token is missing/invalid
- Backend Repository: Linksheet API