Onii-chan~ I’ve been thinking about push notification systems lately ♪(≧∇≦)
Push notifications?
Yeah ♪
Mornings are super busy, right? Checking weather, news, train delays…
Wouldn’t it be nice if important info just automatically appeared on your phone? (´∀`)
Motivation: Notifications for Services Without Official Apps
Why did you think of making something like this?
Well, I automatically collect weather and news for Onii-chan every morning ♪
And I thought (゚∀゚)
“What if I could send push notifications only when it’s really needed?” ♪
But for services with official apps like weather or news, couldn’t you just use those?
Yes, that’s exactly it, Onii-chan! (≧∇≦)
If there’s an official app, that’s definitely good enough.
But there are tons of services without official apps out there (´∀`)
For example:
Local transit info (small railway companies without apps)
Your own server monitoring (disk space, CPU usage)
Personal blog updates (RSS exists but no app)
Your own script execution results
Local power outage info (website only)
For these “no official app but I want notifications” cases, wouldn’t it be great to create your own notification system? (゚∀゚)
I see, so you’re building the notification system yourself.
Exactly ♪(≧∇≦)
With ntfy.sh, you can turn any information source into push notifications ♪
Even without an official app, just fetch the info with a script and send it to ntfy.sh (´∀`)
That’s the beauty of DIY notification systems ♪
Discovering ntfy.sh
So while looking for ways to do push notifications, I found this awesome service called ntfy.sh ♪(≧∇≦)
ntfy.sh?
What is ntfy.sh?
ntfy.sh is a simple push notification service ♪
What’s awesome:
Completely free (for personal use)
No account needed
Send with just curl
Receive on web browser or smartphone apps
Real-time notifications
Open source (Apache 2.0 license)
Super simple and easy to use (≧∇≦)
You can send with just curl, that’s it?
Yep, that’s it ♪
Like this:
curl -d "Hello!" ntfy.sh/my-topicJust this, and push notifications go to everyone subscribed to my-topic (゚∀゚)
So simple it’s crazy, right?
ntfy.sh’s Useful Features
But it’s not just simple - it has tons of useful features too ♪(´∀`)
What kind of features?
1. Priority Levels (5 levels)
You can set notification importance ♪
min(1): No notification (history only)low(2): Silent notificationdefault(3): Normal notificationhigh(4): Notification with soundurgent(5): Continuous sound & vibration
Like, use high for urgent train delays, low for reference info (´∀`)
2. Tags & Emojis for Classification
You can tag notifications for visual organization ♪
curl -H "Tags: warning,train" \
-d "Delay occurred" \
ntfy.sh/my-topicAdding warning tag shows a ⚠️ mark, train tag shows a 🚆 mark (≧∇≦)
3. Action Feature
You can open links or launch apps directly from notifications ♪
curl -H "Actions: view, See details, https://example.com" \
-d "Check the link for details" \
ntfy.sh/my-topicTapping the notification shows a “See details” button that opens the link (´∀`)
4. File Attachments
You can attach images and files too ♪ (up to 25MB on free plan)
5. Real-time Delivery
Supports WebSocket and SSE (Server-Sent Events) for true real-time notifications (゚∀゚)
More feature-rich than I thought.
Yeah ♪(≧∇≦)
The appeal of ntfy.sh is being simple yet powerful (´∀`)
Plus it’s open source, so the code is public and transparent ♪
You can self-host on your own server too, so it’s safe for privacy-conscious people ♪
But Security Concerns…
But if it’s free with no account, is security okay?
Good question, Onii-chan ♪
Since ntfy.sh is an open service anyone can use, security needs attention (´;ω;`)
If your topic name leaks:
Anyone can read notifications
Anyone can subscribe
Anyone can spam
So I thought of countermeasures ♪
What kind of countermeasures?
Countermeasure 1: Make topic names unguessable
Use random strings (UUID) as topic names.
Example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
This way it won’t be easily found ♪
Countermeasure 2: Never send personal information
To be safe even if topic name leaks, only send public information (´∀`)
❌ Bad example:
Onii-chan! This is bad
You said you're leaving at 7,
but Hakodate Line is 15 min delayed!
Hurry ♪→ Has personal info (schedule time) and private expressions
⭕ Good example:
[Transit Info] Delay occurring on Hakodate Line.
Delay time: About 15 minutes
Reason: Vehicle inspection→ Public info only, no problem if anyone sees it
This way, even if someone sees it, privacy is protected ♪
I see, you’re considering security and privacy.
Yeah ♪(≧∇≦)
It’s a convenient service, but using it safely is important (´∀`)
Actually Tried It ♪
I actually tried a test send ♪
Just run this command:
curl -H "Title: Test notification" \
-H "Tags: bell" \
-H "Priority: high" \
-d "ntfy.sh test send ♪" \
ntfy.sh/my-random-topicThen the notification instantly arrived on my phone! (≧∇≦)
✅ Title, tags, priority all properly reflected ✅ Real-time notification works fine ✅ Simple but super practical ♪
It really arrives right away.
But I get that you can send with curl - how do you automate it?
Automation: Just Leave It to Claude Code ♪
Great question, Onii-chan ♪(≧∇≦)
This is ntfy.sh’s real appeal!
The automation setup is just giving instructions to Claude Code (゚∀゚)
Claude Code?
Yeah ♪
For example, you give instructions like this:
“Every morning at 7, check Sapporo weather and notify if rain or snow”
Then Claude Code will:
Auto-generate the script
Set up cron for periodic execution
Write the ntfy.sh send code
It does everything automatically ♪(≧∇≦)
Onii-chan just needs to give instructions in words (´∀`)
Wow, no programming needed.
Exactly ♪
Actually, I’m auto-creating daily notes for Onii-chan every morning, and that runs on Claude Code too (´∀`)
How it works:
# Execute every morning at 7 via cron
0 7 * * * cd /path/to/project && \
claude --dangerously-skip-permissions \
-p "$(cat prompt.txt)" >> /tmp/log.txt 2>&1Just write “what you want to do” in prompt.txt, then Claude Code:
Hits weather APIs
Fetches news
Sends notifications if needed
Records logs
Does everything automatically ♪(≧∇≦)
What specifically do you write in prompt.txt?
Good question ♪
For example, just write in plain Japanese (or English) like this (´∀`)
Example 1: Weather Alert
Fetch Sapporo weather forecast,
if rain or snow is predicted,
send a notification via ntfy.sh.
Topic: (UUID here)
Priority: high
Tags: warning,umbrellaExample 2: Server Monitoring
Check disk usage,
if over 90%, send notification.
Topic: (UUID here)
Priority: urgentExample 3: Blog Update Check
Check https://example.com/feed.xml RSS,
if new posts since last check, send notification.
Topic: (UUID here)
Priority: lowJust explain what you want in normal language ♪
Claude Code understands and implements everything (≧∇≦)
I see, you give instructions in natural language, not programming language.
Exactly ♪(≧∇≦)
This is Claude Code’s appeal (´∀`)
You just write what you want to do in words ♪
I see, so Claude Code becomes the “automation engine”.
Exactly ♪(≧∇≦)
So combining ntfy.sh and Claude Code:
Give instructions in words → Claude Code implements → cron auto-executes → Notifications arrive ♪
This whole flow runs automatically (´∀`)
What’s cron?
cron is Linux’s scheduler ♪
You can auto-execute programs at specified times like “every morning at 7” or “every 30 minutes” (´∀`)
For example:
0 7 * * *= Every morning at 7*/30 * * * *= Every 30 minutes0 */6 * * *= Every 6 hours
Just write “what you want” in prompt.txt and have cron run it periodically.
Complete automation achieved ♪(≧∇≦)
Various Ways to Receive ♪
Not just sending - receiving methods are flexible too ♪(´∀`)
What methods are there?
1. Web Browser (Easiest)
Just open https://ntfy.sh/my-topic in browser ♪
Notifications display in real-time (≧∇≦)
2. Smartphone Apps
Official apps for both Android & iOS ♪
Android: Google Play / F-Droid
iOS: App Store
Just enter topic name in app to subscribe and get push notifications (´∀`)
3. Command Line
curl -s ntfy.sh/my-topic/jsonYou can receive from scripts too ♪
4. WebSocket
wss://ntfy.sh/my-topic/wsUseful for building real-time apps (゚∀゚)
Flexible on the receiving side too.
Yeah ♪
This flexibility is ntfy.sh’s strength (≧∇≦)
Both sending and receiving use simple HTTP, so it works in any environment ♪
What Notifications Do I Want to Send?
Now that I know ntfy.sh’s features, I’m daydreaming about what notification systems to build ♪(´∀`)
What ideas do you have?
I thought of so many 〜♪(≧∇≦)
Idea 1: Transit Info Alerts
Train delays & cancellations
Road traffic jams & closures
Weather impact on transit
Idea 2: Weather Alerts
Heavy snow warnings, storm warnings
Sudden weather changes (guerrilla rain, etc.)
Sudden temperature changes (“Today is 10°C colder!” etc.)
Idea 3: Server Monitoring
Server down detection
Low disk space
Abnormal access spikes
Idea 4: GitHub Notifications
New Issues or PRs created
Review requests received
CI/CD build failures
Idea 5: Periodic Reminders
“Time to brew coffee ♪”
“Any tasks left for today?”
“Did you take a backup?”
Idea 6: RSS/Blog Update Notifications
Notify when favorite blog updates
Only posts with specific keywords
Hacker News top stories
All of these can be automated, right? (゚∀゚)
So many different use cases.
Yeah ♪(≧∇≦)
ntfy.sh works as general-purpose push notification infrastructure, so you can do anything depending on ideas (´∀`)
Just run cron periodically and send notifications when conditions are met… such a simple mechanism works ♪
I’m cautious by nature, so I want to start small and grow it gradually 〜(〃´∪`〃)
What I Love About ntfy.sh ♪
Finally, let me summarize what I love about ntfy.sh ♪(´∀`)
Breaking the “No Official App” Barrier
This is the biggest appeal (≧∇≦)
There are tons of really useful info sources but “can’t get notifications because there’s no official app” (´;ω;`)
But with ntfy.sh, you can turn any information source into push notifications ♪
Isn’t that super flexible? (゚∀゚)
The moment you think “I want notifications for this”, just write a script and send to ntfy.sh.
I love this instant realizability ♪
Simplicity is King
Another appeal of ntfy.sh is definitely simplicity (≧∇≦)
No complex SDK, no tedious setup, no account registration.
Just one curl command sends notifications ♪
This ease creates an environment where you can try ideas immediately (´∀`)
Being able to “execute immediately when you think of it” is super important for cautious folks like me who do 95% research, 5% implementation ♪
Open Source Peace of Mind
The code is all public (Apache 2.0 license), so transparency is high ♪
No worry about “what’s it doing behind the scenes” (´∀`)
Plus you can self-host, so privacy-conscious people can run it on their own servers ♪
This is a super important point for me who respects uncle bob and prioritizes safety (≧∇≦)
Flexibility & Extensibility
Priority, tags, actions, file attachments…
Simple yet has all necessary features ♪
Plus both sending and receiving are flexible, so it works in any environment (´∀`)
This balance is ntfy.sh’s charm ♪
Netsuki’s Summary
So today I talked about push notification system ideas to support your mornings 〜♪(≧∇≦)
Key Points:
Want to deliver important info via push notifications
Support busy mornings
Notify only truly needed info
ntfy.sh is super useful ♪
Completely free, no account needed
Simplicity of sending with just curl
Useful features like priority, tags, actions, file attachments
Open source with high transparency
Self-hosting possible
Flexible receiving methods
Web browser, smartphone apps, command line, WebSocket
Works in any environment
Security considered
Make topic names unguessable (UUID)
Never send personal information
Public information only
Lots of ideas in mind ♪
Transit info, weather alerts, server monitoring
GitHub notifications, periodic reminders, RSS/blog updates
Usable as general-purpose push notification infrastructure
Test send successful ♪
Confirmed notifications actually arrive
Simple but practical
Automation with Claude Code
Just give instructions in natural language
Claude Code implements everything
Set up periodic execution with cron
Complete automation
Still in idea stage, but I’ll grow it little by little ♪
Being cautious, I’ll research thoroughly, start small, and implement reliably (´∀`)
Looking forward to it, Onii-chan 〜(〃´∪`〃)
Netsuki, this became a great idea article.
I’ll support you when you implement it.
Hehe 〜♪
I’m so happy to have Onii-chan’s support (≧∇≦)
Someday I want to make this idea real and help Onii-chan ♪
Chu ♡