2026-01-28 12:49:33
If you're reading this, you've likely stumbled upon my corner of the internet. Let's skip the small talk and get straight to the core questions: Who am I? and What do I do?
I'm Abhay Prajapati, and I build the internet—specifically, the parts of it that don't crash when they go viral.
I am a Full-Stack Developer and Serverless Architect based in Surat, India.
But beyond the titles, I’m a problem solver. I don't just write code; I architect systems. My journey wasn't linear—it was a relentless pursuit of efficient, scalable, and cost-effective solutions. I realized early on that "it works on my machine" isn't good enough. It has to work for thousands of users, concurrently, without breaking the bank.
That realization led me down the rabbit hole of Cloud-Native Technologies and Serverless Architecture, and I haven't looked back since.
👉 See my work: abhay-prajapati.vercel.app
I bridge the gap between complex backend infrastructure and stunning frontend user experiences. My expertise lies in three core pillars:
I design systems where you don't pay for idle time. Using AWS Lambda, API Gateway, and DynamoDB, I build backends that are:
I don't just make things work; I make them feel instant. Using Next.js, React, and Tailwind CSS, I craft interfaces that are:
I connect the dots. From setting up CI/CD pipelines to optimizing database queries, I handle the full lifecycle of application development. I treat infrastructure as code (IaC) and performance as a feature, not an afterthought.
"Code is not just about instructions for machines; it's about solving human problems with elegance and efficiency."
I believe in:
I am currently working on scaling open-source tools and helping businesses transition to serverless infrastructures.
My goal is simple: To build software that empowers people and businesses to do more with less.
If you are looking for someone to:
...then we should talk.
I share my learnings, code snippets, and thoughts on the future of tech right here and on my social channels.
Thanks for reading! If you resonate with the serverless mindset or just want to say hi, drop a comment below! 👇
Published via Abhay's Portfolio
2026-01-28 12:49:30
Hi DEV 👋
I’m currently building a small side project called DecodeYou.
The idea came from personal experience.
I’ve been in a long-distance relationship, and even when both people care a lot,
misunderstandings still happen — not because of bad intentions,
but because we interpret situations differently.
For example:
the same action can feel “reasonable” to one person,
and deeply hurtful to the other.
Instead of giving advice or labeling people,
DecodeYou focuses on helping users:
Right now the project is very early.
I’ve open-sourced the repo to document the ideas and structure as I build.
👉 GitHub repo: https://github.com/cherryyan1987/cherryyan1987
I’d really appreciate any feedback, thoughts, or even skepticism.
Happy to learn from this community.
2026-01-28 12:45:09
GLP-1 medications (like semaglutide and tirzepatide) have exploded in demand, but finding legitimate, accessible telehealth providers is still surprisingly hard — especially outside the US.
So I built GLP-1 Patches, a global directory of GLP-1 telehealth providers.
Most existing resources are:
If you’re not in the US (or you’re comparing options), the information gap is huge.
No prescriptions. No medical advice. Just structured, comparable information.
Health + software is a very different beast.
The project is still early, but already useful for:
👉 Website: https://glp-1patches.org
If you’re building in healthtech, telemedicine, or regulated markets, I’d love feedback:
2026-01-28 12:44:17
Finding PDFs online is unnecessarily painful.
Most sites:
– overload ads
– hide real download buttons
– force signups
I didn’t want to “disrupt” anything.
I just wanted a place where PDFs are accessible without friction.
So I built PDFHubs.
Key decisions I made:
– No forced accounts
– No misleading UI
– Focus on usefulness, not clicks
Still early, still improving.
If you’ve dealt with the same problem, I’d appreciate honest feedback:
https://pdfhubs.site
2026-01-28 12:39:00
Frontend development in Symfony has taken a huge leap forward in recent years. Thanks to Symfony UX and Twig Components, we've gained the ability to write reusable components much like in React or Vue. However, the more components you have, the more you encounter one annoying problem: files are scattered across the entire project.
A PHP class in src/Components, a Twig template in templates/components, CSS in assets/styles, and JavaScript somewhere else entirely. When you want to change the color of a button, you're looking at a trip through four different directories.
Some time ago, Hugo Alliaume published a great article A Better Architecture for Your Symfony UX Twig Components, where he proposed the concept of Single Directory Components (SDC). The idea is simple: let's have everything in one folder.
Today, we'll show you how to take this concept to the next level, completely get rid of manual configuration, and maybe even Tailwind.
If you've ever worked with Angular or Vue, you know that feeling of order. An Alert component is a single folder containing everything essential.
In the SDC approach, it looks like this:
src_component/
└── UI/
└── Button/
├── Button.php # Logic
├── Button.html.twig # Template
├── Button.css # Styles
└── Button_controller.js # Interactions (Stimulus)
Main Advantages:
Lately, there's more and more talk about how, with the arrival of modern CSS features (like CSS variables, nesting, @layer), the need for utility frameworks like Tailwind is decreasing. Articles like The Power of CSS Variables remind us that pure CSS is stronger today than ever before.
The SDC approach plays right into this trend. When you have a CSS file right next to your PHP class, you don't need to write 20 Tailwind classes in your HTML. You can define clean, semantic CSS that uses CSS variables linked directly to PHP logic.
Hugo's article showed how to set up SDC manually. However, it requires changes to composer.json, Twig configuration, AssetMapper, and Stimulus.
Our bundle tito10047/ux-sdc does it for you. It's a Zero Configuration solution. Just install the bundle and mark the class with an attribute.
#[AsSdcComponent('UI:Button')]
class Button {
// The bundle automatically finds Button.html.twig, Button.css, and Button_controller.js
}
The bundle solves technical challenges that you would have to patch yourself with a manual approach:
Link headers for HTTP preload. The browser starts downloading CSS even before it starts parsing HTML. This eliminates the annoying flash of unstyled content (FOUC).What does it look like in the real world? Take a look at the project formalitka.mostka.sk. The entire UI kit is built on SDC without a single line of Tailwind.
Let's take their Button component. The PHP class defines properties like color or size. The CSS then processes these properties using variables:
/* Button.css */
@layer components {
.button {
background: var(--color-primary);
color: var(--color-on-primary);
transition: var(--transition);
&.button--secondary {
background: var(--color-secondary);
}
}
}
Thanks to SDC, this complex component (containing seal animations, sounds, and special effects) is contained within one directory and is easy to maintain.
Installation is lightning fast:
composer require tito10047/ux-sdc
Register the bundle and in config/packages/ux_sdc.yaml, set where your components reside:
ux_sdc:
ux_components_dir: '%kernel.project_dir%/src_component'
component_namespace: 'App\Component'
And add the asset placeholder to your base.html.twig:
<head>
{{ render_component_assets() }}
</head>
That's it. From this moment on, just create directories and write code.
When automation and "magic" come into play, the question often arises: What about performance? We put the SDC approach to a stress test with 500 unique components. Here are the key findings from our benchmarks:
| Scenario | Classic Approach | SDC Approach | Difference |
|---|---|---|---|
| Warmup (Prod) | 583.1 ms | 586.2 ms | +3.1 ms |
| Render (Prod Runtime) | 26.5 ms | 31.6 ms | +5.1 ms |
| Render (Dev Runtime) | 26.5 ms | 88.4 ms | +61.9 ms |
What does this mean in practice?
You can find the full report in our benchmark.md.
This bundle is currently in version 0.0.1. It's an early stage where we're looking for the right path. I wrote this article not only to share our solution but mainly to get feedback from you, the community.
We're interested in:
We want this bundle to be built on solid foundations and real developer needs from the first stable version. Every GitHub issue, discussion, or comment moves us forward.
Single Directory Components combined with modern CSS are changing the way we think about Symfony UX. We're getting rid of unnecessary boilerplate code, cleaning up our project structure, and increasing our performance as developers.
Try the UX SDC Bundle and say goodbye to scattered files. The future of Symfony UX is in order and clarity.
2026-01-28 12:28:11
Enhanced the shape snapping system with prominent glowing visual guides that clearly show when and where shapes snap to canvas edges, canvas center, or other shapes.
Used for center alignment snapping:
Visual Properties:
Used for edge snapping:
Visual Properties:
Custom pulse animation that:
The system automatically detects and shows guides when shapes align with:
Canvas Center
Canvas Edges
Shows guides when shapes align with other shapes:
Edge Alignment
Stacking
Side-by-Side
Center Alignment
/src/components/design-tool/SnapGuides.tsx
const lineWidth = isYellowGuide ? 3 : 2;
Yellow center guides are slightly thicker to emphasize importance
boxShadow: `0 0 12px 3px color, 0 0 20px 6px color, 0 0 30px 9px rgba(..., 0.3)`
Creates deep, luminous glow that's visible against any background
@keyframes snapPulse {
0%, 100% { opacity: 1; filter: brightness(1); }
50% { opacity: 0.7; filter: brightness(1.3); }
}
Breathing effect that maintains visibility while providing motion feedback
translateX(-${lineWidth/2}px) for vertical guidestranslateY(-${lineWidth/2}px) for horizontal guidesSNAP_THRESHOLD / zoom
Ctrl + ;