Posts by Anas Sheikh

@Anas Sheikh

PIxel Anas

Full-stack developer building premium Next.js templates & web apps. Specializing...
Pakistan pixelanas.com Joined August 2026
1.2k Points • 63 Badges • 6 Connections • 5 Followers • 9 Following

Posts by Anas Sheikh

Anas Sheikh • • in Articles • 4 min read
Somewhere along the way, a lot of Next.js developers picked up the idea that "Server Actions are secure by default" and quietly generalized that into "mutations in this app are secure by default." Those are not the same statement, and the gap between...
Anas Sheikh • • in Articles • 4 min read
Why Your Pages Get Indexed But Never Rank You check Google Search Console. Your page is indexed. Google crawled it, read it, and added it to the index without any errors. You search your exact keyword anyway, and your page is nowhere to be found, n...
Anas Sheikh • • in Articles • 5 min read
What Is Structured Data? A Plain-Language Guide to Schema Markup If you have spent any time reading about SEO, you have probably run into the term "structured data" or "schema markup" and quietly moved on, assuming it was something only developers ...
Anas Sheikh • • in Articles • 3 min read
placeholder="blur" is one of those props that works perfectly the first time you try it, in a quick example with a locally imported image, and then quietly stops doing anything the moment you swap that example for a real image coming from a CMS, S3, ...
Anas Sheikh • • in Articles • 3 min read
This one trips people up specifically because the two words feel interchangeable in everyday English, "optional" and "nullable" both sound like "this might not be there," and Zod treats them as two genuinely distinct, non-overlapping conditions. Wha...
Anas Sheikh • • in Articles • 4 min read
This is one of the easiest performance mistakes to write without noticing, since the code reads completely naturally, top to bottom, each line waiting for the one before it to finish, exactly the way most people learn to write async code in the first...
Anas Sheikh • • in Articles • 4 min read
Deciding something needs to change is the easier decision. The harder one, and the one that actually determines cost and timeline, is whether that change is a handful of targeted fixes or a genuine rebuild from the ground up. Getting this wrong in ei...
Anas Sheikh • • in Articles • 4 min read
A written brief, covered in more depth in an earlier post, gets a conversation started with real information instead of a vague "I need a website." The actual discovery call is where that information turns into a real, shared understanding of the pro...
Anas Sheikh • • in Articles • 4 min read
You read that a Content-Security-Policy header is a good security hardening step. You add a sensible-looking policy to your Next.js config, deploy, and the site loads as a blank or half-working page with a wall of red errors in the console. Nothing ...
Anas Sheikh • • in Articles • 4 min read
A negative review, especially an early one, feels disproportionately catastrophic in the moment, since it's sitting right there, permanently visible, next to everything else a potential client will see about you. Most of what actually determines the ...
Anas Sheikh • • in Articles • 3 min read
This is a genuinely surprising failure mode the first time you hit it, since the natural assumption is that an unmatched parallel route slot would just render nothing, not take down a page that has nothing to do with the slot in question. The Setup ...
Anas Sheikh • • in Articles • 4 min read
This causes a very specific, very common reaction, a developer sees a console.log inside useEffect fire twice in the browser console during local development, assumes something's genuinely broken, and starts debugging a bug that doesn't actually exis...
Anas Sheikh • • in Articles • 4 min read
This is a genuinely common race condition, and it's specifically the kind that only shows up under real usage conditions, someone clicking between items quickly, a slow network, exactly the situations casual development testing on a fast local connec...
Anas Sheikh • • in Articles • 4 min read
A landing page's job is getting someone to sign up. Onboarding's job is getting them to actually experience the product's real value before they lose interest, and this second job is where a huge share of otherwise promising SaaS products quietly los...
Anas Sheikh • • in Articles • 4 min read
Almost every auth tutorial, including some of my own examples in earlier posts, uses bcrypt.hashpassword, 10 without much explanation of what that number actually controls or why it's 10 specifically rather than some other value. It's worth understan...
Anas Sheikh • • in Articles • 4 min read
This one isn't really a bug, it's a genuinely common point of confusion about a feature working exactly as designed, and understanding why it behaves this way changes how you'd actually build around it, rather than fighting it. The Pattern: A Photo ...
Anas Sheikh • • in Articles • 4 min read
There's a real difference between hiring someone less experienced or more affordable, a legitimate, honest tradeoff, and hiring someone operating in outright bad faith. This is specifically about the second category, the concrete signs worth taking s...
Anas Sheikh • • in Articles • 4 min read
Jumping into custom web app development before a business actually needs it is a common, expensive mistake, and so is waiting too long after the signs are already clear, stuck manually working around limitations that a real, custom solution would hav...
Anas Sheikh • • in Articles • 3 min read
I wrote earlier about cache fixing redundant database queries when multiple components in a tree independently call the same query function. There's one specific, extremely common place this exact pattern shows up that's worth calling out directly, b...
Anas Sheikh • • in Articles • 5 min read
Most people signing a web development contract skim it, sign it, and never think about it again until something goes wrong, at which point the specific wording suddenly matters enormously. Here's a plain-language walkthrough of the terms that actuall...
chevron_left