|
6 | 6 | <title>Diff Poster — paste a diff, get a shareable image</title> |
7 | 7 | <meta |
8 | 8 | name="description" |
9 | | - content="Paste a before/after code snippet and get a single beautiful, shareable diff image. No login, no export dialog." |
| 9 | + content="Paste a before/after code snippet and get a single clean, shareable image of just the change: token-level diff, sized for social, no login." |
| 10 | + /> |
| 11 | + <meta property="og:type" content="website" /> |
| 12 | + <meta property="og:title" content="Diff Poster — paste a diff, get a shareable image" /> |
| 13 | + <meta |
| 14 | + property="og:description" |
| 15 | + content="Turn a before/after code snippet into one clean, share-sized image that highlights exactly which tokens changed. Runs in your browser, no login." |
10 | 16 | /> |
11 | 17 | <link |
12 | 18 | rel="icon" |
@@ -73,7 +79,7 @@ <h1 class="wordmark">Diff<span class="wordmark-accent">Poster</span></h1> |
73 | 79 | </button> |
74 | 80 | </div> |
75 | 81 | <p class="privacy-note"> |
76 | | - Everything runs in your browser — nothing is uploaded or stored. |
| 82 | + Everything runs in your browser. Nothing is uploaded or stored. |
77 | 83 | </p> |
78 | 84 | </section> |
79 | 85 |
|
@@ -102,6 +108,80 @@ <h1 class="wordmark">Diff<span class="wordmark-accent">Poster</span></h1> |
102 | 108 | </section> |
103 | 109 | </main> |
104 | 110 |
|
| 111 | + <section class="about" aria-label="About Diff Poster"> |
| 112 | + <div class="about-col"> |
| 113 | + <h2 class="about-heading">Share a code change, not a screenshot</h2> |
| 114 | + <p> |
| 115 | + Diff Poster turns a before/after snippet into a single clean image |
| 116 | + of just the change. Paste the original code in one pane and the |
| 117 | + edited code in the other, pick the language, and it renders a |
| 118 | + token-level diff styled like a tidy editor window, sized 1200×675 |
| 119 | + for Twitter, Bluesky, and Slack previews. Copy it to your clipboard |
| 120 | + or download the PNG. The tokenizing, diffing, and image rendering |
| 121 | + all happen in your browser; nothing is uploaded. |
| 122 | + </p> |
| 123 | + |
| 124 | + <h2 class="about-heading">Why token-level, not line-level</h2> |
| 125 | + <p> |
| 126 | + Most diff screenshots paint a whole changed line red or green. When |
| 127 | + you rewrite <code>return 'hi ' + name;</code> as |
| 128 | + <code>return `hello, ${name}!`;</code>, a line diff just says "this |
| 129 | + line changed" and hides what actually changed. Diff Poster diffs at |
| 130 | + the token level (identifiers, operators, literals, strings), so |
| 131 | + only the swapped tokens are marked. The reader sees the exact |
| 132 | + substitution, which is the whole reason to share the change. |
| 133 | + </p> |
| 134 | + |
| 135 | + <h2 class="about-heading">How to use it</h2> |
| 136 | + <ol class="about-steps"> |
| 137 | + <li>Paste the original code into Before, the edited code into After.</li> |
| 138 | + <li>Choose JavaScript, Python, or plain text for syntax coloring.</li> |
| 139 | + <li>Click Generate image.</li> |
| 140 | + <li>Copy the image to your clipboard, or download the PNG.</li> |
| 141 | + </ol> |
| 142 | + </div> |
| 143 | + |
| 144 | + <div class="about-col"> |
| 145 | + <h2 class="about-heading">FAQ</h2> |
| 146 | + <dl class="faq"> |
| 147 | + <dt>Is my code uploaded anywhere?</dt> |
| 148 | + <dd> |
| 149 | + No. Every step runs in your browser. There is no backend and |
| 150 | + nothing is stored; close the tab and nothing is kept. |
| 151 | + </dd> |
| 152 | + |
| 153 | + <dt>Which languages are supported?</dt> |
| 154 | + <dd> |
| 155 | + Syntax coloring covers JavaScript and Python, plus a plain-text |
| 156 | + mode for anything else. The diff itself is language-agnostic, so |
| 157 | + plain text still highlights exactly which tokens changed. |
| 158 | + </dd> |
| 159 | + |
| 160 | + <dt>How big can a snippet be?</dt> |
| 161 | + <dd> |
| 162 | + It is built for function-sized changes, not whole files. A very |
| 163 | + large paste shows a size notice instead of freezing the tab, and |
| 164 | + a long snippet scales down or shows a "+N more lines" marker |
| 165 | + rather than cropping silently. |
| 166 | + </dd> |
| 167 | + |
| 168 | + <dt>What size is the image?</dt> |
| 169 | + <dd> |
| 170 | + 1200×675 pixels, the 16:9 frame Twitter, Bluesky, and Slack use |
| 171 | + for previews, rendered at your screen's pixel density so it stays |
| 172 | + crisp on retina displays. |
| 173 | + </dd> |
| 174 | + |
| 175 | + <dt>Can I copy straight to my clipboard?</dt> |
| 176 | + <dd> |
| 177 | + Yes, where the browser supports image clipboard writes. Where it |
| 178 | + doesn't, the Copy button is clearly disabled and Download PNG |
| 179 | + always works. |
| 180 | + </dd> |
| 181 | + </dl> |
| 182 | + </div> |
| 183 | + </section> |
| 184 | + |
105 | 185 | <footer class="site-footer"> |
106 | 186 | <a class="footer-cta" href="https://github.com/ctkrug/diff-poster"> |
107 | 187 | View on GitHub |
|
0 commit comments