Big Words: Simon Willison's URL-Driven Slide Text Tool

Simon Willison vibe-coded a minimalist web tool that generates full-screen text slides via URL parameters.
Big Words is a web tool Simon Willison quickly built to solve the problem of inserting text slides into a presentation tool that only accepts URLs. All options — text content, colors, fonts, gradients — are configured via URL query parameters, enabling a stateless, shareable, and embeddable design. Built with vibe coding as a zero-dependency pure frontend solution, it exemplifies the Unix philosophy that composing small tools beats building complex systems.
Background: A Simple but Clever Need
Simon Willison (renowned developer and founder of Datasette) recently ran into a small problem while preparing a presentation: he was using a macOS demo tool he had previously built via "vibe coding" to create slides, but the tool only accepted URLs as input. When he wanted to add a text-only slide, he needed a tool that could generate a text display page from URL parameters.
Thus, Big Words was born — a minimalist but practical web tool that renders text as full-screen slide-style pages via query string parameters.

Big Words' Design: URL as Configuration
Core Philosophy
Big Words' design philosophy is remarkably straightforward: all configuration is done through URL query parameters. For example:
https://tools.simonwillison.net/big-words?text=simonwillison.net&gradient=1&size=9.5
This URL generates a page displaying bold white "simonwillison.net" text on a black-to-blue gradient background. This design means each slide is essentially a URL that can be loaded directly by his presentation tool.
URL query parameters as a configuration interface is a time-honored but often overlooked design pattern in web development, sometimes referred to in academic contexts as "URL as State" or "Stateless UI." Its core advantage is that page state is entirely determined by the URL — the server doesn't need to maintain sessions, the client doesn't need local storage, and any state can be fully reproduced by sharing a link. This pattern has been widely used in early web applications (such as Google Maps' coordinate parameters) and modern single-page application routing designs. For tool-oriented pages, URL-as-configuration means the tool inherently possesses three key properties: bookmarkable, shareable, and embeddable — all without requiring user registration or login. Big Words takes this pattern to its extreme: the complete visual configuration of every slide — text content, colors, font, gradient angle — is serialized into a URL, allowing it to be consumed directly as a data source by other tools.
Configurable Slide Options
By double-clicking or double-tapping the page, users can access a settings panel offering the following customization options:
- Text content (TEXT): The text to display
- Text color (TEXT COLOR): Default white
- Background color (BACKGROUND): Default black
- Gradient background: Optional, with support for a second color and angle
- Font (FONT): Default system sans-serif
- Weight (WEIGHT): e.g., Heavy
- Size (SIZE): Uses vmin units for responsive scaling
- Other options: Italic, uppercase, shadow, etc.
Once configured, clicking "Save URL" generates a URL containing all settings, ready to share or embed at any time.
Technical Implementation: A Typical Vibe Coding Product
Simon categorized this tool as a product of "vibe coding." Vibe Coding is a programming paradigm coined by OpenAI co-founder Andrej Karpathy in early 2025 that quickly gained popularity. Its core idea is that developers no longer precisely control code line by line, but instead adopt a "if it feels right, ship it" approach, leveraging AI-assisted tools (such as GitHub Copilot, Claude, Cursor, etc.) to rapidly turn ideas into working programs. The developer takes on more of a "product manager + tester" role — describing requirements and validating results rather than getting bogged down in implementation details. This approach is particularly well-suited for personal tools, prototype validation, and one-off scripts, compressing work that would normally take hours into minutes. Simon Willison is an active practitioner of the Vibe Coding philosophy, documenting his experiences of rapidly building practical small tools this way across multiple blog posts. Big Words is a quintessential example. Based on GitHub PR records, the entire tool was developed very quickly with minimal code.
This tool reflects several noteworthy technical decisions:
- Stateless design: All state is encoded in the URL, requiring no backend storage
- Progressive enhancement: The page defaults to presentation mode, with interactive editing as an added feature
- Responsive font sizing: Uses vmin units to ensure good display across different screen sizes
- Zero dependencies: Pure HTML/CSS/JS implementation, no build tools required
The choice of font size unit is particularly worth noting. vmin is one of CSS's viewport-relative units, with a value equal to 1% of whichever is smaller: the viewport width (vw) or the viewport height (vh). For example, on a 1200×800 screen, 1vmin = 8px; on an 800×1200 portrait screen, 1vmin is also 8px. This property makes vmin the ideal choice for achieving "proportionally scaled font sizes" in full-screen presentation scenarios — regardless of screen orientation or size changes, text always renders at a relatively consistent visual proportion, never appearing too small on widescreen displays or overflowing on narrow ones. For a slide tool, this is more sensible than fixed pixel values or width-based vw units, since presentation scenarios involve significant variation in screen orientation and aspect ratio. This choice demonstrates that even "vibe coding" products can embody thoughtful engineering judgment.
Takeaway: Big Value from Small Tools
Although this project is simple, it demonstrates a highly efficient approach to tool development:
Solve a specific problem: Rather than building a tool for its own sake, quickly fill a gap discovered in an actual workflow. Simon needed to insert text slides into a presentation tool that only accepts URLs — Big Words precisely solved that problem.
Composition over complexity: Rather than making the presentation tool more complex (by adding text editing support), create an independent, composable small tool. This thinking originates from the Unix philosophy — distilled by Bell Labs' Doug McIlroy in 1978, whose two most fundamental principles are "do one thing and do it well" and "programs should work together." This philosophy gave rise to a vast ecosystem of small, focused, pipe-composable command-line tools in Unix/Linux (such as grep, sed, awk), which connect to each other through standard input/output to construct workflows far more flexible than any single complex program. In the era of web tools, URLs play the role of "pipes" — Simon's presentation tool only accepts URLs, Big Words outputs URLs, and the two compose seamlessly through this interface without any additional integration development. This "web tools as Unix commands" design thinking is experiencing a renaissance as AI-assisted programming becomes more widespread.
URL as interface: Encoding all configuration in URLs is an underrated design pattern that gives tools inherent shareability, bookmarkability, and embeddability.
For developers who frequently create presentations, Big Words offers a minimalist alternative — when all you need is a single large-text slide, there's no need to open PowerPoint.
Key Takeaways
- Big Words is a web tool that generates full-screen text slides via URL query parameters
- All configuration (text, colors, fonts, gradients, etc.) is encoded in the URL, achieving a stateless design
- The tool was rapidly developed using vibe coding to solve the specific need of a presentation tool that only accepts URL input
- It embodies the Unix design philosophy that composing small tools is better than building a single complex one
- Uses vmin units for responsive font sizing, implemented as a zero-dependency pure frontend solution
Related articles
Product ReviewsThe Programmer's Desk Setup Guide: Building a Workspace That Feels Like Home
Discover how programmers build productive, comfortable workspaces. From multi-monitor setups to ergonomic design, explore the desk philosophy that drives focus and flow.
Product ReviewsQoder vs Cursor Real-World Comparison: Which $20/Month AI IDE Is Better?
Hands-on comparison of Qoder vs Cursor AI IDEs: Agent autonomy, human interaction count, and architecture decisions. Qoder needed only 2 interactions vs Cursor's 8.
Product ReviewsCursor Cloud Agent Demo: Eliminating Bottlenecks Across the Entire Software Development Lifecycle
Deep analysis of Cursor's Cloud Agent demo showing how cloud VMs, automated test artifacts, and a full-chain control plane systematically eliminate human bottlenecks across the software development lifecycle.