Desktop Applications
- Installed on computer
- Works offline
- Examples: MS Office, Photoshop
1 / 25
2026 Edition
Building Scalable, Intelligent & Production-Ready Web Applications
π₯οΈ
π±
π
| Platform | Installation | Internet Required | Device |
|---|---|---|---|
| Desktop | Yes | Optional | PC |
| Mobile | Yes | Mostly Yes | Mobile |
| Web | No | Yes | Browser |
A web application is a software application that runs in a web browser and communicates with a server over the internet.
User clicks button β Frontend sends request β Backend processes β Database returns data β UI updates
<header>,
<main>, and <footer> for
clarity.
<audio> and
<video> provide built-in media playback
controls.
<svg> adds modern scalable graphics for
icons, charts, and UI illustrations.
<audio controls src="intro.mp3"></audio>
<video controls width="320" src="demo.mp4"></video>
navigator.geolocation.getCurrentPosition((pos) => {
console.log(pos.coords.latitude, pos.coords.longitude);
});
<svg width="120" height="40">
<circle cx="20" cy="20" r="12" fill="#6c7dff" />
</svg>
<!-- Best practice script placement -->
<head>
<script src="app.js" defer></script>
</head>
<!-- or before closing body -->
<script src="app.js"></script>
Live Demo: Audio, Video & Geolocation
Audio Demo
Video Demo
Click the button to fetch latitude/longitude.
<header> β top identity area with logo/title.
<nav> β primary navigation links.<section> β grouped thematic content.<article> β standalone content block.<footer> β bottom metadata and links.<header>Brand</header>
<nav>Links</nav>
<main>
<section>
<article>Post</article>
</section>
</main>
<footer>Contact</footer>
<button class="px-4 py-2 rounded-lg bg-indigo-600 hover:bg-indigo-500 text-white font-semibold">
Save Changes
</button>
grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4
Live Demo: change class names to update layout
Try classes:
layout-flex, layout-grid,
fd-col, jc-center,
ai-center, grid-cols-3,
gap-4
max-width: 768px.
@media (max-width: 768px) {
.layout { grid-template-columns: 1fr; }
}
<div class="grid grid-cols-[240px_1fr] gap-4 min-h-screen">
<aside class="bg-slate-900">Sidebar</aside>
<main class="p-4">Content</main>
</div>
.card { position: static; }
.badge { position: absolute; top: 8px; right: 8px; }
.header { position: fixed; top: 0; width: 100%; }
.section-title { position: sticky; top: 0; }
.box { position: relative; left: 10px; }
:hover styles element on mouse over.:focus styles keyboard/input focus state.:nth-child() targets specific child pattern.::before adds decorative/generated content..btn:hover { background: #4f46e5; }
.input:focus { outline: 2px solid #8a5cff; }
li:nth-child(odd) { background: rgba(108,125,255,0.08); }
.tag::before { content: "# "; color: #8a5cff; }
These selectors improve accessibility, interaction feedback, and visual hierarchy with minimal markup.
Live Demo: Click + Input + UI Update
Hello, Developer!
querySelector,
getElementById.
textContent,
class changes, style updates.
const title = document.querySelector('.title');
title.textContent = 'Updated!';
let count = 0;
button.addEventListener('click', () => {
count += 1;
output.textContent = count;
});
User Action β JavaScript Logic β Updated UI
<ProductCard /> reused in list and
recommendations.
price;
child updates quantity state.
function CartItem({ price }) {
const [qty, setQty] = React.useState(1);
return (
<div>
<p>Price: ${price}</p>
<p>Qty: {qty}</p>
<button onClick={() => setQty(qty + 1)}>+</button>
</div>
);
}
| Technology | Type | Learning Curve | Performance | Use Cases | Flexibility |
|---|---|---|---|---|---|
| React | Library | Moderate | High (Virtual DOM) | Interactive SPAs, dashboards, large UI apps | Very High |
| AngularJS | Framework | Steeper | Moderate | Legacy enterprise apps, structured MV* projects | Medium (opinionated) |
| Vue JS | Progressive Framework | Easy to Moderate | High | Rapid UI apps, gradual adoption projects | High |
HTML + CSS + JavaScript + React β Modern Web App
User clicks "Add" β state updates β UI badge changes
Sample LIVE React projects (Netflix-style inspiration):