Skip to content

MonoSketch is a powerful ASCII sketching and diagramming app that lets you effortlessly transform your ideas into visually stunning designs.

License

Notifications You must be signed in to change notification settings

MarqueIV/MonoSketch

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,254 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MonoSketch

License Kotlin SASS GitHub release (with filter) Twitter Follow

A powerful, client-side-only web-based tool for creating ASCII diagrams and text-based visualizations. Perfect for documentation, technical diagrams, and creative text art.

Try it now at app.monosketch.io

Note: This project is being rewritten in TypeScript. Check out the port-to-js branch or PR #584 for details.

Overview

MonoSketch is a fully client-side ASCII diagram editor that runs entirely in your browser. No server-side processing, no data uploaded to the cloud - your work stays on your device. Create technical diagrams, flowcharts, circuit diagrams, and more using only ASCII characters.

        +10-15V                0,047R                                        
       ●─────────○───────○─░░░░░─○─○─────────○────○─────╮                    
    +  │         │       │       │ │         │    │     │                    
    ─═════─      │       │       │ │         │    │     │                    
    ─═════─    ──┼──     │       │╭┴╮        │    │     │                    
    ─═════─     ─┼─      │       ││ │ 2k2    │    │     │                    
    -  │      470│ +     │       ││ │        │    │     │                    
       │       uF│       ╰──╮    │╰┬╯       ╭┴╮   │     │                    
       └─────────│          │    │ │     1k │ │   │     ▽ LED                
                 │         6│   7│ │8       │ │   │     ┬                    
              ───┴───    ╭──┴────┴─┴─╮      ╰┬╯   │     │                    
               ─═══─     │           │1      │  │ / BC  │                    
                 ─       │           ├───────○──┤/  547 │                    
                GND      │           │       │  │ ▶     │                    
                         │           │      ╭┴╮   │     │                    
               ╭─────────┤           │  220R│ │   ○───┤├┘  IRF9Z34           
               │         │           │      │ │   │   │├─▶                   
               │         │  MC34063  │      ╰┬╯   │   │├─┐ BYV29       -12V6 
               │         │           │       │    │      ○──┤◀─○────○───X OUT
             - │ +       │           │2      ╰────╯      │     │    │        
6000 micro ────┴────     │           ├──○                C│    │   ─── 470   
Farad, 40V ─ ─ ┬ ─ ─     │           │ GND               C│    │   ███  uF   
Capacitor      │         │           │3                  C│    │    │\       
               │         │           ├────────┤├╮        │     │   GND       
               │         ╰─────┬───┬─╯          │       GND    │             
               │              5│  4│            │              │             
               │               │   ╰────────────○──────────────│             
               │               │                               │             
               ╰───────────────●─────/\/\/─────────○────░░░░░──╯             
                                     2k            │         1k0             
                                                  ╭┴╮                        
                                                  │ │5k6   3k3               
                                                  │ │in Serie                
                                                  ╰┬╯                        
                                                   │                         
                                                  GND                        

Features

Drawing Tools

  • Rectangle - Create bordered and filled rectangular shapes
  • Text - Add text labels and annotations
  • Line - Draw connecting lines with various styles

Shape Styling

  • Fill - Fill shapes with characters
  • Border - Multiple border styles and characters
  • Line decorations - Add arrows and other heads to line ends
  • Rounded corners - Soften rectangular shapes

Editing Capabilities

  • Infinite canvas - Unlimited scrolling in all directions
  • Autosave - Never lose your work
  • Multiple projects - Organize your diagrams
  • Standard operations - Copy, Cut, Paste, Duplicate
  • Layer management - Move shapes and change their stacking order
  • Dark mode - Easy on the eyes
  • Smart snapping - Connect lines to shapes automatically

Export Options

  • Export selected shapes or entire diagrams
  • Quick text copy with keyboard shortcuts:
    • macOS: Cmd + Shift + C
    • Windows/Linux: Ctrl + Shift + C

Roadmap

Grouping

Group shapes together for easier manipulation and organization. Includes a shape tree panel for managing complex diagrams with nested structures.

Paint Tool

Freehand drawing with custom characters, plus expanded options for fills, borders, and line decorations.

Sharing & Collaboration

  • Open files from URLs
  • Share to GitHub Gist
  • Import/export capabilities

Contributing

Contributions are welcome! Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.

Technology Stack

  • Kotlin/JS - The entire application is written in Kotlin, compiled to JavaScript
  • SASS - CSS preprocessing
  • Tailwind CSS - Utility-first CSS framework
  • Gradle - Build system

Prerequisites

  • Java - Required for Gradle and Kotlin compilation
  • Python 3.11+ (optional) - For alternative development server
  • Pipenv (optional) - If using Python development server

Development Setup

Option 1: Gradle (Recommended)

Run development build with hot reload:

./gradlew browserDevelopmentRun --continuous -Dorg.gradle.parallel=false

Run production build:

./gradlew browserProductionRun --continuous -Dorg.gradle.parallel=false

Note: The -Dorg.gradle.parallel=false flag is a workaround for a KotlinJS build issue with --continuous mode.

Option 2: Python Development Server

Alternative approach when Gradle hot reload is not working properly:

# Install dependencies
pipenv install

# Run development server
pipenv run dev

How to Contribute

  1. Fork the repository and create a new branch for your feature or bug fix
  2. Make your changes following the existing code style
  3. Test your changes thoroughly
  4. Submit a pull request with a clear description of your changes

Getting Help

  • Open an issue for bug reports or feature requests
  • Follow @MonoSketchApp on Twitter for updates

License

This project is licensed under the Apache License 2.0.

About

MonoSketch is a powerful ASCII sketching and diagramming app that lets you effortlessly transform your ideas into visually stunning designs.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Kotlin 95.5%
  • SCSS 3.5%
  • Python 0.3%
  • HTML 0.2%
  • JavaScript 0.2%
  • CSS 0.2%
  • Shell 0.1%