Blog </>

Abdulkader Safi web and mobile application development blogs

Retrieval-Augmented Generation (RAG) with Local PDFs and Ollama: A Developer’s Guide

Retrieval-Augmented Generation (RAG) with Local PDFs and Ollama: A Developer’s Guide

Large Language Models (LLMs) like GPT-4, Claude, and Llama 2 are powerful, but they have limits: they hallucinate, miss domain knowledge, and can’t stay up-to-date without retraining. Retrieval-Augmented Generation (RAG) solves these challenges by combining retrieval from an external knowledge base with language generation. And best of all—you don’t need OpenAI or Anthropic APIs. With Ollama, you can run LLMs locally on your machine and power them with your own data (like PDFs in a directory).

Sep 30, 2025 Learn More...
The Toolkit of a Full-Stack Developer: My Essential Tools

The Toolkit of a Full-Stack Developer: My Essential Tools

Being a full-stack developer means wearing many hats—developer, designer, tester, optimizer, and sometimes even sysadmin. To stay effective and deliver high-quality projects on time, I’ve built a toolkit that streamlines every step of my workflow, from coding and design to hosting and optimization.

Sep 29, 2025 Learn More...
jQuery Crash Course (Part 3): jQuery UI with Vite

jQuery Crash Course (Part 3): jQuery UI with Vite

Now in Part 3, we’ll focus on jQuery UI, a collection of ready-to-use interactive widgets and effects. You’ll learn how to install it in a Vite project, initialize components, and customize them with CSS.

Sep 28, 2025 Learn More...
Crash Course: Writing HTML Email Templates Developers Can Send via SMTP

Crash Course: Writing HTML Email Templates Developers Can Send via SMTP

Email is one of the most effective communication channels, but writing HTML email templates is tricky. Unlike the web, where CSS grids and flexbox reign supreme, email design is still stuck in the land of **<table>** layouts, inline CSS, and weird client quirks. This post is a crash course for developers who want to build and send HTML emails directly from code (via SMTP) in .NET, Node.js, or PHP, with lots of ready-to-use layouts.

Sep 28, 2025 Learn More...
jQuery Crash Course (Part 2): Mastering AJAX with jQuery

jQuery Crash Course (Part 2): Mastering AJAX with jQuery

Learn how to use jQuery AJAX in this crash course. Discover how to send GET and POST requests, handle JSON data, and dynamically update your web pages without reloading. This is Part 2 of our jQuery tutorial series.

Sep 27, 2025 Learn More...
jQuery Crash Course (Part 1): Getting Started with jQuery in Modern Projects

jQuery Crash Course (Part 1): Getting Started with jQuery in Modern Projects

jQuery has been around since 2006, and while modern JavaScript (ES6+) and frameworks like React or Vue dominate today’s landscape, jQuery still powers millions of websites. Its simplicity, cross-browser compatibility, and robust plugin ecosystem make it a valuable skill for developers working with legacy projects, or when you just need something quick and lightweight.

Sep 27, 2025 Learn More...
WebAssembly (Wasm): The Future of High-Performance Web Applications

WebAssembly (Wasm): The Future of High-Performance Web Applications

The web has evolved far beyond static pages and simple scripts. Today, users demand fast, interactive, and feature-rich applications, whether it’s 3D graphics, real-time collaboration, or machine learning in the browser. However, traditional web technologies like JavaScript sometimes struggle with performance-intensive tasks. This is where WebAssembly (Wasm) steps in.

Sep 25, 2025 Learn More...
Next.js Middleware: A Developer’s Guide with Real Use Cases and Code Examples

Next.js Middleware: A Developer’s Guide with Real Use Cases and Code Examples

Next.js has become the go-to React framework for building production-grade web applications. With features like file-based routing, API routes, and server-side rendering, it offers developers speed and flexibility. But one feature often underutilized (or misunderstood) is Next.js Middleware.

Sep 25, 2025 Learn More...
NocoDB: Turn Spreadsheets into Powerful Databases

NocoDB: Turn Spreadsheets into Powerful Databases

NocoDB is an open-source no-code database platform that transforms your existing database (like MySQL, PostgreSQL, etc.) into a smart, collaborative interface with spreadsheet-style usability. With NocoDB, non-technical users can build and manage data structures, dashboards, views, automate workflows, collaborate, and generate APIs—all without writing traditional full-stack code. It also offers roles, permissions, integrations, and scripting to extend use where needed.

Sep 23, 2025 Learn More...
How to Optimize SQL Queries to Run Faster: A Developer’s Guide

How to Optimize SQL Queries to Run Faster: A Developer’s Guide

When working with relational databases, slow SQL queries can quickly become a bottleneck for your applications. Whether you’re building APIs, dashboards, or analytics pipelines, query performance directly impacts user experience and system scalability. In this guide, we’ll break down proven SQL optimization techniques, complete with code Examples, so developers can speed up queries and reduce server load.

Sep 22, 2025 Learn More...
Using Partial Views in ASP.NET Core MVC

Using Partial Views in ASP.NET Core MVC

How to build reusable UI components with Partial Views, This article uses the https://github.com/Abdulkader-Safi/MVC_Components_test) repo by Abdulkader Safi as a working example.

Sep 22, 2025 Learn More...
What is Expo UI?

What is Expo UI?

Expo UI (package @expo/ui) is a cutting-edge library in the Expo ecosystem that provides a set of native input components enabling you to build fully native user interfaces leveraging SwiftUI for iOS/tvOS and Jetpack Compose for Android. It is currently in alpha—meaning things are actively developing, APIs may change, and it’s not yet stable. Notably, Expo Go doesn’t support Expo UI, so to try it out you’ll need to use development builds.

Sep 21, 2025 Learn More...
© Abdulkader Safi - SITEMAP - Privacy Policy