Crystal 1.3 Aniversary Update

The latest version of Crystal for iOS is finally here with new features, bugs squished and a 1st anniversary promotion.


To celebrate 1 year of adblocking on iOS, Crystal will be free for the weekend

If you haven't tried Crystal yet or want to recommend it to family, friends, Uber drivers or Tinder dates, be sure to do so before the end of Monday to take advantage of the price drop. Grab it at

New Features? 

Onboarding - When you first launch you'll see some new onboarding slides which'll guide you through the setup process and explain new features in future updates. 

Whitelisting - Want to support a particular website? You can add it to the whitelist and Crystal will no longer block ads on that site. There's also a Safari Action Extension so you can whitelist sites without leaving your browser. Neat huh?

Acceptable Ads - You can now choose to block all ads or allow minimal advertising that meets the Acceptable Ads criteria to help support the sites you love. Want more details? Check out this post I wrote detailing Acceptable Ads here last year.

Bug Fixes & Improvments

  • I've rewrote the sync engine to be more reliable and perform better.
  • The sync engine is made with modularity in mind, allowing for future features to be added a lot quicker. 
  • Fixed an issue where a small number of devices on iOS 10 are unable to download an updated blocklist.
  • The UI within the app has been refined so it should look a lot nicer. 
  • I've removed the "Open Settings" shortcut, as this functionality has been removed from iOS 10.

Introducing Crystal for Samsung Internet Browser

What is Crystal?

Crystal is an adblocker that I originally released alongside iOS 9 for iPhone & iPad. It had a strong launch and reached #1 on the App Store in 32 countries worldwide! As of today, it is now it is available on Samsung Android devices running the latest Samsung Internet Browser included in the Marshmallow (v6.0) update.

In the latest version of Samsung Internet Browser, Samsung has built in a Content Blocker extension API which allows 3rd party apps, such as Crystal, to provide a filterlist to the browser to block content online. Such as adverts & user tracking.

By using Crystal to block obtrusive advertising, pages will load faster and consume less data.

Once you try browsing with Crystal, you won't want to switch back! 

What features does Crystal for Samsung Internet have? 

Crystal is able to load many different community supported filter lists for blocking adverts in different international regions, block privacy intrusive trackers, malware domains and social networking annoyances.

Also Crystal includes the ability to support sites that conform to the Acceptable Ads criteria by allowing non-intrusive advertising. For people who want to block all ads, there is a “one tap” button to disable the feature to block all known advertising online.

Finally, Crystal updates its filter lists seamlessly in the background ensuring that it is always up-to-date to give you the  most optimal adblocking experience.

Any update on Crystal for iOS?

Yes! I am working hard for the new 2.0 update which is due out soon and has some great new features that have been requested by the community. Watch this space!

Crystal on Google Play:
Crystal on Apple App Store:
Press Contact: [email protected]


Get it on Google Play

On Acceptable Ads.

Update: You can also listen to a discussion I had about Crystal on the Rampant Mumblings podcast here (Ep 42&43).

There has been a lot of confusion and mis-reporting going on today regarding Crystal allowing advertising. I'm hoping this post will clarify the information.

What Will Be Changing? 

In my first update (6-10 weeks time?) there will be two new features. A user managed whitelist, where you the user can specify a list of domains that you would like to support and an option to enable/disable Acceptable Ads on the websites you visit.

You are totally free to use all/any/none of these features as you see fit.

What Are Acceptable Ads? 

Acceptable Ads is an initiative, supported by 3 of my favourite websites  (Reddit, DuckDuckGo, Stack Exchange), that encourages and promotes the use of better advertising on the web. They have 5 rules for publishers and advertisers to stick to: 

  1. Acceptable Ads are not annoying.
  2. Acceptable Ads do not disrupt or distort the page content we're trying to read.
  3. Acceptable Ads are transparent with us about being an ad.
  4. Acceptable Ads are effective without shouting at us.
  5. Acceptable Ads are appropriate to the site that we are on.

Why do you need to partner with Eyeo?

Honestly? As a single developer, it would be impossible for me to manage the workload required to make sure publishers conform to any strict standard. Eyeo however has the experience & infrastructure in place, the data of acceptable ads that meet a criteria, the support staff to assist with reviews (all done through open forum) and the necessary business relationships within the industry. 

Why are you forcing this on everyone? 

Firstly - This will not be forced on anyone. It will be an entirely optional feature that will be described and presented clearly within the app before it is activated and that you can turn on/off at will. It will not be silently/secretly pushed out to everyone. I will to make sure that everyone is fully aware of how this feature works before it's enabled.
Secondly - by blocking all advertising with brute-force, it doesn't promote a healthy mobile web that is sustainable and allows publishers to make a living from the free content they provide. By including the option for a user-managed whitelist and Acceptable Ads, I'm hoping to empower users to be able to support the mobile web in any way they see fit.
Thirdly - In the long term, I'm hoping this convinces advertising agencies and publishers to reassess the kind of advertising they are using and bring them inline to a either the Acceptable Ads (or similar) criteria. 

But nobody wants to see ads online... 

I ran a short survey during the launch period of Crystal, the full results are coming in a post in a few hours, but one of the statistics from it is over 50% of people are happy to support sites by allowing ads that meet an acceptable criteria, around 20% favour a user-managed whitelist. These are the users this update will be catered for. Don't like the features? - No problem, you can choose not to enable them, they will be entirely optional.

Are companies paying you to be whitelisted?

No, but I do get a fee from Eyeo which will allow me to implement, maintain & support the features of Crystal in the long term. 

Can companies pay to be on the whitelist? 

I have no involvement with the whitelist directly - however Around 90% of websites on the Eyeo Acceptable Ads whitelist do not pay a fee to be included, only the absolute largest companies pay for inclusion, assuming they meet the criteria of course. In turn, this allows for better ads that meets the criteria to be displayed. What they are paying for is the service of whitelisting and the additional value it creates for them, but what they're doing is allowing it to be free for the majority and thereby encouraging better adverts to spread.

Here is a copy/paste from Eyeo's FAQ which describes in more detail their business model in regards to whitelisting:

What is the process for being whitelisted?
To be whitelisted, a website or advertiser must apply. At that point we collaborate with them to bring their ads in line with the criteria of our Acceptable Ads initiative. After that, we send the proposed ads to our 27,000-plus community for 7 – 10 days for an open discussion. If members of the community raise legitimate objections about proposed ads, we go back to the drawing board with the website or advertiser. If nothing comes up we whitelist the ads after the time period discussed above. All whitelisted sites are available here.
Why do some companies pay to be whitelisted and others do not?
Whitelisting is free for all small websites and blogs. However, managing this list requires significant effort on our side and this task cannot be completely taken over by volunteers as it happens with common filter lists. That’s why we are being paid by some larger properties that serve nonintrusive advertisements that want to participate in the Acceptable Ads initiative.
Can companies pay to be on the whitelist?
Absolutely not. Anyone and everyone can apply to be whitelisted. Whether they are or not depends solely on the content of their advertisements, i.e., whether they conform to our unambiguous Acceptable Ads criteria. However, after approval, some larger properties that serve nonintrusive advertisements pay.

I encourage you, if you have any comments or concerns or would like to discuss this, feel free to drop me an email.

Crystal - FAQ's

I've had a lot of questions about Crystal and Content Blocking in general over the past few weeks. Here's a little post to clear up some info. 

What does Crystal do?

Crystal is a content blocker - It primarily blocks 3rd party adverts and tracking scripts, stuff that runs in the background when you visit sites. It removes irritations such as full screen interstitials with tiny close buttons, popups/popunders, autoplay video, unwanted redirects to the App Store... All the annoyances you have with the modern day web. 

Why would I want Crystal?

A side effect of blocking adverts and tracking is performance. After profiling 10 popular news sites with & without Crystal, I found the pages fully loaded 3.9x times faster on average while using 53% less data. It's tricky to measure, but it's safe to say this has a very positive impact on battery life too! 

Does it work on every website? 

The majority of sites, yes! As I am unable to fully test the whole web, I have built in two great complimentary features. A "Report Site" feature that makes it easy to let me know when a site is showing adverts or not functioning correctly, and a Smart Sync, which allows me to update the blocklist remotely.

What about 3rd Party Apps?

Content blockers only work in Safrai, and any apps that use the new Safari View Controller, such as Twitterrific

Wait, don't websites rely on ad income?! Why are you doing this?

A question I've asked myself on and off the past couple months. Truth is, the mobile web has become a polluted, and this is the first real opportunity to clear it up, for better or worse. There is a lot more going on behind the scenes when you load up websites, this great post by Rob Leathern profiles The New York Post and has some amazing findings. Unfortunately, this practice is quite common within the industry. 

Can Crystal track your browsing habits?

No - Content Blockers on iOS 9 are not able to view this data.

Is Crystal going to be a Universal App? 

Yes - Fully native on iPhone and iPad.

Will there be an OS X Version?

Yes - That is planned. 

What languages will it support? 

English, French, German, Spanish, Danish, Japanese & Chinese (Simplified & Traditional).

When is the release date?

If all goes to plan, it'll release with iOS 9.

Whats your pricing model?

To ensure I can support the app in the long term (I have some great features planned!), and to cover any cloud hosting costs, it will be a premium app. No price is decided yet.

Can I help beta test and/or be notified when its released? 

I've reached the maximum amount of testers I can currently hold until Test Flight is ready for iOS 9 apps. However you can sign up to join the Test Flight beta, I'll be randomly* selecting 1000-2000 people from the list to test when Test Flight is ready. You can also use the form to signup to be notified when Crystal is released. 
*If you were in the first 500 on the list, you're guaranteed a spot!


Crystal Benchmarks

Update 25/8: I suck at math - I originally posted that pages loaded 74% faster. They actually load 3.9x faster - and the time to load is reduced by 74%. I've edited the below post to reflect this. 

2 months ago I wrote about what I accomplished in an hour with Safari Content Blocker. What started off as a one page experiment has since evolved into a full product I've worked non-stop on over the past 60 days. I thought it would be a good idea to revisit my original post with Crystal, to show how different the mobile web will be with content blockers. 

10 Websites

For this experiment, I have picked 10 pages from different news websites - Some I use regularly, some I don't. The metrics I'm monitoring is page size (in MB) and load time (in Seconds). 10 pages is far from a good sample size for the web, I know, but the web is a big place, and my time to benchmark is limited. 

Websites tested: New York Times, Business Insider, Macworld, Wired, The Verge, PC Gamer, iMore, Kotaku, Huffington Post, Vice.

Method: All sites tested on an iPhone 6+, connected to wifi (154Mb Fiber). All metrics are taken from Safari Web Inspector after doing an Ignored Cache Reload (CMD+Shift+R).


On average, pages loaded 3.9x faster with Crystal and used 53% less bandwidth. Just by having Crystal installed, I saved a total of 70 seconds and 35MB of data on these 10 pages.

See charts below with the raw data.

Page Load Time in Seconds

Page Size in MB

When can I get Crystal? 

Short answer - When iOS 9 is released.

I've already got iOS 9 - Can I get it sooner?

Crystal is currently in a closed public beta, with access rolling out to more people every few days. To sign up for the beta or get notifications when its released, click here for more details. 

I've also made a little Crystal splash page and Twitter account @_CrystalApp to keep you all updated with progress. - Learn iOS Design & Xcode

Design+Code is an online course, delivered through text and video, designed to teach you how to create an app from scratch. From design through to mock ups, prototyping and creation of a functional app. 

As someone who enjoys digital design but finds it a natural struggle, it was very empowering to follow along the tutorials in Sketch and see a basic prototype on my phone. When it comes to code, the author, Meng To, does a great job of explaining just enough of the Swift language to get you comfortable to understand what is happening while you follow along. It's also great to see how Meng uses Xcode Storyboards to do quick prototypes for apps without any code. It's so simple, obvious once you see it done, but it had never occurred to me to do it. 

There is also a great community aspect that comes with this course. Meng sends out a weekly newsletter of curated links relating to app creation & design, and there is a Facebook group dedicated to this course, who I have found are very helpful in answering questions and helping each-other out with different aspects of the course and app creation in general.

Design+Code is a unique way of teaching, and to me an effective one. Be sure to check it out at

My OS X Setup - The Toolbar

My OS X Setup - The Toolbar

Following on from my last post about my Dock Icons, here is what I keep up in my toolbar. 

CopyClip - I copy & paste text all the time, so I find CopyClip absolutely essential to keep a history of my pasteboard. 

QuickRes - QuickRes allows you to quickly change screen resolutions with either a click of the toolbar, or a keyboard shortcut. With previous devices I have always used the default resolution. Since getting the Retina Display Macbook I have found myself wanting to toggle resolutions depending on what task I’m doing. Some times I could use extra real estate so I use 1680x1050, the rest of the time, I use the default 1280x800. The maximum resolution is 3360x2100, a little to extreme for me! 

iStat Menus - I have this setup to show 4 key metrics: Network Activity, CPU Usage, Memory Pressure & Disk Space. At a glance, I can get a good visual representation of what my computer is doing along with what applications are causing any unexpected usage.
Fantastical - With Fantastical I’m one keyboard shortcut away to adding a new calendar appointment, or seeing my current schedule. Also the toolbar icon is a nice minimal way to check the current date.

BackBlaze (not pictured) - My favorite cloud backup service. I haven’t setup BackBlaze backups yet on this machine yet, as I am still in the process of migrating over from my old Macbook. Once that is complete, I’ll setup BackBlaze to periodically backup my data remotely.