https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_b964594d3d957944241961017b9eb19bf02834de44cce93d8e67dd306852dbe346167181e455e33d5268ea01d973d77bb056848546f31794f31a4c31a9da5aa3.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_09f62869dbd00446535ebe8e270406331e6f0ae459deba58094caeadc22d58825ffc99f8c217b496ec112cbb1da8b662d77b0f52eae24cc5631f95695e40d87b.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_e6b7e0bf68aa4a61d5c6a0065ec42e38a0cc53e39a4fbee057b72d4b2297b37c01e716e1e61bac7f240b5a0edbb178d37b62f7ed4ea4ea3d10e46dbe7429f326.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_bfff9e63e857e9ee612e292d4a6edf3ced64d6a756925c953a9d8f77845ff601eca64d73dfa48756b1a9f4a4d6de6127a273bcde16ddeb71a22383460f4e94b0.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_f4dd7e1d73ae5eda35ed5ad6aa965b612dbf483ece3ca50c1e8e30ad8dff1c66a160ed75e958e2db399661d229874783e0834ad813a479437035666b8e9e3386.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_4fce0769137d4cd096989b0349bc3c2bbfca79ac311fdf714c41ab24d87551c7b49b756c8a8de090b0714a0ad0560e49fa532ba5a88875ea4afd78efac464df6.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_85cec8b07d60426b11040e471babca0d2f9c8dc87a9b56e06cad39828f7f67179e29609100f282a574872c9a93fb635b25416300eb4c97bc5a653d00cf6f8dbf.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_6768e5a27d4d357347338621c0d20bd269b126d30eec796193390f2f530fbaea60af84130c46f9786114be65149e661e87d55c339219c90aa76396d7e5b734ef.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_2acd6bdff3b680341e8c727da5169a647123eb8fd0a90253161b4c3af272c15d293bf9bb217008bb13f84d1910b0e166798001f8603b6c026d5c20a76c41d47c.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_9e57771d88d0ddd469362b5df7abcbd7317448d1c7be7637786ee6bbaf693c7169e8116819b3abf85cc521f66bf974772088a7faeaae542e26f5e49f72d6c668.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_268c9bba6ba649318f0da28c37b09a9bbfa371210f9b6b52faa7fd8ae94abf6b3c3bfeb5df5705c93495ce1152ca58aeabc435d6c6c1bd959025165c3f50e086.js
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer
  • Home
  • Featured
    • Advanced Python Topics
    • AWS Learning Roadmap
    • JWT Complete Guide
    • Git CheatSheet
  • Explore
    • Programming
    • Development
      • microservices
      • Front End
    • Database
    • DevOps
    • Productivity
    • Tutorial Series
      • C# LinQ Tutorials
      • PHP Tutorials
  • Dev Tools
    • JSON Formatter
    • Diff Checker
    • JWT Decoder
    • JWT Generator
    • Base64 Converter
    • Data Format Converter
    • QR Code Generator
    • Javascript Minifier
    • CSS Minifier
    • Text Analyzer
  • About
  • Contact
CodeSamplez.com

CodeSamplez.com

Programming And Development Resources

You are here: Home / Development / NodeJS Push Notification Backend for iOS Apps: Ultimate Guide

NodeJS Push Notification Backend for iOS Apps: Ultimate Guide

Updated May 4, 2025 by Rana Ahsan 12 Comments ⏰ 8 minutes

APN BackEnd NodeJS

Have you ever wondered how to build a lightning-fast push notification system for your iOS apps? Well, I’ve been there, and let me tell you – NodeJS is absolutely the perfect technology for creating high-performance push notification backends. In this comprehensive guide, I’ll walk you through every step of implementing NodeJS Push Notification Backend Service, from understanding the architecture to writing actual code that works.

Why NodeJS for Push Notification Backend?

I can’t overstate how fantastic NodeJS is for building mobile application backends. Its event-driven, non-blocking I/O model makes it incredibly efficient for handling thousands of concurrent connections – exactly what you need for push notifications! The performance gains directly impact user engagement, and that’s why so many developers choose NodeJS for their iOS app backends.

NodeJS offers several critical advantages for push notification systems:

  • Asynchronous processing – handles multiple notifications simultaneously
  • Low memory footprint – perfect for cloud deployments
  • Vast ecosystem – plenty of well-maintained packages for APNS
  • Scalability – easily handles growing user bases

Understanding the Push Notification Architecture

Before diving into implementation, you need to understand how push notifications work behind the scenes. Here’s the complete architecture workflow:

Push Notification Backend Service Architecture

The Workflow Steps:

  1. iOS App Device Token: Each iOS app installation gets a unique device token. Your iOS app must request this token and send it to your backend server.
  2. Store the Device Token: Your backend API receives and stores this token in a database, associated with the specific user.
  3. Event Trigger: When a notification-worthy event occurs (e.g., a new message, update, etc.), your system triggers an event that contains the notification details and target user(s).
  4. Retrieve Device Token: Your backend worker retrieves the device token for the specific user who should receive the notification.
  5. Send Push Notification: The push notification backend uses the retrieved token to send a push notification request to Apple’s Push Notification Service (APNS).
  6. Delivery: APNS delivers the notification to the user’s iOS device.

In this tutorial, I’ll focus primarily on step 5 – the actual implementation of the push notification sending mechanism. The other steps involve standard backend operations like API endpoints and database operations that you’re likely already familiar with.

Implementing APNS with NodeJS

The APN Library

The most popular and robust library for APNS integration with NodeJS is ‘apn’. It provides a clean, easy-to-understand API that handles all the low-level details of communicating with Apple’s servers.

First, install the library using npm:

npm install apn

Setting Up the Push Notification Service

Now, let’s implement our push notification service. Create a new file called pushNotifier.js with the following code: (See the newer version compatible code in the later section)

var apn = require("apn");

// Error handler for APN issues
var apnError = function(err) {
    console.log("APN Error:", err);
};

// Configuration options for APNS connection
var options = {
    "cert": "cert.pem",                              // Certificate file
    "key": "key.pem",                                // Key file
    "passphrase": null,                              // Passphrase for the key
    "gateway": "gateway.sandbox.push.apple.com",     // APNS gateway (use production for real apps)
    "port": 2195,                                    // Standard APNS port
    "enhanced": true,                                // Enable enhanced error feedback
    "cacheLength": 5                                 // Number of notifications to cache for error handling
};

options.errorCallback = apnError;

// Feedback service configuration
var feedBackOptions = {
    "batchFeedback": true,
    "interval": 300                                  // Get feedback every 5 minutes
};

var apnConnection, feedback;

module.exports = {
    // Initialize the APN connection
    init: function() {
        apnConnection = new apn.Connection(options);
        
        // Setup feedback service to handle failed notifications
        feedback = new apn.Feedback(feedBackOptions);
        feedback.on("feedback", function(devices) {
            devices.forEach(function(item) {
                // Handle failed notifications
                // You might want to remove these tokens from your database
                console.log("Device failed:", item.device, "at time:", item.time);
            });
        });
    },
    
    // Send push notification
    send: function(params) {
        var myDevice, note;
        
        // Create a device with the token
        myDevice = new apn.Device(params.token);
        
        // Create notification
        note = new apn.Notification();
        
        // Configure notification
        note.expiry = Math.floor(Date.now() / 1000) + 3600; // Expires 1 hour from now
        note.badge = 1;
        note.sound = "ping.aiff";
        note.alert = params.message;
        note.payload = {'messageFrom': params.from};
        
        // Send notification
        if(apnConnection) {
            apnConnection.pushNotification(note, myDevice);
        }
    }
};Code language: JavaScript (javascript)

Using the Push Notification Backend Service

Here’s how you would use the above module in your application:

// Import the push notifier module
var pushNotifier = require("./pushNotifier");

// Initialize the connection
pushNotifier.init();

// Send a notification
pushNotifier.send({
    token: 'DEVICE_TOKEN_HERE',  // Use a valid device token
    message: 'Test message',
    from: 'Your App Name'
});Code language: JavaScript (javascript)

Understanding the Key Components

Let’s break down the essential components of our push notification system:

1. Certificate Files

To send push notifications, you absolutely need valid certificate files from Apple. These files authenticate your server with Apple’s Push Notification Service.

If you have a .p12 certificate file, you’ll need to convert it to the .pem format. Here’s how to do that:

openssl pkcs12 -in YourCertificate.p12 -out cert.pem -nodes -clcertsCode language: CSS (css)

If you’re not sure how to get these certificates, start at the Apple Developer Portal and follow their push notification certificate creation process.

2. Error Handling

Push notifications can fail for various reasons, so robust error handling is essential. The error callback logs any issues that occur during the notification sending process.

3. Feedback Service

The feedback service is a critical component that helps you maintain a clean database of device tokens. Apple’s push notification service provides feedback about devices that have uninstalled your app or can’t receive notifications. You should regularly check this feedback and remove those tokens from your database.

4. Notification Configuration

Each notification has several configurable properties:

  • Expiry: When the notification should expire if not delivered
  • Badge: The number to display on the app icon
  • Sound: The sound file to play when the notification arrives
  • Alert: The actual message text
  • Payload: Additional custom data to send with the notification

For more detailed information on notification settings, check out Apple’s official documentation.

Common Issues and Solutions

Certificate Path Issues

One common issue with the ‘apn’ module is that certificate and key files might be required to be in the root directory. If you place them elsewhere and reference them with paths in the options object, you might encounter errors.

This issue is documented in this GitHub ticket. If you run into this problem, try moving your certificate files to the root directory of your project.

Handling Notification Delivery Status

The ‘apn’ library doesn’t provide direct confirmation of notification delivery. This is a limitation of Apple’s Push Notification Service itself. However, you can use the feedback service to track devices that fail to receive notifications.

Testing Push Notifications

For testing, always use the sandbox environment first:

"gateway": "gateway.sandbox.push.apple.com"Code language: CSS (css)

When you’re ready for production, switch to:

"gateway": "gateway.push.apple.com"Code language: CSS (css)

Advanced Implementation Techniques

Using Environment Variables

For better security, don’t hardcode your certificate paths and passphrases. Use environment variables instead:

var options = {
    "cert": process.env.APN_CERT_PATH || "cert.pem",
    "key": process.env.APN_KEY_PATH || "key.pem",
    "passphrase": process.env.APN_PASSPHRASE || null,
    // Other options...
};Code language: JavaScript (javascript)

Integrating with a Message Queue

For high-volume applications, integrate your push notification service with a message queue system like RabbitMQ or Redis. This allows your notification sending to happen asynchronously:

// Pseudo-code example with a message queue
messageQueue.process('push-notification', function(job, done) {
    pushNotifier.send({
        token: job.data.token,
        message: job.data.message,
        from: job.data.from
    });
    done();
});Code language: JavaScript (javascript)

Topic-Based Notifications

For more advanced use cases, you might want to implement topic-based notifications where users can subscribe to specific topics:

// Send to all devices subscribed to a topic
var topic = 'sports-updates';
var notification = new apn.Notification();
notification.topic = topic;
notification.alert = 'New sports update available!';
// Other notification settings...
apnConnection.pushNotification(notification);Code language: JavaScript (javascript)

Updating to Modern Versions of the APN Library

The code example in this article uses an older version of the ‘apn’ library. If you’re using a more recent version (3.x or later), some syntax has changed:

const apn = require('apn');

const options = {
    token: {
        key: "key.p8",
        keyId: "KEY_ID",
        teamId: "TEAM_ID"
    },
    production: false
};

const apnProvider = new apn.Provider(options);

const notification = new apn.Notification();
notification.expiry = Math.floor(Date.now() / 1000) + 3600;
notification.badge = 1;
notification.sound = "ping.aiff";
notification.alert = "Hello from Node.js";
notification.payload = {'messageFrom': 'Your App Name'};
notification.topic = "YOUR_APP_BUNDLE_ID";

apnProvider.send(notification, deviceToken).then((result) => {
    console.log(result);
});Code language: JavaScript (javascript)

Conclusion

Building an Apple Push Notification backend with NodeJS doesn’t have to be complicated. With the right architecture and tools, you can create a robust, scalable system that delivers notifications reliably to your users.

Remember these key points:

  1. Store device tokens securely in your database
  2. Use the ‘apn’ library for easy integration with Apple’s Push Notification Service
  3. Handle errors and feedback properly
  4. Test thoroughly in the sandbox environment before moving to production

Now, you have all the knowledge you need to implement push notifications for your iOS app using NodeJS. This approach’s performance benefits will definitely improve user engagement and satisfaction with your app.

Have questions or run into issues implementing your push notification system? Drop a comment below. Happy coding! 🚀

Share if liked!

  • Click to share on Facebook (Opens in new window) Facebook
  • Click to share on X (Opens in new window) X
  • Click to share on LinkedIn (Opens in new window) LinkedIn
  • Click to share on Pinterest (Opens in new window) Pinterest
  • Click to share on Reddit (Opens in new window) Reddit
  • Click to share on Tumblr (Opens in new window) Tumblr
  • Click to share on Pocket (Opens in new window) Pocket

You may also like


Discover more from CodeSamplez.com

Subscribe to get the latest posts sent to your email.

First Published On: March 16, 2015 Filed Under: Development Tagged With: nodejs

About Rana Ahsan

Rana Ahsan is a seasoned software engineer and technology leader specialized in distributed systems and software architecture. With a Master’s in Software Engineering from Concordia University, his experience spans leading scalable architecture at Coursera and TopHat, contributing to open-source projects. This blog, CodeSamplez.com, showcases his passion for sharing practical insights on programming and distributed systems concepts and help educate others.
Github | X | LinkedIn

Reader Interactions

Comments

  1. MESHAL says

    October 1, 2015 at 12:53 AM

    thanks for this is tutorial

    i do that on server but i have problem

    node_modules/apns/lib/file-loader.js:43
    if (err) throw err;
    ^
    Error: ENOENT, open ‘./apns/pushcert.pem’
    at Error (native)

    Reply
    • MESHAL says

      October 1, 2015 at 1:25 AM

      i just slove it thanks

      Reply
      • Md Ali Ahsan Rana says

        October 8, 2015 at 8:21 PM

        Cool! Happy to hear that you got it solved.

        Reply
      • Edward says

        June 8, 2016 at 10:05 AM

        How did you solve this? I’m getting the same error…

        Reply
    • Upendra says

      June 22, 2016 at 7:14 AM

      Hi,Could you please tell me How can we confirm,whether the notification sent or not
      after this statement

      apnConnection.pushNotification(note, myDevice);

      Reply
  2. edurivaraEdu says

    October 14, 2015 at 2:21 PM

    Usage is:
    pushNotifier.send instead of pushNotifier.process as it says in the example, right?

    Reply
  3. varun says

    January 11, 2016 at 7:04 AM

    I understood how APNS works and i am able to send pushnotification through APNS. I want to create a web app/web site. In that i will type the notification and click send. How to achieve this using node.js

    Reply
  4. Hema Bahirwani says

    August 22, 2016 at 9:18 AM

    Hello, I would like to know how do we handle the notifications received. For instance, you click on the push notification received, it will take you to the application that includes the push notification feature. i wanna know how do i fetch the details of the notification received and push into an array.

    Reply
  5. sirajudden says

    March 21, 2017 at 1:49 AM

    I got the below error..

    apnConnection = new apn.Connection(options);
    ^

    TypeError: apn.Connection is not a constructor
    at Object.init (/Users/Iexemplar/Documents/nodews/newpush/pushNotifier.js:28:25)
    at Object. (/Users/Iexemplar/Documents/nodews/newpush/server.js:3:14)
    at Module._compile (module.js:573:32)
    at Object.Module._extensions..js (module.js:582:10)
    at Module.load (module.js:490:32)
    at tryModuleLoad (module.js:449:12)
    at Function.Module._load (module.js:441:3)
    at Module.runMain (module.js:607:10)
    at run (bootstrap_node.js:420:7)
    at startup (bootstrap_node.js:139:9)

    Reply
  6. azaz says

    August 4, 2017 at 12:43 AM

    Hi,

    i want to send personalized push notification for each user, how can we do that ?

    Reply
  7. Adolfo says

    December 11, 2018 at 4:17 PM

    same error

    Reply

Trackbacks

  1. Advanced Service Worker Features: Push Beyond the Basics - CodeSamplez.com says:
    September 25, 2025 at 11:35 AM

    […] You may like: Develop Push Notification Backend with NodeJS. […]

    Reply

Leave a ReplyCancel reply

Primary Sidebar

  • Facebook
  • X
  • Pinterest
  • Tumblr

Subscribe via Email

Top Picks

python local environment setup

Python Local Development Environment: Complete Setup Guide

In-Depth JWT Tutorial Guide For Beginners

JSON Web Tokens (JWT): A Complete In-Depth Beginners Tutorial

The Ultimate Git Commands CheatSheet

Git Commands Cheatsheet: The Ultimate Git Reference

web development architecture case studies

Web Development Architecture Case Studies: Lessons From Titans

static website deployment s3 cloudfront

Host Static Website With AWS S3 And CloudFront – Step By Step

Featured Dev Tools

  • JWT Decoder
  • Diff Checker

Recently Published

python file handling

Python File Handling: A Beginner’s Complete Guide

service worker best practices

Service Worker Best Practices: Security & Debugging Guide

advanced service worker features

Advanced Service Worker Features: Push Beyond the Basics

service worker framework integration

Service Workers in React: Framework Integration Guide

service worker caching strategies

Service Worker Caching Strategies: Performance & Offline Apps

Footer

Subscribe via Email

Follow Us

  • Facebook
  • X
  • Pinterest
  • Tumblr

Demos

  • Demo.CodeSamplez.com

Explore By Topics

Python | AWS | PHP | C# | Javascript

Copyright © 2025

https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_dfbdb53afdbb4874400e384343b7da843bb989f043783f5af42a5602ba0d8261e84b25067a76dbc60e1fb358a2c32546a6056764ef2ca6b3759c00a00cd7eaa4.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_c402e38f1879c18090377fb6b73b15ac158be453ecda3a54456494fe8aba42b990c293bae5424e5643d52515ffc2067e0819995be8d07d5bba9107a96780775c.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_ffc3511227531cc335353c54c3cbbaa11d0b80e5cb117478e144436c13cd05495b67af2e8950480ed54dbdabcdcef497c90fdb9814e88fe5978e1d56ce09f2cf.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_d57da9abfef16337e5bc44c4fc6488de258896ce8a4d42e1b53467f701a60ad499eb48d8ae790779e6b4b29bd016713138cd7ba352bce5724e2d3fe05d638b27.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_d286e50977f467ebee8fecdcb44e6a6b9a29f2b911dfe58b30ff4f0545aa2b19bca73246e23de9a6d2380bf20e6b8a001b5ba2051042d104c6d411b474fd3368.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_556272a5f9c5e1b26dcf93c48dd6c60d2107db888f97b70498f312c9052331e10005db30e1259f325d650689883af8e7250f282b512037503c7b7dcf03bef034.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_dccc492dbbfdac33d1411f9df909e849c7268fcf99b43007f278cde3a0adc0ae00e8cae5ec81cf255b9a6eae74e239ba1fa935572af77173219cb081f7d2327d.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_00bacf9e36181aac2b666d110cd9d82257f846766e7041b2d7b3c909b458982931ccc9b203e37098fbdfcf43ca359cf04e3824a724a6789fc204196d3a72ad29.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_b2aa9b4d45a41840431a91ddeb34dfb5ef547ecd8d9bce4a17cff1629e12cd47ec78637c072173532f3ce886c59e67df29716456c3ae0a8ec49abb3784e8ab8f.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_68b6d1949e90b6a37c5195ae17874e7c2455352144f28a76be0f68f7a941e6d664fa3c931485f2c5463521acdac05ff6642f0c94fa557a087caa9478d162f085.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_bb8058a9e234a7ffaa98891b1df7f6b8e67410e6984568b151daa05113b8c7f89d7b5918ae73f020998a16f7f5a087a13d6a9a5e5d7c301e2ca12fd9d1f8d177.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_647fb67570c6108fb10ae6785a1abdbecac99ffcf80351d0bef17c3cf783dce497b1895fcdaae997dacc72c359fbfb128cc1540dd7df56deb4961e1cd4b22636.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_f7a298a0f1f754623fe3b30f6910ce2c1373f715450750bd7a391571812b00df1917e2be90df6c4efc54dbdfda8616278a574dea02ba2c7a31992768df8db334.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_df30604d5842ef29888c3c1881220dc6d3f8854666d94f0680c5f38aa643c5fb79b10eb9f10998d8856eb24ca265783195937434fd6c2bb8e4846df0277a7fb7.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_f17fe6fb0993f1703181d7ae9e9ea570f3d33a43afd6f2a4567daa1a6745698c7b8193dc72d50991d2dd87cd3dcf663959206607d193a9b57926d061a1f50aef.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_945dcbab2c2a131f3c90f4fb91776b76066d589f84fb55bff25cd5d79a56218000616bfca1f0af9a74f32348693707af49e8fe624de8aa34f1e1c5b6a25709cf.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_65820d252e1b93596de6697fd5f02483f3e2524a0696c7d698b64745edb32bf5831a90e556842f5f88c8209766cc78ca3a41cf783d20236a9f90d4a7ea7b3e72.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_7286884797a1210857e2a36f8ab46604b0034b6abf512380447a5763c873db6a72b8547f660053de0ea69faef1eb64878f39ff4b0ea86c963efab95764a3bf5b.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_cbcf6c279ac6c6a25ae138bf964e64a5fd90d22dcdf8a53b6fe7b72cefa51063bfb0181a6e50dd2acdcae2795619887d1d83b10461e44e5103be756f2588d837.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_47965bc586b95810c925b9df3314e0c9a5cd121e70ca0831f87df0bc034695de4f83ecf2def86f737e14614ee138794473cf32cd3082a5d38db9dec0c1f266fa.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_12aa201cea075846d266536aa222d64d4088b851d87f55dac5e611b77add6826c8ebc6e82650fcd1a9e88a05a0072dedd195719c5f64cd4580a0acd8aee05d92.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_80a4a4c808f46b20177fec8ee1a931010e5d14047c467a7f976cb5b2529b569eeb61558804f2f1a2d2a2347a1e2041500c1b275b1b4c31bbb4b36d8b4183b2b6.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_ea468dab96812857169bcfd9895576b59a794e3913ad3bc85218fd4dacac3c3cefb37f89d402264ecece8a41e80638dbe0c8ab2b03c59f50b3cefea59af52f95.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_d87ea86dd0e7ecdd5fe7a5bb67becf943e57c3add866b456034d51663d099031bd563e12f61fdccc044969adf938a8584ed22ccd401ab8b669e20e4f92fb54e8.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_35311c3d71a3605fad4e1d6b50f3911311cdcc46418bdf56d6d0308a75a69585269ee7582a335e29989adf308fa1a81a10a2c2d4e257e9d680447a4996f6269e.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_f4fc182ef03c12e9dcadd6febc3dbaa4a29134469057ca9e8ec0be2f2de29a494514ff4b59798e74debf26f78b2df2b3e2665c69b77035761fb463b783202915.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_85c0f2769456e60153b0fd8364b82a035da53384f62de342d9bdca806f3f1ea56486919a00497a18d457949c82bf8bfacc4423fc332074ddf71a49a8fe628fff.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_1b7e49e98f5960d71636812e807832cc98a24f48bc493652ddb2f9c4ce08bc89a8fd5d9550a8e2887d1d8887ce02924a878361c296d21ceba18a56f3ace130bd.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_09eecfdd96206ed13830b4b93cfb2cc75cd38083671a34194437b5734b5bb38712209dc335b07e3266ceb3c3a44a155b9bbe5f3e0e1105b19dd45d3def76f020.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_4c089fbdb88e3b624a6f884d3ba1bf606f003bfcd3742376d0d353cd62181dc663aa3811a56361c3100de488fc4d6595a50de2b26f058921ba74f5f2c1b5be00.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_897ff6ac314c5f5e0f496c6af624bd9abf296a02cb5aeb850b9220b6dc3ce2fc4004cb02ed8b59d59d4b9c9d90f050d6eebc1d08ecaebab2f671f7d9367e6410.js
https://codesamplez.com/wp-content/cache/breeze-minification/js/breeze_67d1e619e71d36ae00ddcf85ee18628bb4eb64fcb3d6119b463e75cb987013420a21136d19cd03e6634ccc01cfa9af4a357930e4cf6900953b7812efb4f249fb.js