Forwarded from Khalid Mohammed (MerkatoBuilder)๐๐
0 visibility x 100 skills = 0 opportunity
โค4๐1
"software engineering is dead" gurus will tell you AI does everything now... until this happens. ๐๐
FlutterBegin
"software engineering is dead" gurus will tell you AI does everything now... until this happens. ๐๐
every time i open my feed, thereโs another "tech guru" yelling that software engineering is dead. they promise you can build the next unicorn with zero coding knowledge, and then...surprise...they hit you with a link to buy their $xxx "vibe coding" course. ๐คก
they make it look like magic: "just prompt lovable, sit back, and boom, you're a founder bro!"
but let me tell you what actually happens when vibes meet reality.
just today, someone reached out to me in a total panic asking to fix their app. they had built the entire project using lovable without having any idea how web apps actually work under the hood.
i opened their repo to see what went wrong, and my jaw dropped. look at those screenshots above:
the security disaster: the AI literally committed and pushed their
it didn't even work: despite all the prompts, the site was completely broken. in the real world, relying 100% on pure vibes without tech knowledge gives you a working product less than 5% of the time.
zero architecture or ux: AI doesn't understand ui psychology, state management, or edge cases. it just glues lines of code together until the whole structure snaps under its own weight.
here's the cold hard truth: when you don't know the science behind what you're building, you don't even know what you're breaking.
you don't know your database is open to hackers. you don't know why your buttons aren't storing data. you just know the screen looks pretty until someone actually tries to use it.
don't get me wrong...tools like lovable, cursor, or v0 are incredible accelerators. i use AI every day. but itโs a multiplier, not a replacement.
10x zero is still zero.
if you don't know how to code, AI will just help you build bad software 10x faster. and at the end of the day, you'll end up paying a real engineer twice as much money just to clean up the mess, wipe leaked keys, and rebuild it properly.
so don't get distracted by the hype or people selling shortcuts. learn the fundamentals. understand how memory, databases, security, and logic work. once you master the craft, then bring in AI to make yourself 10x faster.
learning actual engineering is never a loss. keep building the right way
they make it look like magic: "just prompt lovable, sit back, and boom, you're a founder bro!"
but let me tell you what actually happens when vibes meet reality.
just today, someone reached out to me in a total panic asking to fix their app. they had built the entire project using lovable without having any idea how web apps actually work under the hood.
i opened their repo to see what went wrong, and my jaw dropped. look at those screenshots above:
the security disaster: the AI literally committed and pushed their
.env file straight to a github repository. inside were their live supabase project keys, database credentials, and secret tokens. completely exposed to the entire internet for anyone or any bot to scrape.it didn't even work: despite all the prompts, the site was completely broken. in the real world, relying 100% on pure vibes without tech knowledge gives you a working product less than 5% of the time.
zero architecture or ux: AI doesn't understand ui psychology, state management, or edge cases. it just glues lines of code together until the whole structure snaps under its own weight.
here's the cold hard truth: when you don't know the science behind what you're building, you don't even know what you're breaking.
you don't know your database is open to hackers. you don't know why your buttons aren't storing data. you just know the screen looks pretty until someone actually tries to use it.
don't get me wrong...tools like lovable, cursor, or v0 are incredible accelerators. i use AI every day. but itโs a multiplier, not a replacement.
10x zero is still zero.
if you don't know how to code, AI will just help you build bad software 10x faster. and at the end of the day, you'll end up paying a real engineer twice as much money just to clean up the mess, wipe leaked keys, and rebuild it properly.
so don't get distracted by the hype or people selling shortcuts. learn the fundamentals. understand how memory, databases, security, and logic work. once you master the craft, then bring in AI to make yourself 10x faster.
learning actual engineering is never a loss. keep building the right way
๐3
Forwarded from Khalid Mohammed (MerkatoBuilder)๐๐
an idiot in motion goes much further than a genius at rest
๐1
i see so many devs stuck in a loop for weeks saying,
they spend all their energy trying to invent the next revolutionary, never-before-seen startup idea. and because they can't think of one, they end up building another generic todo app or weather dashboard that nobody cares about (not even themselves).
here is the secret: you don't need a unique idea. you just need to steal like an artist.
if you look at the best software out there, almost none of it was a "brand new" concept. instead, it usually starts with two things:
stealing and remixing: take two things that already work and combine them, or take an existing product and strip away 90% of the useless features to make it dead simple for a specific niche. dropbox was literally just a prettier, easier version of FTP. tailwind was just a better way to handle inline styling. don't reinvent the wheel...just build a smoother one.
solving your own real-world headaches: the absolute best projects come from genuine frustration. look at your daily routine...your work, your study habits, your local market. what's annoying? what manual task takes you 20 minutes every day that could take 2 seconds? if something is frustrating you, chances are hundreds of other people are quietly suffering through the exact same thing.
fixing "popular but terrible" tools:
look at software that a lot of people already use, but constantly complain about. maybe itโs too slow, bloated, missing an essential feature, or has terrible user experience. you don't have to convince people that the problem exists, they already know it does and they're already paying for bad solutions. you just have to build the version that actually works.
stop waiting for lightning to strike with a grand vision.
look around you. steal smart concepts, fix broken workflows, solve your own daily annoyances, and just start building. execution is 99% of the magic anyway.
whatโs a minor problem in your daily workflow that deserves its own tool? drop it in the comments below ๐๐๐
@FlutterBegin
i want to build something, but i just don't have a good project idea.
they spend all their energy trying to invent the next revolutionary, never-before-seen startup idea. and because they can't think of one, they end up building another generic todo app or weather dashboard that nobody cares about (not even themselves).
here is the secret: you don't need a unique idea. you just need to steal like an artist.
if you look at the best software out there, almost none of it was a "brand new" concept. instead, it usually starts with two things:
stealing and remixing: take two things that already work and combine them, or take an existing product and strip away 90% of the useless features to make it dead simple for a specific niche. dropbox was literally just a prettier, easier version of FTP. tailwind was just a better way to handle inline styling. don't reinvent the wheel...just build a smoother one.
solving your own real-world headaches: the absolute best projects come from genuine frustration. look at your daily routine...your work, your study habits, your local market. what's annoying? what manual task takes you 20 minutes every day that could take 2 seconds? if something is frustrating you, chances are hundreds of other people are quietly suffering through the exact same thing.
fixing "popular but terrible" tools:
look at software that a lot of people already use, but constantly complain about. maybe itโs too slow, bloated, missing an essential feature, or has terrible user experience. you don't have to convince people that the problem exists, they already know it does and they're already paying for bad solutions. you just have to build the version that actually works.
stop waiting for lightning to strike with a grand vision.
look around you. steal smart concepts, fix broken workflows, solve your own daily annoyances, and just start building. execution is 99% of the magic anyway.
whatโs a minor problem in your daily workflow that deserves its own tool? drop it in the comments below ๐๐๐
@FlutterBegin
๐ฅ2
why do users spend 4 hours scrolling tiktok but abandon your app in 30 seconds? here is the psychology of user attention. ๐ง ๐งต๐
we spend weeks crafting clean code and database schemas, only to watch users install the app, click around for 15 seconds, close it, and never open it again.
meanwhile, platforms like tiktok, instagram, and duolingo keep billions of people glued to their screens every single day.
they don't win because their backend is better. they win because they understand the psychology of human attention.
if you want users to actually stick to your software, you need to design for human psychology from the first screen:
the 5-second time-to-value rule: social media hooks people because the reward is instant...open the app, swipe once, instant dopamine. if your app makes someone fill out a 7-step signup form, verify an email, and read a 5-page walkthrough before doing anything useful, they're gone. get them to their first "aha moment" within 5 seconds of opening the app.
variable rewards & curiosity loops: people don't check their feeds because they know what's there; they check because they don't know what's there. if your app is static and looks identical every time it opens, there's zero reason to return. introduce dynamic streaks, real-time leaderboard shifts, subtle milestone celebrations, or new insights every single session.
frictionless momentum: attention is fragile. every unnecessary click, slow loading screen, or confusing navigation flow is an exit door. apps that dominate attention make the core action brainless to perform. if your core action takes 4 taps, find a way to make it 1 tap.
smart triggers over spam: most builders blast generic push notifications that get instantly muted. attention-grabbing apps send contextual, curiosity-driven triggers: "someone just passed your score," or "your daily streak is expiring in 2 hours." bring people back with relevant context, not marketing spam.
great software isn't just about solving a problem; it's about respecting how the human brain focuses and stays engaged.
stop building boring, static workflows. build momentum, reduce friction, and make the value impossible to miss.
whatโs one app on your phone that you open every day without even thinking about it? drop it below โฌ๏ธ
@FlutterBegin
โค4
why do you open instagram without even thinking about it? itโs not an accident, itโs a 4-step loop called thehook model. ๐ง ๐๐
have you ever unlocked your phone to check the time, only to find yourself 20 minutes later scrolling through reels without remembering how you got there?
thatโs not a lack of willpower. that is the hook model at work.
created by behavioral designer nir eyal, the hook model is the exact 4-step blueprint behind every habit-forming product on earth (from tiktok and twitter to duolingo and spotify).
if you want to build software that users donโt just open once, but come back to every day, here is how the loop works:
1. the trigger (the spark)
every habit starts with a cue.
external triggers: push notifications, emails, badges, or a friend sharing a link.
internal triggers (the goal): an emotion. boredom, loneliness, curiosity, or the fear of missing out. when you feel bored and instantly tap an icon without thinking, the app has successfully attached itself to your internal trigger.
2. the action (the behavior)
this is the simplest possible action a user takes in anticipation of a reward.
the rule here is simple: minimize friction.
scrolling down a feed, hitting play on a video, or tapping a single button. if the action requires mental effort, a long form, or multiple clicks, the loop breaks immediately.
3. the variable reward (the dopamine)
predictable rewards become boring fast. what keeps the human brain hooked is unpredictability (just like a slot machine).
you scroll because you don't know if the next post is funny, shocking, or educational. you check an app to see who liked your post, who challenged your high score, or what new message arrived. variability creates anticipation.
4. the investment (the lock-in)
this is where the user puts something into the product to make it better for the next cycle.
it could be adding data, customizing settings, following people, building a daily streak, or earning points. the more effort and history a user invests into your app, the higher the switching cost, and the stronger the next trigger becomes.
the builderโs takeaway: great apps donโt rely on constant marketing spam to survive. they build a natural loop where each visit makes the next visit more valuable.
next time you build a feature, ask yourself:
what emotion triggers this? whatโs the smallest action needed? whatโs the unexpected reward? and what did the user invest to make coming back inevitable?
whatโs an app you use daily that has you completely hooked in this loop? drop it below โฌ๏ธ
@FlutterBegin
โค3๐ฅ1
ever tried to tap a tiny 'x' button on an app and accidentally clicked an ad instead? that's bad UI physics. enter fitts's law. ๐ฑ๐ฏ๐
there is a very specific reason why your favorite apps feel silky smooth, while poorly built apps make you feel like your fingers are too fat to use a smartphone.
itโs not about your fingers, itโs about fittsโs law.
originally formulated back in 1954 to study human movement, fittsโs law states something simple: the time required to rapidly move to a target area is a function of the ratio between the distance to the target and the width of the target.
in plain english for mobile builders: make important things bigger, and put them closer to where thumbs naturally rest.
here is how mobile touch dynamics actually work in real apps:
1. the "thumb zone" is prime real estate: most people hold their phones with one hand. the bottom-center of the screen is effortless to reach. the top corners are painful strain zones.
notice where instagram puts the reel button? bottom center.
notice where bottom navigation bars live? right under your thumb.
if your core action is tucked away in the top-left corner, you're adding physical fatigue to every interaction.
2. touch targets are not visual sizes (the 48x48 rule): a button might look like a tiny 16px icon, but its tappable area (hitbox) should be at least 48x48 dp / px.
when builders shrink the hitbox to match tiny icons, users misclick, get frustrated, and leave. your visual design can be minimal, but your touch targets must be generous.
3. edge pinning & infinite width:on mobile screens, screen edges act as natural physical boundaries. a full-width floating action button (fab) pinned to the bottom is virtually impossible to miss because the user canโt overshoot it.
4. destructive vs constructive distance use distance as safety. keep your primary action (like "save" or "checkout") big and close to the thumb. place destructive actions (like "delete account" or "discard changes") further away or require a secondary confirmation. make the right action effortless and the wrong action deliberate.
the builderโs takeaway: great ui isn't just about clean colors or sleek fonts; itโs about ergonomics and physical friction.
when you build your next mobile screen, test it with one hand while walking. if your thumb struggles to tap your core button on the first try, your architecture is already fighting against human biology.
design for real thumbs, not perfect mockups.
@FlutterBegin
๐๐
users never read your app line by line like a book.
they scan. their eyes bounce around the screen in milliseconds searching for anchor points, clarity, and meaning.
if everything on your screen is bold, colorful, and fighting for attention, then nothing gets attention. the userโs brain gets exhausted from decision fatigue and they close the app without even realizing why.
here is how the psychology of visual hierarchy, typography, and contrast actually controls what users look at:
1. the visual focal point (the 3-second scan):
your screen needs an unmistakable "center of gravity." the human brain automatically prioritizes elements based on scale and weight.
๐ if the user opens a screen, what is the single most important thing they need to know or do?
๐ that element gets the largest size, the highest contrast, and clear breathing room (white space). everything else steps back.
2. typographic hierarchy (scale over font count):
amateur design throws 4 different font families on a single screen. clean software uses one solid typeface but masters weights and sizes:
๐ headline (large, bold): grabs attention and sets context.
๐ subhead (medium): provides immediate clarity.
๐ body (regular, readable size): delivers details without shouting.
๐ caption/labels (small, muted): supportive metadata that stays out of the way until needed.
3. contrast psychology & eye fatigue:
contrast tells the eye what is actionable and what is passive.
๐ pure black on pure white (#000 on #fff) creates harsh optical vibration on modern screens. modern apps use soft off-blacks (#111827) and subtle dark slates to keep reading effortless.
๐ high contrast = primary call-to-action (cta).
๐ medium contrast = secondary information.
๐ low contrast = borders, dividers, background structure.
4. the power of negative space (whitespace):
white space isn't empty space...itโs a powerful structural tool. packing elements together creates claustrophobia and confusion. generous padding around text and cards isolates information into digestible "chunks," making the entire interface feel fast, premium, and effortless.
the builderโs takeaway:
great ui doesn't ask the user to think about where to look. it gently takes them by the hand and guides their eyes through size, contrast, and spacing.
before you ship your next layout, squint your eyes at the screen. if you can't tell what the main action is while blurring your vision, your visual hierarchy is broken.
design for the scanning eye, not just the static screenshot.
@FlutterBegin
why do users scan some apps effortlessly, but feel an instant headache looking at others? itโs all visual hierarchy and contrast psychology. ๐๐๐
users never read your app line by line like a book.
they scan. their eyes bounce around the screen in milliseconds searching for anchor points, clarity, and meaning.
if everything on your screen is bold, colorful, and fighting for attention, then nothing gets attention. the userโs brain gets exhausted from decision fatigue and they close the app without even realizing why.
here is how the psychology of visual hierarchy, typography, and contrast actually controls what users look at:
1. the visual focal point (the 3-second scan):
your screen needs an unmistakable "center of gravity." the human brain automatically prioritizes elements based on scale and weight.
๐ if the user opens a screen, what is the single most important thing they need to know or do?
๐ that element gets the largest size, the highest contrast, and clear breathing room (white space). everything else steps back.
2. typographic hierarchy (scale over font count):
amateur design throws 4 different font families on a single screen. clean software uses one solid typeface but masters weights and sizes:
๐ headline (large, bold): grabs attention and sets context.
๐ subhead (medium): provides immediate clarity.
๐ body (regular, readable size): delivers details without shouting.
๐ caption/labels (small, muted): supportive metadata that stays out of the way until needed.
3. contrast psychology & eye fatigue:
contrast tells the eye what is actionable and what is passive.
๐ pure black on pure white (#000 on #fff) creates harsh optical vibration on modern screens. modern apps use soft off-blacks (#111827) and subtle dark slates to keep reading effortless.
๐ high contrast = primary call-to-action (cta).
๐ medium contrast = secondary information.
๐ low contrast = borders, dividers, background structure.
4. the power of negative space (whitespace):
white space isn't empty space...itโs a powerful structural tool. packing elements together creates claustrophobia and confusion. generous padding around text and cards isolates information into digestible "chunks," making the entire interface feel fast, premium, and effortless.
the builderโs takeaway:
great ui doesn't ask the user to think about where to look. it gently takes them by the hand and guides their eyes through size, contrast, and spacing.
before you ship your next layout, squint your eyes at the screen. if you can't tell what the main action is while blurring your vision, your visual hierarchy is broken.
design for the scanning eye, not just the static screenshot.
@FlutterBegin
โค2
there are only two types of push notifications: the ones that make you open the app instantly, and the ones that make you uninstall it. ๐โก๏ธ๐
every developer knows the temptation: your app's daily active users dip slightly, so you decide to blast a mass notification to everyone:
"we miss you! check out what's new in the app today!" ๐ด
result? zero opens, 50 uninstalls, and 200 people going straight into their phone settings to mute your app forever.
push notifications are the most powerful direct line to your user's lock screen which makes them dangerous. if you abuse it with generic spam, you get muted. if you use smart triggers and copy psychology, you turn casual users into daily power users.
here is the blueprint for push notifications that actually convert:
1. the psychology of the copy (curiosity & loss aversion):
the human brain is wired to avoid losing things more than gaining things.
๐ bad (boring broadcast): "new feature alert! come see our new update."
๐ good (curiosity gap): "someone just replied to your comment..."
๐ better (loss aversion & urgency): "your 5-day streak expires in 2 hours ๐ฅ"
keep it short, ultra-specific, and focused on their status, not your updates.
2. contextual smart triggers > scheduled blasts:
never send notifications on arbitrary schedules (e.g., "every tuesday at 10 am"). trigger notifications based on real events in the user's specific world:
๐ state changes: a balance update, a new match, or a price drop on a saved item.
๐ social proof: "3 people viewed your profile today."
๐ interrupted actions: "you left an unfinished quiz in your draft."
3. intelligent timing & local context:
a notification sent at 3:00 am doesn't get read; it gets resented.
๐ send notifications based on the user's local timezone and their specific historical active hours (e.g., if a user always opens your app on their evening commute around 6:30 pm, fire the trigger at 6:15 pm).
๐ respect quiet hours automatically.
4. direct deep-linking (zero detour):
never send a push notification that opens to the generic home screen. if the alert says "sarah challenged you to a 1v1 match," tapping it must load sarahโs challenge screen immediately. every extra tap required to find the promised content kills engagement.
the builderโs takeaway:
treat every push notification like a physical tap on someone's shoulder. if you wouldn't tap a stranger on the shoulder to tell them your generic news, don't send it to their lock screen.
provide instant value, spark curiosity, and make the next action frictionless.
@FlutterBegin
โค2