Welcome to static.md
Write together. Share instantly.
What is this?
static.md is a real-time collaborative markdown editor with free image hosting. Create notes, share them with a link, and collaborate in real-time.
Features
Rich Markdown
You can write in bold, italic, strikethrough, and inline code.
Task Lists
Code Highlighting
Supports 100+ languages with syntax highlighting. Add = after the language name to enable line numbers (=5 starts at line 5).
TypeScript — where any is the forbidden keyword:
type Mood = 'caffeinated' | 'debugging' | 'shipping it'
function standup(mood: Mood): string {
return mood === 'shipping it' ? 'LGTM 🚀' : "I'll need another coffee"
}
Python — batteries, snakes, and existential dread included:
def is_bug(code: str) -> bool:
"""It's not a bug, it's an undocumented feature."""
return "TODO" in code or "works on my machine" in code.lower()
Rust — the borrow checker loves you (tough love):
fn main() {
let happiness = String::from("compiles");
let _stolen = happiness;
// println!("{}", happiness); // error[E0382]: borrow of moved value 😭
println!("fought the borrow checker, the borrow checker won");
}
Go — if err != nil, therefore I am:
package main
import "fmt"
func main() {
coffee, err := brew()
if err != nil {
fmt.Println("monday:", err)
return
}
fmt.Println("productivity unlocked:", coffee)
}
JavaScript — where [] + {} !== {} + [] and we just accept it:
const isEven = n => n % 2 === 0
console.log(isEven(2)) // true
console.log(isEven("2")) // true, JS says "close enough"
console.log(isEven([])) // true. don't ask.
Ruby — reads like English, runs like poetry:
5.times { puts "I will not push to main on Friday" }
deploy_on_friday = -> { raise "are you sure?" unless ENV['YOLO'] }
deploy_on_friday.call
Bash — works perfectly until it doesn’t:
#!/usr/bin/env bash
set -euo pipefail
rm -rf "${PROJECT_DIR}/node_modules" # the universal fix
echo "have you tried turning it off and on again?"
SQL — DROP TABLE jokes; – students
SELECT name, COUNT(*) as bugs_filed
FROM developers
WHERE coffee_level < 0.2
GROUP BY name
ORDER BY bugs_filed DESC
LIMIT 1; -- the prime suspect
Haskell — a monad is just a monoid in the category of endofunctors, what’s the problem:
factorial :: Integer -> Integer
factorial 0 = 1
factorial n = n * factorial (n - 1)
-- stack overflow sold separately
C++ — zero-cost abstractions, infinite-cost compile errors:
#include <iostream>
#include <memory>
template <typename T>
auto summon(T&& thing) -> std::unique_ptr<T> {
return std::make_unique<T>(std::forward<T>(thing));
}
int main() {
auto segfault = summon(std::string{"hello"});
std::cout << *segfault << " 🪦\n"; // RAII: the only therapy that compiles
}
Markdown — yes, we’re a markdown site writing markdown inside markdown:
# How to write a blog post
1. Stare at blinking cursor
2. Write **bold** claims you can't back up
3. Add a `code block` to look smart
4. Ship it before you change your mind
> "Real artists ship." — Steve Jobs, probably on a deadline
- [x] Procrastinate
- [x] Panic
- [ ] Publish
Lisp — ((((((parentheses) are) a) lifestyle) choice))
(defun enlightenment (n)
(if (<= n 1)
'achieved
(enlightenment (- n 1))))
(enlightenment 42)
Ligatures
The editor uses JetBrains Mono, which renders programming ligatures — multi-character sequences get drawn as a single glyph:
const arrow = () => 42 // => renders as a fat arrow
const pointer = x -> x + 1 // -> renders as a thin arrow
const notEqual = a !== b // !== renders as a crossed equals
const lessEq = a <= b // <= and >= fuse together
const pipe = data |> transform // |> renders as a pipe arrow
const spread = [...xs, ...ys] // ... renders as a real ellipsis
const compare = a <=> b // <=> renders as a spaceship
const www = "https://static.md" // :// stays crisp
Tables
| Feature | Status | Description |
|---|---|---|
| Editor | ✓ | CodeMirror 6 with markdown support |
| Preview | ✓ | Live rendered markdown |
| Split view | ✓ | Side-by-side edit + preview |
| Collaboration | ✓ | Real-time with cursor sync |
| Image upload | ✓ | Drag, drop, or paste |
Mermaid Diagrams
Whiteboards
Embed a live collaborative whiteboard by boardId — edits to the board show up in every note that references it.
Blockquotes
“The best writing tool is the one that gets out of your way.”
— Every developer, probably
Links & Images
Drop images anywhere in the editor, or paste from clipboard. They’re uploaded to static.md and embedded automatically.

Ready to start? Create your first note at static.md/notes