NEWStreaks as a service

Add streaks to
your own product.

Streak always help user being disciplined on their uses. Helps them by adding now !

Two lines of code. No cron jobs. No timezone bugs.
36 days
Current streak · best 41
await easystreak.check({ user: "u_92f1" })
// → { streak: 36, longest: 41, alive: true }
How it works

Three steps from empty to on fire.

Every project gets its own keys, its own rules, and its own timezone handling. Ship the whole thing in an afternoon.

1
Create a project

Name it, pick a reset hour, choose whether weekends break the chain.

proj_habitly · UTC+1
2
Add env vars

Copy two keys into your environment. That is the entire installation.

EASYSTREAK_KEY=sk_live_…
EASYSTREAK_PROJECT=proj_…
3
Start using

Call check() when a user shows up. Read the streak anywhere in your UI.

streak: 36 · alive ✓
The chain

Your users can see the chain they built.

Drop in the calendar component and every visit lights up a day. Freezes, grace days and milestones are handled for you.

✓Milestone badges at 7, 30 and 100 days
✓One free freeze per month, configurable
✓Local-time resets, daylight saving included
September
2026
36 days
M
T
W
T
F
S
S
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
ActiveFreezeMissed

Ship your first streak today.

Free up to 1,000 tracked users. No card needed.

Start your streak new