Show HN: I made a app that uses NFC as a physical switch to block distractions
foqos.appHi HN!
Super proud to showcase Foqos! I wanted to create a way to physically block apps on my phone, always had a bunch of NFC tags, combined the 2 together over the holiday break and Foqos was born. You can create profiles, write them to NFC tags and track your weekly focus.
Its completely open source and will always be free! There is an affiliate link in the app for nfc tags and donations are completely optional
By the way, you can trigger iOS shortcuts with NFC tags, so in principle you can trigger any functionality exposed as a Shortcut action. However, NFC recognition doesn’t always work as smoothly as one would hope.
It depends on the type and manufacturer of the NFC chip. I recommend using SLIX2 chips; they are a bit more expensive, but they work perfectly.
To expand here, when using NFC to trigger an iOS shortcut, there's nothing actually written to the NFC. Instead, shortcuts responds when that NFC is present. So you can actually write something like a URL to the chip and have it act simultaneously.
You can even use an airtag because it sees it as an NFC as well.
Yeah 100% I think I commented this somewhere else as well. Your phone already has this natively built in, you don't need any of these apps at all.
Over the break I wanted to build something that was gonna make this easier for myself. I built it and made it totally free and open source. I don't see a competitive advantage, but just a fun challenge for myself to build and get this type of app reviewed.
Maybe I'll write a blog post about the apple review submission because that was a not fun lol
I'm curious why the NFC tags are required at all?
Can't you switch profiles on your phone without scanning an NFC tag already? Couldn't your app allow profile switching without requiring any NFC tags?
It's not clear to me what the NFC tags add to this experience.
It's a commitment device - e.g. leave your "mindless scrolling" NFC tag at home so you don't mindlessly scroll while you're out.
It appealed to me since the way I block distractions is easy for me to unblock them, too. (like HN, I unblocked it to look for commentary on the bitbucket outage and now I'm reading random articles)
If unblocking via software is easy too, this doesn't really work, but I could see giving the physical tag to a friend or leaving it somewhere in a different building causing enough friction for me to reconsider if I really want to go to the effort just to look at some news headlines.
what I want is social screentime approval
on iphone, the built in screentime app is just a face id approval or your pin code, but what if instead you had to request approval and your friends on FindMy were the only people that could approve, by consensus
For those curious, this is called Focus and is pretty highly configurable after a little learning curve. You can use automations to switch modes by calendar, date/time, GPS location, connected Wi-Fi network, etc. No programming required. Programmable via Shortcuts, too!
https://support.apple.com/guide/iphone/set-up-a-focus-iphd62...
Ever since focuses got introduced, I really soured on the idea of a physical mute/ring switch.
Having my phone ring at home and vibrate when away is the most obvious use case for this feature, and yet it can't be implemented because you can't toggle a physical switch in hardware.
I know the latest generation iPhones don't have those, and I think that's the right decision, but it's still disappointing for older-gen users.
You can associate a location schedule with Focuses, which can include Silent mode as a filter. Also you can set shortcuts to automatically run when you enter a physical location.
Attach that NFC tag to a 40 kg weight in the other room (and commit to carrying the weight to the phone, not the other way round ;) ), then you might appreciate the value-add. We are very physical creatures.
NFC tags cost about 20 cents and they are easy to use, tied to a place, etc.
I've done a lot of thinking about cyberphysical art that used to look like
https://mastodon.social/@UP8/111013706271196029
and now look like
https://bsky.app/profile/up-8.bsky.social/post/3lbqfh7pesc2x
Notably with the QR code on the back I found people didn't understand the branding of the card and had to flip it over to know the affordances it offers which didn't work when the card was stuck to the wall, as in
https://bsky.app/profile/up-8.bsky.social/post/3lbftgz6kok2c
I researched NFC tags as an option here and bought a 100 pack and a Sony FeliCa reader but found the problem of "communicating the affordance is available" was much worse, there's no standard logo (except one that belongs to the banks that they wouldn't give me permission to use) and not much awareness. I was irritated that NFC support is limited in iPads, for instance. So I stuck with QR codes that people understand.
I think its so that you can't easily toggle them off by using the phone software. for example, you are trying to get work done so you set two up: a focus one by your desk, another somewhere else where you have to get up. so you have to get up and walk over to the 2nd one to turn off the focus mode
I was wondering that myself. At a guess, you put a tag at each focus location for the kind of focus you do at that location. At your desk, you put a tag that enables your working focus. At your bedside, you put a tag that enables your sleep focus.
Sounds cool but unnecessary.
necessary for those of us who forget what they're doing whenever they open their phone. The ability to tell my phone "shut up I'm at my desk" without opening it and being confronted with the home screen & notifications (and then forget what I was doing) is a super cool idea.
I have ADHD though
yeah 100% you can totally just use whats built into your phone, there's actually no need for any of these apps.
I found that having this physical deterrent keeps myself accountable, that's kinda the reason I built it and showcased it
For a while I stuck NFC tags on the MagSafe charger/stands in various places (at my desk, by my bed, etc.) to swifch profiles (which can be done just using shortcuts, as others have mentioned).
It worked pretty nicely but in the end I found it not to be all that useful and I’d be frustrated by the profile change as often as I was happy with it.
The app does allow manually switching of profiles, without NFC tags, but it wasn't clear until I installed the app.
How do I do this?
Yeah lot of feedback on better demos, learning moment for sure!
Couldn’t figure out how to switch profiles without nfc tags even after installing the app. Could you please let me know?
Very cool; wondering if this could work as a parental control. "screen time" on iOS is fundamentally broken, and something like this would require the child to come to the parent for screen time extensions (if the parent has the NFC chip).
We talked about something like this for parents on HN not long ago. Definitely monetizable.
How is that different from the parent holding the code?
One scenario I can think of: When there's an occasion where you want to give them unlimited time, but you don't want to disclose the code and then later have to reset it to something new. Or you want to delegate permission to a babysitter.
You just give them the doohickey and ask for it back later. (Cloning the NFC tag is a much harder job that remembering a PIN.)
Not unlike using a TPM to prevent users from copying copyrighted content while still allowing controlled access.
That seems like a rather unfair comparison, tarring "parent won't let child watch movies after bedtime" with the same brush as "international megacorp sabotages hardware you own in profit-seeking paranoia."
Heck, in many jurisdiction the device is owned by the parents anyway, not the kid.
Apple Screen Time will occasionally stop blocking applications, allowing the child account to use them without restrictions.
Other drawbacks include only a single period of "down time" per day. There is also an inability to totally block applications; the closest analogue is to set a maximum of one minute for the website or application.
not just occasionally but often, in our experience with multiple phones and iPads. I have 2 kids with devices and have found Screen Time completely useless. It is the right idea in theory but in practice it's broken (I'm guessing no Apple higher ups have young kids that they've tried to use this with.)
Also, besides the resets (and by reset I mean not just time restrictions but content restrictions too), my kid can just bypass it by entering his AppleID password.
There are many YouTube videos for teens on how to bypass ScreenTime. It’s a mess that Apple needs to clean up quickly
For this reason a configuration profile [1] is the only fool proof method. However, I have only used them to deploy permanent content restrictions. I don't know of a way to enable or disable restrictions based on the time of day or a certain duration.
1. https://support.apple.com/guide/apple-configurator-mac/creat...
> enable or disable restrictions based on the time of day or a certain duration
this is what I need
Screen time blocks are terrible
I use them myself to limit some websites that waste my time
It is way too easy to click on 1 more minute, or 15 mins or ignore for the day
The only way to really block sites is to add them as adult websites and turn on parental controls
But can’t do that with apps
This is awesome, yay for an open source https://getbrick.app/
I'm curious if you have an NFC tag that you'd recommend or that you like to use?
Yeah there is tags in the app you can buy that just links out to Amazon, just a disclaimer it is an affiliate link.
Otherwise this is what I had around the house: https://www.amazon.ca/gp/product/B075MD13Z7
I was intrigued by brick, now this, and can't use either. is there seriously no android app like these? :(
Tasker has NFC reading capabilities and is programmable to do stuff when it detects an NFC ID, I don't know if it can lock the phone though (there's an app called Lock My Phone, and Tasker has the ability to cause apps to take some actions, but I don't know if both can be combined).
E.g. I have 2 NFC tags on my desk, when Tasker detects one of them, it calls a HTTP URL of a PHP script on my NAS, the script tells my Hue Bridge to switch on a Hue-enabled power socket (into which my monitor and speakers are plugged), and then the script sends a Wake-On-LAN packet to my desktop PC. The other one turns off that Hue-enabled power socket (I put my computer into sleep separately).
ScreenZen works great. One would have to convince the dev to include NFC support.
Yeah I think the reason is the family activity on iOS is so easy to build around. I'm really sorry I don't own an android phone or have time to port it :(
...on the other hand, it's open source so everybody can port this themselves!
I have occasionally wanted to trigger location-specific behavior on my kid's devices, like turning the wifi off when in their bedroom. This feels broadly in the category to me.
Doesn't that mean you'd also need to somehow disable mobile data, and possibly calls as well if you don't want them phoning their friends late at night?
Might be easier to insist that phones charge overnight in some parentally-observable central area... Though I suppose they might use them for alarm clocks.
Device could be a tablet without cellular.
Anyway, my son has a phone (hand down from me 5 years ago) without cellular.
Couldn't you do this with your router/firewall? Of course, this would mean managing devices by MAC instead of DHCP, but one of the wifi routers (maybe a Tomato upgrade) allowed designating blocks of time to allow/deny WAN access
Very cool! I was about to pay $50 to do this with Brick. What's the best way to support the project?
Saw there's a "Support Us" option in the app for $2. Will do that!
That is so kind! Feel free to share it around. Appreciate the support!
Ofc. Not sure if this was inspired by the thread on non-distracting products, but you could try plugging over there too [0]. Hope you're enjoying the HackerNews high today
[0]: https://news.ycombinator.com/item?id=42780953
Looking forward to use it. But its currently not available in my country.
Previous comments show, DEV is already working on it. :)
It would've been nice to see what the apps looks like when they're blocked.
Yeah 100% gonna update the demos, thank you for the feedback!
Cool idea! Any chance you’ll make it available in New Zealand? I’d love to try this out.
Neat implementation! Big fan of integrating more NFC into apps. There's something satisfying and reassuring about the physicality of it all.
I'll add a vote to whoever has the time to port it over to android =)
Impressive. I'm sure it will help tons of people dealing with lack of focus.
So this is just a wrapper for Automations and Profiles (or how Apple calls it: Focus).
But i like the idea to make such features accessible to the everyone and not only people who geek out on their phone.
As others pointed out you should implement qr codes which would make it even more usable.
Yeah absolutely, I went with the profiles logic switch so I can add other forms of activations for blocking and unblocking, like QR codes, timers, etc...
I'm finding that scanning NFC tags is pretty slow with iPhone. There's this automatic flow that's pretty cumbersome and slows me down. Then when it fails there's some annoying animation. This is with the Yubikey authenticator app.
Are you finding anything similar? Is it not annoying to be scanning these all the time?
Yeah I also find Ghost scans happen, it happens where I try to scan a tag and it says something has been scanned even though I'm no where close to the tag. I think its an issue with NFCReader in iOS
Cool idea, wanted to try it out but it's not available in my country. Any reason for this? :)
No reason, just messed up the listing haha. I've had a few people reach out and I'm going to open it this weekend!
Great, thanks
Calgary??
Love to see it! Great product!
COW TOWN
Neat! Any idea if it'd be possible to make this work with macOS as well? I don't think Macs have NFC, but they do sync things like Do Not Disturb states between iOS and macOS.
I can look into it, I tried to find a way to trigger Focus modes on iOS a profile being active and it seems they only allow you to read the state and no write or update it
I might be misreading what you are asking, but I just went into Shortcuts app and tried creating a new one, and there are both “Get Current Focus” and “Set Focus” actions.
Is this what you were looking for? “Set Focus” allows setting any focus mode (including custom ones, you can see one in my screenshot) on/off. And if you choose “on”, there is an additional conditional afterwards (until manually turned off/until time/until leaving location/until a calendar event ends).
Here is a screenshot of how it looks (https://ibb.co/R6gdRq4).
Yeah I can't find a clear way to do this from Swift and APIs apple exposes. I can be very wrong though and just didn't dig hard enough
Ah, you were trying to do it through Swift/within an actual app, thanks for clarifying.
I think you are right, I couldn’t find a way to directly set status from within Swift, but there is a somewhat janky workaround I thought of. You should be able to have Shortcut hooks within your app (i.e., once the shortcut is triggered, it triggers an action within your app; or, inversed, have your app trigger a shortcut), and then have an official companion Shortcut for your users they can install with a single click. There might be other valid approaches, but they all seem to involve Shortcuts in some way.
However, it is definitely a suboptimal approach, compared to just doing it all within the app (which I couldnt find a way to do either).
Maybe they'll add it in the next wwdc!
It would be nice to see a demo of the app working in the real world with an nfc tag, not just an app recording.
I have a recording on the site here: https://youtu.be/70C7L0T1VVY.
That is my real phone with me scanning a tag, I'm just using screen studios new phone recording feature
Yeah, I have no idea how these tags are actually being used, let alone why they could be useful.
NFC tags can be scanned using a phone. An app on the phone can then detect the action and act accordingly. The phone can differentiate between different tags.
I use an NFC tag to lock the house using Home Assistant.
OK. Why not just tap "lock the house" on your screen? Or use a voice interface (which requires zero extra hardware)?
I like the hardware aspect, it feels very intentional and deliberate for context switching.
This is really cool! I know developing apple apps is expensive, how can I donate?
Thats so kind! No need to donate, just use the app and give me any feedback. I love developing things like this!
I might be missing it on your page but can't seem to find the link to your source repo.
That is totally my fault. Repo here: https://github.com/awaseem/foqos
This is awesome, now I can switch between work and home with just a tap.
Yeah exactly! I use this everyday for work and gym.
cool, but can't use it : ( since it's not available in every country
Yup working on it. Totally my fault hope to get it fixed this weekend!
Is it not available in the EU?
Not yet, but working on it to get it out! Appreciate the feedback
Yes please, have you got an alert email / feed for this?
would it be possible to trigger profiles with Bluetooth Beacons?
Woah never heard of these? Gonna check them out...
Why isn't the app available in the Netherlands?
Would be great if it was available in the UK too!
Seems to be unavailable in New Zealand too.
I use the brick app: https://getbrick.app/, and it works pretty well, but they have this weird bug where selecting certain apps on a block list crashes the app. They have a pop-up indicating that it's some apple-related bug, which I find kind of hard to believe. Is this something that also happens in your app?
I haven't noticed this on my personal use. It does seem like they use the family picker activity built into iOS. So maybe the issue is here as well.
It doesn't happen to every search. For me personally, if I try to search for apps starting with "r", it tends to crash. Not sure if it's related to the number of applications it needs to search for that match the prefix (for this case I was trying to block reddit).
Maybe its the list of app you have on your device? For me its fine but changes as the list is to long? Just a random guess though
App not available in my country (Australia)
Yeah sorry about that, I messed up the listing and I'll work to get it out to more countries
I'll be waiting for it over here in Argentina too!
[dead]
[flagged]
There was some hate when digging through iOS dev docs, I'm not a Swift UI dev, I've mostly done JS/TS stuff (maybe thats telling of my poor code)
I’ve seen "made with <coffee emoji>" or the less caffeinated "made with <water emoji>"