JT
  • Home
  • Projects
  • Extras
  • Contact

© 2026 Joshua Tjhie. All rights reserved.

GitHubLinkedIn
Back to Projects
  1. Home
  2. Projects
  3. Dotdeck

Dotdeck

Share the useful part of a developer setup. Dotdeck gives configuration snippets their own pages, explanations, and discussions.

WebDeveloper tools

Details

Next.jsTypeScriptExpressMySQLTanStack Query

Links

Source on GitHub

A useful terminal tweak can be buried inside someone's entire machine setup. Dotdeck gives that tweak its own page, with code to copy and an explanation of what it does.

The unit of sharing is a deck. It can contain several code snippets under one description, with tags to help people find it. Readers can leave comments or rate it, and an author's profile collects their decks in one place.

The Explanation Belongs Beside the Code

A configuration snippet needs context. The deck format leaves room to explain the tool it belongs to and how the pieces fit together. Search and tag filters help readers find a relevant setup, while comments give them somewhere to ask about it.

This was my first full-stack web application. The finished version uses a Next.js frontend, an Express API, and MySQL. TanStack Query manages requests in the frontend, and uploaded thumbnails pass through Sharp to become WebP images.

A Frontend Change That Changed Deployment

During development, I replaced the original frontend with a Next.js version. I had planned to host the whole application in one Node instance. The version I built used Next.js server rendering, so my original plan to serve a compiled frontend from Express no longer fitted it. I ended up deploying the frontend and API as two Node services.

The interface work also exposed gaps in the API. Editing and deleting decks needed consistent error responses, permissions, and working image-upload paths. Those details became much clearer once I had to complete the actions through the actual interface.

My development diary records too much time spent on early structure that I later discarded. For a similar project, I would get one deck through creation, editing, and deletion before extending the application around it.

Questions About This Project?

Ask about how it works, or point out something I missed.

Contact me