Skip to content

A local-first developer dashboard for bookmarks, code snippets, shell commands, notes & images. Kanban-style boards, instant search, deep theming, and a glass UI. Runs as a web app, Docker container, or native desktop app (Electron).

License

Notifications You must be signed in to change notification settings

pinkpixel-dev/ByteBox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

39 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ByteBox Logo

A lightweight web dashboard for developer resources โ€” your personal dev toolkit in one beautiful place.

ByteBox is where bookmarks, docs, APIs, commands, and snippets live. Think Trello for resources, but built for devs who want style and speed. Pin links, tag everything, search instantly, and drag-and-drop to organize your way.

Made with โค๏ธ by Pink Pixel License: Apache 2.0 Next.js 16 Tailwind CSS 4 TypeScript

Dream it, Pixel it ๐ŸŒธ


๐Ÿš€ Features

๐ŸŽฏ Core Functionality

  • ๐Ÿ“ฆ Kanban-Style Boards โ€” Organize resources into customizable categories with responsive columns that stretch to fill your viewport
  • ๐Ÿงญ View Mode Selector โ€” Switch between All Cards, Most Recent, Starred Only, and By Tag views with keyboard shortcuts (โŒ˜1-4)
  • ๐Ÿท๏ธ Smart Tagging โ€” Add multiple tags with color-coded filtering (AND/OR logic)
  • โญ Star Favorites โ€” Mark important cards as starred for quick access with dashboard filtering
  • ๐Ÿ” Lightning Search โ€” Press Cmd/Ctrl+K to search across titles, descriptions, tags, and content
  • ๐ŸŽจ Drag & Drop โ€” Reorder cards and move them between boards seamlessly with @dnd-kit
  • โœ๏ธ CRUD Everything โ€” Create, edit, delete cards with a slick modal interface and two-step deletion confirmation
  • ๐Ÿ’ป Syntax Highlighting โ€” Code snippets with 100+ languages (powered by Shiki)
  • ๐Ÿ“ Copy-to-Clipboard โ€” One-click copy for all text content (code blocks, URLs, commands, docs)
  • ๐Ÿ–ผ๏ธ Image/Screenshot Cards โ€” Save and preview images with full-screen lightbox, download, and clipboard support

๐ŸŒŒ Glass UI & Theming

  • Glassmorphic Layout โ€” Sidebar, header, cards, modals, and filters share reusable glass utilities with blurred depth and accent-aware tinting.
  • Adjustable Glass Intensity โ€” A transparency slider (Clear โ†’ Frosted) instantly recalibrates blur, opacity, and shadows to match your wallpaper.
  • Accent Theme Library โ€” Swap between 6 built-in palettes (Byte Classic, Neon Night, Rainbow Sprint, Midnight Carbon, Sunset Espresso, Pastel Haze) or build your own 2โ€“6 color palette.
  • Icon Palettes โ€” Choose from 6 curated icon stacks (Neon Grid, Carbon Tech, Espresso Circuit, Rainbow Loop, Pink Pulse) or set a custom hex color.
  • Background Playground โ€” Solid color picker, custom 2โ€“4 color gradients with angle control, 8 curated gradient presets, and 12 built-in wallpapers (plus custom uploads).
  • Typography Controls โ€” Choose from 17 UI fonts and 13 mono fonts independently (Inter, Geist, Poppins, Indie Flower, JetBrains Mono, Fira Code, and more).
  • Settings Presets โ€” Save the entire appearance (mode, accent/icon, background, fonts, glass) as named profiles; apply or delete anytime.
  • Database-Backed Persistence โ€” All theme settings persist to SQLite database, surviving browser clears and syncing across sessions.
  • System Detection โ€” Defaults to your OS preference on first load.

๐Ÿ’พ Data Management

  • Export/Import โ€” Backup all data as JSON, restore anytime
  • SQLite Database โ€” Fast local storage with Prisma 7 ORM
  • Settings Persistence โ€” All theme preferences persist to database (survives browser clears)
  • Seed Data โ€” Get started with example cards and categories

๐Ÿ› ๏ธ Tech Stack

Category Technology
Framework Next.js 16.0.6 (App Router)
Language TypeScript 5.9.x
Styling Tailwind CSS 4.x
Database SQLite with Prisma 7.0.1 (better-sqlite3 adapter)
Drag & Drop @dnd-kit 6.x / 10.x
Syntax Highlighting Shiki 3.17.0
Icons @heroicons/react 2.2.0
UI Components @headlessui/react 2.2.9

๐Ÿ“ฆ Installation

Prerequisites

  • Node.js 18+ (LTS recommended)
  • npm or pnpm or yarn

โšก Quick Setup (recommended)

git clone https://github.com/pinkpixel-dev/bytebox.git
cd bytebox
npm run setup
npm run dev

The setup script handles everything: creates .env, installs dependencies, generates the Prisma client, applies migrations, and seeds example data.

Then open http://localhost:1334.


๐Ÿณ Docker (zero-dependency deploy)

No Node.js required on the host โ€” just Docker.

git clone https://github.com/pinkpixel-dev/bytebox.git
cd bytebox
docker compose up --build -d

Open http://localhost:1334. Data persists in the bytebox-data Docker volume across restarts and upgrades.

docker compose down          # stop
docker compose up -d         # start again (no rebuild needed)
docker compose up --build -d # rebuild after pulling updates
docker compose logs -f       # follow logs

๐Ÿ–ฅ๏ธ Desktop App (Electron)

Runs ByteBox as a native installed application. Currently available for Linux.

Download pre-built installers from the ByteBox website:

Format Link
AppImage (any distro) ByteBox-2.4.0.AppImage
.deb (Debian/Ubuntu) bytebox_2.4.0_amd64.deb

Or build from source:

# Dev mode (hot-reload)
npm run electron:dev

# Build installer (Linux)
npm run electron:build:linux   # โ†’ release/*.AppImage + *.deb

The database is stored in the OS user-data directory (~/.config/ByteBox/ on Linux) and survives app updates.


๐Ÿ”ง Manual Setup

1๏ธโƒฃ Clone the Repository

git clone https://github.com/pinkpixel-dev/bytebox.git
cd bytebox

2๏ธโƒฃ Create the environment file

cp .env.example .env

3๏ธโƒฃ Install Dependencies

npm install

4๏ธโƒฃ Set Up the Database

npx prisma generate
npx prisma migrate deploy

5๏ธโƒฃ Seed the Database (Optional)

Populate with example cards:

npm run db:seed

6๏ธโƒฃ Start the Development Server

npm run dev

Open http://localhost:1334 in your browser. ๐ŸŽ‰

Note: On first load, ByteBox automatically creates 5 default categories (Frontend, Backend, DevOps, Learning & Research, Ideas & Inspiration) if none exist. You can rename or delete them anytime.


๐ŸŽฎ Usage

๐Ÿ”‘ Keyboard Shortcuts

  • Cmd/Ctrl + K โ€” Open global search
  • Cmd/Ctrl + 1 โ€” View all cards
  • Cmd/Ctrl + 2 โ€” View most recent cards
  • Cmd/Ctrl + 3 โ€” View starred only
  • Cmd/Ctrl + 4 โ€” View by tag
  • Cmd/Ctrl + Shift + S โ€” Toggle starred filter
  • Esc โ€” Close modals or search

๐Ÿ“ Creating Cards

  1. Click the "+ New Card" button (top-right corner or inside a category column)
  2. Choose a card type (what kind of content it is):
    • ๐Ÿ“‘ Bookmark โ€” Save URLs and links
    • ๐Ÿ’ป Code Snippet โ€” Save code with syntax highlighting
    • โŒ˜ Command โ€” Save CLI commands and scripts
    • ๐Ÿ“š Documentation โ€” Save notes, docs, or upload .md/.pdf files
    • ๐Ÿ–ผ๏ธ Image โ€” Upload screenshots or images
    • ๐Ÿ“ Note โ€” Quick thoughts and ideas
  3. Choose a category (the topic/project the card belongs to โ€” e.g. Frontend, Backend, DevOps). Categories can be created and managed on the Categories page.
  4. Fill in:
    • Title โ€” Card name
    • Description โ€” What's this resource about?
    • Content โ€” Code snippets, URLs, notes, or drag-and-drop images
    • Language (optional) โ€” Select from 100+ supported languages for syntax highlighting
    • Tags โ€” Pick from existing tags to label the card
  5. Click "Create Card"

๐Ÿท๏ธ Filtering by Tags

  • Click tags on cards to filter by that tag
  • Use the Filter Panel (sidebar) to select multiple tags
  • Toggle AND/OR logic for complex filtering

๐Ÿ” Searching

  • Press Cmd/Ctrl + K to open the search bar
  • Search across titles, descriptions, tags, and content
  • Results update in real-time

๐ŸŽจ Drag & Drop

  • Drag cards within a category to reorder
  • Drag cards between categories to move them
  • Changes are saved automatically

๐Ÿ–ผ๏ธ Working with Images

  1. Click "+ New Card" and select the Image type
  2. Drag and drop an image or click to browse (PNG, JPEG, WebP, GIF supported)
  3. Images are automatically compressed and stored (max 1920ร—1920, 5MB limit)
  4. View images: Click any image card thumbnail to open full-screen lightbox
  5. Download: Click the download button in lightbox to save the original
  6. Copy to clipboard: Click the copy button (auto-converts JPEG to PNG)
  7. Delete: Click the red trash icon and confirm deletion

โญ Starring Cards

  • Star a card: Click the star icon in the card header (next to the type badge)
  • Starred indicator: Starred cards show a solid amber star with glow effect
  • Filter starred: Click the star button in the header or use Cmd/Ctrl+Shift+S
  • Starred count: Badge shows total number of starred cards
  • Filter panel: Toggle starred filter in the sidebar filter panel

๐Ÿ“‹ Copy & Delete Features

  • Copy content: All text cards (bookmarks, snippets, commands, docs) have a copy button in the card modal
  • Copy feedback: Button shows "Copied!" for 2 seconds after successful copy
  • Delete cards: Click the red trash icon in any card modal
  • Confirmation: Two-step process prevents accidental deletions ("Delete this card?" โ†’ "Yes, delete")

๐Ÿ’พ Export/Import Data

  1. Open the sidebar (hamburger menu)
  2. Click the slim "Export Data" tile to download a JSON backup
  3. Click the glowing "Import Data" tile to restore from a JSON file
  4. Warning: Import will merge data (not replace)

โœจ Customize the Look

  1. Head to Settings โ†’ Appearance.
  2. Use the Glass Transparency slider to shift the interface from airy to frosted depending on your wallpaper.
  3. Pick an Accent Theme (or build a custom 2โ€“6 color palette) and an Icon Palette (or custom hex).
  4. Choose Background: solid color, custom 2โ€“4 color gradient with angle, one of 8 gradient presets, or one of 12 built-in wallpapers โ€” upload your own if you prefer.
  5. Set Typography: pick from 17 UI fonts and 13 mono fonts separately.
  6. Toggle Light/Dark Mode with the sun/moon button in the header.
  7. Click Save preset to store the whole setup (mode, colors, background, fonts, glass) and reapply it later.
  8. All settings persist to the database and the entire UI updates in real time.

๐ŸŒ™ Theme Toggle

  • Click the sun/moon icon (top-right) to switch between dark and light base themes.
  • Accent/icon palettes remain in sync as you switch modes.

๐Ÿ—‚๏ธ Project Structure

bytebox/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ app/
โ”‚   โ”‚   โ”œโ”€โ”€ api/              # API routes (cards, categories, settings, export, import)
โ”‚   โ”‚   โ”œโ”€โ”€ globals.css       # Tailwind CSS + glass/theming tokens
โ”‚   โ”‚   โ”œโ”€โ”€ layout.tsx        # Root layout with ThemeProvider
โ”‚   โ”‚   โ”œโ”€โ”€ page.tsx          # Dashboard (boards)
โ”‚   โ”‚   โ”œโ”€โ”€ categories/page.tsx # Category management with color editing
โ”‚   โ”‚   โ”œโ”€โ”€ search/page.tsx   # Search experience with filters
โ”‚   โ”‚   โ”œโ”€โ”€ settings/page.tsx # Appearance, data management, about
โ”‚   โ”‚   โ””โ”€โ”€ tags/page.tsx     # Tag directory with stats & filtering
โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ”œโ”€โ”€ cards/            # Card, DraggableCard, CardModal, CreateCardModal
โ”‚   โ”‚   โ”œโ”€โ”€ layout/           # AppLayout, Board, DraggableBoard
โ”‚   โ”‚   โ””โ”€โ”€ ui/               # Tag, SearchBar, FilterPanel, CodeBlock, ThemeToggle, ExportImport, ViewModeSelector, Lightbox
โ”‚   โ”œโ”€โ”€ contexts/
โ”‚   โ”‚   โ””โ”€โ”€ ThemeContext.tsx  # Theme, accent, icon, background, font controller
โ”‚   โ”œโ”€โ”€ hooks/
โ”‚   โ”‚   โ””โ”€โ”€ useSearch.ts      # Search, filter, and view mode hook
โ”‚   โ”œโ”€โ”€ lib/
โ”‚   โ”‚   โ”œโ”€โ”€ db/               # Prisma client & queries
โ”‚   โ”‚   โ”œโ”€โ”€ themeRegistry.ts  # Accent/icon palettes, gradients, wallpapers, fonts
โ”‚   โ”‚   โ””โ”€โ”€ utils/            # cn, imageUtils, fileUtils, syntax, formatDate
โ”‚   โ””โ”€โ”€ types/
โ”‚       โ””โ”€โ”€ index.ts          # TypeScript types
โ”œโ”€โ”€ prisma/
โ”‚   โ”œโ”€โ”€ schema.prisma         # Database schema (Category, Tag, Card, UserSettings)
โ”‚   โ”œโ”€โ”€ prisma.config.ts      # Prisma 7 configuration
โ”‚   โ”œโ”€โ”€ seed.ts               # Seed script
โ”‚   โ””โ”€โ”€ migrations/           # Database migrations
โ”œโ”€โ”€ public/
โ”‚   โ”œโ”€โ”€ icon.png              # Square logo icon
โ”‚   โ”œโ”€โ”€ logo_banner.png       # Full logo banner
โ”‚   โ””โ”€โ”€ wallpapers/           # 12 built-in wallpapers
โ”œโ”€โ”€ scripts/
โ”‚   โ”œโ”€โ”€ setup.sh              # One-command first-run setup script
โ”‚   โ””โ”€โ”€ next-with-env.cjs     # Dev/build wrapper
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ tsconfig.json
โ”œโ”€โ”€ next.config.ts
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ CHANGELOG.md
โ”œโ”€โ”€ CONTRIBUTING.md
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ OVERVIEW.md
โ””โ”€โ”€ ROADMAP.md

๐Ÿค Contributing

Contributions are welcome! ๐ŸŽ‰

Please read CONTRIBUTING.md for details on:

  • How to submit issues
  • How to create pull requests
  • Code style guidelines

๐Ÿ“„ License

This project is licensed under the Apache License 2.0 โ€” see the LICENSE file for details.


๐Ÿ’– Credits

Made with โค๏ธ by Pink Pixel

Tagline: "Dream it, Pixel it" โœจ


๐ŸŒŸ Acknowledgments


Star this repo โญ if you find it useful!

Share it ๐Ÿš€ with fellow devs!

Have fun ๐ŸŽฎ organizing your dev resources!

About

A local-first developer dashboard for bookmarks, code snippets, shell commands, notes & images. Kanban-style boards, instant search, deep theming, and a glass UI. Runs as a web app, Docker container, or native desktop app (Electron).

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors