Skip to content

Repository files navigation

LinkSmith - Hierarchical Link Manager

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.

Features

  • 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.

Tech Stack

  • 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

Getting Started

Prerequisites

  • Node.js 18+
  • PostgreSQL database
  • Google OAuth credentials

Installation

  1. Clone the repository:

    git clone https://github.com/username/linksmith.git
    cd linksmith
  2. Install dependencies:

    npm install
  3. Configure environment variables: Copy .env.example to .env and fill in the required values:

    DATABASE_URL=
    NEXTAUTH_SECRET=
    NEXTAUTH_URL=
    GOOGLE_CLIENT_ID=
    GOOGLE_CLIENT_SECRET=
  4. Initialize the database:

    npm run db:push
  5. Run the development server:

    npm run dev
  6. Open the application: Navigate to http://localhost:3000

Project Structure

  • 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.

Scripts

  • 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.

License

This project is licensed under the MIT License.

About

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.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages