A comprehensive React-powered redesign of LinkedIn that addresses core UX issues through functional minimalism, intelligent content organization, and thoughtful micro-interactions. Built with TypeScript, TailwindCSS, and Framer Motion.
Experience the complete redesign in action at: https://better-linked-in.vercel.app/
- Overview
- Design Philosophy
- Design Language
- Pages & Features
- Navigation Guide
- Tech Stack
- Getting Started
- Project Structure
- Customization
Better LinkedIn reimagines the professional networking platform with a focus on reducing cognitive load, improving information hierarchy, and creating a more enjoyable user experience. This redesign addresses common pain points in the current LinkedIn interface while maintaining professional aesthetics and introducing modern interaction patterns.
Current LinkedIn Problems:
- ❌ Cluttered interface with competing visual elements
- ❌ Hidden features requiring multiple clicks (modals, dropdowns)
- ❌ Inconsistent navigation patterns across sections
- ❌ Overwhelming notifications and feed items
- ❌ Poor content categorization and filtering
Better LinkedIn Solutions:
- ✅ Clean, card-based layouts with clear visual hierarchy
- ✅ Direct actions (inline post creation, instant filters)
- ✅ Tabbed navigation for logical content grouping
- ✅ Persistent sidebars for quick access to key features
- ✅ Smart filtering with visual feedback
- ✅ Thoughtful micro-interactions and smooth transitions
Every element has a clear purpose. No decorative clutter—only purposeful design that guides users naturally through their tasks.
Modern, clean interface that respects LinkedIn's professional context while introducing warmth through considered color choices and spacing.
Interactions feel responsive and delightful without being distracting. Subtle animations provide feedback without slowing users down.
Content is organized using:
- Cards for discrete units of information
- Tabs for categorizing related content
- Sticky sidebars for persistent access to key features
- Visual badges for important metadata (counts, states)
Primary Colors:
- LinkedIn Blue (
#0A66C2): Primary actions, links, brand elements - LinkedIn Blue Light (
#378FE9): Hover states, gradients - LinkedIn Blue Dark (
#004182): Dark mode accents
Semantic Colors:
- Success Green (
#057642): Confirmations, positive actions - Warning Yellow (
#F5C75D): Alerts, important notices - Error Red (
#CC1016): Errors, destructive actions
Neutral Palette:
- Light mode: White backgrounds, gray borders (
#E0E0E0) - Dark mode: Dark gray backgrounds (
#1B1F23), lighter text
Font Family: System fonts for optimal performance
-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serifHierarchy:
- H1 (24px, bold): Page titles
- H2 (20px, bold): Section headers
- Body (14px): Main content
- Small (12px): Metadata, labels
Grid System:
- Three-column layout on desktop (left sidebar, main content, right sidebar)
- Two-column layout on tablet (main content, right sidebar)
- Single-column layout on mobile (stacked)
Spacing Scale: 4px base unit (4, 8, 12, 16, 24, 32, 48, 64)
Micro-interactions:
- Hover effects: Subtle elevation (shadow), color shifts
- Tab transitions: Smooth underline animation (300ms)
- Card animations: Scale on hover (1.02x), fade-in on load
- Loading states: Skeleton screens, progress indicators
Motion Design:
- Easing:
ease-outfor entrances,ease-in-outfor transitions - Duration: 200-300ms for most interactions
- No motion longer than 500ms to maintain responsiveness
Card Design:
- White background (light) / Dark gray (#1B1F23) in dark mode
- 8px border radius
- Subtle shadow:
0 1px 3px rgba(0,0,0,0.1) - Hover shadow:
0 4px 12px rgba(0,0,0,0.15)
Buttons:
- Primary: LinkedIn Blue background, white text
- Secondary: White background, blue border, blue text
- Ghost: Transparent background, gray text, gray border
- All buttons: 6px border radius, 10px vertical padding
Badges:
- Pill shape (full border radius)
- Colored backgrounds with contrasting text
- Used for counts, tags, statuses
Purpose: Main feed where users consume content and create posts
Key Features:
- Direct Post Input: Inline text area with emoji/media buttons—no modal required
- Feed Tabs: "For You" (algorithm) vs "Following" (chronological)
- Reaction System: 6 inline reactions (Like, Celebrate, Support, Love, Insightful, Curious)
- Left Sidebar: MeCard with profile stats, quick actions (Messages, Notifications)
- Right Sidebar: Job recommendations, connection suggestions
UX Improvements:
- Posts appear instantly after creation (optimistic updates)
- Reactions show hover picker without modal
- Infinite scroll with loading indicators
Access:
- Direct:
https://better-linked-in.vercel.app/ - UI: Click LinkedIn logo or "Home" nav icon
Purpose: Job search and application management
Key Features:
- 4-Tab Navigation: Recommended | Saved | Applications | Alerts
- Persistent Filter Panel: Right sidebar with date, experience, salary filters
- Filter Count Badges: Visual indicator of active filters
- EasyApply Labels: Quick identification of one-click applications
- Job Cards: Company logo, title, location, salary, applicant count
UX Improvements:
- Filters persist across tabs (no reset when switching)
- Clear visual feedback for applied filters
- Salary range shown upfront (transparency)
Access:
- Direct:
https://better-linked-in.vercel.app/jobs - UI: "Jobs" icon in top navigation
Purpose: Connection management and network growth
Key Features:
- 3-Tab Organization: Invitations | Suggestions | Connections
- Mutual Connection Indicators: Shows shared connections for context
- Bulk Actions: Accept/Ignore invitations quickly
- Search & Filter: Find connections by name, company, location
UX Improvements:
- Invitations prominently displayed (no hunting)
- Mutual connections build trust for new connections
- One-click accept/ignore without confirmation modals
Access:
- Direct:
https://better-linked-in.vercel.app/mynetwork - UI: "Network" icon in top navigation, or "My Network Page" link in MeCard
Purpose: Direct messaging and conversations
Key Features:
- Two-Pane Layout: 360px conversation list + expandable chat
- Focused/All Toggle: Filter unread/pinned messages
- Online Indicators: Green dot for active users
- Rich Input Area: Emoji picker, file attachments, calendar scheduling
- Smart Timestamps: "Just now", "5m ago", "Yesterday", etc.
UX Improvements:
- Focused mode reduces noise (only important conversations)
- Messages load in reverse chronological order (latest at bottom)
- Auto-expanding textarea (no overflow or scrolling)
Access:
- Direct:
https://better-linked-in.vercel.app/messaging - UI: "Messaging" icon in top navigation, or "Messages" button in MeCard
Purpose: Activity feed for all account notifications
Key Features:
- 4-Tab Categorization: All | Mentions & Reactions | Network | Job Updates
- Mark All as Read: Clear unread states with one click
- Unread Indicators: Blue dot + highlighted background
- Type-Based Icons: 💬 comments, ❤️ likes, 🔔 mentions, etc.
- Actor Previews: Shows who performed the action with avatar
UX Improvements:
- Categorized tabs reduce overwhelm
- Visual unread states are immediately clear
- Actions previewed in-place (no need to click through)
Access:
- Direct:
https://better-linked-in.vercel.app/notifications - UI: "Notifications" bell icon in top navigation, or "Notifications" button in MeCard
Purpose: User profile with experience, education, skills
Key Features:
- Horizontal Tab Navigation: About | Experience | Education | Skills | Recommendations | Activity
- Profile Strength Indicator: Progress bar with percentage
- Banner + Avatar: Professional visual header
- Edit Mode: Toggle to edit profile sections
- Verification Badge: Blue checkmark for verified accounts
UX Improvements:
- Tabs organize lengthy profiles (no endless scrolling)
- Profile strength motivates completion
- Edit mode clearly separated from view mode
Access:
- Direct:
https://better-linked-in.vercel.app/profile - UI: Click your name/avatar in MeCard or top navigation "Me" dropdown
Purpose: Gamification hub for puzzles and challenges
Key Features:
- Daily Puzzle Cards: Queens, Crossword, Tango
- Streak Tracking: Visual calendar of completion
- Leaderboards: Top performers, friend rankings
- Achievement Badges: Unlock rewards for milestones
UX Improvements:
- Gamification increases engagement without being intrusive
- Streaks provide motivation (dopamine loop)
- Social leaderboards add friendly competition
Access:
- Direct:
https://better-linked-in.vercel.app/games - UI: Top navigation "Me" dropdown
Purpose: Universal search across jobs, people, companies, posts, groups
Key Features:
- 5-Tab Navigation: Jobs | People | Companies | Posts | Groups
- Overflow Handling: "See more" dropdown for additional tabs
- Dynamic Filters: Panel changes based on active tab
- Jobs: Date, experience, salary range slider
- People: Connections, location, company/school autocomplete
- Companies: Industry checkboxes
- Filter Count Badge: Shows number of active filters
- Result Cards: Type-specific layouts (job cards, people cards, etc.)
UX Improvements:
- Filters adapt to content type (relevant options only)
- Clear visual feedback for applied filters
- Tab overflow prevents horizontal scrolling
Access:
- Direct:
https://better-linked-in.vercel.app/search?q=software engineer - UI: Enter query in top navigation search bar
Purpose: Organization profiles with jobs, employees, culture
Key Features:
- Professional Header: Banner, logo, tagline, follower count
- Follow Toggle: Track companies you're interested in
- 5-Tab Content: Home (posts) | About | Jobs | People (employees) | Life (culture)
- Similar Companies: Right sidebar suggestions
- Company Insights: Employee count, hiring trends
UX Improvements:
- All company info consolidated in one place
- Life tab showcases culture (images/videos)
- Employee directory helps networking
Access:
- Direct:
https://better-linked-in.vercel.app/company/123 - UI: Click company name from job posting, search result, or post
Purpose: Account management and privacy controls
Key Features:
- Main Page: Grid of 6 category cards
- 👤 Account & Sign-in
- 🔒 Profile Privacy
- 💾 Data Privacy
- ✉️ Communications
- 📢 Advertising
- ⭐ Premium Features
- Sticky Search Bar: Find specific settings quickly
- Sub-Pages: Detailed settings with breadcrumb navigation
- Control Types:
- Toggle switches for binary options
- Dropdowns for multi-choice selections
- Link buttons for edit pages
- Plain-Language Explanations: No jargon, clear descriptions
UX Improvements:
- Two-tier navigation (category → settings) reduces cognitive load
- Search functionality for power users
- Visual card grid makes options scannable
- Privacy controls prominently displayed (trust building)
Access:
- Direct:
https://better-linked-in.vercel.app/settings - UI: Top navigation "Me" dropdown → "Settings"
| Icon | Label | Destination | Keyboard Shortcut |
|---|---|---|---|
| 🏠 | Home | / |
Alt+H |
| 💼 | Jobs | /jobs |
Alt+J |
| 👥 | Network | /mynetwork |
Alt+N |
| 💬 | Messaging | /messaging |
Alt+M |
| 🔔 | Notifications | /notifications |
Alt+B (Bell) |
| 👤 | Me | Dropdown menu | Alt+U (User) |
- View Profile →
/profile - Settings & Privacy →
/settings - Help Center → External link
- Sign Out → Authentication flow
- Messages →
/messaging - Notifications →
/notifications - My Network Page →
/mynetwork - Copy Profile URL → Copies
/profileto clipboard
- About, Accessibility, Help Center, Privacy, Terms, Advertising, etc.
- React 18: Concurrent rendering, automatic batching
- TypeScript 5: Full type safety, better DX
- React Router v6: Client-side routing with data loaders
- TailwindCSS 3: Utility-first CSS framework
- Framer Motion 10: Smooth animations and gestures
- PostCSS: CSS transformations and optimizations
- Zustand: Lightweight state management (planned for complex state)
- React Context: Theme management, auth state
- React Query (planned): Server state caching and synchronization
- Vite 5: Fast HMR, optimized production builds
- ESBuild: Ultra-fast JavaScript bundling
- TypeScript Compiler: Type checking and transpilation
- ESLint: Code quality and consistency
- Prettier: Code formatting (not configured yet)
- Git: Version control
- Code splitting with
React.lazy() - Image lazy loading with IntersectionObserver
- Virtual scrolling for long lists (planned)
- Memoization with
React.memo()anduseMemo()
- Node.js: v18 or higher
- npm or yarn: Package manager
# Clone the repository
git clone https://github.com/Mrigank005/Better-Linkedin.git
cd better-linkedin
# Install dependencies
npm install
# Start development server
npm run devThe app will open at http://localhost:3000
Live Demo: Visit https://better-linked-in.vercel.app/ to see the deployed version.
# Start dev server with HMR
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview
# Type checking
npm run type-check
# Lint code
npm run lintbetter-linkedin/
├── public/ # Static assets
├── src/
│ ├── components/
│ │ ├── layout/ # Layout components
│ │ │ ├── TopNavigation.tsx
│ │ │ ├── ThreeColumnLayout.tsx
│ │ │ ├── StickyLeftColumn.tsx
│ │ │ └── StickyRightColumn.tsx
│ │ └── shared/ # Reusable components
│ │ ├── MeCard.tsx
│ │ ├── TabNavigation.tsx
│ │ ├── PostCard.tsx
│ │ ├── JobCard.tsx
│ │ └── ConnectionCard.tsx
│ ├── pages/ # Page components
│ │ ├── HomePage.tsx
│ │ ├── JobsPage.tsx
│ │ ├── MyNetworkPage.tsx
│ │ ├── MessagingPage.tsx
│ │ ├── NotificationsPage.tsx
│ │ ├── ProfilePage.tsx
│ │ ├── GamesPage.tsx
│ │ ├── SearchResultsPage.tsx
│ │ ├── CompanyPage.tsx
│ │ └── SettingsPage.tsx
│ ├── context/ # React Context providers
│ │ └── ThemeContext.tsx
│ ├── hooks/ # Custom React hooks
│ │ ├── useStickySidebar.ts
│ │ ├── useTabs.ts
│ │ └── useInfiniteScroll.ts
│ ├── types/ # TypeScript definitions
│ │ └── index.ts
│ ├── utils/ # Utilities and constants
│ │ └── constants.ts
│ ├── App.tsx # Root component with routing
│ ├── main.tsx # Entry point
│ └── index.css # Global styles
├── .gitignore
├── package.json
├── tsconfig.json # TypeScript configuration
├── vite.config.ts # Vite configuration
├── tailwind.config.js # Tailwind configuration
├── postcss.config.js # PostCSS configuration
└── README.md
Edit tailwind.config.js:
module.exports = {
theme: {
extend: {
colors: {
linkedin: {
blue: '#0A66C2', // Change primary brand color
'blue-light': '#378FE9',
'blue-dark': '#004182',
},
// Add custom colors
brand: {
primary: '#yourcolor',
},
},
},
},
};Edit src/utils/constants.ts:
export const NAV_HEIGHT = 52; // Top navigation height
export const STICKY_OFFSET = 72; // Sticky sidebar offset
export const SIDEBAR_WIDTH = 240; // Left/right sidebar widthEdit tailwind.config.js:
fontSize: {
'h1': '24px',
'h2': '20px',
'h3': '16px',
'body': '14px',
'small': '12px',
}Edit Framer Motion transitions:
transition={{ duration: 0.3, ease: 'easeOut' }}- Color Contrast: All text meets 4.5:1 minimum ratio
- Keyboard Navigation: All interactive elements accessible via Tab/Enter
- Focus Indicators: Visible focus outlines (blue ring)
- Screen Readers: ARIA labels on icons and interactive elements
- Semantic HTML: Proper heading hierarchy, landmarks
- Chrome: 90+ ✅
- Firefox: 88+ ✅
- Safari: 14+ ✅
- Edge: 90+ ✅
- Mobile: iOS 14+, Android 10+ ✅
- Performance: 95+
- Accessibility: 100
- Best Practices: 95+
- SEO: 90+
- Code Splitting: Route-based lazy loading
- Image Optimization: WebP format, lazy loading, responsive srcset
- CSS Purging: Unused Tailwind classes removed in production
- Tree Shaking: Dead code elimination
- Minification: JavaScript and CSS compressed
- Caching: Service worker (planned)
- Real-time messaging with WebSockets
- Progressive Web App (PWA) support
- Offline mode with service workers
- Advanced search with Elasticsearch
- Video posts and live streaming
- AI-powered content recommendations
- Analytics dashboard
- Internationalization (i18n)
- Unit and E2E tests (Jest, Playwright)
MIT License - feel free to use this project for learning or as a foundation for your own redesigns.
Built as a demonstration of modern React best practices, UX design principles, and component-driven development.
Key Learnings:
- Component architecture and reusability
- TypeScript for type-safe development
- CSS-in-JS vs utility-first CSS (Tailwind)
- Animation performance optimization
- Accessible web development
- Design system creation
- LinkedIn for the original platform inspiration
- React team for excellent documentation
- TailwindCSS community for utilities and plugins
- Framer Motion for animation primitives
⭐ If you found this redesign helpful, please star the repository!