0Pricing
Edge Computing with Cloudflare Workers & Deno · Lesson

Geolocation & Localization

Utilize edge capabilities to deliver localized content and services based on user location.

Geolocation & Localization is a free Edge Computing with Cloudflare Workers & Deno lesson on CoddyKit — lesson 3 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Edge Computing with Cloudflare Workers & Deno learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

Edge Geolocation & Localization

Ever wonder how websites seem to know your location or prefer your local language? That's often thanks to geolocation and localization, especially when powered by the edge!

Geolocation is finding a user's physical location. Localization is adapting content (like language, currency, or date formats) based on that location.

The edge is perfect for this! By processing requests closer to the user, we can quickly determine location and deliver tailored experiences with minimal delay.

How Edge Knows Your Location

When you connect to a website, your device sends an IP address. Edge networks like Cloudflare use this IP to perform a quick lookup, determining your approximate geographic location.

This information is then made available to your code running on the edge. It's fast, automatic, and doesn't rely on browser-based GPS, which often requires user permission.

Access Geolocation Data

Cloudflare Workers provide geolocation data through the request.cf object. This object is automatically populated for every incoming request hitting the edge.

It contains useful properties like country code, city, region, and even timezone, making it incredibly easy to build location-aware applications without extra APIs.

Demo: Simple Country Detection

Let's write a simple Cloudflare Worker that detects the user's country and responds with a greeting. This uses the request.cf.country property.

Try running this example to see your country code!

export default {
  async fetch(request) {
    const country = request.cf.country; // e.g., "US", "DE", "JP"
    return new Response(`Hello from ${country || 'an unknown location'}!`);
  }
};

Detailed Location Info

The request.cf object offers more than just the country code. You can access more granular details for deeper localization:

  • cf.city: User's city (e.g., "San Francisco")
  • cf.region: User's region/state (e.g., "CA")
  • cf.timezone: User's timezone (e.g., "America/Los_Angeles")
  • cf.latitude, cf.longitude: Approximate coordinates

Use these to create highly personalized experiences.

Demo: Personalized Greeting

Let's enhance our Worker to provide a more personalized greeting using city and country information from the request.cf object.

This demonstrates how easily you can use multiple geolocation data points.

export default {
  async fetch(request) {
    const { city, country } = request.cf;
    if (city && country) {
      return new Response(`Welcome, traveler from ${city}, ${country}!`);
    } else if (country) {
      return new Response(`Welcome, traveler from ${country}!`);
    } else {
      return new Response('Welcome, traveler!');
    }
  }
};

Localization: Language & Content

Beyond simple greetings, you can use geolocation data to serve different versions of your content. This is key for true localization.

  • Language: Determine the user's preferred language (e.g., from Accept-Language header or cf.country) and serve translated text.
  • Currency: Display prices in the local currency based on the user's country.
  • Content Variants: Show different promotions or product availability based on regional restrictions.

Demo: Dynamic Language

Here's an example of how a Worker can provide a dynamic welcome message based on the user's country. For simplicity, we'll map a few countries to specific languages.

In a real application, you'd integrate with a more robust i18n (internationalization) library.

export default {
  async fetch(request) {
    const country = request.cf.country;
    let message;
    switch (country) {
      case 'US':
        message = 'Hello!';
        break;
      case 'FR':
        message = 'Bonjour!';
        break;
      case 'DE':
        message = 'Guten Tag!';
        break;
      default:
        message = 'Welcome!';
    }
    return new Response(message);
  }
};

Best Practices for Localization

To make your edge localization robust and user-friendly, consider these tips:

  • Fallback Content: Always have a default language or content version for unknown locations.
  • User Overrides: Allow users to manually select their preferred language/location, overriding the auto-detected setting.
  • Caching: Cache localized content variants effectively to maximize performance benefits.
  • Privacy: Be mindful of privacy regulations (like GDPR) when using location data.

Quick Check: Edge Localization

Edge computing significantly enhances geolocation and localization. Which of the following statements accurately describe benefits or methods of using edge capabilities for localization?

Recap & Next Steps

In this lesson, we explored how geolocation and localization are powerful capabilities at the edge.

  • You learned how edge networks provide location data automatically.
  • We saw how to access this data in Cloudflare Workers using the request.cf object.
  • You built Workers that deliver personalized and localized content based on user location.

Leveraging the edge for these features greatly improves user experience and application performance. Keep experimenting with these concepts to build truly global applications!

Frequently asked questions

Is the “Geolocation & Localization” lesson free?

Yes — the full text of “Geolocation & Localization” is free to read here on the web, and the Edge Computing with Cloudflare Workers & Deno course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Edge Computing with Cloudflare Workers & Deno course, upgrade to CoddyKit PRO.

What will I learn in “Geolocation & Localization”?

Utilize edge capabilities to deliver localized content and services based on user location. You practise Edge Computing with Cloudflare Workers & Deno with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Edge Computing with Cloudflare Workers & Deno?

No prior experience is required. Edge Computing with Cloudflare Workers & Deno on CoddyKit is structured for beginners through advanced learners; this is — lesson 3 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “Geolocation & Localization” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Edge Computing with Cloudflare Workers & Deno lesson?

Yes. Every Edge Computing with Cloudflare Workers & Deno lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Microservices at the Edge
  2. Event-Driven Architectures
  3. Geolocation & Localization
  4. Durable Objects & Stateful Coordination
← Back to Edge Computing with Cloudflare Workers & Deno