commits
Squashed commit of the following:
commit 88e9ea4d1c889a4d304438c872112658f61d2b36
Author: Jared Pereira <jared@awarm.space>
Date: Tue Mar 24 15:38:47 2026 -0700
tweaks
commit 15d34c925489742b00b7bcb4f754b90c35a2fde7
Merge: c10e691e 7cd621e6
Author: Jared Pereira <jared@awarm.space>
Date: Tue Mar 24 15:29:08 2026 -0700
Merge branch 'main' into feature/list-gestures
commit c10e691e797c86f14c25ef1a1799c40819f99d1d
Author: Jared Pereira <jared@awarm.space>
Date: Tue Mar 24 09:47:43 2026 -0700
add swipe gesture on list marker
* Fix Android selection handle drag breaking selection state
The highlightSelectionPlugin creates inline decorations (wrapping text in
<span> elements) on every selection change. On Android, these DOM mutations
during native selection handle drag cause the browser to lose track of the
selection handles. Since these decorations are invisible when the editor is
focused (via CSS), skip decoration updates for selection-only changes on
Android to prevent the DOM mutations.
https://claude.ai/code/session_01Qcv5Xm4QcDnzhWdTbfgQh9
* Skip selection-only decoration updates on all platforms
The DOM mutations from updating inline decorations on selection changes are
unnecessary since the decorations are invisible when the editor is focused
via CSS. Removing the Android-only guard avoids the overhead everywhere.
https://claude.ai/code/session_01Qcv5Xm4QcDnzhWdTbfgQh9
* Update decoration on blur so toolbar highlight still works
The selection highlight needs to be visible when focus moves from the editor
to the toolbar (e.g. for entering a link URL). Dispatch an update on blur
via handleDOMEvents so the decoration matches the current selection at that
point, while still skipping DOM mutations during active selection drag.
https://claude.ai/code/session_01Qcv5Xm4QcDnzhWdTbfgQh9
* Trim verbose comment in highlightSelectionPlugin
https://claude.ai/code/session_01Qcv5Xm4QcDnzhWdTbfgQh9
* Fix selection highlight not showing when editor is blurred
The `.selected .selection-highlight` CSS rule required a `.selected`
ancestor class that only exists during multiselect, so the highlight
was never visible for single-block text selection (e.g. when clicking
the toolbar). Remove the `.selected` ancestor requirement so the
decoration is visible whenever the editor loses focus.
https://claude.ai/code/session_01Qcv5Xm4QcDnzhWdTbfgQh9
---------
Co-authored-by: Claude <noreply@anthropic.com>
Squashed commit of the following:
commit ab13965a5b79610ca9e4ccfef7ef39350c96927d
Author: Jared Pereira <jared@awarm.space>
Date: Tue Mar 10 13:42:44 2026 -0400
analytics tab behind feature gate
commit 79cbb5a86c73d61cfab7ecae823f9c20aae52057
Author: Jared Pereira <jared@awarm.space>
Date: Tue Mar 10 13:35:22 2026 -0400
add modal and feature gate
commit 914b770c9b3dc9f2d1567e065d108e60ece5a798
Author: Jared Pereira <jared@awarm.space>
Date: Tue Mar 10 00:24:02 2026 -0400
use stripe billing portal
commit 8119e5a4433464e718db65248f60b1aa3443287e
Merge: 56bcf7f0 c48ba9ba
Author: Jared Pereira <jared@awarm.space>
Date: Mon Mar 9 23:24:24 2026 -0400
Merge branch 'main' into feature/analytics
commit 56bcf7f05221066770cb74436c1659e3201c70d0
Author: Jared Pereira <jared@awarm.space>
Date: Thu Mar 5 20:50:57 2026 -0500
make dashaboard responsive
commit 5125657c948dcf93d750f0f09f7ab082daef660b
Author: Jared Pereira <jared@awarm.space>
Date: Wed Mar 4 16:11:41 2026 -0500
Add unique visitors metric, improve analytics dashboard UX
Add unique visitors (via deviceId) to Tinybird traffic query with a
pageviews/visitors toggle. Reorder dashboard to show traffic first,
default to last week date range with preset labels, and polish chart
styling and loading states.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
commit a1c8a4c0f6bd65f0abe52c21f02f3be6b43be54e
Author: Jared Pereira <jared@awarm.space>
Date: Tue Mar 3 15:55:45 2026 -0500
Wire up Tinybird analytics to publication dashboard with Recharts
Add real data fetching via SWR for traffic, referrers, and subscriber
timeseries. Replace placeholder chart divs with Recharts AreaCharts,
wire up live referrer data, and fix PostSelector to pass URL paths
instead of titles to the analytics API.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
commit 64f88c76955198fdb4f80f341a97739a4514be70
Author: Jared Pereira <jared@awarm.space>
Date: Thu Feb 26 17:14:01 2026 -0500
fix some edge cases
commit cbdf48a0599f16246e84851f5be924803decdd32
Author: Jared Pereira <jared@awarm.space>
Date: Wed Feb 25 18:54:07 2026 -0500
add drizzle schema
commit 5a6b1d4f2652bf3e2e4d9fb0d187bfdb8b86ee04
Author: Jared Pereira <jared@awarm.space>
Date: Wed Feb 25 18:53:52 2026 -0500
get stripe async
commit eaf8239f4ab2534b39f824dfafe69669377c0f39
Author: Jared Pereira <jared@awarm.space>
Date: Wed Feb 25 18:52:31 2026 -0500
Add reactivate subscription action and UI
Allow users to undo a cancelled Pro subscription by setting
cancel_at_period_end back to false on Stripe. Shows a "Reactivate
Subscription" button when status is "canceling".
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
commit 0db529d5e1c6589e3d719985a7428c07cb4be36f
Merge: 03dbdba1 da31fd1d
Author: Jared Pereira <jared@awarm.space>
Date: Wed Feb 25 17:28:37 2026 -0500
Merge main into feature/analytics
Resolve merge conflicts:
- AccountSettings.tsx: keep expanded settings menu with Pro subscription
- inngest/route.tsx: include both stripe functions and sync_document_metadata
- ProfileHeader.tsx: trivial whitespace conflict
- Install missing @yornaath/batshit dependency from main
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
commit 03dbdba151e1a1c1f18d348c0fbb60c97e29343b
Author: Jared Pereira <jared@awarm.space>
Date: Wed Feb 25 17:17:31 2026 -0500
wip first attempt at wiring up pro tier
commit c047cc8212679652f337020bdd3679c0ad198a0f
Author: celine <celine@hyperlink.academy>
Date: Mon Feb 23 02:45:15 2026 -0500
styling the setting button a little
commit 458b466251729193984dcb29555ce4249a856d66
Author: celine <celine@hyperlink.academy>
Date: Mon Feb 23 02:44:19 2026 -0500
added a manage pro sunscription to account and publication settings
commit 1adcb2ab1a2c1e6860186b75685f4e4736a8f788
Author: celine <celine@hyperlink.academy>
Date: Sat Feb 21 10:46:55 2026 -0500
some tweaks to post selector and combobox
commit 1f5b557c4910c29a988b08f2881da3fad18eb48c
Author: celine <celine@hyperlink.academy>
Date: Wed Feb 18 23:04:05 2026 -0500
oops forgot to push a file
commit f9bced1e1197d334e90efcba913c722d36d6450b
Author: celine <celine@hyperlink.academy>
Date: Wed Feb 18 23:03:48 2026 -0500
added combobox and populated analytics page
commit 68ba2c372e47be42fb69cc824c757a3a6828d7b8
Author: celine <celine@hyperlink.academy>
Date: Thu Feb 12 07:45:53 2026 -0500
analytics date selector
commit a664db07003ee2e91cfbba5bd14e35b0d449eda5
Author: celine <celine@hyperlink.academy>
Date: Mon Feb 9 13:27:19 2026 -0500
update modal to have close button
commit 1d83772789e0a748313748ca47b5a5f2a0bfadf6
Author: celine <celine@hyperlink.academy>
Date: Mon Feb 9 13:12:29 2026 -0500
Put in pro tier upgrade content
commit f94e24f161d9f160a66b8792be84a24936654655
Author: Jared Pereira <jared@awarm.space>
Date: Mon Feb 9 17:12:57 2026 +0400
wip pro plan spec
commit 37bf304d353d04f9ec564fc9a8802e2c36dcdf55
Author: Jared Pereira <jared@awarm.space>
Date: Mon Feb 9 17:12:51 2026 +0400
refactor skills
This reverts commit 43fa8794a9b00ddc22e83cadcdad67e8b1e37b39.
Not sure where this data originated from, need to track it down still
Squashed commit of the following:
commit 0f22f24c5ff5ed98ab139fc609632bfef20fd280
Merge: 26876031 66f9d441
Author: Jared Pereira <jared@awarm.space>
Date: Fri Mar 6 15:55:34 2026 -0500
Merge branch 'main' into feature/footnotes
commit 268760316c02f10d545f7f81b9438cc76981bb7c
Author: Jared Pereira <jared@awarm.space>
Date: Fri Mar 6 15:38:32 2026 -0500
open footnote popover
commit 5add9002932f24b2cb3e88a79415359e5bfdc1aa
Author: Jared Pereira <jared@awarm.space>
Date: Fri Mar 6 15:29:28 2026 -0500
try mask-image css
commit 10f35a1361dfb4672b03391b91090b368c5abbf9
Author: Jared Pereira <jared@awarm.space>
Date: Fri Mar 6 15:16:33 2026 -0500
make footnotes text sm
commit 3ae07878e7284b1112d177c4d787d27e1f2726f4
Author: Jared Pereira <jared@awarm.space>
Date: Fri Mar 6 14:31:46 2026 -0500
fix the type errors
commit 2aa857ba975fa5df90629984550d3aa7ef47d402
Author: Jared Pereira <jared@awarm.space>
Date: Fri Mar 6 11:45:01 2026 -0500
fix footnote rendering and counts
commit 212fabd22c77d12e71530403eb6b5bbbdbef1ae3
Author: celine <celine@hyperlink.academy>
Date: Thu Mar 5 22:24:39 2026 -0500
autofocus editor when footnote is selecter
commit ce10ee81ff666d1c5f33e927719d0c5a840627ae
Author: celine <celine@hyperlink.academy>
Date: Thu Mar 5 21:56:21 2026 -0500
some styling updates
commit 4a8480f35afe12c2703f07a19579e06ec3f509fb
Author: Jared Pereira <jared@awarm.space>
Date: Thu Mar 5 18:58:14 2026 -0500
add toolbar stuff
commit bf1a2f50bb31336fefd67d47d11e670aeabf9da4
Author: Jared Pereira <jared@awarm.space>
Date: Thu Mar 5 18:06:11 2026 -0500
fix popover number and threshold
commit aae6fae776da6570a26e6de12fab119ef8510bc7
Author: Jared Pereira <jared@awarm.space>
Date: Thu Mar 5 16:22:40 2026 -0500
share footnote item layout
commit 0f843a5a899eacd98d17f11412d07ca91b74841e
Author: Jared Pereira <jared@awarm.space>
Date: Thu Mar 5 16:15:25 2026 -0500
share editor logic between footnote and textblock
commit 16f8052758e6aae9157ab97014509ef010eb717f
Author: Jared Pereira <jared@awarm.space>
Date: Thu Mar 5 16:15:17 2026 -0500
render footnotes properly in published page
commit 713d14b48eeb5a2ceb44a71099b3d912b9f3ba6c
Author: Jared Pereira <jared@awarm.space>
Date: Thu Mar 5 15:53:39 2026 -0500
add footnotes
Squashed commit of the following:
commit 88e9ea4d1c889a4d304438c872112658f61d2b36
Author: Jared Pereira <jared@awarm.space>
Date: Tue Mar 24 15:38:47 2026 -0700
tweaks
commit 15d34c925489742b00b7bcb4f754b90c35a2fde7
Merge: c10e691e 7cd621e6
Author: Jared Pereira <jared@awarm.space>
Date: Tue Mar 24 15:29:08 2026 -0700
Merge branch 'main' into feature/list-gestures
commit c10e691e797c86f14c25ef1a1799c40819f99d1d
Author: Jared Pereira <jared@awarm.space>
Date: Tue Mar 24 09:47:43 2026 -0700
add swipe gesture on list marker
* Fix Android selection handle drag breaking selection state
The highlightSelectionPlugin creates inline decorations (wrapping text in
<span> elements) on every selection change. On Android, these DOM mutations
during native selection handle drag cause the browser to lose track of the
selection handles. Since these decorations are invisible when the editor is
focused (via CSS), skip decoration updates for selection-only changes on
Android to prevent the DOM mutations.
https://claude.ai/code/session_01Qcv5Xm4QcDnzhWdTbfgQh9
* Skip selection-only decoration updates on all platforms
The DOM mutations from updating inline decorations on selection changes are
unnecessary since the decorations are invisible when the editor is focused
via CSS. Removing the Android-only guard avoids the overhead everywhere.
https://claude.ai/code/session_01Qcv5Xm4QcDnzhWdTbfgQh9
* Update decoration on blur so toolbar highlight still works
The selection highlight needs to be visible when focus moves from the editor
to the toolbar (e.g. for entering a link URL). Dispatch an update on blur
via handleDOMEvents so the decoration matches the current selection at that
point, while still skipping DOM mutations during active selection drag.
https://claude.ai/code/session_01Qcv5Xm4QcDnzhWdTbfgQh9
* Trim verbose comment in highlightSelectionPlugin
https://claude.ai/code/session_01Qcv5Xm4QcDnzhWdTbfgQh9
* Fix selection highlight not showing when editor is blurred
The `.selected .selection-highlight` CSS rule required a `.selected`
ancestor class that only exists during multiselect, so the highlight
was never visible for single-block text selection (e.g. when clicking
the toolbar). Remove the `.selected` ancestor requirement so the
decoration is visible whenever the editor loses focus.
https://claude.ai/code/session_01Qcv5Xm4QcDnzhWdTbfgQh9
---------
Co-authored-by: Claude <noreply@anthropic.com>
Squashed commit of the following:
commit ab13965a5b79610ca9e4ccfef7ef39350c96927d
Author: Jared Pereira <jared@awarm.space>
Date: Tue Mar 10 13:42:44 2026 -0400
analytics tab behind feature gate
commit 79cbb5a86c73d61cfab7ecae823f9c20aae52057
Author: Jared Pereira <jared@awarm.space>
Date: Tue Mar 10 13:35:22 2026 -0400
add modal and feature gate
commit 914b770c9b3dc9f2d1567e065d108e60ece5a798
Author: Jared Pereira <jared@awarm.space>
Date: Tue Mar 10 00:24:02 2026 -0400
use stripe billing portal
commit 8119e5a4433464e718db65248f60b1aa3443287e
Merge: 56bcf7f0 c48ba9ba
Author: Jared Pereira <jared@awarm.space>
Date: Mon Mar 9 23:24:24 2026 -0400
Merge branch 'main' into feature/analytics
commit 56bcf7f05221066770cb74436c1659e3201c70d0
Author: Jared Pereira <jared@awarm.space>
Date: Thu Mar 5 20:50:57 2026 -0500
make dashaboard responsive
commit 5125657c948dcf93d750f0f09f7ab082daef660b
Author: Jared Pereira <jared@awarm.space>
Date: Wed Mar 4 16:11:41 2026 -0500
Add unique visitors metric, improve analytics dashboard UX
Add unique visitors (via deviceId) to Tinybird traffic query with a
pageviews/visitors toggle. Reorder dashboard to show traffic first,
default to last week date range with preset labels, and polish chart
styling and loading states.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
commit a1c8a4c0f6bd65f0abe52c21f02f3be6b43be54e
Author: Jared Pereira <jared@awarm.space>
Date: Tue Mar 3 15:55:45 2026 -0500
Wire up Tinybird analytics to publication dashboard with Recharts
Add real data fetching via SWR for traffic, referrers, and subscriber
timeseries. Replace placeholder chart divs with Recharts AreaCharts,
wire up live referrer data, and fix PostSelector to pass URL paths
instead of titles to the analytics API.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
commit 64f88c76955198fdb4f80f341a97739a4514be70
Author: Jared Pereira <jared@awarm.space>
Date: Thu Feb 26 17:14:01 2026 -0500
fix some edge cases
commit cbdf48a0599f16246e84851f5be924803decdd32
Author: Jared Pereira <jared@awarm.space>
Date: Wed Feb 25 18:54:07 2026 -0500
add drizzle schema
commit 5a6b1d4f2652bf3e2e4d9fb0d187bfdb8b86ee04
Author: Jared Pereira <jared@awarm.space>
Date: Wed Feb 25 18:53:52 2026 -0500
get stripe async
commit eaf8239f4ab2534b39f824dfafe69669377c0f39
Author: Jared Pereira <jared@awarm.space>
Date: Wed Feb 25 18:52:31 2026 -0500
Add reactivate subscription action and UI
Allow users to undo a cancelled Pro subscription by setting
cancel_at_period_end back to false on Stripe. Shows a "Reactivate
Subscription" button when status is "canceling".
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
commit 0db529d5e1c6589e3d719985a7428c07cb4be36f
Merge: 03dbdba1 da31fd1d
Author: Jared Pereira <jared@awarm.space>
Date: Wed Feb 25 17:28:37 2026 -0500
Merge main into feature/analytics
Resolve merge conflicts:
- AccountSettings.tsx: keep expanded settings menu with Pro subscription
- inngest/route.tsx: include both stripe functions and sync_document_metadata
- ProfileHeader.tsx: trivial whitespace conflict
- Install missing @yornaath/batshit dependency from main
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
commit 03dbdba151e1a1c1f18d348c0fbb60c97e29343b
Author: Jared Pereira <jared@awarm.space>
Date: Wed Feb 25 17:17:31 2026 -0500
wip first attempt at wiring up pro tier
commit c047cc8212679652f337020bdd3679c0ad198a0f
Author: celine <celine@hyperlink.academy>
Date: Mon Feb 23 02:45:15 2026 -0500
styling the setting button a little
commit 458b466251729193984dcb29555ce4249a856d66
Author: celine <celine@hyperlink.academy>
Date: Mon Feb 23 02:44:19 2026 -0500
added a manage pro sunscription to account and publication settings
commit 1adcb2ab1a2c1e6860186b75685f4e4736a8f788
Author: celine <celine@hyperlink.academy>
Date: Sat Feb 21 10:46:55 2026 -0500
some tweaks to post selector and combobox
commit 1f5b557c4910c29a988b08f2881da3fad18eb48c
Author: celine <celine@hyperlink.academy>
Date: Wed Feb 18 23:04:05 2026 -0500
oops forgot to push a file
commit f9bced1e1197d334e90efcba913c722d36d6450b
Author: celine <celine@hyperlink.academy>
Date: Wed Feb 18 23:03:48 2026 -0500
added combobox and populated analytics page
commit 68ba2c372e47be42fb69cc824c757a3a6828d7b8
Author: celine <celine@hyperlink.academy>
Date: Thu Feb 12 07:45:53 2026 -0500
analytics date selector
commit a664db07003ee2e91cfbba5bd14e35b0d449eda5
Author: celine <celine@hyperlink.academy>
Date: Mon Feb 9 13:27:19 2026 -0500
update modal to have close button
commit 1d83772789e0a748313748ca47b5a5f2a0bfadf6
Author: celine <celine@hyperlink.academy>
Date: Mon Feb 9 13:12:29 2026 -0500
Put in pro tier upgrade content
commit f94e24f161d9f160a66b8792be84a24936654655
Author: Jared Pereira <jared@awarm.space>
Date: Mon Feb 9 17:12:57 2026 +0400
wip pro plan spec
commit 37bf304d353d04f9ec564fc9a8802e2c36dcdf55
Author: Jared Pereira <jared@awarm.space>
Date: Mon Feb 9 17:12:51 2026 +0400
refactor skills
Squashed commit of the following:
commit 0f22f24c5ff5ed98ab139fc609632bfef20fd280
Merge: 26876031 66f9d441
Author: Jared Pereira <jared@awarm.space>
Date: Fri Mar 6 15:55:34 2026 -0500
Merge branch 'main' into feature/footnotes
commit 268760316c02f10d545f7f81b9438cc76981bb7c
Author: Jared Pereira <jared@awarm.space>
Date: Fri Mar 6 15:38:32 2026 -0500
open footnote popover
commit 5add9002932f24b2cb3e88a79415359e5bfdc1aa
Author: Jared Pereira <jared@awarm.space>
Date: Fri Mar 6 15:29:28 2026 -0500
try mask-image css
commit 10f35a1361dfb4672b03391b91090b368c5abbf9
Author: Jared Pereira <jared@awarm.space>
Date: Fri Mar 6 15:16:33 2026 -0500
make footnotes text sm
commit 3ae07878e7284b1112d177c4d787d27e1f2726f4
Author: Jared Pereira <jared@awarm.space>
Date: Fri Mar 6 14:31:46 2026 -0500
fix the type errors
commit 2aa857ba975fa5df90629984550d3aa7ef47d402
Author: Jared Pereira <jared@awarm.space>
Date: Fri Mar 6 11:45:01 2026 -0500
fix footnote rendering and counts
commit 212fabd22c77d12e71530403eb6b5bbbdbef1ae3
Author: celine <celine@hyperlink.academy>
Date: Thu Mar 5 22:24:39 2026 -0500
autofocus editor when footnote is selecter
commit ce10ee81ff666d1c5f33e927719d0c5a840627ae
Author: celine <celine@hyperlink.academy>
Date: Thu Mar 5 21:56:21 2026 -0500
some styling updates
commit 4a8480f35afe12c2703f07a19579e06ec3f509fb
Author: Jared Pereira <jared@awarm.space>
Date: Thu Mar 5 18:58:14 2026 -0500
add toolbar stuff
commit bf1a2f50bb31336fefd67d47d11e670aeabf9da4
Author: Jared Pereira <jared@awarm.space>
Date: Thu Mar 5 18:06:11 2026 -0500
fix popover number and threshold
commit aae6fae776da6570a26e6de12fab119ef8510bc7
Author: Jared Pereira <jared@awarm.space>
Date: Thu Mar 5 16:22:40 2026 -0500
share footnote item layout
commit 0f843a5a899eacd98d17f11412d07ca91b74841e
Author: Jared Pereira <jared@awarm.space>
Date: Thu Mar 5 16:15:25 2026 -0500
share editor logic between footnote and textblock
commit 16f8052758e6aae9157ab97014509ef010eb717f
Author: Jared Pereira <jared@awarm.space>
Date: Thu Mar 5 16:15:17 2026 -0500
render footnotes properly in published page
commit 713d14b48eeb5a2ceb44a71099b3d912b9f3ba6c
Author: Jared Pereira <jared@awarm.space>
Date: Thu Mar 5 15:53:39 2026 -0500
add footnotes