NinjaSketch

screenshot of NinjaSketch
react
vite

An Excalidraw clone built with React and TypeScript.

Overview

NinjaSketch is an Excalidraw clone built with React and TypeScript, using Rough.js for a hand-drawn style. The main focus was on functionalities, with the app not being responsive, catering to learning purposes. It offers tools like pencils, lines, rectangles, and text tools, allowing users to draw, move, resize elements, edit text, zoom in and out, pan around the canvas, as well as various keyboard shortcuts for ease of use.

Features

  • Choose a Tool: Select from pencils, lines, rectangles, and text tools.
  • Draw and Move: Click and drag to draw on the canvas and move elements around.
  • Edit Text: Add or edit text on the canvas.
  • Zoom: Zoom in for detail or out to view the whole canvas.
  • Pan: Move around the canvas using the Space bar or middle mouse button.
  • Keyboard Shortcuts: Access shortcuts for canvas navigation, undo, redo, zoom in, and zoom out.

Summary

NinjaSketch is a tool developed with React and TypeScript, focusing on functionalities like drawing, editing, and navigating a canvas. With features like different tools, zoom, pan, and keyboard shortcuts, it offers a user-friendly experience for sketching and creating diagrams. The project also highlights the importance of documenting features and learning processes, showcasing the value of stepping back, reflecting, and documenting to enhance understanding and learning new concepts.

react
React

React is a widely used JavaScript library for building user interfaces and single-page applications. It follows a component-based architecture and uses a virtual DOM to efficiently update and render UI components

vite
Vite

Vite is a build tool that aims to provide a faster and leaner development experience for modern web projects

eslint
Eslint

ESLint is a linter for JavaScript that analyzes code to detect and report on potential problems and errors, as well as enforce consistent code style and best practices, helping developers to write cleaner, more maintainable code.

typescript
Typescript

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.