LinkHub is a curated directory of useful tools and resources for developers, built with React, TypeScript, and Vite.
- Categorized resources (Tools, Mobile Apps, Websites, Learning Resources)
- Real-time search by title, description, features, and tags
- Light, Dark, and System theme support
- Responsive UI for desktop, tablet, and mobile
- Basic SEO support with dynamic page titles by category/search query
- React 19
- TypeScript
- Vite 6
- Tailwind CSS 4
lucide-reactclsx+tailwind-merge
- Node.js >= 18
- npm >= 9
npm install
npm run devThe app runs at: http://localhost:3000
npm run dev: Start development servernpm run build: Build production assets intodist/npm run preview: Preview the production build locallynpm run lint: Run TypeScript checks (tsc --noEmit)npm run clean: Remove build artifacts (dist,server.js)
src/
├── components/
│ ├── DynamicIcon.tsx
│ ├── Header.tsx
│ ├── ResourceCard.tsx
│ ├── Sidebar.tsx
│ ├── ThemeProvider.tsx
│ └── ThemeToggle.tsx
├── App.tsx
├── data.ts
├── index.css
├── main.tsx
├── types.ts
└── utils.ts
Edit src/data.ts:
export const categories = [
{
id: 'tools',
name: 'Useful Tools',
icon: 'Wrench',
description: '...'
}
];
export const resources = [
{
id: 'unique-id',
title: 'Tool Name',
description: 'Short description',
url: 'https://example.com',
categoryId: 'tools',
features: ['Feature 1', 'Feature 2'],
tags: ['Developer', 'Productivity'],
iconName: 'Braces'
}
];Notes:
resource.categoryIdmust match an existingcategories[].idresource.featuresis used for both UI display and searchiconandiconNamemust be valid icon names fromlucide-react
The following links are currently defined in src/data.ts:
| Name | URL | Description |
|---|---|---|
| JSON Tools | https://json-tools.thanhlv.com | A fast and handy online JSON formatting, validation, and processing tool for developers. |
| YAML Tools | https://yaml-tools.thanhlv.com | A website that supports parsing, converting, and manipulating YAML format easily and intuitively. |
| Hash Tools | https://hash-tools.thanhlv.com | Generate hash values from text or files using popular and widely used hashing algorithms. |
| UUID Tools | https://uuid-tools.thanhlv.com/ | Generate, validate, and decode UUID values quickly for development workflows. |
| Encrypt Tools | https://encrypt-tools.thanhlv.com | Encrypt and decrypt text quickly with practical utilities for developers. |
Build for production:
npm run buildThen deploy the dist/ folder to any static hosting platform (Vercel, Netlify, GitHub Pages, Cloudflare Pages, etc.).