If you don’t set limits, entropy will fill the space. In software, that entropy looks like bloated JS bundles and creeping load times. Every new feature seems essential, but together, they quietly kill performance. The solution? Performance Budgets. A performance budget isn't just a goal, it’s a hard engineering constraint. It means defining strict limits before a single feature ships: • Max Payloads: e.g., < 250KB of initial JS. • Speed Metrics: e.g., LCP under 2.5s. • Resource Caps: Strict limits on third-party scripts. #performance #javascript #devops #engineering
Edwin Torres Sánchez’s Post
More Relevant Posts
-
Two days ago (Apr 21), TypeScript 7.0 Beta was released 🏄🏼♀️ At this release, the team behind TypeScript didn’t just add features in version 7.0, they rebuilt the compiler using #Go while keeping the exact same type-checking logic. There should be no surprises in behavior, but a #completely #different #performance #profile. In many cases, builds are up to *~10x faster*, and the editor finally feels lightweight even on large codebases. The new compiler is truly parallel, it makes all the parsing, type-checking, and emitting on multiple workers. Some new cool flags: --checkers (type-check workers) and --builders (parallel project builds). They also doubled down on stricter defaults from 6.0 - #strict is enabled, modern module targets are the default, and a lot of legacy flags are removed. One can already try it side-by-side with the current setup, as the attached image shows. Read more about the release announcement here - https://lnkd.in/dgQqqRBn #TypeScript #JavaScript #WebDevelopment #SoftwareEngineering #BuildTools #DX
To view or add a comment, sign in
-
-
Are your JavaScript errors slowing down development and making debugging harder than it should be?💡 Throwing generic `Error` instances or strings may seem fine early on, but as applications grow, this leads to brittle, unpredictable error handling and hidden issues across your codebase. Learn how to express intent through your errors, prevent low-level failures from leaking, and make your code more reliable and maintainable. 📖 Read the full guide here: https://lnkd.in/dAQfeZEn
To view or add a comment, sign in
-
-
Stop the console.log madness. 🛑 We’ve all been there: chasing a bug for hours, littering the code with console.log('here'), and accidentally pushing those logs to production. 🤦♂️ After 2 years of Full Stack development, I finally found a better way. The Fix: VS Code JavaScript Debug Terminal 🛠️ Instead of a standard terminal: Open the Terminal dropdown. Select "JavaScript Debug Terminal." Run your service normally (npm start). Why it’s a game changer: Breakpoints: Pause code execution instantly. Live Inspection: Hover over variables to see real-time data. Cleaner Code: Zero logs to delete before you push. Simple, clean, and much faster. Your production logs will thank you. #Javascript #NodeJS #VSCode #WebDev #CodingTips #FullStack
To view or add a comment, sign in
-
-
Filed an issue and shipped a fix to the official Module Federation Vite plugin this month. Most frontend teams on Vite still default to @originjs/vite-plugin-federation. Even tutorials published in late 2025 recommend it. That package hasn't shipped a release in over a year. The official one is @module-federation/vite. Vite 8 + Rolldown support landed this month. The issue tracker is active, and my PR got a real review within days. What surprised me digging in: - It orchestrates 15+ specialized internal Vite sub-plugins. Far more layered than I expected. - Manifest mode beats hardcoded entry URLs. Type sharing across remotes is automatic. - Runtime hooks make auth, routing, and A/B testing on remotes clean. - Migration off originjs is shorter than it looks. Most configs map over with light edits. The bug I fixed: a regex was matching Stencil's minified getScopeId, crashing every Stencil component at runtime. If your micro-frontend setup feels stuck in 2022, look again. PR + issue links in the comments. #ModuleFederation #Vite #MicroFrontends #OpenSource #Frontend #React #Javascript #Typescript
To view or add a comment, sign in
-
Day 25. Quarter century. Still going. Here's what got done: ✅ DSA — Solved LeetCode #160 Intersection of Two Linked Lists. Finding where two lists meet using hash map logic — elegant problem, satisfying solution. Code: https://lnkd.in/dTMCJdkq ✅ React — Shipped Challenge 10 of the daily React series — a Domain Name Generator built using a library. 10 challenges in and the consistency is starting to show in the code quality. Code: https://lnkd.in/ghE74SZ2 ✅ Operating Systems — Learned how an OS boots up from scratch and finally understood the real difference between 32-bit and 64-bit systems — not just the marketing, but what it actually means for memory and performance. 25 days. No zero days. Every single day, something new got learned and something got shipped. See you at Day 26. 🚀 #DSA #100DaysOfCode #BuildInPublic #LeetCode #ReactJS #OperatingSystems #WebDev #DevJourney
To view or add a comment, sign in
-
You type a command. Something happens. But what exactly? I traced `openclaw gateway` all the way through and here's the full chain: openclaw.mjs A 10-line shim. Bootstraps Node.js, hands off to TypeScript via tsx. Its only job is to exist. ↓ src/index.ts Three things in sequence: 1. Install global error handlers (catch uncaughtException before the process dies silently) 2. Set up environment (.env, Node.js version check, exit hooks) 3. Call buildProgram() and pass it process.argv ↓ src/cli/program.ts A Commander.js setup. Every subcommand maps to a file in src/commands/. ↓ src/commands/gateway.ts Loads config → calls startGatewayServer() This is a pattern I now look for in every Node.js project: Shim → Bootstrap → CLI Framework → Command Handler → Service It separates concerns cleanly. The CLI doesn't know about the Gateway. The Gateway doesn't know about Commander. Each layer does one thing. The lesson I took: keep your entry point boring. The shim should be a shim. The bootstrapper should bootstrap. The moment you start doing real work in index.ts is the moment you've created future tech debt. What's in your index.ts that probably shouldn't be? 😅 #NodeJS #TypeScript #SoftwareDesign #CleanCode #OpenSource
To view or add a comment, sign in
-
If you are building an open-source tool and importing `express` or `next/server` into your core logic, you are building a trap. When you tightly couple your logic to an HTTP framework, you alienate 80% of the ecosystem. A Next.js dev can't use your Express tool. A Hono dev can't use your Fastify plugin. You need to build compilers, not switchboards. I use the 𝗘𝗻𝗴𝗶𝗻𝗲-𝗔𝗱𝗮𝗽𝘁𝗲𝗿 𝗣𝗮𝘁𝘁𝗲𝗿𝗻: 1. 𝗧𝗵𝗲 𝗘𝗻𝗴𝗶𝗻𝗲: Pure TypeScript. Zero HTTP context. It takes raw inputs and returns standard outputs. 2. 𝗧𝗵𝗲 𝗔𝗱𝗮𝗽𝘁𝗲𝗿𝘀: Tiny 20-line wrappers that translate a framework's request into your engine's context. This is exactly how I built TableCraft to seamlessly support Hono, Express, Next.js, and Elysia from a single codebase. Stop writing one-off endpoints. Start building generic compilers. I wrote a technical deep dive on how to structure this in a monorepo. Link below 👇 https://lnkd.in/gr9hBJnd #SoftwareArchitecture #TypeScript #OpenSource #WebDev #BackendEngineering
To view or add a comment, sign in
-
-
Day 93 of my #100DaysOfCodeChallenge Node.js Revision Continues Today, I focused on strengthening my understanding of error handling and callbacks in Node.js. Here are my key takeaways: Error Handling I explored how Node.js uses the error-first callback pattern and how proper error handling is critical in asynchronous environments. Callback Functions A callback is a function passed into another function to be executed later—this is a core concept behind Node’s non-blocking architecture. Callback Abstraction I learned how to make my code more reusable and flexible by passing different behaviors into a single function using callbacks. This revision phase is helping me move beyond just writing code to actually understanding how and why things work under the hood. #100DaysOfCode #NodeJS #BackendDevelopment #JavaScript #SoftwareEngineering
To view or add a comment, sign in
-
There are files in every project you almost never open. tsconfig.json is one of them. The project compiles, nobody touches it. Setting up both next & vite projects from scratch I had the chance to dive into these settings deeper myself. Next.js gives you a comprehensive config out of the box. Vite I had to write my own. The one setting worth understanding: strict mode. It’s not just one setting but a shortcut that enables a collection of compiler flags at once. The vite didn’t had strict mode enabled by default but next setup had it. Some projects never enable strict mode, but it’s cool to make good use of the power of TypeScript if you have it installed. 🔑 The one flag from strict mode collection that is useful and really recommended to have enabled even if you don’t enable the others is strictNullChecks. Without it, null and undefined are invisible to the compiler. I’m sure you battled too the most common runtime bug “cannot read property of null/undefined”. With this flag on, you can catch most of those bugs on compile time, before they reach production. What other cool flags do you have enabled in your tsconfig? #frontend #reactdeveloper #frontendarhitecture #react #recrutiers
To view or add a comment, sign in
-
If a function fires 1000 times, but you only want it to run every 100 calls, there's a neat technique for that. Today I learned about counter-based sampling in JavaScript. Use Cases • sampling analytics events to reduce load • limiting noisy logs or metrics • running expensive work periodically in high-frequency flows How it's different from throttling? Sampling is call-count based → run every N calls Throttling is time-based → run at most once every X ms So if 1000 events fire instantly: • sampling (every 100) → runs 10 times • throttling (200ms) → may run only once Different problems, different tools. #javascript #softwareengineering #frontend #webdevelopment #todayilearned
To view or add a comment, sign in
-
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development