JT
  • Home
  • Projects
  • Extras
  • Contact

© 2025 Joshua Tjhie. All rights reserved.

GitHubLinkedInEmail
Back to Projects
  1. Home
  2. Projects
  3. Dotdeck
2024-05-18

Dotdeck

A hub for sharing copy-pastable developer decks (dotfiles, CLI tweaks, snippets).

Skeleton outline for Dotdeck, a web app that makes it easy to publish and browse configuration snippets.

Next.jsExpressMySQLTooling
Dotdeck

Quick Stats

Role: Full-Stack Developer
Duration: Ongoing
Next.js 14Express 4MySQLJWT / TanStack Query

Links

Live Front-EndLive Back-End

Dotdeck Overview

Dotdeck is currently in active development. This skeleton captures the structure for the future case study so I can plug in screenshots, benchmarks, and architecture diagrams later.

My previous approach to sharing dotfiles was a monolithic repo. Dotdeck trims that pain by focusing on standalone, copy-pastable “decks” you can browse, search, fork, and discuss without peeling through hundreds of commits.

Why Dotdeck?

  • Finding a single snippet buried in a six-year-old thread is exhausting.
  • Decks are intentionally scoped: title, tags, thumbnail, description, and code block(s).
  • Built-in reactions and comments keep discussion near the snippet instead of scattered across forums.

Features (Snapshot)

  • Full-text search with pagination for fast discovery.
  • Authentication + JWT (register/login) and role-based access control (admin/mod/user).
  • Like/dislike counts and threaded comments with optimistic updates.
  • Image uploads (WebP, compressed via Sharp) for deck thumbnails.
  • Admin panel for managing tags, decks, users, and audit logs.
  • Dark/light themes powered by the Rose Pine palette.
  • Fully documented OpenAPI 3.0 spec exposed via Swagger.

Tech Stack

| Layer | Tech | | ---------- | ---- | | Front-end | Next.js 14, React 18, TypeScript, TailwindCSS, shadcn/ui, TanStack Query | | Back-end | Express 4, MySQL, multer + Sharp, JSON Web Tokens | | Dev & Ops | Campus:Cloud Node instances, pnpm workspace toolchain |

Dotdeck UI placeholder
UI captures coming soon—this placeholder keeps layout spacing consistent.

Sample Deck Schema (WIP)

Deck {
id: string
title: string
tags: string[]
description: string
codeBlocks: Array<{ language: string; content: string }>
likes: number
dislikes: number
createdBy: UserId
createdAt: Date
}

Roadmap

  • Hook up moderation tools for reporting abusive decks/comments.
  • Finish audit log views in the admin dashboard.
  • Publish the public SDK + CLI for pushing decks from local repos.

Visit Dotdeck
*** End Patch

Have thoughts?

Curious what others see or think

Feel free to reach out or leave feedback

Share Feedback

Prefer email? joshuatjhie@pm.me