Custom CSS = You Lose
10 years of working on front-end codebases at Meta taught me that if you have a good component library, you should be able to just compose them to build all your screens.
All the places that use custom CSS tend to be liabilities. They won't work well in dark mode, will have weird spacing after the next design update, will look broken when embedded in other apps.
The usual excuse is that the specific product is a snowflake and badly needs it. But the reality is that most people are not doing anything novel. So it's either a failing of the builders for not using the system or the system not providing the right abstractions.
We applied these learnings with Astryx. If you see it litter your code with custom styles this means that it failed. We tried really hard to bend the agents this way but they have been heavily fined tuned to do it.
The upside is that if you're custom CSS free, most of the pages in your app/website will look consistent, have less bugs and let you update theme project wise without too much hassle.
Large React apps get harder to scale when every feature has to live inside the core codebase.
In this tutorial, Jessica shows you how to design a React plugin architecture with TypeScript that is type-safe, lazy-loaded, and secure.
You'll also learn about hosting APIs, plugin lifecycles, separate bundling, runtime loading, and more.
https://t.co/SsT4uIKAnH
TypeScript's 𝘴𝘢𝘵𝘪𝘴𝘧𝘪𝘦𝘴 operator has been around for years. Majority of codebases I open still don't use it.
If you’re still using type assertions (as) to validate your objects, you might be accidentally lying to your compiler.
Here is the 30-second breakdown of why 𝘴𝘢𝘵𝘪𝘴𝘧𝘪𝘦𝘴 (introduced in TS 4.9) is a game-changer:
❌ The Problem with as (Type Assertion)
When you use as, you’re telling TypeScript: "Shut up, I know what I’m doing."
- It widens your types.
- it can mask missing properties.
- You lose the specific "literal" types of your values.
✅ The Magic of 𝘴𝘢𝘵𝘪𝘴𝘧𝘪𝘦𝘴
When you use 𝘴𝘢𝘵𝘪𝘴𝘧𝘪𝘦𝘴, you’re telling TypeScript: "Check that this matches the interface, but remember exactly what I put inside."
- It validates the shape.
- It preserves the narrowest possible type.
- You keep your perfect autocomplete and IDE intenseness.
Few things in life are as fulfilling as your partner asking you for batteries and your hoarding behavior is immediately justified by having exactly the right batteries in the battery drawer.
Before you go to bed tonight,
remember this…
Nothing drains you more than
your own mind, stop stressing
over what you can’t control.
You did enough today, you are enough
today, let your self rest in that truth.
You’re going to be OK, I promise
NASA’s next great exploration asset, the Nancy Grace Roman Space Telescope, will launch aboard a Falcon Heavy from Kennedy Space Center on August 30, ahead of schedule and under budget!
Congratulations to the entire @NASA and @NASAScience_ team. This is the way.
On July 25, an initial onsite inspection by the NASA Madrid Deep Space Communications Complex (MDSCC) emergency response team found wildfire damage primarily to pavement and surrounding vegetation, with no significant structural damage observed to antennas or buildings.
Additional inspections and testing will continue as safety procedures allow. The situation remains dynamic, and comprehensive assessments will proceed as conditions stabilize and access improves.
Meanwhile, NASA's Space Communications and Navigation (SCaN) Program has seamlessly transitioned mission support to its other Deep Space Communications Complexes in Goldstone, California and Canberra, Australia, ensuring continuity of operations and uninterrupted spacecraft communications.
The safety of NASA personnel remains the agency's highest priority. All personnel at MDSCC are safe, and NASA extends its sincere gratitude to Spanish emergency responders and members of The Ministry of Defense, The Ministry of Interior, and The Ministry of Science, Innovation and Universities for their professionalism and tireless efforts in helping protect the facility under extremely challenging conditions.
NASA is also thinking of its partners at the European Space Agency (ESA), whose colleagues continue to be affected by the broader wildfire emergency.
NASA will continue to monitor the situation closely and provide updates as new information becomes available.
API concepts that are discussed in interviews ,
don't skip these if you are a backend dev :
1. Idempotency: Know why PUT/DELETE are idempotent but POST isn’t. Helps avoid accidental double writes.
2. Pagination: Offset works until scale hits. Cursor/keyset is what you need for big data sets.
3. Versioning: URI vs Header vs Query param. There’s no one right way, just tradeoffs.
4. Rate limiting: Token bucket > naive fixed window if you care about fairness.
5. Error contracts: 400 (bad request) ≠ 422 (validation issue) ≠ 409 (conflict). Don’t just throw 500 everywhere.
6. Caching: ETag + Cache-Control save you from unnecessary DB load.
7. Security: JWTs expire for a reason. Don’t stuff user PII inside them.
8. N+1 Queries: Kill them early. Use batching or joins when returning nested resources.
9. Docs: OpenAPI/Swagger is not optional.
10. Consistency: Sometimes cached data is good enough.
Solutions to Problems
When I first started managing JavaScript Infrastructure at Facebook back in 2016 I made a huge mistake: I split the team into three groups: One focused on Yarn, the package manager, another on Jest, the testing framework and the last one on Metro, the JavaScript bundler.
This was great in the short-term. I was able to bring people together to make these tools great individually. However, two things started happening:
1: When we were asked to take on additional responsibility, or solve an ambiguous problem, the team tried to fit it neatly into one of those projects. When something related to package management required changing Facebook infra, the team threw their hands in the air and said "Sorry, we can't build this into Yarn - it's an open source project!"
2: The people made those open source projects their identity. They would do talks and represent the project on Twitter. They felt heavily invested, and it made it even harder to motivate them to solve problems that Facebook needed to solve internally.
It wasn’t their fault, it was mine. I set up the team that way, and encouraged them to take ownership. Through this experience, I learned that teams have to be structured around the problems they are solving instead: Package Management, Testing, and Bundling – instead of the concrete implementations to solve those problems.
It's much easier to make a roadmap focused on how to achieve a goal and say "Currently, Jest is the right solution for this problem, but maybe in the next quarter we'll migrate to something else". Don't tie your identity to code and when you set up a team, focus on the solutions to problems.
I got tired of burning tokens, and worse, review time on Jest to #Vitest migrations, so I built Vitestify, a CLI that does it for you.
$ npx @testmex/vitestify
🎯 Deterministic & beyond test files: configs, setup files, mocking APIs...
🪜 Incremental: tests that can't be migrated keep running under Jest
🔄 Re-runnable: run it again as your suite, and Vitest, evolve
↩️ Safety net: runs Vitest, rolls back only the failing tests
🧩 Tooling aware: #Angular CLI, #Nx, #React, Testing Library...
🚧 Coming next: Agent instructions for the non-deterministic edge cases
Vitestify is the first tool under TestMex — a home for slightly spicy JavaScript testing tools for humans and agents.
#javascript #testing
Life advice from an astronaut. Dr. Don Thomas was rejected three times before his childhood dream of becoming a NASA astronaut came true.
His advice? Never give up! Work hard, stay focused, and keep your eyes on the stars.