LinkSmith is a fast, hierarchical bookmark organization tool designed to manage workbooks, pages, and link cards efficiently. It is built using Next.js, TypeScript, and PostgreSQL.
- Hierarchical Organization: Structure your links through Library, Workbooks, Pages, and Link Cards.
- Triple-Pane Interface: Navigate books, pages, and cards simultaneously in a focused view.
- Auto-Metadata Fetching: Automatically extracts favicons and page titles from URLs.
- Global Search: Quickly find links across the entire library with CMD+K.
- Export/Import: Backup and share your data in JSON format.
- Soft Delete: Recovery system for deleted items with a 30-day grace period.
- Google OAuth: Secure authentication using Google accounts.
- Frontend: Next.js 15+, TypeScript, Tailwind CSS, Radix UI
- Backend: Next.js API Routes, NextAuth.js
- Database: PostgreSQL with Drizzle ORM
- State Management: Zustand and TanStack Query
- Node.js 18+
- PostgreSQL database
- Google OAuth credentials
-
Clone the repository:
git clone https://github.com/username/linksmith.git cd linksmith -
Install dependencies:
npm install
-
Configure environment variables: Copy
.env.exampleto.envand fill in the required values:DATABASE_URL= NEXTAUTH_SECRET= NEXTAUTH_URL= GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET=
-
Initialize the database:
npm run db:push
-
Run the development server:
npm run dev
-
Open the application: Navigate to http://localhost:3000
src/app/: Next.js App Router and page components.src/components/: Reusable UI and layout components.src/lib/: Database schema, utilities, and custom hooks.src/types/: TypeScript definitions.
npm run dev: Start the development server.npm run build: Build for production.npm run start: Run the production server.npm run lint: Run ESLint for code quality.npm run db:push: Update the database schema.npm run db:studio: Explore the database locally.
This project is licensed under the MIT License.