NotesYou select the Preact stuff you want in your build, and whether youâd like to use ES modules or an IIFE. The tool spits out a file you can host locally and instructions on how to use it.FeedUnfurl
NotesAmazon S3 can now perform conditional writes that evaluate if an object is unmodified before updating it. This helps you coordinate simultaneous writes to the same object and prevents multiple concurrent writers from unintentionally overwriting the object without knowing the state of its content. You can use this capability by providing the ETag of an object using S3 PutObject or CompleteMultipartUpload API requests in both S3 general purpose and directory buckets.Unfurl
NotesBased on the work already done by Emily Liu and Samuel Newman, a straightforward (re)implementation of their commenting systems for static sites (tomcreighton.com is compiled offline and hosted on Github Pages, for example) using plain olâ HTML and JS. Unfurl
NotesSince octothorpes get registered with an Octothorpes Ring, that means youâre automatically on a webring if youâre using octothorpes. So each Ring hosts a web component that lets you put a classic webring browser on your page. You can see it working right now in the footer of this site!Unfurl
NotesWhen I mentor early career developers and they ask me what they should learn, I can't say React, they don't have time. I mean sure, pick up enough React to land you the inevitable job doing it, but it's not going to level up your career. Anyone with $5,000-$10,000 can make their way through a bootcamp and scrape their way through an interview, but it's a competitive market and it's usually quite evident when your interviewing a bootcamp candidate. Stand out by picking up some more fundamentalsFeedUnfurl
NotesOur systems do not need to be high-maintenance, intensive on resources and energy needs. They donât have to answer every request with availability and latency that measures up to however many nines or zeroes are the current industry standard. They have to attend to the needs of those who are using them, which can be much less demanding. We can run both infrastructure and software at more human scales and learn other ways of growing or shrinking, and we can also scale to high performance and availability too. This is what the concept of a network enables after all, but it is often used to centralize and create dependency instead.FeedUnfurl
NotesThis document defines the syntax and semantics of the Do-Not-Stab header, a proposed HTTP header that allows users to indicate to a website their preferences about being stabbed. It also provides a standard for how services should comply with such user preferences, if they wish to.FeedUnfurl
NotesWebVM is a server-less virtual environment running fully client-side in HTML5/WebAssembly. It's designed to be Linux ABI-compatible. It runs an unmodified Debian distribution including many native development toolchains.
WebVM is powered by the CheerpX virtualization engine, and enables safe, sandboxed client-side execution of x86 binaries on any browser. CheerpX includes an x86-to-WebAssembly JIT compiler, a virtual block-based file system, and a Linux syscall emulator.Unfurl
NotesFrom Chrome 131 you have more options to style the structure of <details> and <summary> elements. You can now use these elements when building disclosure or accordion widgets.Unfurl
NotesThe Speculation Rules API is designed to improve performance for future navigations. It targets document URLs rather than specific resource files, and so makes sense for multi-page applications (MPAs) rather than single-page applications (SPAs).FeedUnfurl
NotesTelegram is pushing a new 2.0 update for its in-app âmini-appsâ that allows them to run full screen, enables developers to add subscription plans, allows gift sending from mini-apps, lets you add the apps to your homescreen, and more.FeedUnfurl
NotesI like writing Javascript without a build system and for the millionth time yesterday I ran into a problem where I needed to figure out how to import a Javascript library in my code without using a build system, and it took FOREVER to figure out how to import it because the libraryâs setup instructions assume that youâre using a build system.FeedUnfurl
NotesEffect is a powerful library for TypeScript developers that brings functional programming techniques into managing effects and errors. It aims to be a comprehensive utility library for TypeScript, offering a range of tools that could potentially replace specialized libraries like Lodash, Zod, Immer, or RxJS.FeedUnfurl
NotesHave a personal domain, put a CMS behind it, use that for publishing static pages, use subdomains of it for standalone services, and register new domains only when you need to. I think this kind of strategy is inherent in the idea of having âyour own domainâ, and a lot of people follow it to a greater or lesser degree, but I wanted to spell it out fully to make it clear to myself how I would deal with different circumstances.FeedEmbedUnfurl
NotesWeb Applets are small, secure pieces of web code (bundles of HTML, JavaScript, and CSS) that can run anywhere, allowing a model to take actions within software much like a human would and then generate interfaces appropriate for the userâs intent. For example, a developer could write an applet that enables a model to respond to a query about local coffee shops by conducting internet searches and then displaying the results on an in-line map. And because the model can read the internal state of each applet, it can then conduct follow-up actions to complete a userâs request (for example, updating the map to display only coffee shops that will be open tomorrow afternoon). Anyone can build Web Applets and host them on the Web, and any client can potentially support them.Unfurl
NotesBy enforcing the lack of local state, we can ensure that state lives somewhere more appropriate - a queue, a database, an object store and so on. This makes coordination significantly easier - shared-nothing services can be thrown away, scaled up and down without having to worry about state.FeedUnfurl
Notesletâs spend some time looking at disclosures (<details> and <summary>), the Dialog API, the Popover API, and more. Weâll look at the right time to use each one depending on your needs. Modal or non-modal? JavaScript or pure HTML/CSS? Not sure? Donât worry, weâll go into all that.FeedEmbedUnfurl
NotesAt Storybook, we believe thereâs still hope. For months weâve been building Storybook Test, a tool for fast, flake-free UI tests. And weâre finally ready to share it with you.FeedUnfurl
NotesI know I have a tendency to classify anything I love as "Punk", in the same way a child calls any tall, nice-smelling presence "Mom", BUT! I feel like homemade websites are a type of Punk. And I know it feels premature to say that basic HTML competency is a type of folk craft, but I'm not sure what else to call it.Unfurl
NotesGenerators are an odd part of the JavaScript language. And some people find them a bit of a puzzle. You might be a successful developer for decades and never feel the need to reach for them. Which raises the question, if you can go so long without ever needing them, what are they good for?FeedUnfurl
NotesHTML Forms have powerful validation mechanisms, but they are heavily underused. In fact, not many people even know much about them. Is this because of some flaw in their design? Letâs explore. Unfurl
NotesInterestingly, all of the things that used to annoy me about Ruby and Rails now annoy me much, much, much less. I have accepted that there is no perfect language or framework. You just have to know its strengths and weaknesses and deal with them. Luckily, there are some really good frameworks out there for people who want to focus on building a good product. I think Rails is probably one of the best, but there are a lot of other long-lived frameworks with lots of active contributors that are probably just as good. It might still be worth it to choose a more exotic language, framework or to dive in and write your own. If only for the opportunity to learn these kinds of lessons on your own.Unfurl
NotesIâve used URL text fragments in a few posts now and often use it outside of this blog to point someone to a particular piece of text on a page. Theyâre a really useful feature that allows you to create a URL that links not just to a page or an anchor on that page, but specifically to a bit of text that youâd like to call out to your audience.
NotesGatus was made to monitor everything, in every possible way. HTTP, GraphQL, DNS, ICMP/PING, TCP, certificate expiration, you name it. While checking the response status may be enough for some use cases, Gatus goes much further and allows you to add conditions on the response time, the response body and even the IP address.Unfurl
Notesmy personal website runs on a bespoke dynamic site generator i coded from scratch. but why? what lead me to designing and programming it? what can you do with it? and how can it be transformed into a tool for everyone to use? a deep dive into Deer Text Format, why it exists, and what lies in its future.Unfurl
NotesStarSubculture is an online community space where creatives can showcase their websites and art and interact with a like-minded community as well as keep up with their favorite artists and websites!
In this era of the internet, itâs become near-impossible to connect to other creative website owners. Here at StarSubculture, youâre free to cultivate that community that the internet is so desperately needing.FeedEmbedUnfurl
NotesThe creation of web forms has always been a complex task. While marking up the form itself is easy, checking whether each field has a valid and coherent value is more difficult, and informing the user about the problem may become a headache. HTML5 introduced new mechanisms for forms: it added new semantic types for the <input> element and constraint validation to ease the work of checking the form content on the client side. Basic, usual constraints can be checked, without the need for JavaScript, by setting new attributes; more complex constraints can be tested using the Constraint Validation API.FeedUnfurl
NotesIf youâve visited my actual website, rather than reading by email or whatever, such as reading this very post, you may notice somebody elseâs cursor pass by as youâre reading.FeedUnfurl
NotesSometimes Litestream can be overkill for projects with a small database that do not have high durability requirements. In these cases, it may be more appropriate to simply back up your database daily or hourly. This approach can also be used in conjunction with Litestream as a fallback. You can never have too many backups!Unfurl
NotesFor Clace, the decision was made to use SQLite for app files storage instead of using the file system. The reasoning was mainly to be able to do atomic version changes. When updating an app, since there could be lots of files being updated, using a database would allow all changes to be done atomically in a transaction. This would prevent broken web pages from being served during a version change.Unfurl
NotesHistorically, we could link to a certain part of the page only if that part had an ID. All we needed to do was to link to the URL and add the document fragment (ID). If we wanted to link to a certain part of the page, we needed to anchor that part to link to it. This was until we were blessed with the Text fragments!Unfurl
NotesBlogging is the slow game, done sporadically over decades. Tags and categories help organize your work within itself, but hashtags let you develop a subject alongside the rest of your community.FeedUnfurl
NotesOn the internet, there is a clear social understanding of hashtags. If we create web rings for hashtags, we can use that to connect arbitrary web pages that add those hashtags to their content. This will allow us to create hashtag aggregation pages (like those on Twitter or Mastodon) that cross platform boundaries. The web ring will act as a community library that people can contribute to, filing their posts and articles and resources where they feel they fit.FeedUnfurl
NotesBecause this system has no moving parts, and itâs just files on a disk, I hope it will last a long time. Iâve already migrated a lot of my files to this approach, and Iâm pleased with how itâs going. I get all the simplicity and portability of a file full of folders, with just a bit of extra functionality sprinkled on top.FeedUnfurl
NotesIn this job we need to think a lot about the tools we choose and why, so I cataloged all the places where web components (for me) feel like âthe right tool for the jobâ. Your list may be different and Iâd love to read it. And because I donât want this to be 100% propaganda, Iâll also cover some of the not-so-great parts of web components as well.FeedUnfurl
NotesWeâre building a general-purpose sync engine for the web. You put Zero in front of your existing database or web service, and we distribute your backend all the way to main thread of the UI.Unfurl
NotesNekoweb is a free static website hosting service, created in 2022 2023 2024 by a group of coders, programmers and artists, passionate for the old web and personal websites.
Social media is too limiting. We believe that everyone should be able to freely express themselves in their own little corner of the web, without having to worry about things like algorithms, tracking, or advertisements. Unfurl
Notes Default parameter values have been in JavaScript for a while. But I just found out you can use sibling parameters as the default values themselves. FeedUnfurl
NotesA simple JavaScript library to help you quickly identify unseemly images; all in the client's browser. NSFWJS isn't perfect, but it's pretty accurate (~90% with small and ~93% with midsized model)... and it's getting more accurate all the time.Unfurl
NotesMany users prefer to use an RSS feed reader to stay up to date with the content on the websites they visit. But if you've enabled Cloudflare on your website, you're likely blocking these RSS users from accessing your website content without realizing it.FeedUnfurl
NotesA set of reactive controllers that facilitate using the platform observer objects, including:
MutationObserver
ResizeObserver
IntersectionObserver
PerformanceObserverUnfurl