WIO

jpeg

FILE_FORMAT

Evidence in r/webdev — Web Development

Trend support

New+0.2 pp
Current seven-day window
Current 2026-10-09 → 2026-10-15
Comparison seven-day window
Comparison 2026-10-02 → 2026-10-08
Distinct-document support
Seen in 5 current vs 0 comparison posts/comments
Mentions
7 current vs 0 mentions

“New” means absent from the comparison window — not new to the world or to Reddit.

Windows are complete UTC days compared with the preceding seven. How trends are measured.

Also Mentioned 28 times in the most-discussed range 2026-09-16 → 2026-10-16 — frequency, not a trend.

Attention over time

7-day rolling share of analyzed posts/comments mentioning this entity · 90 daily points ending 2026-10-15

Final complete day: 2026-10-15. Attention was 0.2% — this entity appeared in 5 of 2,852 analyzed posts/comments in the seven days ending that day (7 mentions).

0%1.0%Jul 18Aug 31Oct 15

Hover, touch, or focus the chart (Tab) and use the arrow keys — each point is one seven-day window.

View all 90 data points (semantic table)
Week endingSeven-day rangeStatusPrevalenceSeen inMentionsAnalyzed
2026-07-182026-07-12 → 2026-07-18Comparable0.2%6 of 3,08883,088
2026-07-192026-07-13 → 2026-07-19Comparable0.2%6 of 3,37283,372
2026-07-202026-07-14 → 2026-07-20Comparable0.2%6 of 3,20283,202
2026-07-212026-07-15 → 2026-07-21Comparable0.2%6 of 3,00283,002
2026-07-222026-07-16 → 2026-07-22Comparable0.2%6 of 2,70582,705
2026-07-232026-07-17 → 2026-07-23Comparable0.2%6 of 2,49182,491
2026-07-242026-07-18 → 2026-07-24Comparable0.0%1 of 2,48122,481
2026-07-252026-07-19 → 2026-07-25Comparable0.1%3 of 2,81042,810
2026-07-262026-07-20 → 2026-07-26Comparable0.1%3 of 2,67642,676
2026-07-272026-07-21 → 2026-07-27Comparable0.3%7 of 2,62282,622
2026-07-282026-07-22 → 2026-07-28Comparable0.3%8 of 2,73492,734
2026-07-292026-07-23 → 2026-07-29Comparable0.3%8 of 2,94692,946
2026-07-302026-07-24 → 2026-07-30Comparable0.3%8 of 3,16693,166
2026-07-312026-07-25 → 2026-07-31Comparable0.2%7 of 3,16873,168
2026-08-012026-07-26 → 2026-08-01Comparable0.2%5 of 3,08053,080
2026-08-022026-07-27 → 2026-08-02Comparable0.2%5 of 3,04853,048
2026-08-032026-07-28 → 2026-08-03Comparable0.0%1 of 3,17413,174
2026-08-042026-07-29 → 2026-08-04Comparable0.0%0 of 2,97702,977
2026-08-052026-07-30 → 2026-08-05Comparable0.0%0 of 2,43702,437
2026-08-062026-07-31 → 2026-08-06Comparable0.0%0 of 2,08302,083
2026-08-072026-08-01 → 2026-08-07Comparable0.0%0 of 2,11702,117
2026-08-082026-08-02 → 2026-08-08Comparable0.0%0 of 2,18402,184
2026-08-092026-08-03 → 2026-08-09Comparable0.1%1 of 2,16212,162
2026-08-102026-08-04 → 2026-08-10Comparable0.0%1 of 2,25212,252
2026-08-112026-08-05 → 2026-08-11Comparable0.0%1 of 2,38512,385
2026-08-122026-08-06 → 2026-08-12Comparable0.0%1 of 2,65812,658
2026-08-132026-08-07 → 2026-08-13Comparable0.0%1 of 2,89312,893
2026-08-142026-08-08 → 2026-08-14Comparable0.0%1 of 3,05213,052
2026-08-152026-08-09 → 2026-08-15Comparable0.0%1 of 2,92512,925
2026-08-162026-08-10 → 2026-08-16Comparable0.0%0 of 2,86802,868
2026-08-172026-08-11 → 2026-08-17Comparable0.0%0 of 2,98302,983
2026-08-182026-08-12 → 2026-08-18Comparable0.0%0 of 3,08903,089
2026-08-192026-08-13 → 2026-08-19Comparable0.0%0 of 3,16903,169
2026-08-202026-08-14 → 2026-08-20Comparable0.0%0 of 3,24003,240
2026-08-212026-08-15 → 2026-08-21Comparable0.0%0 of 3,27503,275
2026-08-222026-08-16 → 2026-08-22Comparable0.0%0 of 3,27003,270
2026-08-232026-08-17 → 2026-08-23Comparable0.0%0 of 3,26203,262
2026-08-242026-08-18 → 2026-08-24Comparable0.0%0 of 3,13103,131
2026-08-252026-08-19 → 2026-08-25Comparable0.0%0 of 2,93202,932
2026-08-262026-08-20 → 2026-08-26Comparable0.0%0 of 2,89602,896
2026-08-272026-08-21 → 2026-08-27Comparable0.0%0 of 2,74602,746
2026-08-282026-08-22 → 2026-08-28Comparable0.0%0 of 2,59402,594
2026-08-292026-08-23 → 2026-08-29Comparable0.0%0 of 2,09702,097
2026-08-302026-08-24 → 2026-08-30Comparable0.0%0 of 1,83901,839
2026-08-312026-08-25 → 2026-08-31Comparable0.0%0 of 1,41701,417
2026-09-012026-08-26 → 2026-09-01Comparable0.0%0 of 1,18301,183
2026-09-022026-08-27 → 2026-09-02Comparable0.0%0 of 7340734
2026-09-032026-08-28 → 2026-09-03Comparable0.0%0 of 3420342
2026-09-042026-08-29 → 2026-09-04Low coverage——05
2026-09-052026-08-30 → 2026-09-05Low coverage——00
2026-09-062026-08-31 → 2026-09-06Low coverage——00
2026-09-072026-09-01 → 2026-09-07Low coverage——00
2026-09-082026-09-02 → 2026-09-08Low coverage——00
2026-09-092026-09-03 → 2026-09-09Low coverage——00
2026-09-102026-09-04 → 2026-09-10Low coverage——00
2026-09-112026-09-05 → 2026-09-11Low coverage——00
2026-09-122026-09-06 → 2026-09-12Low coverage——00
2026-09-132026-09-07 → 2026-09-13Low coverage——00
2026-09-142026-09-08 → 2026-09-14Low coverage——00
2026-09-152026-09-09 → 2026-09-15Low coverage——00
2026-09-162026-09-10 → 2026-09-16Comparable0.5%2 of 3907390
2026-09-172026-09-11 → 2026-09-17Comparable0.3%2 of 6787678
2026-09-182026-09-12 → 2026-09-18Comparable0.3%3 of 1,19481,194
2026-09-192026-09-13 → 2026-09-19Comparable0.2%3 of 1,98381,983
2026-09-202026-09-14 → 2026-09-20Comparable0.1%3 of 2,27982,279
2026-09-212026-09-15 → 2026-09-21Comparable0.1%3 of 2,88582,885
2026-09-222026-09-16 → 2026-09-22Comparable0.1%3 of 3,33583,335
2026-09-232026-09-17 → 2026-09-23Comparable0.1%4 of 3,36743,367
2026-09-242026-09-18 → 2026-09-24Comparable0.1%4 of 3,42343,423
2026-09-252026-09-19 → 2026-09-25Comparable0.1%4 of 3,19943,199
2026-09-262026-09-20 → 2026-09-26Comparable0.2%5 of 2,81652,816
2026-09-272026-09-21 → 2026-09-27Comparable0.2%6 of 2,71872,718
2026-09-282026-09-22 → 2026-09-28Comparable0.2%6 of 2,71072,710
2026-09-292026-09-23 → 2026-09-29Comparable0.2%6 of 2,56972,569
2026-09-302026-09-24 → 2026-09-30Comparable0.2%4 of 2,36752,367
2026-10-012026-09-25 → 2026-10-01Comparable0.2%4 of 2,49252,492
2026-10-022026-09-26 → 2026-10-02Comparable0.1%3 of 2,63542,635
2026-10-032026-09-27 → 2026-10-03Comparable0.1%2 of 2,65232,652
2026-10-042026-09-28 → 2026-10-04Comparable0.0%1 of 2,85912,859
2026-10-052026-09-29 → 2026-10-05Comparable0.0%1 of 2,61912,619
2026-10-062026-09-30 → 2026-10-06Comparable0.0%1 of 2,71712,717
2026-10-072026-10-01 → 2026-10-07Comparable0.0%0 of 2,95002,950
2026-10-082026-10-02 → 2026-10-08Comparable0.0%0 of 2,78902,789
2026-10-092026-10-03 → 2026-10-09Comparable0.0%0 of 3,01503,015
2026-10-102026-10-04 → 2026-10-10Comparable0.0%0 of 3,14503,145
2026-10-112026-10-05 → 2026-10-11Comparable0.0%1 of 3,00813,008
2026-10-122026-10-06 → 2026-10-12Comparable0.1%3 of 2,96752,967
2026-10-132026-10-07 → 2026-10-13Comparable0.1%4 of 2,93862,938
2026-10-142026-10-08 → 2026-10-14Comparable0.2%5 of 2,85072,850
2026-10-152026-10-09 → 2026-10-15Comparable0.2%5 of 2,85272,852

Each point is a seven-day rolling window of complete UTC days; a point is comparable only when at least 100 analyzed posts or comments fall inside it. A day with no analyzed records counts as zero; missing coverage is marked and never shown as zero. The series ends at the latest complete analyzed day — it never extends into the current incomplete day. How attention is measured.

Recent mentions

  1. Comment

    Client-side compression is a solid choice here, and plenty of image-heavy apps do exactly this. A few things that made it work well for me: 1. Resize first, format second. Capping the long edge at \~2048px with quality around 0.8 does most of the work. A 12 MP phone photo usually ends up at 300–600 KB as JPEG, so WebP vs JPEG matters much less than people think. 2. Don't assume WebP encoding works everywhere. Call canvas.toBlob(cb, 'image/webp', 0.8) and check blob.type in the callback. If the browser silently gave you a PNG instead, fall back to 'image/jpeg'. That covers older Safari without any user-agent sniffing. 3. Upload straight to R2 with presigned URLs so the file never touches your Next.js server. Still enforce a max size on that side (e.g. reject anything over 2 MB). Never trust the client completely. 4. On Expo, expo-image-manipulator does the same resize + compress before upload. 5. Bonus for a P2P marketplace: re-encoding through canvas strips EXIF data, including GPS. Otherwise sellers can leak their home location in listing photos. If you later want fancier variants (thumbnails, crops), look at an on-the-fly image transformation service instead of doing it in your serverless functions. Check current pricing, but small volumes are often free or very cheap.

  2. Post

    .co.uk/ and .co.uk/index.html appear different depending on route taken - So basically, im running my web server on AWS lightsail, i wrote my own https server code and URL ending in .co.uk/ and .co.uk/index.html both direct to /index.html but when i go to .co.uk/ it appears smaller than if i was to type .co.uk/index.html and i cant figure out why. I have done all the usual scanning whats listening to ports 443 and 80 and its just the webindex.js file im talking about, so there is nothing else getting in the way, i already disabled PM2 since i run a different server that monitors my apps servers and kicks them back up via ssh when they go down. Anyway, i checked the main things, i just cant understand why its serving the webpage smaller when routing via .co.uk/ and .co.uk/index.html is the correct size/scale. const https = require('https'); const fs = require('fs'); const path = require('path'); const WebSocket = require('ws'); const mysql = require('mysql'); const { v4: uuidv4 } = require('uuid'); const { format } = require('date-fns'); const http = require('http'); // Load SSL key and certificate const privateKey = fs.readFileSync( path.join(__dirname, 'newcerts/key.key'), 'utf8' ); const certificate = fs.readFileSync( path.join(__dirname, 'newcerts/certificate.crt'), 'utf8' ); const credentials = { key: privateKey, cert: certificate }; // Helper function to serve static files const serveFile = (res, filePath, contentType) => { fs.readFile(filePath, (err, data) => { if (err) { console.error(`Error loading file ${filePath}:`, err); res.writeHead(500, { 'Content-Type': 'text/plain' }); return res.end('Error loading file'); } res.writeHead(200, { 'Content-Type': contentType }); res.end(data); }); }; // Redirect HTTP traffic to HTTPS http.createServer((req, res) => { const host = req.headers.host || 'localhost'; const url = req.url || '/'; res.writeHead(301, { Location: ` }); res.end(); }).listen(80, () => { console.log('HTTP server running on port 80, redirecting to HTTPS.'); }); // HTTPS server const server = https.createServer(credentials, (req, res) => { let pathname; try { let requestUrl = req.url || '/'; // Remove multiple leading slashes requestUrl = requestUrl.replace(/^ \/ +/, '/'); // Parse the request URL safely pathname = new URL( requestUrl, ` || 'localhost'}` ).pathname; } catch (err) { console.warn('Rejected malformed request:', req.url); res.writeHead(400, { 'Content-Type': 'text/plain' }); res.end('Bad Request'); return; } // Redirect the root URL to the main homepage if (pathname === '/') { res.writeHead(301, { Location: '/index.html' }); res.end(); return; } // Serve the main homepage if (pathname === '/index.html') { const htmlPath = path.join(__dirname, 'index.html'); serveFile(res, htmlPath, 'text/html'); // Serve app-ads.txt } else if (pathname === '/app-ads.txt') { const adsTxtPath = path.join(__dirname, 'app-ads.txt'); serveFile(res, adsTxtPath, 'text/plain'); // Serve privacy policy } else if (pathname === '/privacypolicy.html') { const privacyPolicyPath = path.join( __dirname, 'privacypolicy.html' ); serveFile(res, privacyPolicyPath, 'text/html'); // Serve FAQ } else if (pathname === '/faq.html') { const faqPath = path.join(__dirname, 'faq.html'); serveFile(res, faqPath, 'text/html'); // Serve contact page } else if (pathname === '/contactus.html') { const contactPath = path.join(__dirname, 'contactus.html'); serveFile(res, contactPath, 'text/html'); // Serve how it works page } else if (pathname === '/howitworks.html') { const howItWorksPath = path.join(__dirname, 'howitworks.html'); serveFile(res, howItWorksPath, 'text/html'); // Serve advertise with us page } else if (pathname === '/advertisewithus.html') { const advertisePath = path.join( __dirname, 'advertisewithus.html' ); serveFile(res, advertisePath, 'text/html'); // Serve sitemap } else if (pathname === '/sitemap.xml') { const sitemapPath = path.join(__dirname, 'sitemap.xml'); serveFile(res, sitemapPath, 'application/xml'); // Serve robots.txt } else if (pathname === '/robots.txt') { const robotsPath = path.join(__dirname, 'robots.txt'); serveFile(res, robotsPath, 'text/plain'); // Serve JPG images } else if (pathname.toLowerCase().endsWith('.jpg')) { const imagePath = path.join( __dirname, pathname.replace(/^ \/ +/, '') ); serveFile(res, imagePath, 'image/jpeg'); // Handle unknown routes } else { res.writeHead(404, { 'Content-Type': 'text/plain' }); res.end('Not Found'); } }); // Start HTTPS server const port = process.env.PORT || 443; server.listen(port, () => { console.log(`Server running at });

  3. Comment

    Worth noting the decoder is jxl-rs, a pure Rust implementation, which I suspect did a lot of the work in making the security case for a new codec in the renderer. Practically I'd treat it as one more `<picture>` source rather than an AVIF replacement: the Chrome post itself recommends testing both, with JXL most useful for high-fidelity, lossless, or progressive cases, and lossless JPEG recompression is the low-risk place to start for an existing photo library.

  4. Comment

    I love the idea of JPEG XL and I'm already testing the savings vs an oxipng compression pass in a project that requires lossless images, but we have to admit that the name is so bad that it's hurting adoption and causing misunderstandings like this for anyone seeing it for the first time. Devs see "JPEG" and think of blocky compression artifacts. End users see "XL" and think about the bandwidth or storage requirements on their mobile device vs "normal JPEG". I really believe that the name has set adoption back years. If Apple was involved in the branding and called the format something like "Magic Pix Pro (.mpix)", it probably wouldn't have taken this much time to get where we are now.

  5. Comment

    It's smaller than existing files... > It offers 30-50% better compression than JPEG, lossless compression, built-in HDR support, lossless JPEG transcoding, and more.

Excerpts above are public Reddit posts and comments. WIO never synthesizes Reddit URLs from stored ids, and entities are extracted automatically and may be wrong. See the extraction notes and the limitations and privacy section of the methodology.