European CDNs: Alternatives to CloudFlare and Amazon for Faster Web Performance

When it comes to content delivery networks (CDNs), names like CloudFlare and Amazon Web Services (AWS) often dominate the conversation. However, Europe boasts several top-notch CDNs that can rival their American counterparts.

These European CDNs, such as BunnyCDN, OVH, and KeyCDN, offer a range of features and benefits that can significantly enhance website performance and user satisfaction. Let’s dive into these alternatives that have gained popularity among businesses seeking reliable CDN solutions.

1. BunnyCDN: Lightning-fast and Budget-friendly

BunnyCDN: A Brief Overview

BunnyCDN is a Europe-based content delivery network that has gained immense popularity for its remarkable speed and affordability. This CDN boasts a global network of data centers, strategically placed to ensure lightning-fast content delivery to end-users across the world.

Key Features

  • Exceptional Speed: BunnyCDN leverages its extensive network of servers to ensure content is delivered from the nearest location, reducing latency and load times significantly.
  • Cost-effectiveness: With competitive pricing and pay-as-you-go plans, BunnyCDN proves to be a budget-friendly option for businesses of all sizes.
  • Easy Setup: Setting up BunnyCDN is a breeze with its user-friendly interface and integration plugins for popular platforms like WordPress.
  • Security: BunnyCDN offers advanced security features like DDoS protection and hotlinking prevention to safeguard your website.
  • Storage: Bunny also has a Storage service, similar like Amazon S3 (without S3, but with SFTP)

Check out BunnyCDN.

2. OVH: A Powerhouse of Global Reach

OVH: A Brief Overview

OVH is a European CDN with a strong global presence, offering a wide range of cloud-based services, including CDN solutions. With an extensive network and robust infrastructure, OVH ensures fast and reliable content delivery worldwide.

Key Features

  • Global Network: OVH has data centers in various continents, providing extensive coverage and reducing latency for users across different regions.
  • High Reliability: The CDN’s robust infrastructure ensures high availability and resilience, minimizing downtime and enhancing user experience.
  • Integrated Solutions: OVH offers a suite of cloud services, making it a convenient choice for businesses looking for a comprehensive solution.
  • Customization: With OVH, you have control over cache rules, enabling you to tailor the CDN’s behavior to suit your specific requirements.

3. KeyCDN: Simplicity Meets Performance

KeyCDN: A Brief Overview

KeyCDN is a Swiss-based CDN that focuses on delivering exceptional performance with simplicity in mind. With a user-friendly control panel and extensive global reach, KeyCDN is an attractive option for businesses seeking hassle-free content delivery.

Key Features

  • Intuitive Control Panel: KeyCDN’s straightforward control panel makes it easy to manage and configure CDN settings without technical complexities.
  • Real-time Analytics: Gain valuable insights into your content delivery performance through KeyCDN’s real-time analytics and reporting.
  • HTTP/2 and Brotli Support: KeyCDN supports cutting-edge web technologies like HTTP/2 and Brotli compression, further improving load times and website performance.
  • Free Let’s Encrypt SSL: Secure your content with ease using the free Let’s Encrypt SSL certificate integration.


European CDNs like BunnyCDN, OVH, and KeyCDN are powerful alternatives to the more commonly known American CDNs like CloudFlare and Amazon. These European CDNs offer competitive features, reliability, and cost-effectiveness, making them attractive options for businesses looking to optimize their website performance and provide an exceptional user experience to visitors around the globe. Whether you need speed, global reach, or a simple setup, these European CDNs have got you covered. So, explore these alternatives and take your website performance to new heights.

European Search Engines: Exploring Local Alternatives with Pros and Cons

In a digital world dominated by global search engines like Google and Bing, Europe houses a range of native search platforms catering to linguistic and cultural diversity. This article explores some of the prominent European search engines, namely Startpage, Mojeek, and SwissCows, highlighting their distinct attributes, advantages, and limitations, which position them as viable competitors in the European search market.

1. Startpage: Privacy-First Searching


Startpage is renowned for its uncompromising commitment to user privacy. It seems like an alternative for DuckDuckGo. It acts as a privacy layer between users and search engines like Google, ensuring that personal data is not collected or stored. This approach attracts privacy-conscious individuals who seek powerful search capabilities without sacrificing their data security.


StartPage seems to have a little smaller index than Google itsels

2. Mojeek: The Independent Crawler


Mojeek takes pride in being an independent search engine that operates its web crawler, enabling it to index and rank web pages without relying on third-party search engines. This independence enhances the diversity of search results, ensuring users receive unbiased and original information.


As a smaller search engine, Mojeek’s index might not be as vast as that of major competitors, leading to potential gaps in search results. Users searching for highly specialized or niche topics might find the outcomes less comprehensive than on more extensive platforms.

3. SwissCows: Semantic Search Innovation


SwissCows sets itself apart through semantic search technology, which aims to understand the context and meaning behind user queries, providing more accurate and relevant results. Additionally, the search engine emphasizes family-friendly content filters, ensuring a safe search experience for all users.


Although SwissCows excels in its semantic capabilities, it may not match the index size and search precision of larger search engines. Consequently, users seeking exhaustive and up-to-date information might prefer other platforms with a broader reach.

4. Qwant: Privacy-First Approach


Qwant prioritizes user privacy by not tracking or storing personal data. This approach appeals to users concerned about their online privacy and data security. Additionally, Qwant offers specialized search categories like web, images, news, and social media, providing tailored search experiences.


Despite its privacy-centric approach, Qwant’s search index may not be as comprehensive as that of major competitors like Google. This can result in potentially less accurate or relevant search results, which could impact user satisfaction, especially for specific and niche queries.

5. Ecosia: Sustainable Searching


Ecosia stands out as a unique European search engine with a mission to promote sustainability. For every search conducted, the platform uses its ad revenue to plant trees worldwide, actively contributing to reforestation efforts. Users can contribute to environmental causes by merely conducting their online searches through Ecosia.


While Ecosia’s environmental focus is commendable, it may not match the search accuracy and comprehensiveness of more prominent competitors. Its index and search capabilities are relatively limited, which could be a drawback for users seeking highly specific information.


While global search engines continue to dominate the internet search scene, European alternatives have emerged to cater to regional language preferences, cultural nuances, and privacy concerns. Startpage’s & Qwant’s privacy-centric approach, Mojeek’s independent indexing, Ecosia’s tree planting efforts, and SwissCows’ semantic search technology showcase the diverse strengths that European search engines bring to the table.

Each platform appeals to a specific set of users, offering viable alternatives for those seeking more personalized, secure, and independent search experiences in the European context. As the landscape evolves, these European search engines are likely to continue making strides, further enriching the search ecosystem across the continent.

Also check out our other alternative search engines.

Letting WordPress and Laravel Work Together Without Translation Error for the Function __()


Integrating WordPress and Laravel can offer the best of both worlds, combining the robust content management capabilities of WordPress with the powerful backend development features of Laravel. However, when attempting to let WordPress and Laravel work together, developers may encounter an error related to the __() function, as both platforms have a function with the same name. In this article, we will explore the issue and present two possible solutions to resolve the conflict and ensure smooth integration.

Remember, both solutions are a bit hacky and might impact Laravel’s functionality, so it’s essential to use it with caution and only if absolutely necessary. Both frameworks are unfortunately not made to work together.

The __() Function Conflict

The __() function is a common function used for translation purposes in both WordPress and Laravel. The conflict arises because both platforms use this function to facilitate language translation, but they implement it differently. As a result, when trying to use both platforms together, PHP will throw a “Cannot redeclare __()” fatal error, as it cannot handle the same function being declared twice.

Backend fatal error: PHP Fatal error: Cannot redeclare __() (previously declared in vendor/laravel/framework/src/Illuminate/Foundation/helpers.php) in /wp-includes/l10n.php

Solution 1: Renaming the __() Function

One way to resolve the conflict is to rename either the WordPress or Laravel __() function. This can be achieved by renaming the Laravel __() function to something else that doesn’t clash with the WordPress version. Here’s how you can do it. We haven’t tested this ourselves.

By renaming the Laravel __() function to ___, you prevent any conflict with the WordPress version, allowing both platforms to work in harmony.

Solution 2: Loading WP l10n File Selectively

Another approach to resolving the conflict is to selectively load the WordPress l10n.php file only when needed. This method is a bit hacky and may impact Laravel’s translation functionality, so use it with caution.

  1. Determine the specific routes or URLs in your Laravel application where you need WordPress translation functionality.
  2. Insert the following code before the autoload.php inclusion:
/** * Load WP l10n if matches route path */
$wpL10n = __DIR__ . '/../../wp_public_html/wp-includes/l10n.php';

if (strpos($_SERVER['HTTP_HOST'], '.test') === false && strpos($_SERVER['REQUEST_URI'], 'your/specific/route-path') !== false && file_exists($wpL10n)) { require $wpL10n; }

require __DIR__.'/../vendor/autoload.php';

Note: Replace 'your/specific/route-path' with the actual path where you want to enable WordPress translation.

Alternatively, if you want to load the WordPress l10n.php file for all pages, use the following code:

/** * Load WP l10n if landings */
require __DIR__ . '/../../wp_public_html/wp-includes/l10n.php';

require __DIR__.'/../vendor/autoload.php';


Integrating WordPress and Laravel offers a powerful combination for building dynamic websites with rich content management capabilities. However, conflicts between functions like __() can create errors and hinder the seamless collaboration between the two platforms. By either renaming the Laravel __() function or selectively loading the WordPress l10n.php file, developers can overcome this translation error and make WordPress and Laravel work together efficiently.

Remember, both solutions are a bit hacky and might impact Laravel’s functionality, so it’s essential to use it with caution and only if absolutely necessary. Both frameworks are unfortunately not made to work together.

Trying this is (as always) at your own risk.

Happy WordPress-Laravel integration!

Privacy-Friendly Alternatives to Google Analytics: Protecting User Data without Sacrificing Insights


In today’s digital age, website owners and businesses rely on analytics tools to gain valuable insights into user behavior and optimize their online presence. However, as concerns about data privacy grow, the use of traditional analytics platforms like Google Analytics has raised questions about the collection and handling of user data. Privacy-conscious website owners are seeking alternatives that prioritize data protection without compromising on the ability to understand their audience. In this article, we explore five privacy-friendly alternatives to Google Analytics that offer comprehensive analytics while respecting user privacy.

Privacy-friendly GA Alternatives

1. Visitor Analytics is a privacy-focused analytics tool that provides insightful data without tracking personal information. It is fully compliant with GDPR and respects users’ Do Not Track (DNT) preferences. The platform offers essential metrics like page views, visitor demographics, and referral sources, all while anonymizing user IPs for enhanced privacy. With Visitor Analytics, you gain valuable insights into your website’s performance without invading your visitors’ privacy.


Plausible GA Alternative ( is a lightweight and open-source analytics solution designed to prioritize user privacy. The tool offers a simple, easy-to-understand dashboard that presents key metrics without collecting any personal data. complies with GDPR, and its script is just a fraction of the size of traditional analytics tools, reducing the impact on page load times. By opting for, you can track the essential metrics while showing respect for your visitors’ privacy choices.

3. Simple Analytics

True to its name, Simple Analytics ( provides a straightforward and privacy-friendly analytics platform. It values transparency, as its website clearly states what data is collected and what is not. Simple Analytics omits the use of cookies and does not track personal information, ensuring user privacy is maintained. The tool focuses on presenting critical data such as pageviews, referrers, and top pages, making it a privacy-conscious choice for website owners.

4. Matomo

Matomo ( is an open-source analytics platform that offers self-hosting capabilities, providing users with complete control over their data. Formerly known as Piwik, Matomo allows you to deploy the analytics script on your own servers, giving you the power to manage data and maintain user privacy. The platform adheres to privacy regulations like GDPR and provides in-depth analytics, heatmaps, and user journey analysis while ensuring data remains secure and private.

5. Piwik Pro

Piwik Pro ( is the enterprise version of Matomo, catering to businesses with more extensive analytics needs. It offers the same privacy-focused features as Matomo but also provides additional security features and support. Piwik Pro allows users to host the analytics infrastructure on-premises, offering even greater control over user data. It is a suitable choice for organizations that prioritize data privacy and require more advanced analytics capabilities.

Disclaimer: in some cases you should still display a cookie bar, consent and/or a statement in your privacy policy and/or you still might setup the above alternatives with specific setting to make them GDPR / CCPA friendly


In an era where data privacy is paramount, website owners need not compromise on valuable insights. Privacy-friendly alternatives to Google Analytics offer a range of options that prioritize data protection while still delivering essential analytics data. Whether you choose Visitor Analytics,, Simple Analytics, Matomo, or Piwik Pro, you can rest assured that your users’ privacy remains intact.

By embracing these privacy-conscious solutions, website owners demonstrate their commitment to respecting user choices and safeguarding sensitive data. As the digital landscape continues to evolve, these alternatives showcase the possibility of balancing data insights with ethical data practices. Ultimately, it is a win-win situation, benefiting website owners with actionable data while providing visitors with a more secure and privacy-respecting online experience.

Missing Traffic When Migrating to Google Analytics 4 (GA4): Understanding and Solving CSP Blacklisting Issues


Migrating to Google Analytics 4 (GA4) is a crucial step for businesses to stay up-to-date with the latest analytics capabilities and make more informed decisions based on user data. GA4, as the next generation of analytics from Google, automatically utilizes your existing Universal Analytics data to offer a seamless transition. However, during migration, you may encounter an issue where some traffic seems to be missing from your GA4 reports. One of the primary reasons behind this can be Content Security Policy (CSP) blacklisting. In this blog, we will delve into what CSP blacklisting is, how it affects your Google Analytics data, and how to resolve this problem to ensure a smooth migration.

Understanding CSP Blacklisting

Content Security Policy (CSP) is an added layer of security that helps prevent cross-site scripting (XSS) attacks on web applications. It enables web developers to specify which sources of content are considered trusted and should be loaded and executed on their websites. CSP provides a way to restrict the types of resources that can be loaded, such as scripts, images, and other content, to mitigate security risks.

When CSP is enabled on your website, the browser follows the policy’s rules to determine whether to load and execute resources from specified domains. If a domain is not listed in the CSP configuration, the browser may refuse to connect to it, resulting in blacklisting.

Impact on GA4 Migration

During the process of migrating to GA4, your website might still be using the previous Universal Analytics tracking code or legacy scripts. GA4 automatically attempts to leverage this older data to ensure a smooth transition. However, due to CSP blacklisting, the data collected by Universal Analytics might not be transferred successfully to GA4. This leads to discrepancies in your GA4 reports, and certain traffic data may appear to be missing.

Identifying CSP Blacklisting

To identify if CSP blacklisting is causing the issue, follow these steps:

  1. Go to your website.
  2. Open the developer tools of your web browser (commonly accessed using the F12 key).
  3. Look for error messages indicating that the browser has refused to connect to specific domains related to GA4. The error message may resemble: “Refused to connect to”

If you encounter such error messages, it is highly likely that CSP blacklisting is affecting the migration of data to GA4.

Resolving CSP Blacklisting for GA4

To ensure a successful migration and eliminate missing traffic in GA4, you need to adjust your Content Security Policy configuration. This can typically be done in your web server’s configuration file, such as .htaccess or nginx, or directly in your website’s source code.

Here’s an example of how to update your .htaccess file to resolve CSP blacklisting for GA4:

apacheconfCopy code<IfModule mod_headers.c> Header set Content-Security-Policy "script-src https://*; img-src https://* https://*; connect-src https://* https://* https://*;" </IfModule>

This example adds the necessary domains for scripts, images, and connections related to GA4 to your CSP configuration.

For other web servers like nginx, you can adapt the same CSP configuration principles to the appropriate configuration syntax.

Privacy Friendly Alternatives

Now might be a time to consider switching to a privacy-friendly alternative for Google Analytics. There are many interesting alternatives available, like Visitor Analytics.

Final Thoughts

Migrating to Google Analytics 4 brings new opportunities for understanding user behavior and making data-driven decisions. However, missing traffic during the migration process can be frustrating. By identifying and resolving CSP blacklisting issues, you can ensure that your GA4 reports accurately reflect all relevant data. Always keep your web applications secure with the right Content Security Policy, striking a balance between enhanced security and seamless data migration.

Remember to test your website thoroughly after updating the CSP configuration to confirm that data is being collected correctly in GA4. Regularly monitoring your analytics reports and staying updated with best practices will help you make the most of GA4’s advanced capabilities while providing a better experience for your website visitors.

How to setup Bunny Storage with a CNAME domain and CDN

Bunny Storage offers a convenient way to manage and store your files with the option to use a custom hostname through a CNAME domain together with their CDN service. This concise guide will walk you through the steps to set up Bunny Storage with a CNAME domain for seamless file storage and access.

  1. Create a Bunny Account: Begin by signing up for a account if you haven’t already done so.
  2. Add a Storage Zone: Once you’re logged in, navigate to the Storage Tab and select “Add Storage Zone.”

    Add Bunny Storage Instance
  3. Configure Storage Zone: Provide a name for your Storage Zone, select replication zones, and set other desired configurations.
  4. Create a Pull Zone: Inside your newly created Storage Zone, click on the “+ Add Pull Zone” button to add a Pull Zone for file retrieval.
  5. Select Storage as Source: Ensure that you choose the Storage Zone you created as the source for this Pull Zone.

    Add pull zone for Bunny Storage
  6. Custom Hostname: After the Pull Zone has been successfully created, assign a custom hostname to the zone, such as “”
  7. Create a CNAME Record: At your domain provider, create a CNAME record that points to the Bunny Storage URL provided to you. For instance:
    CNAME record:
    This step allows you to use your custom hostname to access Bunny Storage.
  8. Wait for CNAME Adjustment: Be aware that adjusting the CNAME can take some time, typically ranging from a few minutes up to a day. During this time, the changes will propagate across the internet.
  9. Generate SSL Certificate: Once the CNAME adjustment is complete, check the SSL switch on Bunny to generate an SSL certificate for your custom hostname. This ensures secure access to your storage.
  10. Find FTP/SFTP Credentials: To upload files to your Storage Zone, navigate back to “Storage => FTP.” There, you will find the FTP or SFTP credentials to use for file uploads.
  11. Access Your Files: Finally, you can access your uploaded files by visiting your custom hostname, for example:

Bunny SFTP / API uploading Cost

Bunny confirmed to me via email that uploading files via SFTP / API does not cost anything (July 2023, could be subject to change, hopefully not, since that would not be fully fair). Downloading things via Bunny Storage gives bandwidth charges of course.

By following these straightforward steps, you can set up Bunny Storage with a CNAME domain, allowing you to manage and access your files effortlessly.

Using a CDN endpoint behind your storage may cost extra.

Enjoy the benefits of seamless file storage and retrieval with Bunny Storage.

Techno Remixes 2023 – Edits of popular classics

Techno music has always been synonymous with innovation and groundbreaking sounds. A fascinating aspect of this genre is the art of remixing. In this blog we take you on a journey through the enchanting world of Techno Remixes. Discover how talented DJs reinterpret beloved songs and take them to new musical heights. From Eric Prydz to Maceo Plex, let yourself be carried away by these masterful reinterpretations that have the power to enchant you all over again.

Eric Prydz – Not Going Home (Eric Prydz Remix)

The legendary Eric Prydz is known for his compelling remixes and his ability to take songs to the next level. Faithless’ remix of “Not Going Home” is no exception. With his signature progressive Techno sound, Prydz takes you on an epic journey full of emotional heights and compelling synths.

Rui Da Silva – Touch Me (Trancewax Edit)

Trancewax, a pseudonym of the talented Ejeca, delivers a beautiful edit of Rui Da Silva’s “Touch Me.” This remix seamlessly combines deep melodic elements with a pulsating beat, making it a timeless homage to the original song.

Tiga – Sunglasses at Night

One of the most iconic remixes in Techno history is Tiga’s reinterpretation of “Sunglasses at Night.” This remix gives the song a whole new dark and mysterious atmosphere, with an infectious groove that is guaranteed to keep you on the dance floor.

Der Dritte Raum – Hale Bopp (Maceo Plex Remix)

Maceo Plex is known for its deep, hypnotic sounds and that’s exactly what he delivers in his remix of Dritte Raum’s “Hale Bopp”. Infused with an immersive atmosphere, this remix takes you on a cosmic journey through the Techno spheres.

Michael Sembello – Maniac (Like Yellow Edit)

Amsterdam DJ Like Yellow breathes new life into Michael’s classic “Maniac” Sembello. With a touch of Techno and a compelling beat, Like Yellow creates a hypnotic edit that hopefully gets you moving.

Tinlicker x Robert Miles – Children

This collaboration between Tinlicker and the legendary Robert Miles pays homage to the iconic song “Children.” The remix retains the emotional essence of the original while giving it a modern Translation result twist with deep, pulsating beats.

RUN DMC vs Jason Nevins – It’s Like That (Raxon Edit)

Raxon, an emerging talent in the Techno scene, puts a modern twist on the classic “It’s Like That” from RUN DMC vs Jason Nevins. This remix retains the song’s iconic character and adds an extra layer of hypnotic beats, making it an irresistible dancefloor hit.

Listen to the remix here


Techno Remixes are an exciting world where talented DJs transform beloved songs into timeless masterpieces. From Eric Prydz to Maceo Plex and emerging names, these remixes have the power to enchant you once again and take you on a musical journey full of surprises. The evolution of Techno Remixes continues to inspire and renew the music world, and we can’t wait to see what mesmerizing creations the future holds.

Bunny Storage – The S3 alternative (without S3 yet) from Bunny CDN

In the realm of cloud storage solutions, Bunny Storage emerges as a promising alternative to Amazon S3. This European-based service, offered by Bunny CDN, provides users with an affordable and reliable option for storing and managing their digital assets.

While it currently lacks direct S3 support, Bunny Storage compensates with its SFTP integration, making file uploading a breeze.

Additionally, Bunny Storage allows users to make their files publicly accessible, offering flexibility and convenience. In this article, we will delve into the features and benefits of Bunny Storage and explore its potential as a cost-effective storage solution.

Bunny Storage: A Reliable Cloud Storage Option with a CDN optionality

Bunny Storage sets itself apart from other cloud storage services by prioritizing reliability and performance. Powered by Bunny CDN’s robust infrastructure, Bunny Storage ensures optimal uptime and data availability. By leveraging multiple data centers strategically located across Europe, Bunny Storage minimizes latency and guarantees fast and efficient access to stored files.

Affordable Pricing Model

One of the primary advantages of Bunny Storage is its cost-effectiveness compared to Amazon S3. By offering competitive pricing plans, Bunny Storage enables businesses and individuals to reduce their storage costs significantly. This affordability makes Bunny Storage an attractive option for startups, small businesses, and budget-conscious users who seek reliable cloud storage without breaking the bank.

SFTP Support for Seamless File Uploading

While Bunny Storage awaits direct integration with Amazon S3, it compensates with its seamless SFTP support. With SFTP (Secure File Transfer Protocol), users can securely upload files to their Bunny Storage accounts, ensuring the privacy and integrity of their data. Whether it’s a single file or bulk uploads, Bunny Storage’s SFTP support simplifies the process, eliminating potential obstacles and saving valuable time.

Making Files Publicly Accessible

Bunny Storage recognizes the need for file accessibility and offers users the option to make their stored files publicly available. By following the guidelines outlined in Bunny CDN’s support article (linked below), users can easily configure their files’ permissions and access controls. This feature is particularly useful for sharing large files, distributing content, or integrating Bunny Storage into a website or application.

Easy Steps to Make Your Files Publicly Accessible

Bunny CDN provides a comprehensive support article on how to access and deliver files from Bunny Storage. By following these simple steps, users can configure their files for public access, including setting up the appropriate headers and caching options. This ensures seamless and efficient content delivery to end-users, enhancing the overall user experience.

Link to a custom domain name

Bunny also created a guide to link the Bunny Storage / CDN location to a custom domain. Check out the article. Or read our own Bunny CNAME article.


Bunny Storage emerges as a compelling alternative to Amazon S3, offering a cost-effective and reliable cloud storage solution in Europe. With its robust infrastructure, Bunny Storage guarantees high availability and fast access to stored files. While awaiting direct S3 integration, Bunny Storage compensates with SFTP support, allowing users to securely upload their files. Additionally, the option to make files publicly accessible enhances the service’s versatility and usability. As Bunny Storage continues to evolve and expand its features, it presents an enticing option for individuals and businesses seeking affordable and dependable cloud storage services.

Want to start with Bunny Storage? Learn more about Bunny Storage.

Embedding OpenStreetMap in a Privacy-Friendly Way with Leaflet JS

Embedding OpenStreetMap (OSM) on your website can provide valuable location information to your users. However, due to the General Data Protection Regulation (GDPR), concerns may arise regarding the collection of data like IP addresses by OSM. To address these concerns and try to create GDPR compliance regarding OSM, this developer blog explores an approach to proxy OSM in a privacy-friendly manner using a caching proxy and Leaflet JS.

Using a Caching Proxy:

To mitigate data collection concerns and ensure GDPR compliance, you can set up a caching proxy, such as TileCache, which acts as an intermediary between your website and OSM. The caching proxy allows you to store the map tiles locally, reducing the need for direct data requests to OSM servers.

Setting up TileCache:

To implement TileCache, follow these steps:

  1. Install TileCache: Begin by installing TileCache on your server. You can find detailed instructions in the TileCache GitHub repository ( Configure the caching proxy to create a directory, such as /tilecache, within your website’s public_html domain.
  2. Replace the OpenStreetMap URL in Leaflet JS: Locate the JavaScript code where the OSM map is embedded using Leaflet JS. Replace the original OSM URL with the URL pointing to your TileCache setup. For example:
L.tileLayer('{z}&x={x}&y={y}', { attribution: '&copy; <a href="">OpenStreetMap</a> contributors'}).addTo(map);

So the setup script of LeafLet.JS becomes (don’t forget including the JS + CSS scripts):

var map ='map').setView([51.505, -0.09], 13);

L.tileLayer('{z}&x={x}&y={y}', {
    attribution: '&copy; <a href="">OpenStreetMap</a> contributors'

L.marker([51.5, -0.09]).addTo(map)
    .bindPopup('A pretty CSS popup.<br> Easily customizable.')

Ensure that the caching script is configured to store the cached tiles securely in a protected directory.

Alternative Approaches:

In addition to TileCache, there are other simpler proxy solutions available, such as ProxySimplePHP ( However, it is essential to note that these alternative approaches have not been tested by us.

Disclaimer and Legal Considerations:

It is important to understand that while implementing a caching proxy and replacing the OpenStreetMap URL with Leaflet JS can enhance privacy and mitigate data collection concerns, we cannot guarantee complete GDPR compliance. Every website’s GDPR compliance requirements may vary, and there might be other requests or considerations to address. Therefore, it is recommended to seek legal advice or consult with a GDPR expert to ensure full compliance.

Also be sure to understand that this measure will highly increase bandwidth to your server/hosting as your server/hosting is displaying all the tile images know.


Embedding OpenStreetMap in a privacy-friendly manner is crucial for maintaining GDPR compliance and respecting user privacy. By implementing a caching proxy like TileCache and replacing the OpenStreetMap URL with your TileCache URL in Leaflet JS, you can reduce data collection concerns and enhance privacy protection.

However, it is essential to understand that legal requirements can vary, and additional measures might be necessary to achieve full GDPR compliance. It is always advisable to consult with legal experts to ensure your website adheres to all applicable data protection regulations while providing a seamless and privacy-conscious user experience.

Reducing AWS Costs: Leveraging RDS and EC2 in the Same Region and Availability Zone

Managing costs is a critical aspect of running applications on cloud platforms like Amazon Web Services (AWS). One area where costs can quickly add up is data transfer between services, especially when using AWS RDS (Relational Database Service) and EC2 (Elastic Compute Cloud) instances across different availability zones within the same region. In this developer blog, we explore a strategy to minimize costs by aligning RDS and EC2 instances in the same region and availability zone.

Understanding DataTransfer-Regional-Bytes Charges:

DataTransfer-Regional-Bytes charges can appear on your AWS bill when data is transferred between different availability zones within the same region. This often occurs when there are dependencies between your RDS and EC2 instances, and they reside in separate availability zones. It could also be, because there are EC2 instances in different availability zones. By reducing or eliminating these charges, you can optimize your AWS costs significantly.

As described here: Charges for inter-AZ traffic applies to any data transfer. For example, between an EC2 instance in AZ-A and an RDS instance in AZ-B.

But keep in mind that availability zones are there for a reason, so moving this into the same zone has some data loss risks. Applying anything from this blogpost is on your own risk.

The Possible Solution: Aligning RDS and EC2 in the Same Availability Zone

To mitigate DataTransfer-Regional-Bytes charges between RDS and EC2 and streamline data transfer, it is recommended to place your RDS and EC2 instances in the same availability zone within the desired region. This ensures that data traffic between these services remains within the same zone, eliminating any cross-zone transfer costs.

Migrating RDS to a Different Availability Zone:

To change the availability zone of your RDS instance within the same region, you can follow a simple process:

  1. Modify RDS to Multi-AZ: First, modify your RDS instance to enable the Multi-AZ feature. This feature provides high availability and allows failover between availability zones.
  2. Reboot with Failover: Initiate a reboot with a failover for your RDS instance. This process will cause the instance to be moved to a different availability zone within the same region.
  3. Modify RDS Back to Single-AZ: Once the reboot with failover is complete, modify your RDS instance back to the Single-AZ configuration. This step ensures that your RDS instance is now residing in a different availability zone.
  4. Repeat until in the right availability zone.

By following these steps, you can align your RDS instance with your EC2 instance in the same availability zone, reducing data transfer costs and optimizing your AWS expenses.

Source: Thanks to this Stack Overflow post.


Controlling AWS costs is essential for organizations leveraging cloud services. By aligning RDS and EC2 instances in the same availability zone within a region, you can reduce DataTransfer-Regional-Bytes charges and streamline data transfer between these services. The provided solution outlines a straightforward process to migrate an RDS instance to a different availability zone within the same region, effectively optimizing your AWS costs. Implementing this strategy can help you achieve cost-efficient operations while leveraging the power and scalability of AWS services.

But again, keep in mind that availability zones are there for a reason, so moving this into the same zone has some data loss risks. Applying anything from this blogpost is on your own risk.

And there could be other reasons for the costs, so always check out if this will reduce the DataTransfer-Regional-Bytes costs.