Sunday, January 25, 2026

How I Built Scribbles Notepad Without Writing a Single Line of Code

 

How I Built Scribbles Notepad Without Writing a Single Line of Code

Mubi Ali
Principal Software Engineering Manager (Azure Observability) at Microsoft

A Journey with VS Code and GitHub Copilot

January 2026


The Beginning

It started with a simple frustration. Notepad was too basic. VS Code was overkill for quick edits. I wanted something in between—a modern, lightweight text editor with just the right features. But here's the thing: I didn't want to spend months coding it from scratch.

That's when I decided to try an experiment: Could I build a complete, professional Windows application using only VS Code and GitHub Copilot, without typing a single line of code myself?

Spoiler: I did. In just 4 hours. And this is the story of how.

Article content

Hour 1: Setting the Foundation

I opened VS Code, created a new folder called "Scribbles," and started a conversation with Copilot.

"Create a .NET 8 Windows Forms application with a tabbed text editor interface."

Within seconds, Copilot generated the project structure—Scribbles.csproj, Program.cs, and the initial MainForm.cs. A working tabbed editor materialized before my eyes. No boilerplate typing. No Stack Overflow searches. Just pure AI-assisted creation.

I ran it. It worked. I smiled.

Core Features

File Operations

"Add file menu with New, Open, Save, Save As, and Close Tab functionality with proper keyboard shortcuts."

Copilot delivered complete file handling—dialogs, keyboard shortcuts (Ctrl+N, Ctrl+O, Ctrl+S), even proper dirty-file indicators with asterisks in tab titles.

Find and Replace

"Implement a find and replace dialog with options for case sensitivity and whole word matching."

A professional find dialog appeared. Ctrl+F for find, Ctrl+H for replace. Highlight matches, navigate between them. Everything just worked.

Undo/Redo

"Add unlimited undo and redo support."

Done. Ctrl+Z, Ctrl+Y. Proper edit history tracking. Simple ask, simple answer.


Hour 1.5: The Visual Polish

Theme System

This is where it got interesting. I asked:

"Create a theme system with Light, Dark, Monokai, Solarized Dark, and Nord themes. Apply themes to menus, tabs, editor, and status bar."

Copilot created an entire Theme.cs class with color definitions for each theme. Then it wired everything up—the menu bar transformed, tabs changed colors, even the status bar matched. Five beautiful themes, zero lines typed.

But I wanted more:

"Add a custom theme dialog where users can pick their own colors."

A color picker dialog appeared. Users could now create their own themes, choosing colors for background, foreground, menus, tabs, and accents. Professional-grade customization.

Syntax Highlighting

This was the feature I was most worried about. Syntax highlighting is complex. But I asked anyway:

"Add syntax highlighting support for C#, JavaScript, TypeScript, Python, HTML, CSS, JSON, XML, YAML, Markdown, SQL, and PowerShell."

Copilot generated a complete SyntaxHighlighter.cs with regex patterns for keywords, strings, comments, and numbers across all languages. It even auto-detected file types based on extensions.

I opened a .cs file. Keywords in blue. Strings in red. Comments in green. It was beautiful.


Hour 2: Power Features

Preview Pane

"Add a live preview pane for Markdown and HTML files that updates as you type."

A split view appeared. Type Markdown on the left, see rendered HTML on the right. Headers, lists, code blocks—all rendered perfectly. Theme-aware colors. Live updates with a 500ms debounce for performance.

Integrated Terminal

"Add an integrated PowerShell terminal at the bottom of the window, toggleable with Ctrl+`."

A full PowerShell terminal embedded in my text editor. Resizable splitter. Theme-matched colors. I could run dotnet build without leaving Scribbles.

Document Formatting

"Add auto-formatting for JSON, XML, and YAML documents."

Ctrl+Shift+F now beautified any JSON, XML, or YAML with proper indentation. Even malformed files got helpful error messages.


Hour 2.5: Developer Tools

I started dreaming bigger. What if Scribbles could be a developer's Swiss army knife?

Unit Converter

"Create a unit converter tool with categories for length, weight, volume, temperature, speed, time, data size, pressure, energy, and angles."

A complete unit converter with 11 categories and dozens of unit options. Fahrenheit to Celsius? Done. Gigabytes to Megabytes? Easy. All in a clean dialog with dual ListBox controls for intuitive unit selection.

Regex Editor

"Add a regex testing tool with pattern input, test string, match highlighting, and a quick reference cheat sheet."

Regex Editor with live match highlighting, replacement preview, and a built-in cheat sheet for regex syntax. Perfect for crafting complex patterns.

CSV Viewer

"Create a CSV viewer with table display, column sorting, and filtering."

Drag in a CSV file, see it as a sortable, filterable table. Export filtered results. Auto-detect delimiters.

Clipboard History

"Add a clipboard viewer that shows the last 20 clipboard items with preview and click-to-paste."

Never lose a clipboard entry again. History preserved, searchable, one-click paste.

File Compare Tool

"Add a file comparison utility to diff two files side by side."

A professional file comparison tool with side-by-side diff view. Highlight additions, deletions, and modifications. Perfect for code reviews.

Sysinternals Integration

"Integrate a Sysinternals tools launcher with embedded utilities."

Direct access to Microsoft Sysinternals tools for deep system analysis, right from the editor.


Hour 3: The Insert Menu Revolution

I realized developers spend a lot of time typing boilerplate. What if the editor could help?

Developer Productivity Menu

"Add an Insert menu with date/time stamps, GUIDs, random numbers, lorem ipsum, and special characters."

A comprehensive Insert menu appeared with:

  • Date & Time: ISO 8601, local date, Unix timestamp, RFC 2822
  • GUID Generator: Fresh UUIDs with one click
  • Random Numbers: Integers and floats with customizable ranges
  • Lorem Ipsum: Sentences, paragraphs, and full documents for mockups
  • Special Characters: Arrows, math symbols, Greek letters, currency signs

Code Samples Library

Then came the big one:

"Add a Code Samples submenu with Hello World and starter templates for every major programming language."

Copilot generated a massive code samples library covering 30+ languages and frameworks:

Systems Languages: C, C++, Rust, Go, Swift Application Languages: C#, Java, Kotlin, F#, Scala Scripting Languages: Python, JavaScript, TypeScript, Ruby, PHP, Perl Functional Languages: Haskell, Clojure, F# Shell Scripts: Bash, PowerShell, Windows Batch Web Frameworks: React Components, Vue Components, CSS Starters Data Formats: XML, YAML, TOML, JSON Database: SQL SELECT, CREATE TABLE

One click—instant working code. Complete with main functions, class definitions, async patterns, and framework boilerplate.

Encoding & Hashing Tools

"Add encoding utilities for Base64, URL encoding, and hash generation."

Instant Base64 encode/decode. URL encoding. MD5, SHA-1, SHA-256 hash generation. Essential tools for any developer.


Hour 3.5: The Details Matter

Line Numbers

"Add a custom line number panel with proper alignment and theme support."

A beautiful line number gutter appeared, perfectly aligned, updating on scroll, matching the theme.

Spell Checking

"Implement spell checking that underlines misspelled words and skips code files."

Red squiggly lines under typos. Smart enough to skip .cs and .js files. Toggle on and off from the menu.

Auto-Save

"Add auto-save every 30 seconds to a Documents/Scribbles folder with session restore on startup."

My work was now protected. Even if I forgot to save, Scribbles had my back. And on restart, all my unsaved work came back.

Session Persistence

"Remember window position, size, open tabs, theme selection, and all view preferences between sessions."

Close Scribbles, reopen it—everything exactly as I left it. My workflow preserved.


Hour 4: Finishing Touches

Zoom Controls

"Add Ctrl+Plus to zoom in, Ctrl+Minus to zoom out, and Ctrl+0 to reset zoom."

Font size now adjustable on the fly. Perfect for presentations or tired eyes.

Print Support

"Add Print and Print Preview with proper formatting."

Ctrl+P opened a print dialog. Print preview showed exactly what would come out. Professional output.

Performance Monitor

"Add a performance monitor showing CPU and memory usage in the status bar."

A small CPU and memory indicator in the corner. Lightweight but informative.

File Associations

"Create a file association helper for common text file types."

Scribbles could now register itself as the default handler for .txt, .md, .json, and more.


Final Hour: Visual Polish & Branding

Splash Screen

"Create a splash screen with the Scribbles logo that appears while loading."

A professional splash screen with the cat mascot logo. Smooth fade-in, loading progress, and credits.

Icon Generation

"Create a complete icon set for all toolbar and menu items."

Copilot generated ToolbarIcons.cs with programmatically drawn icons for every feature—Calendar, Key, Hash, Text, Code, Lock, File, and more. No external assets needed.


The Result

25+ source files. 12,000+ lines of code. Zero typed by hand. 4 hours total.

Scribbles became a fully-featured text editor with:

  • 📁 Tabbed document interface with drag support
  • 🎨 5 built-in themes plus custom theme creator
  • 🌈 Syntax highlighting for 15+ languages
  • 📝 Live preview for Markdown and HTML
  • 🔍 Find and Replace with regex support
  • 💾 Auto-save and session restore
  • 🖥️ Integrated terminal
  • 🔧 Unit converter, Regex editor, CSV viewer
  • 📋 Clipboard history
  • ✍️ Spell checking
  • 🖨️ Print support
  • Performance monitoring
  • 📊 File comparison tool
  • 🛠️ Sysinternals integration
  • 📅 Insert menu with date/time, GUID, lorem ipsum
  • 💻 30+ code sample templates for all major languages
  • 🔐 Encoding/Hashing utilities (Base64, MD5, SHA)
  • Special characters insert menu
  • 🐱 Animated glitch logo in About dialog


What I Learned

1. AI is a Collaborator, Not Just a Tool

Copilot wasn't just autocompleting code—it was understanding intent. I described features in plain English, and it translated my vision into working code.

2. Iteration is Key

Not everything was perfect on the first try. Sometimes I'd say "make the theme colors more vibrant" or "add keyboard shortcut Ctrl+Shift+V for preview." Each refinement got me closer to what I wanted.

3. Architecture Emerges Naturally

I didn't plan a class hierarchy. Copilot organized the code logically—Theme.cs for theming, SyntaxHighlighter.cs for highlighting, TabDocument.cs for document management. Clean separation of concerns.

4. The Future of Development

This experiment changed how I think about coding. I'm no longer writing code—I'm directing code. Describing behavior. Shaping outcomes. The AI handles the syntax; I provide the vision.


Try It Yourself

Scribbles is open source. Clone it, run it, extend it:

git clone https://github.com/yourusername/Scribbles.git
cd Scribbles
dotnet run --project Scribbles 

Or simply download it:

Article content

Or just open VS Code, start Copilot, and build your own impossible project.

Because if I can build a complete text editor without typing a single line of code in just 4 hours, what can you build?


Final Thoughts

When I started this project, I expected to hit walls. Complex features that AI couldn't handle. Bugs that required deep debugging expertise. Integration challenges that needed human intuition.

Instead, I found a surprisingly capable partner. Copilot understood context, remembered our conversation, and built upon previous work. It felt less like programming and more like pair programming with an infinitely patient expert.

Scribbles isn't perfect. No software is. But it's real, it's useful, and it exists because a human with an idea met an AI with the ability to execute it.

The future of software development isn't about writing code. It's about imagining software and having the tools to bring it to life.

Welcome to that future.


Built with ❤️ using VS Code and GitHub Copilot

January 2026