Respect for the User
Do not waste their time. Speed is respect.
The Problem
The modern web is hostile to users:
- Sign up before you can do anything
- Configure settings before they work
- Read documentation to understand basics
- Wait for loading spinners
- Navigate confusing interfaces
- Deal with dark patterns and upsells
Every second wasted is disrespect.
Standard Garden rejects this entirely.
Our Promise
10 seconds from thought to beautiful URL.
That’s it. That’s the entire user experience:
- Paste your text
- Click “Make it Beautiful”
- Get a URL
No account required. No configuration. No friction.
Like Pastebin, but your content looks professional.
What This Means in Practice
1. Anonymous-First Design
You can use Standard Garden without an account:
- Paste text instantly
- Get a shareable URL:
/a/abc123 - 7-day lifespan (encourages account creation, keeps storage sustainable)
- Zero barriers to entry
Want to keep it forever? Create an account after you love it.
This is the opposite of “growth hacking.” We earn your trust first.
2. Progressive Enhancement
The upgrade path is natural, not forced:
Anonymous (no account):
↓ loved it? create account
Free Account (10 notes):
↓ need more? upgrade
Paid Account ($4/month, unlimited):
↓ power user? use advanced tools
Obsidian Plugin + CLI
Each step is optional. Each step adds value. No pressure.
3. Zero Configuration
Most platforms make you configure everything:
- ❌ Choose a theme
- ❌ Set up categories
- ❌ Configure typography
- ❌ Pick fonts and colors
- ❌ Set metadata
Standard Garden does this for you.
Typography is automatic. Temperaments are detected. Everything just works.
You can customize if you want (via frontmatter), but you never need to.
4. Speed is a Feature
Our performance targets:
- First Contentful Paint: <1s
- Time to Interactive: <2s
- Lighthouse Score: >95
- Bundle Size: <100kb total JS
These aren’t aspirational. They’re requirements.
If you can’t meet them, you’re doing it wrong.
The Technical Implementation
Speed isn’t an accident—it’s architecture.
1. Static-First Rendering
We pre-render everything possible:
- Astro generates static HTML at build time
- JavaScript is only for interactivity (command palette, etc.)
- Most pages work without JavaScript (progressive enhancement)
2. Edge Delivery
Cloudflare Pages serves content from 300+ locations:
- Users get content from the nearest edge server
- Zero cold starts (no servers to spin up)
- Infinite scale (edge network handles traffic)
- <50ms latency for most requests
3. Minimal Payloads
Every byte is scrutinized:
- System fonts first (zero download)
- Web fonts only when needed (preloaded)
- Inlined critical CSS (<15kb)
- JavaScript islands (only interactive parts)
- Lazy-loaded images (intersection observer)
4. Efficient Database
Cloudflare D1 (SQLite at the edge):
- FTS5 full-text search (instant results)
- Prepared statements (SQL injection protection)
- Indexed queries (no full table scans)
- Edge replication (data close to users)
Examples
The Old Way (Google Docs)
Time to share a document:
1. Open Google Docs (5s)
2. Create new doc (2s)
3. Paste content (1s)
4. Format text (30s)
5. Click Share (2s)
6. Set permissions (10s)
7. Copy link (2s)
8. Explain “Request Access” to recipient (frustration)
Total: ~52 seconds + confusion
The Standard Garden Way
Time to share a document:
1. Paste text (1s)
2. Click “Make it Beautiful” (2s)
3. URL copied to clipboard (instant)
Total: 3 seconds
17x faster. Zero confusion.
UI Principles
The Command Palette (The Gate)
Power users can do everything via keyboard:
::new– Create note::publish– Publish note::lang-fr– Switch to French::theme-humanist– Change temperament::help– Show commands
Hidden until you type :: – doesn’t clutter the interface for casual users.
Responsive by Default
Every page works on:
- Desktop (typography optimized for reading)
- Mobile (touch-friendly, readable on phone)
- Print (beautiful PDF output)
No separate “mobile site.” No app download. Just works.
Error Messages That Help
❌ Bad: “Error 422: Unprocessable Entity”
✅ Good: “Your note is too large. Try removing some images or splitting it into multiple notes.”
❌ Bad: “Invalid token”
✅ Good: “Your login expired. Click here to get a new magic link.”
Errors should help, not confuse.
What We Don’t Do
No Dark Patterns
- ❌ No “limited time offers” to pressure upgrades
- ❌ No fake scarcity (“Only 2 spots left!“)
- ❌ No hiding the unsubscribe button
- ❌ No tricking users into paid tiers
No Feature Bloat
We don’t add features just because we can:
- ❌ No built-in commenting (use hypothes.is if you need it)
- ❌ No social feed (that’s what Mycelium is for)
- ❌ No analytics dashboard (just the essentials)
- ❌ No “productivity features” (we’re a utility, not a workflow tool)
Every feature is a burden. We only add features that justify their weight.
No Tracking Hell
- ✅ Privacy-first analytics (no personal data)
- ✅ No third-party tracking pixels
- ✅ No selling user data
- ✅ No “personalization” algorithms
Your notes are yours. We’re just the infrastructure.
The Litmus Test
Before adding any feature, ask:
“Does this add friction or waste time?”
If yes → don’t build it.
If no → still think twice.
Simplicity is the final form of sophistication.
For Developers
When building features:
- Measure performance: Use Lighthouse, Core Web Vitals
- Test on slow connections: 3G is still real for millions
- Progressive enhancement: Works without JS? Good.
- Accessible by default: Screen readers, keyboard nav
- Fast or die: If it’s slow, it’s broken
Speed is not a feature—it’s respect.
Further Reading
- Command Palette (The Gate) – Power user interface
- API Reference – Programmatic access
- Respect for the World – The third pillar
Every second wasted is an apology we owe. We refuse to apologize.