Skip to content

Commit

Permalink
Merge branch 'master' into releases/october
Browse files Browse the repository at this point in the history
  • Loading branch information
aliemir authored Sep 24, 2024
2 parents a0f2d7b + 9967b7c commit d0341e6
Show file tree
Hide file tree
Showing 13 changed files with 654 additions and 102 deletions.
2 changes: 2 additions & 0 deletions documentation/blog/2024-09-17-chakra-ui.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ image: https://refine.ams3.cdn.digitaloceanspaces.com/blog/2023-12-19-chakra-ui/
hide_table_of_contents: false
---

**This article was last updated on September 17, 2024, to expand usage of Chakra UI.**

## Introduction

[Chakra UI](https://chakra-ui.com/) has attracted a lot of attention over the years due to its versatility, ease of use, and customizable approach to integrating into any front-end application.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ image: https://refine.ams3.cdn.digitaloceanspaces.com/blog/2023-12-29-admin-pane
hide_table_of_contents: false
---

**This article was last updated on September 18, 2024, to add sections on Accessibility Features, Performance Optimization, and SEO Considerations for Admin Panels and Dashboards.**

This version reflects the potential updates related to the admin panel content.

## Introduction

Admin panels and dashboards are a vital component in various products, serving as a centralized hub for monitoring, analyzing, and managing different types of data. These dashboards generalize data in a defined manner, providing users with a comprehensive overview of ongoing activities. They are instrumental for organizations, offering extensive insights, analytics, metrics, and control over all operational aspects. Admin panels have demonstrated their value in numerous processes such as customer database management, inventory management, and bug tracking. They have played a significant role in businesses by simplifying complex processes and facilitating data-driven strategies.
Expand Down Expand Up @@ -122,8 +126,8 @@ It also offers a wide range of performance features that ensure the smooth runni

**Community and Support**

Refine.js has a large and active community of developers. Currently, It has more than 17,500 stars and 1400 forks on GitHub.
It has a Discord server with 3000+ people.
Refine.js has a large and active community of developers. Currently, It has more than 27.5K+ stars and 2K+ forks on GitHub.
It has a Discord server with 6000+ people.

## [2.Angular - ngx-admin](https://github.com/akveo/ngx-admin)

Expand Down Expand Up @@ -336,9 +340,83 @@ It uses ASP.NET Core authentication routines for client identity. It also offers

Blazor apps are highly performant, Blazor has a whole array of performance tooling to make your apps fast. You can set up caching, rate limiting, object reuse, and response compression, to scale up your app.

**Community and Support**
## Is SEO Optimization Important in Admin Panels?

Recently, I have been thinking a lot about how much SEO applies to admin panels and whether it matters. Typically, SEO isn’t a top priority for admin panels because they are mostly internal tools. But in some cases, it can still be relevant. Let me explain when SEO matters and how we can optimize for it.

SEO optimization is not critical for most admin panels, since these tools are designed for internal use and aren’t intended to be indexed or ranked by search engines. However, in some specific cases, it may be important:

### Public-Facing Apps

If some parts of the admin panel, such as help sections, documentation, or dashboards, are publicly visible, SEO optimization is necessary to ensure those pages are indexed correctly and rank well on search engines.

### Content Visibility

If there are reports or analytics dashboards that need to be publicly available, SEO helps ensure those pages are discoverable by users.

### Performance Considerations

While performance optimizations—like page speed and mobile responsiveness—aren’t directly related to SEO for internal panels, improving these factors enhances user experience. If we have public-facing elements, optimizing for speed will impact both usability and SEO.

### **SEO Optimization Tips for Admin Panels**

Here are some tips for optimizing admin panels for SEO, particularly in cases where parts of the panel may be publicly accessible:

### Meta Tags

We should include proper meta tags like title, description, and Open Graph for any public-facing pages. This will ensure those pages appear well in search results or when shared on social media. Frameworks like **Next.js** (used with Refine.js) have built-in support for server-side rendering (SSR), which is great for SEO.

### Server-Side Render

Frameworks like **Next.js** and **Angular** offer built-in SSR, which is important for SEO. SSR ensures that content is rendered on the server, allowing search engines to crawl and index pages more smoothly. While Vue and Blazor can use SSR with additional setup, it requires more effort for SEO purposes.

### Page Speed

Fast-loading admin panels improve user experience, and for public pages, they also impact SEO. We can optimize images, use lazy loading, and process JavaScript efficiently to speed up page loads. Lightweight frameworks like **Blazor** and **Vuetify** help keep load times fast, which positively affects SEO for public pages.

### Content Indexing

If parts of the admin panel are public, like documentation, FAQs, or help sections, we should ensure they are indexed correctly by search engines. Clean URLs, sitemaps, and proper use of **robots.txt** help search engines find the right pages. Frameworks like **Refine.js** and **Angular** include built-in SEO support, while **Laravel Nova** and **Django Admin** may require more manual effort.

### Mobile-Friendly

Although admin panels are usually accessed from desktops, some users may view them on mobile. Ensuring responsiveness will improve user experience and impact SEO if any parts of the panel are public. **Vuetify** and **ngx-admin** offer good mobile responsiveness out of the box.

### Structured Data

Adding structured data (like JSON-LD) helps search engines better understand the content of public pages. This is useful if dashboards showing key stats or updates are publicly visible. **Next.js** and **Angular** make adding structured data easier for improved search visibility.

### When It’s Not Important?

For admin panels that are used purely internally, SEO is usually not relevant since these pages don’t need to be indexed by search engines. In these cases, the main focus should be on performance optimization and user experience rather than SEO.

## Bonus: Accessibility Features in Admin Panel Frameworks

I've been looking into some of the admin panel frameworks we're considering and how they handle accessibility features. Accessibility is important, especially if we want to make sure our application is available to any users, including those with disabilities. Here is a quick rundown:

### Refine.js

Refine doesn't have baked-in support for accessibility, but since it's based on React, we can use React's tooling and ARIA attributes to ensure a level of accessibility. For keyboard navigation and screen reader support, we'd have to handle that manually, but there are a number of React libraries that make it easier.

### ngx-admin (Angular)

Angular itself has strong support for accessibility, including built-in ARIA attributes, which is a big plus. ngx-admin follows best practices, providing keyboard navigation and screen reader compatibility right out of the box.

### Vuetify (Vue)

Vuetify is highly focused on accessibility. It has built-in tools for ARIA support and was designed with screen readers and keyboard navigation in mind. It also comes with helper components that make all form controls, buttons, and other elements highly accessible.

### Laravel Nova

By default, Nova doesn't have many accessibility features, but since it's based on Laravel and PHP, we can implement custom solutions. We just need to manually include ARIA attributes and test for keyboard navigation to ensure everything works smoothly.

### Django Admin

Django Admin isn't very accessibility-friendly by default, as it's mainly designed for internal use. We'd need to implement most of the accessibility features ourselves, such as support for screen readers and proper labeling.

### Blazor

Blazor being a Microsoft-owend app is in the .NET community. As of now, the .NET has more than 450,000 stars on Github, and more than 345,000 members on Meetup.
As part of the .NET ecosystem, Blazor does prioritize accessibility standards, but we'd still need to adapt it for our specific needs. Blazor provides some built-in ARIA support and good keyboard navigation features.

## Conclusion

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ image: https://refine.ams3.cdn.digitaloceanspaces.com/blog/2023-02-01-uri-vs-url
hide_table_of_contents: false
---

**_This article was last updated on January 17, 2024 to provide a more detailed explanation, image and comparison table of URI VS URL._**
**This article was last updated on September 18, 2024, to add sections on the Historical Context of URI and URL, Security Considerations, and SEO Implications of Proper URI and URL Usage.**

## Introduction

Expand All @@ -24,31 +24,24 @@ In this article, you will learn about the concept of a URI, its components, its

Steps we'll cover:

- [What is URI?](#what-is-uri)
- [Components of URI](#components-of-uri)
- [Functions and Architecture of URI](#functions-and-architecture-of-uri)
- [Examples of URI](#examples-of-uri)
- [Syntax Of URI](#syntax-of-uri)
- [Use Case of URI](#use-case-of-uri)
- [What is URL?](#what-is-url)
- [Examples of URLs](#examples-of-urls)
- [Benefits of URI over URL](#benefits-of-uri-over-url)
- [Coding Smarter: Using URI & URL Knowledge in Development](#coding-smarter-using-uri--url-knowledge-in-development)
- [Comparison Summary of URL and URI](#comparison-summary-of-url-and-uri)
- [Examples of URLs](#examples-of-urls)
- [Benefits of URI over URL](#benefits-of-uri-over-url)
- [Coding Smarter: Using URI \& URL Knowledge in Development](#coding-smarter-using-uri--url-knowledge-in-development)
- [Security Considerations for Using URLs and URIs](#security-considerations-for-using-urls-and-uris)
- [Comparison Summary of URL and URI](#comparison-summary-of-url-and-uri)
- [Bonus: SEO Benefits of Proper URI and URL Usage](#bonus-seo-benefits-of-proper-uri-and-url-usage)
- [Conclusion](#conclusion)

## What is URI?

URI is an abbreviation for "Uniform Resource Identifier," which refers to a unique identifier composed of a string of characters that points to any resource on the internet via procedures such as name, location, or both.
Back in the late 1980s, Tim Berners-Lee, the inventor of the World Wide Web, introduced the concept of the URI (Uniform Resource Identifier). His goal was to create a universal system to locate and access web resources, from web pages to files, using a unique identifier. URIs were designed to identify any resource on the web, whether by name, location, or both.

URLs and URNs are the two types of URIs. URLs, a type of URI, stand for Uniform Resource Locators and are commonly known as website addresses, illustrating a key aspect of the difference between URI and URL. They specify the location of a resource on the Internet and instruct a web browser on how to retrieve it.
URLs (Uniform Resource Locators), a specific type of URI, focus on the "location" aspect—where a resource can be found on the web and how to retrieve it. For instance, the URI "https://www.mywebsite.com" specifies the location of a website and instructs a web browser to retrieve it using the HTTPS protocol. This makes URLs crucial for pinpointing resources by their address, while URIs, in general, can identify resources without necessarily specifying how to locate them.

For example, the URI "https://www.mywebsite.com" specifies the location of a website and instructs a web browser to retrieve it using the HTTPS protocol.
Web protocols like HTTP and HTTPS rely on URIs to communicate with resources on the internet. The architecture of a URI is a string of characters that represent a web resource's address, often combining the resource’s name and location.

Web protocols such as HTTP and HTTPS use URIs to communicate with multiple resources on the internet. The architecture of URIs is a string of characters that represents the address of a web resource, which is usually a combination of the resource's name and address. This distinction is crucial in understanding what is a URI and how it functions in contrast to a URL

In essence, a URI can identify any type of resource, including web pages, images, videos, and other types of files. They are an essential component of how the Internet works and are used in various contexts, including web addresses, links, and other types of references to online resources.

Understanding what a URI is, including URI examples, is fundamental in grasping the URI vs URL concept
In essence, URIs are a broad concept for identifying resources on the internet, and URLs are a more specific type of URI focused on location. While these terms are often used interchangeably, this historical context helps clarify why URLs are just one way of identifying resources within the broader URI framework.

## Components of URI

Expand Down Expand Up @@ -195,6 +188,39 @@ URIs (Uniform Resource Identifiers) are a broader classification of identifiers
4. **Routing in Web Applications**: URLs are integral in routing within web applications. Frameworks like React or Angular use URLs to determine which component to render, for example, `https://mywebsite.com/about` might route to an About page.
5. **Link Generation**: In content management systems, URLs are dynamically generated to link to various content pieces. A blog post might be accessible through a URL like `https://blog.mywebsite.com/2024/01/my-first-post`, which is automatically generated based on the post's title and date.

## Security Considerations for Using URLs and URIs

I wanted to share a quick note on some important **security considerations** when working with URLs and URIs, especially since we use them all the time.

**Exposing Sensitive Data**
URLs can expose sensitive information like user IDs or session tokens, especially if they're passed in the query string. This can be dangerous if someone captures the URL.

It’s better to avoid passing sensitive data in the URL and use POST requests instead. Also, always use HTTPS to encrypt the data.

**Phishing and Spoofing**
Attackers can create fake URLs that look like real ones (for example, "g00gle.com" instead of "google.com"). Users might click these without noticing the difference.

Make sure we validate URLs properly and teach users to check links before clicking.

**Open Redirects**
Sometimes URLs can allow users to be redirected to another website, which can be exploited for phishing.

Always check and limit where redirects can send users.

**Cross-Site Scripting (XSS)**
If a URL includes unsanitized user input, attackers could inject malicious scripts into our web pages.

Always sanitize input and encode URL parameters to block script injections.

**Session Hijacking**
Passing session tokens or login info in a URL can be risky because they can be logged or shared accidentally.

It’s safer to use cookies for session management and secure them with HTTP-only and secure flags.

**Using HTTPS**
Always ensure that any sensitive data is sent over HTTPS to keep it encrypted and safe from attackers.
**What we can do:** Double-check that all critical pages use HTTPS, especially when handling personal data.

## Comparison Summary of URL and URI

| URL | URI |
Expand All @@ -221,6 +247,28 @@ Below you can find a comparison table summarizing both the similarities and diff
| Mutability | Generally mutable and can change over time. | Can be either mutable or immutable, depending on whether it's a URL or a URN. |
| Similarity | All URLs are URIs. | Includes URLs as a subset. |

# Conclusion
## Bonus: SEO Benefits of Proper URI and URL Usage

I just wanted to share some quick thoughts on how using **URIs and URLs** the right way can improve **SEO** on our website. Here are the key points to consider:

**Clean and Descriptive URLs**
Search engines like Google give more preference to URLs that are readable and include target keywords. For example, “**/blog/seo-best-practices**” is much better than “**/blog/id123?ref=xyz**.” Clean URLs make it easier for both users and search engines to understand what the page is about.

**Structural Consistency**
Keeping a consistent URL structure across the website helps with crawlability, allowing search engines to index pages correctly. For example, using a pattern like “**/category/post-name**” creates a clear structure for the content hierarchy.

**Avoiding Duplicates with Canonical URLs**
When we have multiple URLs pointing to the same content (common with tracking parameters), we can use **canonical tags** to tell search engines which one should be considered the main URL. This helps avoid duplicate content issues, which can negatively impact rankings.

**Use Hyphens, Not Underscores**
Hyphens in URLs (like **/web-design-tips**) are better for SEO than underscores (like **/web_design_tips**) because search engines treat hyphens as spaces between words, making the URL more readable.

**Short, Keyword-Rich URLs**
URLs should be short and include important keywords without overstuffing. Shorter URLs tend to rank better because they’re easier to remember and share.

**HTTPS for Better Ranking**
Search engines prioritize websites using HTTPS over HTTP, so using secure URLs not only improves security but also helps with SEO ranking.

## Conclusion

In summary, when considering URI vs URL, URIs are more versatile and flexible than URLs. They are designed to be more persistent and interoperable. URIs are more general-purpose identifiers that can identify any type of resource, whereas URLs are limited to identifying a resource's location on the Internet.
Loading

0 comments on commit d0341e6

Please sign in to comment.