1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323 | import { useState } from 'react';
import { Link } from 'react-router-dom';
import { motion, AnimatePresence } from 'framer-motion';
const APP_STORE_URL = 'https://apps.apple.com/ro/app/loop-meditation-focus/id6756740657';
const Accordion = ({ title, children, defaultOpen = false }) => {
const [open, setOpen] = useState(defaultOpen);
return (
<div className="border-b border-white/[0.06]">
<button
onClick={() => setOpen(!open)}
className="w-full flex items-center justify-between py-4 text-left group"
>
<span className="text-sm font-medium text-white/70 group-hover:text-white transition-colors">
{title}
</span>
<svg
className={`w-4 h-4 text-white/30 transition-transform duration-200 ${open ? 'rotate-180' : ''}`}
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
strokeWidth={2}
>
<path strokeLinecap="round" strokeLinejoin="round" d="M19 9l-7 7-7-7" />
</svg>
</button>
<AnimatePresence initial={false}>
{open && (
<motion.div
initial={{ height: 0, opacity: 0 }}
animate={{ height: 'auto', opacity: 1 }}
exit={{ height: 0, opacity: 0 }}
transition={{ duration: 0.25, ease: [0.16, 1, 0.3, 1] }}
className="overflow-hidden"
>
<div className="pb-5 text-sm text-white/40 leading-relaxed space-y-3">
{children}
</div>
</motion.div>
)}
</AnimatePresence>
</div>
);
};
const SupportSection = ({ title, children }) => (
<div className="mb-10">
<h2 className="font-courier text-[11px] tracking-[0.2em] uppercase text-white/25 mb-4">{title}</h2>
<div>{children}</div>
</div>
);
const Support = () => (
<div className="min-h-screen bg-black text-white">
<div className="max-w-2xl mx-auto px-6 pt-24 pb-16">
{/* Back nav */}
<nav className="mb-12">
<Link
to="/"
className="inline-flex items-center gap-2 text-white/40 hover:text-white/60 transition-colors text-sm font-courier"
>
<svg className="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth={2}>
<path strokeLinecap="round" strokeLinejoin="round" d="M15 19l-7-7 7-7" />
</svg>
opusloop.co
</Link>
</nav>
{/* Title */}
<h1 className="text-2xl md:text-3xl font-semibold text-white mb-2">Help</h1>
<p className="text-white/40 text-sm mb-12">
Answers to common questions. If yours isn't here, write to{' '}
<a href="mailto:hello@opus.ro" className="text-opus-green hover:text-opus-green-dim transition-colors">
hello@opus.ro
</a>
</p>
{/* Getting Started */}
<SupportSection title="Getting Started">
<Accordion title="How does OPUS Loop work?" defaultOpen>
<p>
Set a duration with the scroll wheel, choose a soundtrack (or silence), and tap play.
The app times your session and plays your chosen sound. When the session ends, you hear a bell.
</p>
</Accordion>
<Accordion title="What are presets?">
<p>
Presets let you save different session configurations. Each preset remembers its own
duration, soundtrack, bells, background, and health toggles.
</p>
<p>
Swipe horizontally on the main screen to switch between presets. The last card
lets you add a new one. The app comes with one preset for free. Unlock unlimited
presets with a one-time purchase of $4.99.
</p>
</Accordion>
<Accordion title="Can I set an infinite timer?">
<p>
Yes. Scroll the duration wheel past zero to reach infinity mode.
The session runs until you stop it manually.
</p>
</Accordion>
</SupportSection>
{/* Sounds */}
<SupportSection title="Sounds & Audio">
<Accordion title="How do I import my own audio?">
<p>
Tap the sound icon on the main screen, then tap "Add Sound."
You can import audio files from your device, iCloud Drive, or the Files app.
Supported formats: MP3, M4A, WAV, AAC, FLAC, AIFF.
</p>
</Accordion>
<Accordion title="Can I use Apple Music?">
<p>
Yes. In the sound picker, choose "Apple Music" to browse and select tracks
from your Apple Music library. Requires an active Apple Music subscription.
</p>
</Accordion>
<Accordion title="What are the built-in sounds?">
<p>
OPUS Loop generates sounds in real time, no downloads needed:
</p>
<p>
<strong className="text-white/60">Binaural beats</strong> at 2Hz (deep sleep), 4Hz (meditation),
10Hz (relaxation), and 20Hz (active focus), with a 216Hz carrier tone.
</p>
<p>
<strong className="text-white/60">Noise</strong> in four flavors: white, pink, brown, and dark.
</p>
</Accordion>
<Accordion title="What does the loop toggle do?">
<p>
When loop is on, your imported track repeats for the entire session. When loop is off,
the track plays once and the rest of the session continues in silence. Useful for guided
meditations that are shorter than your session.
</p>
</Accordion>
<Accordion title="Can I play other media during a session?">
<p>
Yes, if the soundtrack is set to Silence. OPUS Loop won't interrupt audio from other
apps, so your podcast or music keeps playing. You can quickly switch any preset to
silence by tapping and holding the mute button in the sound view.
</p>
</Accordion>
</SupportSection>
{/* Health & Watch */}
<SupportSection title="Health & Apple Watch">
<Accordion title="How do I track mindful minutes?">
<p>
Grant Apple Health access when prompted, or enable it from the session settings
for each preset. Completed sessions are saved as mindful minute samples automatically.
</p>
</Accordion>
<Accordion title="What is Mind & Body mode?">
<p>
Mind & Body records your session as a workout in Apple Health, including heart rate
data from your Apple Watch. Enable it per-preset in session settings.
</p>
</Accordion>
<Accordion title="Does the Apple Watch app work without my iPhone?">
<p>
No. The Watch app requires your iPhone nearby. It mirrors your active session and
lets you start, pause, and stop from your wrist. Heart rate data streams to your
iPhone during Mind & Body sessions.
</p>
</Accordion>
</SupportSection>
{/* Guides */}
<SupportSection title="Guides">
<Accordion title="What are interval bells?">
<p>
Interval bells ring at regular points during your session. You can set them to
midpoint, thirds, quarters, or a custom interval (e.g. every 25 minutes). Choose
from several included bell sounds, or import your own.
</p>
</Accordion>
<Accordion title="Set up guided meditations">
<p>
Import a guided meditation as an audio file through the sound picker. Turn off loop
so the track plays once. If you want silent time after the guided portion, set the
session duration longer than the track. If the session is shorter, the track will
stop when the timer ends.
</p>
</Accordion>
<Accordion title="Where to find free guided meditations">
<p>
The app includes a curated list of free resources at the bottom of the sound settings
screen. Beyond that, many teachers and organizations publish guided meditations as
downloadable audio on their websites. Search for what resonates with you.
</p>
</Accordion>
</SupportSection>
{/* Purchases & Refunds */}
<SupportSection title="Purchases & Refunds">
<Accordion title="Is there a subscription?">
<p>
No. OPUS Loop is free to download with all core features included: timer, sound
generator, Apple Music import, Apple Watch, Apple Health, and more.
</p>
<p>
If you want to create more than one preset, there's a one-time in-app purchase of
$4.99 that unlocks unlimited presets. No subscription, no recurring fees.
</p>
</Accordion>
<Accordion title="How do I get a refund?">
<p>
Refunds are handled by Apple. Visit{' '}
<a
href="https://reportaproblem.apple.com"
target="_blank"
rel="noopener noreferrer"
className="text-opus-green hover:text-opus-green-dim transition-colors underline underline-offset-2"
>
reportaproblem.apple.com
</a>
, sign in with your Apple ID, find OPUS Loop in your purchase history, and select
"Request a Refund." Apple typically processes refunds within a few days.
</p>
</Accordion>
</SupportSection>
{/* Web Version */}
<SupportSection title="Using the Web Version">
<Accordion title="Can I use OPUS Loop without downloading the app?">
<p>
Yes. Visit{' '}
<Link to="/player" className="text-opus-green hover:text-opus-green-dim transition-colors underline underline-offset-2">
opusloop.co/player
</Link>
{' '}for a free web-based timer with built-in binaural beats, noise generators,
and custom audio import. You can use it directly in your browser.
</p>
</Accordion>
<Accordion title="How do I install it as an app?">
<p>
<strong className="text-white/60">Safari (iPhone/iPad):</strong> Tap the Share button,
then "Add to Home Screen." The site will open as a standalone app.
</p>
<p>
<strong className="text-white/60">Chrome (Android/Desktop):</strong> Tap the three-dot menu,
then "Install app" or "Add to Home Screen."
</p>
</Accordion>
<Accordion title="What's different from the native app?">
<p>
The web version is a basic timer with sound playback and a duration selector. The
native app adds presets, Apple Health, Apple Watch, Live Activities, interval bells,
custom backgrounds, iCloud sync, reminders, and Apple Music integration.
</p>
</Accordion>
</SupportSection>
{/* Privacy */}
<SupportSection title="Privacy & Data">
<Accordion title="Does the app track me?">
<p>
No. OPUS Loop has no servers, no accounts, and no user tracking. Your sessions, presets,
and soundtracks stay on your device and your personal iCloud account. See the{' '}
<Link to="/privacy" className="text-opus-green hover:text-opus-green-dim transition-colors underline underline-offset-2">
Privacy Policy
</Link>
{' '}for details.
</p>
</Accordion>
<Accordion title="What analytics are collected?">
<p>
OPUS Loop uses TelemetryDeck, a privacy-preserving analytics service. It collects
anonymous usage counts (how many times a feature is used) with no personal data,
no device fingerprinting, and no user profiles. You can opt out in Settings.
</p>
</Accordion>
<Accordion title="Where is my data stored?">
<p>
On your device. If iCloud is enabled, presets, soundtracks, and session history
sync through your personal iCloud Drive container. OPUS does not operate any servers.
</p>
</Accordion>
</SupportSection>
{/* Contact */}
<div className="mt-16 pt-8 border-t border-white/[0.06] text-center">
<p className="text-white/40 text-sm mb-2">
Still have a question?
</p>
<a
href="mailto:hello@opus.ro"
className="text-opus-green hover:text-opus-green-dim transition-colors text-sm"
>
hello@opus.ro
</a>
<p className="text-white/20 text-xs mt-1">We read every message.</p>
</div>
{/* Footer */}
<footer className="mt-12 pt-8 border-t border-white/5">
<div className="flex flex-wrap items-center gap-4 text-xs text-white/25">
<Link to="/" className="hover:text-white/50 transition-colors">Home</Link>
<span className="text-white/10">·</span>
<Link to="/privacy" className="hover:text-white/50 transition-colors">Privacy</Link>
<span className="text-white/10">·</span>
<Link to="/terms" className="hover:text-white/50 transition-colors">Terms</Link>
<span className="flex-1" />
<a
href={APP_STORE_URL}
target="_blank"
rel="noopener noreferrer"
className="hover:text-white/50 transition-colors"
>
App Store
</a>
</div>
</footer>
</div>
</div>
);
export default Support;
|