|
| 1 | +title = "Hello World" |
| 2 | +date = "2025-10-30T12:00:00Z" |
| 3 | +template = "blog_post" |
| 4 | +description = "This is a hello world blog post with example contents and formatting references." |
| 5 | + |
| 6 | +[extra] |
| 7 | +author = "Michelle Dhanani" |
| 8 | +type = "post" |
| 9 | + |
| 10 | +--- |
| 11 | + |
| 12 | +This is the beginning of our community blog. Welcome to the Spin Framework Community! This introductory paragraph demonstrates how body text appears with our new Medium-inspired typography. The comfortable 18px font size and 1.58 line height create an optimal reading experience. |
| 13 | + |
| 14 | +Typography is the craft of endowing human language with a durable visual form. When done well, it enhances the reading experience without drawing attention to itself. Our new blog layout emphasizes readability through thoughtful spacing, appropriate font sizes, and a narrow reading pane that prevents eye strain. |
| 15 | + |
| 16 | +## Understanding Typography Fundamentals |
| 17 | + |
| 18 | +Good typography serves the content. It's not about making things look "designed" but about creating a seamless reading experience. The key principles include proper hierarchy, consistent spacing, and appropriate line length. Research suggests that lines between 50-75 characters are optimal for reading comfort. |
| 19 | + |
| 20 | +### The Importance of Hierarchy |
| 21 | + |
| 22 | +Headings establish visual hierarchy and help readers scan content quickly. Notice how this H3 heading is smaller than the H2 above, creating a clear content structure. Each level should be visually distinct but harmonious with the overall design. |
| 23 | + |
| 24 | +#### Fourth Level Headings |
| 25 | + |
| 26 | +Even at the fourth level, headings maintain the typographic rhythm. They're smaller still, but remain bold and clear, guiding readers through nested sections of content. |
| 27 | + |
| 28 | +## Working with Lists |
| 29 | + |
| 30 | +Lists are essential for organizing information. Here's an unordered list demonstrating proper spacing and readability: |
| 31 | + |
| 32 | +- **WebAssembly** enables running compiled code at near-native speed in web browsers |
| 33 | +- **Spin Framework** provides a lightweight runtime for building and deploying WebAssembly applications |
| 34 | +- **Component Model** standardizes how WebAssembly modules communicate and share functionality |
| 35 | +- **WASI** (WebAssembly System Interface) allows Wasm to interact with system resources safely |
| 36 | + |
| 37 | +Ordered lists work equally well for sequential information: |
| 38 | + |
| 39 | +1. First, install the Spin CLI on your development machine |
| 40 | +2. Create a new Spin application using `spin new` |
| 41 | +3. Write your application logic in your preferred language |
| 42 | +4. Build the application with `spin build` |
| 43 | +5. Deploy locally with `spin up` or to Fermyon Cloud |
| 44 | + |
| 45 | +Nested lists maintain proper indentation: |
| 46 | + |
| 47 | +- Backend technologies |
| 48 | + - Go provides excellent performance for system-level programming |
| 49 | + - Rust ensures memory safety without garbage collection |
| 50 | + - Python offers rapid development and extensive libraries |
| 51 | +- Frontend frameworks |
| 52 | + - Vue.js for progressive web applications |
| 53 | + - React for component-based UIs |
| 54 | + - Svelte for compiled, lightweight applications |
| 55 | + |
| 56 | +## Code Examples |
| 57 | + |
| 58 | +Inline code like `spin build` or `const greeting = "Hello World"` integrates seamlessly with body text. For longer examples, code blocks provide syntax highlighting: |
| 59 | + |
| 60 | +```rust |
| 61 | +use spin_sdk::{ |
| 62 | + http::{Request, Response}, |
| 63 | + http_component, |
| 64 | +}; |
| 65 | + |
| 66 | +#[http_component] |
| 67 | +fn handle_request(req: Request) -> Response { |
| 68 | + Response::builder() |
| 69 | + .status(200) |
| 70 | + .header("content-type", "text/plain") |
| 71 | + .body("Hello, World!") |
| 72 | + .build() |
| 73 | +} |
| 74 | +``` |
| 75 | + |
| 76 | +Here's a JavaScript example: |
| 77 | + |
| 78 | +```javascript |
| 79 | +async function fetchData(url) { |
| 80 | + try { |
| 81 | + const response = await fetch(url); |
| 82 | + const data = await response.json(); |
| 83 | + return data; |
| 84 | + } catch (error) { |
| 85 | + console.error('Error fetching data:', error); |
| 86 | + throw error; |
| 87 | + } |
| 88 | +} |
| 89 | +``` |
| 90 | + |
| 91 | +And a command-line example: |
| 92 | + |
| 93 | +```bash |
| 94 | +# Install Spin |
| 95 | +curl -fsSL https://developer.fermyon.com/downloads/install.sh | bash |
| 96 | + |
| 97 | +# Create a new application |
| 98 | +spin new http-rust my-app |
| 99 | +cd my-app |
| 100 | + |
| 101 | +# Build and run |
| 102 | +spin build |
| 103 | +spin up |
| 104 | +``` |
| 105 | + |
| 106 | +## Blockquotes for Emphasis |
| 107 | + |
| 108 | +Blockquotes highlight important information or quotations: |
| 109 | + |
| 110 | +> The best way to predict the future is to invent it. This principle applies perfectly to WebAssembly and the Spin Framework—we're not just waiting for the future of serverless, we're building it today. |
| 111 | +
|
| 112 | +Longer blockquotes maintain readability: |
| 113 | + |
| 114 | +> Typography exists to honor content. When text is beautifully presented, readers engage more deeply with ideas. The Medium platform understood this intuitively, creating a reading experience that prioritized comfort and clarity over flashy design. Our blog adopts these same principles. |
| 115 | +
|
| 116 | +## Links and References |
| 117 | + |
| 118 | +Links should be [clearly marked and understandable](https://developer.fermyon.com) in context. Learn more about [Spin Framework](https://github.com/fermyon/spin) or explore the [WebAssembly specification](https://webassembly.org/). |
| 119 | + |
| 120 | +## Emphasis and Strong Text |
| 121 | + |
| 122 | +Use *italic emphasis* for subtle highlighting and **bold text** for stronger emphasis. Combine them ***sparingly*** for maximum impact. The key is restraint—too much emphasis dilutes its effectiveness. |
| 123 | + |
| 124 | +## Tables for Data |
| 125 | + |
| 126 | +| Language | Spin Support | Compile Target | Use Case | |
| 127 | +|----------|--------------|----------------|----------| |
| 128 | +| Rust | Excellent | wasm32-wasi | Systems programming, high performance | |
| 129 | +| Go | Good | wasm32-wasi | Network services, APIs | |
| 130 | +| JavaScript | Good | SpiderMonkey | Familiar syntax, quick prototyping | |
| 131 | +| Python | Experimental | wasm32-wasi | Data processing, scripting | |
| 132 | + |
| 133 | +## Horizontal Rules |
| 134 | + |
| 135 | +Use horizontal rules sparingly to separate major sections: |
| 136 | + |
| 137 | +--- |
| 138 | + |
| 139 | +## Images and Media |
| 140 | + |
| 141 | +Images enhance content when used purposefully. They should support the narrative rather than distract from it. Captions provide context and attribution. |
| 142 | + |
| 143 | +## Conclusion |
| 144 | + |
| 145 | +Great typography isn't about following strict rules—it's about understanding principles and applying them thoughtfully. Our blog design prioritizes readability through careful attention to font size, line height, line length, and spacing. The result is a comfortable reading experience that lets the content shine. |
| 146 | + |
| 147 | +Whether you're writing about WebAssembly, serverless computing, or web development, these typographic foundations ensure your message reaches readers clearly and effectively. Welcome to the Spin Framework community blog—we're excited to share ideas, tutorials, and insights with you. |
0 commit comments