Hello, world.
This is a blog about application development web, desktop & mobile across a range of programming languages incl. JavaScript, C# and more.
These are interesting times for the web. Tag along as I get amazed on what the web can do, how AI is taking over the world, and sympathize my spectacular failures and stupidity.
Explore
- 📝 Posts — In-depth articles on web development, JavaScript, TypeScript, Vue.js, ASP.NET, and more
- 🗂️ Categories — Browse topics: JavaScript, Vue.js, TypeScript, ASP.NET, and more
- 🚀 Apps — Simple, powerful tools built for real-world use
Stay in touch!: 🐤Twitter | 🛜RSS | 🚀GitHub
After years of building web apps where “performance” means a 2-second LCP and “local storage” is a suggestion, I have taken the last 2-3 months to explore how the desktop ecosystem has changed. Since I don’t like opening browsers masquerading as an app all the time, Rust and specifically Tauri looked great.
However I did lean back on AI coding a lot more with my latest project - Pexand. I wanted to try how much can I like the core desktop app building experience that I have not delved into for sometime.
...
After spending years 😏 building applications with Nuxt.js (and occasionally dipping into Next.js), I decided to take a step back to pure Vue 3 and create a.. lo and behold - a Google Keep alternative.
Just kidding - the app is far more dumb.
Notocan: A Dumb Google Keep Alternative Notocan is what I like to say “deliberately dumb”, local and fast. It’s not trying to be the next big productivity platform with AI features, cloud sync complexity, or fancy collaboration tools. It’s just notes, done right in a browser window.
...
As someone who’s never been a huge fan of React, I found myself diving headfirst into building TimeMomo - a real-time collaborative timer platform. This project was born out of a desire to learn more about modern web development stacks while creating something genuinely useful (for me, if no one else!).
TimeMomo is designed for presenters, streamers, and event managers who need to share timers with audiences in real-time, without the complexity of traditional WebSocket implementations.
...
Today, I’m excited to introduce utils.techformist.com – a collection of client-side web utilities designed to make developers’ lives easier. Built with speed, simplicity, and privacy in mind, this tool suite aims to be your go-to resource for common development tasks.
Why Another Utility Site? The web is full of utility sites, but many come with drawbacks:
Intrusive ads and analytics Server-side processing of potentially sensitive data Slow loading times Inconsistent UI/UX utils.techformist.com addresses these issues by keeping everything client-side, ensuring your data never leaves your browser. The site loads quickly, works offline, and offers a clean, consistent interface for all tools.
...
We will walk through the steps to build a document analysis web application using Nuxt 3 and Azure Document Intelligence. This application allows users to -
Features will include -
🔍 Create/pass a template in HTML and placeholders for values 🕶️ Real-time document analysis status 💾 Download merged content as PDF Here’s a quick demo. While the demo showcases invoice generation, the same program can be extended to any document type - filled application forms, documents, etc.
...
We will walk through the steps to build a document analysis web application using Nuxt 3 and Azure Document Intelligence. This application allows users to -
upload PDF or images specify fields (if needed) extract specific fields of information Features will include -
🔍 Extract custom fields from identification documents 🔄 Real-time document analysis status 💾 Download extracted data as JSON 🎨 UI with Shadcn-vue /Tailwind CSS Here’s a quick demo. ...
There was a time to be scared of the auth in ASP.NET. Identity really makes it easy. But before delving any further, let’s keep the tradition alive by knowing the ancient Roman history of auth in ASP.NET.
How Auth was done earlier? Manual Token Generation: Developers manually created JWT tokens using libraries like System.IdentityModel.Tokens.Jwt and hardcoded key management. No Built-in User Management: Handling user registration, login, password hashing, and role management required custom code. Manual Claims Management: Claims (roles, permissions) were added to JWT tokens manually, increasing the risk of errors. Token Validation: Developers manually validated JWT tokens in each request, including signature, expiration, and claims validation. No Built-in Features for Role Management: Handling user roles and claims for authorization were complex It’s not uncommon to see code like this even today (there continue to be valid use cases, of course).
...
Laravel is cool and all, but does not quite provide the “out of the box” dev experience as ASP.NET or, gasp, Typescript.
Let us change that by using a few good editor tools and packages.
PHP Intelephense extension I use VSCode and there is no better auto completion than PHP Intelephense. It is fast, reasonably accurate and provides more than few options for playing around the code.
Laravel Extra Intellisense extension Install Laravel Extra Intellisense extension for -
...
Gone are the days when we depended on styling libraries to provide fast access to icons and go through untold suffering due to payload size, performance issues etc.. With the advent of SVG, we can use icons from a variety of sources. We will see how to do just that.
SVG images have the advantage of -
Being vector based, so it can be scaled to any size “Is just text” Can be styled Small in size! Using SVG Icons: Why do that? You see in the old west, we used to have icons like this -
...
First, let me clarify what I mean by “dynamic image”.
Imagine the below situations -
You are rendering a list of products and their images. The image may be stored in local folder or coming in from S3/comparable infrastructure You want to change image / make image interactive. For e.g., users select fruits and the corresponding fruit image gets added in a basket You want to preprocess the image in some shape and form at runtime. For e.g., watermarking the image Rendering an Image Typically, you render images with -
...