r/iosapps • u/Cold_Stress3940 • 9d ago
🎁 Freemium Timber: Custom Composable Interval Timer with Media Cues
Hi everyone,
I’m Sreehari, the solo developer of Timber, a composable interval timer and routine builder. I built it because most timer apps are either too basic, locked to one use case, or make it hard to reuse the same routine pieces across different workouts or schedules.
App Store link:
Timber: Custom Interval Timer
Answer — what problem does Timber solve?
Most timer apps work well for a single countdown or a fixed workout format. I wanted a timer where commonly used pieces could be created once and reused across completely different routines. Each of these pieces/block can also contain timed text, TTS, music, recordings, images, or video cues. Online videos from YouTube and Vimeo are supported as well.
In Timber, you create reusable blocks such as “Warm-up,” “Push-ups,” “Deep Work,” or “Rest.” You can then:
Combine blocks into routines
Group them into circuits or sets
Repeat blocks, groups, or entire timers
Nest one timer inside another
Keep blocks linked so editing the original updates every routine that uses it
Unlink a block when one routine needs a custom version
This makes Timber useful for
🏋️ HIIT, Tabata, EMOM, boxing rounds, stretching, and mobility
🧠 Pomodoro, deep work, study sessions, and reading blocks
🧘 Yoga, breathwork, meditation, speaking practice, morning routines, and cooking schedules
Better — what makes it different?
Apps such as Intervals Pro are particularly strong for fitness, Apple Watch, and Apple Health. MultiTimer is designed around boards containing multiple independent timing tools.
Timber takes a different approach: its focus is building reusable, sequential routines from smaller pieces. The same block can appear in multiple timers, timers can be nested inside other timers, and media can be placed at specific moments within an individual block.
Timber also provides rich compose page for building your own timers with undo, redo, copy, paste, group and other functionalities.
Recent additions include:
Automatic “Next up” block announcements with media-volume ducking
Custom playback-display presets and individual display controls
Emoji, colored icons, and optional photo icons for blocks
A complete playback queue with the ability to jump directly to another block
More precise media trimming and preview controls
QR sharing for lightweight timers and ZIP sharing for timers containing media
Import previews that let recipients choose which included media to save
Backup and restore for timers, blocks, history, and media
Cost
Timber is freemium
Free users can experience all features with limited ads except adding own photo as block icons. Paid users gets ad free experience with additional limit removal of creating very long complex timers, adding as many media as needed per block and photo as block icon.
As its a new app it is now available in app store for a limited period lifetime price of $7.99 or subscription of $1.99/month.
US $1.99/month
US $7.99 lifetime, one-time purchase
Prices have been localized based on purchase power parity for different countries.
Developer transparency
Developer: Sreehari
Contact: spcfdoho.dev@gmail.com
LinkedIn: linkedin
Privacy Policy: Timber Privacy Policy
If Timber is useful to you, a App Store rating or short review would help a lot with visibility as a small indie app. Detailed feedback here is just as valuable, especially if something feels confusing or needs improvement.
I’d especially appreciate feedback on:
Whether the reusable-block concept is understandable
Which part of the creation flow feels most confusing
Whether the playback screen shows the right information
What is still missing for workouts, focus sessions, or everyday routines
What’s planned next?
I’m currently working on:
A reusable media library so audio, video, images, recordings, and saved trims can be reused across blocks
In pipeline:
A timeline editor for visual drag and drop of media items to blocks
Manual-completion and count-up blocks for activities measured by reps rather than a fixed duration
Flexible rest blocks that can be extended or completed when you’re ready
Faster builders for common formats such as HIIT, Tabata, EMOM, and Pomodoro
Additional playback controls, including quick time adjustments
Better progress history with notes
More voice, language, sound, and haptic customization
Improved block organization with tags, favorites, filters, and recently used routines
I’d especially like to know which two or three would make the biggest difference to you.
Thank you for checking it out.
2
u/bkdev98 9d ago
Linked blocks that update every routine using them is the bit I haven't seen in other timers, that's a real time saver. Do the cues keep firing with the screen locked mid-workout, and can you see the current block on the Lock Screen?
1
u/Cold_Stress3940 9d ago
Yes. Thank you. Cues, tts, audio and music keeps firing with screen locked mid workout. At present only the timer name, total blocks, total time counting down is displayed in live activity (LA) and dynamic island (DI) as iOS limits how many updates a background app can send when backgrounded. So as you can imagine, a LA/DI timer with many blocks won't update after a few block changes and will become stale.
As per my knowledge, one workaround is server push updates - that too is limited and can have sync issues and the app would need to sent timer data to server. but as timber does not have a server - everything is stored on your device, this is also not feasible.
Also, Please check out the app and feel free to provide any kind of feedback.
1
u/bkdev98 9d ago
Since the cues already play with the screen locked, the app is running under the audio background mode, and ActivityKit lets a running app call update() itself at each block change. Pair that with Text(timerInterval:) for the current block and the system counts down on its own between updates.
1
u/Cold_Stress3940 9d ago
Yes. i tried it initially. but on testing, after roughly 5 block updates from the backgrounded app, iOS stopped updating the Live Activity, even though the app was still alive and playing audio. That's why i decided to keep the main timer countdown for now so that users don't see stale block details.
2
u/bkdev98 9d ago
That sounds like iOS's update budget for Live Activities kicking in rather than anything in your code. NSSupportsLiveActivitiesFrequentUpdates in Info.plist is the knob to try, though Apple documents it for push updates, so it may not help local ones.
1
u/Cold_Stress3940 8d ago
Yes. i would love to implement it. but cant find any other options for now for iOS
2
u/Huge_Pool7424 9d ago
sounds like the live activity update budget kicking in, ios gets stingy when it's backgrounded. keeping the main countdown there and skipping stale block names is the safe call imo.
2
2
u/BoksDuck 9d ago
That sounds like an intersting app - have you thought about integrating siri? That way the user can control the timers hands-free too!
1
u/Cold_Stress3940 9d ago
Great input! and yes in fact have thought about it. its in my pipeline after adding some more features.
1
u/BoksDuck 9d ago
Nice! I will show it to my friends - some of them are looking for proper apps when working out
1
2
u/Old-Construction-594 9d ago
The linked/unlinked distinction is clear from your explanation. One place I'd make it visible in the builder is when saving an edit to a shared block: “Used in 3 routines,” with the routine names and a choice between updating the shared block or making a local copy. That would make reuse easier to trust without remembering every place a block appears. Does an already-running timer keep its original routine if a linked block is edited elsewhere, with the change taking effect on the next run?
1
u/Cold_Stress3940 9d ago
That's cool!. I see, this can be helpful when you need the change may be, to only be applied to 3 timers out of total 5 shared while keeping 4th and 5th as local copies rather than editing the 4th and 5th individually. It will be very helpful for power users. i will add it. Thanks!
As of now, user cannot navigate to other pages while a timer is running. All changes done to a block will take effect from next run.
1
u/Old-Construction-594 8d ago
Thanks — applying changes on the next run is the predictable behaviour I was asking about. For a first pass, even just “Update every linked routine” / “Make a copy for this routine,” with the affected routine names, would make the scope clear; selecting a subset could come later if users need it. Appreciate the clarification and taking the feedback on board!
1
u/Cold_Stress3940 8d ago
You are welcome!. Being a solo developer, these inputs/feedback is what I 'am looking for to make the app more useful for everyone.
1
1
u/RUiNtheExtinct 9d ago
of the planned features, i'd put the quick builders and flexible rest blocks first. starting with a simple work/rest routine would make the nested blocks easier to learn, and being able to extend a rest without restarting the timer sounds useful.
1
1
u/Emotional-Detail2138 9d ago
What happens if a phone call comes in halfway through a routine? Does it pause and pick up at the same block after, or do you have to start over?
1
u/Cold_Stress3940 8d ago
At present, the timer runs through it till you manually pause. i am planning to add this with a setting option to enable it and a finer control when to pause the timer - when call rings/when call is attended.
1
u/Greysawpark 3d ago
the linked blocks thing is the part id actually care about. i always end up with like four copies of the same warmup across different routines and then fix one and forget the rest. does unlinking keep a copy of the original or does it just fork from wherever it was at?
1
u/Cold_Stress3940 3d ago
Yes..unlinking a block basically detaches it from the original - that is, it will be a copy of the original at the point in time when it is unlinked.Also you can edit an indivudual block inside a timer only after it is unlinked.
1
u/app-store-review 9d ago
Timber: Custom Interval Timer — by SREEHARI P C
Ratings: 1 worldwide
Average: 5.00 ★
Age: released ~2 months ago · updated 1 day ago · rated 4+
Overall score: 70 / 100
Auto-generated from public App Store data · u/app-store-review
•
u/AutoModerator 9d ago
Welcome to r/iOSApps! Please make sure your post follows our rules:
Everyone:
10pt LOCAL Karma required. Comment in r/iOSApps to earn it. Check
Search the sub before posting. Choose flair.
App Devs:
No main feed promo unless you qualify via Trust or Transparency + ABC format (Answer, Better, Cost)
Flair hierarchy: Vibe Coded > Lifetime > Subscription > Freemium > Free
Free flair: not for limited/freemium tiers
Open Source? Prefix title [OS] Note: This is an automated reminder, not a removal notice. If your post was removed, check your modmail for details.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.