Skip to content

prathamreet/linksmith

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

No releases published

Packages

 
 
 

Contributors