An individual, who converts vague specifications and unrealistic expectations into usable software 😎

India
Joined July 2024
Hi 👋 I’m looking to connect with awesome people who are actively building and shipping cool stuff and sharing the process. If you are a - founder - builder - indie hacker - engineer - vibe coder - designer drop a comment, show me your app or SaaS, and let’s connect! 👇🏼 @px_techie
41
21
644
Open any online store. Different brand, different design. The cart? Top-right. Every time. That's not a lack of imagination. It's Jakob's Law, and breaking it costs you checkouts. #UX
3
105
shadcn/ui isn't a library. You copy the code into your repo and own it. Turns out that's exactly what AI needed: open code, one consistent structure, easy to read and extend. So the UI your agent writes is often shadcn underneath. 45s on how 👇 Built by @shadcn 🙏 #shadcn
2
64
Your app said "liked". Your server said 500. Nobody told the user. Optimistic UI without a rollback is a screen that lies. The fix is three steps: snapshot, update, roll back and tell the user. 60 seconds, React + Flutter. #OptimisticUI
1
31
Your user just spent 14 seconds typing a 6-digit code on a full keyboard. The OS could've offered it in one tap. But your input never told it what the field was. The fix is a couple of attributes. #webdev
2
33
Your infinite scroll shows the same item twice. Page 1 loads ten. A new row lands at the top, everything shifts down one, and page 2's "skip 10" serves the old #10 again. Offset counts positions, not items. #webdev
1
2
49
Delete a row instead and it flips: everything shifts up, and "skip 10" silently jumps over an item the user never sees. Same bug, quieter. The fix is a bookmark, not a ruler. Cursor pagination: the server returns the last item's created_at + id, and the next page asks for items older than that. WHERE (created_at, id) < ($1, $2) New rows can't shift it. Then a safety net on the client: store items by id. A Map in React (TanStack Query), putIfAbsent in Flutter. If a duplicate ever slips through, it renders once. Offset counts positions. A cursor remembers items.
22
Your user is typing their PIN into a field they can't see. The keyboard covered it. Your layout is still sized for the full screen. Three rules: let the layout resize, scroll the focused field into view, never go below 16px on iOS. #webdev
1
1
28
Web: tell Chrome to resize the layout with interactive-widget=resizes-content (interactiveWidget in Next.js viewport), use dvh instead of vh, keep inputs at 16px, and call scrollIntoView on the focused field. Why 16px? On iPhone Safari, an input with a font size under 16px zooms the whole page in when it's tapped. Flutter: keep resizeToAvoidBottomInset on. It's the default. Put the form in a SingleChildScrollView and the button below it, not behind it. Flutter then scrolls the focused field into view for you. #flutter
26
Fill a form halfway, look away for a second… now, which field was which? If the placeholder is your only label, it vanishes the moment users type. A placeholder is a hint, not a name. #a11y
2
1
1
40
Three problems with placeholder-only fields: 1. The hint disappears on the first keystroke, so "Invalid format" makes no sense. 2. Placeholder grey usually fails contrast. 3. Some screen readers don't announce it at all. The field is just "blank". The fix is three parts, three places: Label → what the field is, always visible. Placeholder → an example format. Helper text → the rules, below the field. Bonus: tell the browser and keyboard what the field is. Web: autocomplete="email" Flutter: autofillHints + keyboardType Users get the right keyboard and one-tap autofill. Labels say what. Placeholders show how.
19
You searched "apple". The results are for "app". Every keystroke fires a request, they come back out of order, and your code trusts whichever lands last. Debounce doesn't fix it. It just makes the race rarer. #webdev
1
25
Your user tapped "Pay" twice. Your app charged them twice. 💸 The fix takes 2 layers: → Client: guard + disable + loader → Server: idempotency key (once per checkout, not per tap) React + Flutter code in the video 👇 UI/UX · EP 01 #uifix #reactjs #flutterdev
1
50
Your app isn't slow. Your database is doing the same work twice. 🐢 In 45 seconds: how Redis caching actually works → Cache hit: served from memory in under 1ms → Cache miss: hit the DB once, store it, instant next time → TTL: stale data expires on its own, no cleanup code → Result: fewer DB queries, lower latency, happier users Cache the hot data. Let Redis take the heat. 🔥 #Redis #BackendDev #SystemDesign #WebDev #Programming
1
77
Trying DartNative today. Flutter code, but true-native views on iOS and Android. First run: clean. Hot reload: works. Liquid Glass: next. Flutter folks who've tried it, how's your experience been? Let's see what dn cooked. @DartNativeX @FlutterDev
1
2
136
Same Dart. Same widgets. Same hot reload. But Flutter and DartNative put your app on screen in completely different ways. I had Claude help me break it down: rendering, native feel, pros, cons, and when to pick which. @DartNativeX @FlutterDev Full video 👇 #Flutter #DartNative
1
1
7
2,057
Opus 5.5 is crazy good with animations 🤯 #claude #ai
1
100
Every budgeting app I tried failed at the same step: typing. You buy chai, you tell yourself you'll log it later, and by Sunday you've lost track of half the week. So I built Zimam. You don't type. You snap a receipt, say it out loud, or paste a line from your notes. Zimam reads the amount, payee and category, and drops it in a review inbox. One tap to confirm. "chai twenty, cab two fifty by UPI" → two clean entries. A few things I cared about while building it: → Nothing posts without you. Every entry waits for your confirm. → No bank connection. It never moves money. → One number on Home: Safe to spend, after rent, budgets and goals. It's almost ready for Android and iOS. If you join the waitlist now: • You get your invite before it's searchable on the store • You get a direct line to me. Requests from this list are read first • One email when your spot opens. No drip, no spam zimamapp.com/waitlist #Flutter #AI #ProductLaunch
2
1
2
406
Day 19 of my #1KChallenge ⚛️ React tip: use lazy initialization in useState ✅ Runs once ✅ Better performance ✅ Great for localStorage or props-based defaults #React #WebDev #Frontend #1KChallenge #100DaysOfCode
1
176
#18 JS Trick: ??= (nullish coalescing assignment) ⚡. ✅ Assigns only if null or undefined ✅ Cleaner defaults ✅ Works great with optional chaining #JavaScript #WebDev #Frontend #100DaysOfCode
1
144