Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
---
title: 'Web performance in 2026: A Practical Guide'
description: 'A comprehensive guide to web performance for modern frontend development in 2026.'
date: '2026-06-23'
tags: ['Web performance', 'Frontend', '2026']
published: true
image: './images/post-image.png'

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Verify that the image file exists at the expected path.

# Expected location based on frontmatter
find . -name "post-image.png" -type f
ls -la "content/blog-post-2026-06-23/images/post-image.png" 2>/dev/null && echo "✓ Image file exists" || echo "✗ Image file NOT found"

Repository: deepu0/frontend-junction

Length of output: 185


🏁 Script executed:

#!/bin/bash
# Check directory structure and look for any image files in the blog post directory
echo "=== Directory structure of blog-post-2026-06-23 ==="
ls -la "content/blog-post-2026-06-23/" 2>/dev/null || echo "Directory not found"

echo ""
echo "=== Looking for image files in the blog post area ==="
find "content/blog-post-2026-06-23" -type f \( -name "*.png" -o -name "*.jpg" -o -name "*.jpeg" -o -name "*.webp" -o -name "*.gif" \) 2>/dev/null || echo "No image files found"

echo ""
echo "=== Checking if images subdirectory exists ==="
test -d "content/blog-post-2026-06-23/images" && echo "Images directory exists" || echo "Images directory does NOT exist"

Repository: deepu0/frontend-junction

Length of output: 555


Add the missing image file or remove the image reference from frontmatter.

The frontmatter references ./images/post-image.png (line 7), but the image file and the images/ directory do not exist. Velite's s.image() validator will fail at build time, preventing the post from being published. Either add the image file at content/blog-post-2026-06-23/images/post-image.png or remove the image field from frontmatter.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@content/blog-post-2026-06-23/web-performance-in-2026-a-practical-guide.mdx`
at line 7, The `image` field in the frontmatter references a file path that does
not exist, which will cause the Velite `s.image()` validator to fail at build
time. Either add the missing image file at the referenced path or remove the
`image` field from the frontmatter entirely. If you choose to keep the image
reference, ensure the image file is placed in the correct directory structure
relative to the blog post file.

Comment on lines +1 to +7

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: This post is added under content/blog-post-2026-06-23/, but the Velite collection only ingests blog/**/*.mdx from content. As a result, this new article will never be included in #site/content, so it will not appear on blog pages, tags, sitemap, or static params. Move the file under content/blog/ (or expand the collection pattern) so it is actually published. [incomplete implementation]

Severity Level: Critical 🚨
- ❌ Blog listing page /blog never shows this article.
- ❌ Individual post route for this article never generated.
- ⚠️ Tags and sitemap exclude this article's metadata.
Steps of Reproduction ✅
1. Open `velite.config.ts` and observe the posts collection definition at lines 11–15:
`pattern: 'blog/**/*.mdx'` with `root: 'content'` at line 31, meaning only files under
`content/blog/**/*.mdx` are ingested into `#site/content`.

2. Note that this PR adds the new MDX file at
`content/blog-post-2026-06-23/web-performance-in-2026-a-practical-guide.mdx` with
frontmatter on lines 1–7; this path `blog-post-2026-06-23/...` does not match the
configured `blog/**/*.mdx` pattern, so Velite will never load it.

3. Start the Next.js app (which consumes Velite output via `#site/content` mapped in
`tsconfig.json:23`) and navigate to `/blog`; the listing page at `app/blog/page.tsx:1–6,
29–35` imports `posts` from `#site/content` and renders only those entries, so the "Web
performance in 2026" article never appears.

4. Check other consumers of `posts` such as the post detail route
`app/blog/[...slug]/page.tsx:1–3, 71–72`, tags pages `app/tags/page.tsx:3, 16–18` and
`app/tags/[tag]/page.tsx:1–5, 25–27`, the homepage latest posts `app/page.tsx:4, 72–85`,
and the sitemap `app/sitemap.ts:3, 38–45`; all source their data from `posts`, so this
article is missing from all blog routes, tag listings, homepage highlights, and sitemap
entries.

Fix in Cursor Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** content/blog-post-2026-06-23/web-performance-in-2026-a-practical-guide.mdx
**Line:** 1:7
**Comment:**
	*Incomplete Implementation: This post is added under `content/blog-post-2026-06-23/`, but the Velite collection only ingests `blog/**/*.mdx` from `content`. As a result, this new article will never be included in `#site/content`, so it will not appear on blog pages, tags, sitemap, or static params. Move the file under `content/blog/` (or expand the collection pattern) so it is actually published.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

---

# Web performance in 2026: A Practical Guide

Web performance continues to evolve in 2026, and staying current with the latest patterns and best practices is essential for building modern, performant web applications. In this guide, we'll explore practical techniques you can implement today.

## Why Web performance Matters

Understanding web performance is crucial for frontend developers who want to build responsive, accessible, and maintainable applications. Whether you're working on a small project or a large-scale enterprise application, these concepts apply.

## Key Concepts

### 1. Foundation Principles

The core principles behind web performance remain consistent, but implementation details have evolved. Here's what you need to know:

```typescript
// Example of modern web performance pattern
function useModernPattern() {
// Implementation example
return {
apply: () => {
console.log("Applying modern web performance pattern");
}
};
}
```

### 2. Common Pitfalls to Avoid

- **Ignoring performance**: Always measure before optimizing
- **Over-engineering**: Start simple, add complexity when needed
- **Not following conventions**: Stick to established patterns in your codebase

### 3. Best Practices

1. Start with the basics before moving to advanced patterns
2. Test your implementations thoroughly
3. Document your code for future reference
4. Keep performance in mind throughout development

## Real-World Example

Here's a practical example you can adapt for your projects:

```typescript
// Real-world application example
interface Props {
data: string[];
onUpdate: (value: string) => void;
}

function Component({ data, onUpdate }: Props) {
return (
<div>
{data.map(item => (
<button key={item} onClick={() => onUpdate(item)}>
{item}
</button>
))}
</div>
);
}
```

## Conclusion

Web performance is an essential skill for modern frontend developers. By understanding these patterns and implementing them in your projects, you'll build better applications that are more maintainable and performant.

Start with the basics, practice regularly, and gradually incorporate more advanced techniques into your workflow. The key is consistency and continuous learning.

---

Have questions or want to share your experience? Join the discussion in our community!
Loading