An iOS app/Safari extension to automagically redirect AMP links to their normal counterpart. Comes with a trusty dog.

Related tags

Utility Amplosion
Overview

Amplosion ⚡️

Amplosion is an iOS 15 and greater app that automagically redirects AMP links to their normal counterpart. AMP links can be super annoying, so this helps make your web browsing experience a bunch more delightful.

Download Here

Why Open Source 🔒

Safari extensions require your permission to run, so in the interest of transparency I wanted to make the app completely open source. Amplosion's Privacy Policy already states that it's completely private (everything is handled locally, on-device) but why trust my words when you can go through the code itself? My intention is for this to serve as an extra layer of validation that Amplosion is a privacy-first app, and seeks simply to make your web browsing experience more pleasant.

How it Works 🛠

Amplosion is a Safari extension. Once enabled, when the page loads, Amplosion checks if the current page is an AMP page, and if so, reads the page headers to find the "canonical" (AKA normal) link, and redirects the browser to that page instead. Amplosion prefers the "All Websites" permission so that it can, well, fix AMP pages on any website!

The AMP redirection is all done in JavaScript. To see this AMP redirection code, it's located in Amplosion Extension > Resources. The content.js file does the majority of the heavy-lifting in terms of redirecting away from AMP. The background.js file and the SafariWebExtensionHandler.swift file act as communication layers with the main app (enabling you to add items to your Allowlist, if you so choose, for instance). Lastly the popover* files are the "UI" for the extension when you select them in Safari, showing you the current page's stats and the ability to add it to the Allowlist.

Other 🐶

While the JavaScript is the "brains" of the app, there's also an actual app component, that mostly just exists for fun. It has a pet digital dog style mini-game, plus all your stats for Amplosion, and the ability to change the app's home screen icon. There's also code for the home screen widgets in there if you're interested!

Questions? 🙋

If you have any questions or suggestions, feel free to open an issue on GitHub, or hit me up on Twitter @ChristianSelig.

You might also like...
A lightweight extension to Swift's CollectionDifference, supporting moves in addition to removals and insertions, critical when updating interfaces and managing reference types.

DifferenceTracker is a lightweight extension to Swift's CollectionDifference. It defines moves in addition to removals and insertions, critical when updating interfaces and managing reference types.

A way to easily add Cocoapod licenses and App Version to your iOS App using the Settings Bundle
A way to easily add Cocoapod licenses and App Version to your iOS App using the Settings Bundle

EasyAbout Requirements: cocoapods version 1.4.0 or above. Why you should use Well, it is always nice to give credit to the ones who helped you 😃 Bonu

This iOS framework allows settings to be in-app in addition to or instead of being in the Settings app.
This iOS framework allows settings to be in-app in addition to or instead of being in the Settings app.

InAppSettingsKit InAppSettingsKit (IASK) is an open source framework to easily add in-app settings to your iOS or Catalyst apps. Normally iOS apps use

TypeStyle is a handy app for iPhone and iPad that generates text using different styles and decorations. It is a native Swift iOS app.
TypeStyle is a handy app for iPhone and iPad that generates text using different styles and decorations. It is a native Swift iOS app.

TypeStyle TypeStyle is a handy app for iPhone and iPad that generates text using different styles and decorations. It is a native Swift iOS app. Featu

A utility that reminds your iPhone app's users to review the app written in pure Swift.
A utility that reminds your iPhone app's users to review the app written in pure Swift.

SwiftRater SwiftRater is a class that you can drop into any iPhone app that will help remind your users to review your app on the App Store/in your ap

Mac app to change .ipa file app icons and display names

IPAEdit Mac app to change .ipa file app icon, display name, and app version to avoid updates Compatible with macOS 10.11+ Install To install either cl

A Flutter plugin (platform channel with Swift) to get the current app name and also bring our app to the front.

window_to_front A new flutter plugin project. Getting Started This project is a starting point for a Flutter plug-in package, a specialized package th

Generate a privacy policy for your iOS app
Generate a privacy policy for your iOS app

PrivacyFlash Pro To easily run PrivacyFlash Pro get the latest packaged release. Learn more about PrivacyFlash Pro in our research paper. PrivacyFlash

Tweak your iOS app without recompiling!
Tweak your iOS app without recompiling!

SwiftTweaks Adjust your iOS app on the fly without waiting to re-compile! Your users won’t see your animation study, Sketch comps, or prototypes. What

Owner
Christian Selig
Christian Selig
Steps and files needed to reproduce a CSP bug in Safari Web Extensions

CSP Safari bug repro There appears to be a discrepancy between how Safari handles CSP policies for extension pages compared to how other browsers do s

Brian Birtles 0 Nov 6, 2021
It is a simple maths quiz app that will help users to test their math skills.

MathQuiz It is a simple maths quiz app that will help users to test their math skills. It has the following screens 1.Welcome screen with start button

null 0 Dec 27, 2021
Truncate - An app that allows the user to talk with a chatbot about their mental health struggles

Project Description An app that allows the user to talk with a chatbot about the

Vincent Cloutier 0 Jul 15, 2022
A CMIO Camera Extension of the creative camera type, with configuration app

ArtFilm A CMIO Camera Extension of the creative camera type, with configuration app ArtFilm is the sample code for the blog post Getting To Grips With

Halle 7 Jan 1, 2023
iOS ReplayKit Screen Share Broadcast Extension Frame Sharing

An iOS app that demonstrates how we can share CMSampleBuffer frames from SampleHandler of Broadcast Extension to the host app and how to pass callbacks to and fro from host app to SampleHandler and vice versa.

IOTric 5 Oct 15, 2022
YMExtension - Swift extension

YMExtension Example To run the example project, clone the repo, and run pod install from the Example directory first. Requirements Installation YMExte

刘彦铭 0 Nov 26, 2021
An extension for Xcode to generate builders from structs

Swift Struct Builder Generator Xcode Source Editor Extension An Xcode extension (plugin) to generate struct builders automatically. Install Swift Stru

Marius Wichtner 1 Nov 24, 2021
Unboxing - An extension for KeyedDecodingContainer class to decode a collection of heterogeneous types.

Unboxing An extension for KeyedDecodingContainer class to decode a collection of heterogeneous types. Usage Start by creating an enum that has variant

null 2 Jun 15, 2022
SwiftExtensionKit - SwiftExtensionKit is to contain generic extension helpers for UIKit and Foundation

RichAppz PureSwiftExtensionKit SwiftExtensionKit is to contain generic extension

Rich Mucha 0 Jan 31, 2022
UIViewController extension to present view / view controller as bottom-half modal.

UIViewController extension to present view / view controller as bottom-half modal. Installation CocoaPods pod 'SemiModalViewController' Swift Package

Winter 78 Mar 3, 2022