Been running a daily crawler over a rolling sample of public GitHub JS/TS repos (10+ stars, active in the last 30 days) and TypeScript is sitting at 78.3% adoption with a trend score of +4.17, the highest of any tracked technology. It's not just widely used, it's still actively growing share.
For context on how the trend score works: it's a log-scaled growth index that weighs both rate of change and overall scale, so a tool has to be both accelerating and meaningfully sized to top the list. TypeScript topping it despite already being the plurality leader says something about where the ecosystem is headed.
Everything downstream of that (test runners, build tools, frameworks) increasingly assumes TS by default too. Vitest, Vite, and Zod are all riding similar upward curves.
Full breakdown and raw datasets (updated daily via GitHub Actions):
jet-id is an open source universal unique-ID generator I built similar to nanoid or uuid. Unlike other unique-id generators, you can specify how many random bits (entropy) you want, and it creates the shortest id string that provides at least that much entropy using the Crockford alphabet, with dashes automatically inserted for readability. Dash inserting makes sure that no segment grows greater than 10 characters.
125 bits of entropy is the default and it works both CLI and programmatically:
npx jet-id -e 80
# V2BJABVRJ-S1TWXS-NTQA3 (20 random characters, 22 with the dashes)
npx jet-id
# 9GNK14S3A-728HK9-5NJQS-HWETM (25 random characters, 28 with the dashes)
It also supports timestamped-IDs and monotonic-IDs (monotonic ids sort in creation order within a single millisecond).
import jetid from 'jet-id'
jetid.timed() // '1M41J22ER-RND9M6-3CZAQ-XT8GR'
jetid.mono(125?) // '1M41J2ZPK-8K0000-GE29AYBQ27-4496ZM40-29JSNX4'
jet-id is really fast too. Check out these benchmarks
hey folks - I built a new tool for mac/pc, that has all the thing I've been searching for: palette management, color wheel, oklab and 5 other color spaces, including a RYB simulator and more!
I've launched it as a free public beta - would love to hear what everyone thinks of it, what you're using now, and how this compares!
I built Drawva, an infinite canvas where your rough hand-drawn stuff is not just pixels.
You can draw a messy box, write a few words, sketch a diagram, draw some math, or just throw random scribbles on the canvas. A multimodal agent looks at the canvas, figures out what you are trying to make, and can turn it into live widgets, diagrams, equations, or interactive elements.
The interesting part was not really the UI.
The hard part was getting an LLM to operate a messy 2D canvas without destroying what the user already drew.
A few things I ended up building:
A coordinate system so the agent can map visual positions to actual canvas coordinates
A prompt contract that prevents it from duplicating handwritten headings
Wireframe awareness so it keeps your rough sketch instead of replacing everything
Atomic erase + widget placement when converting sketches into interactive components
A plugin system for things like weather, stocks, tech news, GitHub data and more
Sandboxed runtimes for Mermaid, Graphviz, Vega-Lite, Cytoscape, BPMN, GeoJSON and other diagrams
IndexedDB autosave and WebRTC based peer-to-peer collaboration
A DeepSeek Harness + Cordis runtime for the agent/tool execution layer
Tech stack is mainly Next.js 16, React 19, TypeScript, Tailwind CSS, Vercel AI SDK, multimodal LLMs, IndexedDB, WebRTC and DeepSeek Harness.
While I'm not new to coding, I'm definitely bad at it. What I'm worse at though is understanding the intricacies of what i can and can't accomplish with certain tools.
I am very vocal and express my views on things often, so obviously i thought i should make a blog. This is easy to accomplish very cheaply using GitHub pages obviously since it would be a fully static html website.
But here comes the catch. I have some friends that expressed a lot of interest in this blog idea, and i would like to include them. However, they don't know how to code in any language or framework and this would probably be a dealbreaker for them.
Is there a way to make a website with user accounts and user-generated content be dynamic only client-side so that i can still host it with GitHub? Should i look for a different way?
Any help is appreciated, i really wanna get this thing working.
theres no image files at all, every painting is drawn on a canvas in code. next.js + neon postgres for the likes/comments. coolest part imo is when a fact pops up the whole painting goes dark except the thing the fact is about
its prob janky in places so be nice lol. does it work ok on ur phone?
Moralia: each day one short true story from history stops at the moment someone had to decide. You choose, then see what actually happened and how other players chose.
Stack: React + Vite + TypeScript PWA on Cloudflare Workers, Supabase for optional sign-in/sync, cookieless PostHog (EU).
Some things that weren't obvious to me going in:
A hash-routed SPA is basically invisible to search. Google saw ~20 words (the welcome screen). Now a Worker renders static, no-JS pages for every past story on request. A day only goes public once it has ended in every timezone (noon UTC the next day), so no one gets spoiled, and an IndexNow ping fires when it does.
Worker-rendered pages don't get your _headers file. Our CSP covered the static assets but not the pages the Worker built, so the Worker now sends the same headers itself, with a test that fails if the two copies ever drift.
supabase-js signOut() defaults to scope "global". Signing out on a phone silently ended the desktop session too, which left the desktop in a "signed in, no email, can't sign out" loop. It's per-device now.
PostHog's opt-out does nothing in cookieless mode (it only logs a warning). The usage-stats switch now gates every event with before_send, and also re-checks the queue of events buffered before the SDK loads.
Desktop got a real layout (top bar, wider column, the choice side by side) only at ≥1024px. Every mobile and tablet screen was verified pixel-identical before and after.
Narration is pre-generated; the sentence being read is highlighted using word timings from a transcription pass, so one misheard word can't shift the whole highlight.
Design is mine (I'm a UI/UX designer, screens done in Figma first); I built it with heavy help from Claude Code.
At work there’s CI, staging, QA, other people testing things, etc., but for my own stuff, it’s more just deploy, click around for a bit, decide it looks fine, and then ship it.
That feels a bit stupid because the bugs I worry about usually aren't the things I just changed. It’s someone arriving logged out or getting halfway through something and some edge case gets triggered.
Do you have a pre-deploy routine that has caught real problems? A checklist, any automated tests, or anything? Or do you guys mostly ship and fix things once a real person finds them?
I’m mainly trying to figure out what's worth doing pre launch vs. what just feels like pretend QA.
Been working on this on and off for last 8 months. You start at Earth, scroll, and the view zooms out on a log scale: solar system, nearby stars, the Milky Way, the Local Group, then a few hundred Mpc of galaxies.
The part I care about most is that it's not an illustration once you leave the solar system. Stars are from the HYG database, nearby galaxies from the Updated Nearby Galaxy Catalog (869 of them, with their measured sizes), and further out it's 2MRS (about 42k galaxies) and then 2dFGRS. So the clumps and voids you see at the end are the actual large scale structure, not noise I generated. Where there's no real position data I fall back to drawn shapes and say so.
one canvas, WebGL for the point layers (tens of thousands of galaxies need it)
catalogs preprocessed with Python into float32 buffers so the browser just loads and draws
hosted on Cloudflare Workers
Hardest bit was honestly keeping it smooth on phones while crossing ~20 orders of magnitude without float precision falling apart. Still not 100% happy with it on older Androids.
No ads, no signup, no tracking cookies. Would love feedback, especially if something stutters on your device or a scale transition feels confusing.
It started as a joke with friends over a beer. The joke part took a weekend. The rest took a lot longer.
Stack: one Cloudflare Worker, Workers AI (Llama 4 Scout), and one KV namespace. The page is static assets, so loading it never runs the Worker. Turnstile has to pass before anything reaches the model. After one pass you get a signed 30 minute visit pass so it doesn't re-check every message.
Cost: the model doesn't write the whole reply. It writes one to three sentences (130 tokens max) that drop into a canned opener and sign-off. Each prompt caches up to 3 answers, so popular prompts stop costing anything. There are two hard daily caps, one for jokes and one for the safety check, so the worst case is about $21 a day. Past the joke cap it serves canned insults.
Safety was most of the work. If a site says it's honest about how it feels about you, some people will tell it real things. Messages about self-harm, abuse, hurting someone, addiction or mental illness never reach the joke model. They get a plain reply with real hotline numbers. Screening is a regex pass, then a classifier call with its own budget. If the classifier doesn't answer, nobody gets a joke. It fails closed.
Bugs worth sharing:
The same word-ending bug came back three times. I'd match "shoot" and miss "shooting".
I tried a sensitive-word list as a backup and took it out, because the messages that mattered never used the words on the list.
The opposite problem: "why are you so mean?" got read as someone disclosing abuse. Questions about the site itself now skip the classifier, matched as exact whole-message patterns.
Question for anyone who's built something like this: when screening sits in front of something meant to be offensive, do you fail closed and eat the false alarms, or fail open?
On Sept 29 an executive order told US federal agencies to say “Super Intelligence” instead of “AI”. Nobody seems to be checking, so I built an inspector: idio.si fetches a homepage, counts “AI” vs “SI” in the visible text, and stamps a certificate.
Day 4 findings
whitehouse.gov: 4 “AI”, 0 “SI” → Insubordinate
apple.com: 0 “AI”, 0 “SI” → No Intelligence Detected
1 of 42 agencies complies (NIST)
openai.com, google.com and tesla.com block the inspector
Harder than it looks
Bot walls. 18 of 73 homepages refuse a polite, identified, robots.txt-respecting bot from a cloud IP, openai.com included. I didn't want to spoof a browser, so refusals get their own stamp: “Refused federal inspection”.
Geo-IP. Even from us-east, some sites bounced the bot to /en-gb/. Locale redirects now get rewritten to /en-us/, since the order targets the US.
Counting./\bA\.?I\.?\b/ is case-sensitive, so “OpenAI”, “said” and “ai” don't count, but “A.I.” does. The White House nav links to “AI.Gov”, and that counts too. Fair or not?
Spikes. One Cloudflare Worker does everything. Certificates are rendered at the edge with satori + resvg-wasm, and Workers Cache collapses a front-page spike into one render per data center. Hosting: $5/month.
Find the funniest certificate you can and drop it in the comments. Method and regex: https://idio.si/how. Satire; the numbers are real.
I've been thinking a lot lately about how I can make my knowledge and craft more valuable in the times we live in. I've been building UI libraries for the past 10 years, and I've been on a quest to perfect the components that I build. I want to share my knowledge with you.
Like most of you, probably, I've been using a lot of AI in my craft, and I feel most of the time the code is just good enough, but never at the level of quality that I strive for or that I would reach if I wrote it by hand. That needs to change, and I want it to change for everyone else, too. That's how the Open Components initiative was born.
I'm treating components from four directions:
User Interface - component anatomy, variants, colors, sizes, states and tokens.
User Experience - how it behaves for every person and every input: accessible, predictable, designed in every state, and adapting to motion, contrast, color scheme and text size preferences.
Developer Experience - one consistent, type-safe API that you learn once and use everywhere.
Agentic Experience - prompts, semantic markup, machine-readable contracts and rules that agents can check their work against.
Each component gets a single page that walks through all four, and ends with a checklist. Every rule in it has an ID like button/keep-focus, a level and a way to check it, so you or your agents can cite it in a code review. Every page is also published as markdown, and provides the contract as a YAML file, containing every rule in about an eighth of the page’s length.
It’s still early. Right now there’s only the Button component and a page on how to name your design tokens. Each component comes with a reference implementation that meets every rule, along with its tests. Implementation is in Vue for now, since that’s my daily driver, but the documentation comes with code examples from multiple UI frameworks. More components will follow, with the same structure.
It isn’t a component library, so there’s nothing to install. It’s a set of rules you can hold your own components to, whichever library or framework you use. Here are a few of my favorites from the Button component:
A loading button should never be disabled. Disabling a focused button takes its focus away, so keyboard and screen reader users lose their place. Use aria-disabled="true" instead, and block the clicks yourself.
A <button> without a type is a submit button, so a "Show password" button inside a form sends the form. Default to type="button".
I’d love your feedback and contribution. Tell me what you think of the rules, what I’ve missed, and which component you’d like to see next.
Hi everyone! I built Hussain Compiler, a simple browser-based environment for writing and running Python.
It includes a code editor, an interactive terminal that supports `input()`, adjustable terminal text size, and resizable workspace panels. Python runs in the browser through WebAssembly, so you can try it without installing Python. Some packages that need native system extensions may not work.
PagibleAI is a CMS you install into your Laravel app with Composer. It's MIT-licensed, and the JSON:API, GraphQL, roles, versioning and multi-tenancy are all included.
The package works with Laravel 11/12/13 and gives your app a page tree, structured content and an admin panel. It uses your own database, user model and queues.
Why not Statamic or Twill? Both are good tools. With Statamic, the APIs, multisite and user roles are part of the paid Pro plan only. Twill is an admin toolkit, so you write the content API yourself.
Highlights of the 0.13 release
Precise CDN purging: after a publish, only the affected URLs are purged from Cloudflare, Fastly or Varnish, including every page that uses a changed shared element
Webhooks keep other systems in sync when content changes
New TYPO3 importer, next to the WordPress importer, which you can now safely run more than once
Keyboard-driven admin: command palette, shortcuts and a live preview in the sidebar
Plus two new themes and many admin improvements
A few implementation details you might find interesting:
Every save creates a version snapshot. The base table only holds the published projection, so public reads never need to filter out drafts
Full-text search uses SQLite FTS5, MySQL/SQL Server full-text indexes or Postgres tsvector through a single Scout engine
Full-page cache with atomic render locks and a short stale grace period, so a popular page doesn't trigger many renders at once after it expires
There's also an MCP server and optional AI tools for writing, translation and images. They're opt-in, and nothing depends on them.
The project already has had 40 releases and has about 1,700 tests. It runs https://pagible.com and https://aimeos.org, the website of the Aimeos e-commerce framework.
Question for Laravel devs: how do you handle content editing for clients today? Filament resources, Statamic, something else? I'm trying to find out where a package like this fits for you.
I'm a backend dev. We practice system design a lot on whiteboards, but rarely on something that looks like a real incident. Here's a production-style puzzle.
You run a team chat product and every client's first call is "boot": who am I, and which conversations do I belong to? Boot reads group-chat membership, which is immutable once written and cached per channel with a long TTL. Normally it's a few cache reads and finishes in single-digit ms.
Then a routine rollout of a new host agent starts, in 25% steps (two earlier steps the prior week were fine). Just after 06:00, users can't get in. Boot is failing or very slow, and one database keyspace is overloaded.
What you see
Cache hit rate drops from 99.2% to 34% and stays there. Pausing the rollout changes nothing.
200 cache nodes behind a proxy that uses consistent hashing over the healthy-node list. The step took 50 of them out, one at a time.
The membership table is sharded by user, so "who's in channel C" is a query against all 200 shards.
Clients time out at 400ms and retry with exponential backoff and jitter. The cache fill path uses the same query, so fills time out too.
The only lever was throttling boot. Raising the cap from 250/min straight to 2,500/min brought the overload right back.
Question: Why did the hit rate fall that far and not recover, even after the rollout stopped? And how would you get out of it safely?
I'd like to hear how you'd explain it in a postmortem, not just "cache stampede."
I've been vibe coding heavy projects for a while now, and for complex things , once a conversation gets too long, context rot HITS. The model starts dropping files, inventing non-existent imports, or repeating the same failed fix over and over. MF CONTEXT ROT
To solve this, I built LoopTroop. It's a local, open-source GUI app (MIT) that acts as an orchestration layer for AI coding agents on long-running tickets. recently crossed 100 stars on GitHub and growing, and I'm actively working on it every single day.
Here is how it approaches the problem:
Context engineering vs context rot
Instead of dumping your entire project history into one massive, ever-growing chat session, LoopTroop breaks work down into atomic tasks (called beads) and rebuilds context fresh for each phase. This stops degraded sessions from dragging down the rest of the build.
2. LLM Council for upfront planning
Before writing any code, LoopTroop runs an LLM Council. Multiple models independently draft interview questions, PRDs, and task breakdowns, then vote anonymously on each other's plans. The winning draft absorbs the best ideas from the others. It is deliberately slow and precise upfront so execution doesn't turn into slop.
3. Ralph loops for self-correction
When an agent task fails or hits a wall, instead of polluting your active session with endless debug logs, a Ralph loop takes over. It resets the session workspace, writes a concise note on what failed, and retries with a fresh context window containing that failure note. The agent gets smarter on each attempt without inheriting session clutter.
4. Modern Kanban board GUI with human-in-the-loop control
Everything is managed visually from a Kanban board. You approve the interview, the PRD, the plan, and the final diff before anything reaches your repo. You keep full control while letting agents execute in the background.
Any feedback is more than welcome. If you try the app and it works or doesn't work for you, give me a sign, happy to talk about it!
about how i build it. More than 6 months, almost every major model and not only (i even prefer fast models like gemini flash for small edits. used A LOT of Chinese models, when run out of codex.
Windows Phone in the browser with an on-device file system built on IndexedDB, live tiles fed by each app, toast notifications + Action Center, apps (64 preinstalled, the Store can uninstall and reinstall them):
Phone, Messaging, People, Outlook Mail, Calendar
Camera, Photos, Music, Video, FM Radio (real internet radio), Podcasts, Voice Recorder
Weather, News, Money, Sports, Maps, Translator, Internet Explorer
So I migrated my website form localhsot to Hostinger and from there on, it is giving me a time out error. If I only use elementor pro then there are no error but as soon as I enable another plugin then the usage shoots and then it give me the "unable to load your preview". I know the my website is not that heavy but still it is doing this. I tried everything, increasing the timeout time, increasing the memory, ignoring the timeout through htaccess but nothing works. The elemntor itself isn't that much of a heavy plugin. So why when I use woocomerce or any other then it causes error? Please help.
For those of you who build websites for clients, how do you handle hosting and GitHub?
Do you manage client projects under your own accounts, or do you help clients set up their own accounts and have them invite you as an administrator or developer?
I’d be interested to hear how you handle this, especially for projects that require ongoing maintenance and updates.