SShortSingh.
Back to feed

Developer shares lessons from building a path-based static hosting platform

0
·31 views

A developer built a static hosting service called Plopino that serves user boards under URL paths rather than subdomains, avoiding wildcard certificates and per-board DNS setup. Key challenges included correctly handling relative URLs in user-uploaded HTML, where root-relative links could accidentally point to the host site's own file space. File uploads required careful encoding logic to support folder drags and international filenames, particularly for Chinese-locale machines using GB18030 encoding. Thumbnails and Office document previews were handled through persistent worker pools and a single headless Chromium instance to avoid performance bottlenecks. The platform also supports 20 languages including RTL scripts, with automated tests enforcing translation key order, placeholder consistency, and BCP-47 language tag validity.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingHacker News ·

Amazon Reports Millions in Savings After Replacing Sonnet 4.6 with Strands Decider

A blog post on the Strands Agents site reports that Amazon saved millions of dollars by replacing Anthropic's Claude Sonnet 4.6 model with a system called Strands Decider. The article is linked from a Hacker News discussion that had gathered 14 points and 3 comments at the time of capture. The available text consists only of the post's URL and Hacker News metadata, so details of how the replacement works and how savings were measured are not confirmed here. Readers would need to consult the original blog post for specifics on the technical approach and reported figures.

0
ProgrammingDEV Community ·

Managed database backups versus object storage for SaaS data recovery

An edtech SaaS storing lessons, grading exports, and archives can split backups between a managed database service and private object storage. Managed Postgres or MySQL backups suit point-in-time rollback, while dump files in object storage suit cheap long-term retention and inspectable restores. Object storage holds most of the bytes in large media packages, while the database dump identifies which tenant, course, and artifact belong together. Object-based restores require more manual steps such as locating prefixes, verifying checksums, and reconnecting references, which adds operational cost. The article recommends choosing the recovery primitive first, based on whether the requirement is point-in-time restoration or retrieving an archived training package.

0
ProgrammingDEV Community ·

Firefox Extensions Aim to Cut Browser Distraction and Support Digital Wellbeing

A DEV Community post argues that browsers are a major source of digital distraction, since news feeds, social media, and infinite scroll are built to hold attention rather than support productive work. It proposes Firefox extensions for a more intentional setup, such as a news widget that shows only user-chosen RSS feeds and a daily planner that replaces the default new tab. Other tools described include a habit tracker for monthly goals, NightOwl for automatic dark mode at sunset to ease evening screen exposure, and a Tab Manager that saves and closes tabs to reduce clutter. The author also suggests Voice Notes as a way to capture ideas on the computer instead of reaching for a phone.

0
ProgrammingDEV Community ·

Django 6.1's FETCH_PEERS recovers most lost queries but not all hand-tuned ones

A developer tested Django 6.1's FETCH_PEERS fetch mode on their football quiz site, ExtraTime, across 467 routes and 3,963 requests. Removing all select_related calls raised total queries from 59,198 to 76,144, and enabling FETCH_PEERS recovered about 69% of that increase. The mode helped most on endpoints loading many objects that share the same relations, such as one that gained a large speedup, yet it did nothing on 115 routes that handle single objects or use iterators. The admin's group page also showed no improvement, because form choice fields call iterator(), which turns the mode off in practice. The author concluded that FETCH_PEERS is useful but cannot fully replace explicit select_related and prefetch_related tuning.