From 8d9149d681edd9630c777dfe9254bf74e96c34e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C9=85GO=E1=8F=92=C9=85?= Date: Mon, 27 Oct 2025 18:53:52 +0100 Subject: [PATCH 1/6] Add link to SWAG in footer > social links https://SWAG.btc.pub/SN --- components/footer.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/components/footer.js b/components/footer.js index 98479c67c..e3f2da961 100644 --- a/components/footer.js +++ b/components/footer.js @@ -86,6 +86,13 @@ const SocialsPopover = ( pod \ + + swag + + \ Date: Mon, 27 Oct 2025 20:18:44 +0100 Subject: [PATCH 2/6] Removing Trailing Spaces... --- components/footer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/footer.js b/components/footer.js index e3f2da961..040b6c464 100644 --- a/components/footer.js +++ b/components/footer.js @@ -91,7 +91,7 @@ const SocialsPopover = ( target='_blank' rel='noreferrer' > swag - + \ Date: Sun, 9 Nov 2025 17:45:08 +0100 Subject: [PATCH 3/6] Fix layout by removing empty Col component Can we have full width stats? --- pages/satistics/graphs/[when].js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pages/satistics/graphs/[when].js b/pages/satistics/graphs/[when].js index d59725c75..ef0728aef 100644 --- a/pages/satistics/graphs/[when].js +++ b/pages/satistics/graphs/[when].js @@ -70,6 +70,8 @@ export default function Growth ({ ssrData }) {
sats stacked
+ +
sats spent
@@ -80,7 +82,6 @@ export default function Growth ({ ssrData }) {
spend counts
-
) From ba4ff070b91351b835427d49cb66bb02c4988abe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C9=85GO=E1=8F=92=C9=85?= Date: Sun, 9 Nov 2025 17:46:04 +0100 Subject: [PATCH 4/6] Add additional charts for growth metrics --- pages/stackers/[sub]/[when].js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pages/stackers/[sub]/[when].js b/pages/stackers/[sub]/[when].js index 0d9cad45d..1acd76c49 100644 --- a/pages/stackers/[sub]/[when].js +++ b/pages/stackers/[sub]/[when].js @@ -94,6 +94,8 @@ export default function Growth ({ ssrData }) {
sats stacked
+ +
sats spent
@@ -104,6 +106,8 @@ export default function Growth ({ ssrData }) {
unique stackers
+
+
unique spenders
@@ -114,6 +118,8 @@ export default function Growth ({ ssrData }) {
spend counts
+
+ {sub === 'all' &&
registrations
} From 78465aac1041e8aaca533b49c38964c5f3ff2ff7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C9=85GO=E1=8F=92=C9=85?= Date: Fri, 19 Dec 2025 19:37:19 +0000 Subject: [PATCH 5/6] Switch to njump.to --- components/embed.js | 4 ++-- components/footer.js | 2 +- components/item-info.js | 2 +- components/notifications.js | 4 ++-- components/user-header.js | 2 +- lib/lexical/mdast/visitors/nostr.js | 2 +- middleware.js | 2 +- pages/settings/index.js | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/components/embed.js b/components/embed.js index b336fc81e..0e40564e0 100644 --- a/components/embed.js +++ b/components/embed.js @@ -29,7 +29,7 @@ export const NostrEmbed = memo(function NostrEmbed ({ src, className, topLevel, if (!iframeRef.current) return const setHeightFromIframe = (e) => { - if (e.origin !== 'https://njump.me' || !e?.data?.height || e.source !== iframeRef.current.contentWindow) return + if (e.origin !== 'https://njump.to' || !e?.data?.height || e.source !== iframeRef.current.contentWindow) return iframeRef.current.height = `${e.data.height}px` } @@ -46,7 +46,7 @@ export const NostrEmbed = memo(function NostrEmbed ({ src, className, topLevel, } // https://github.com/vercel/next.js/issues/39451 - iframeRef.current.src = `https://njump.me/${id}?embed=yes` + iframeRef.current.src = `https://njump.to/${id}?embed=yes` return () => { window?.removeEventListener('message', setHeightFromIframe) diff --git a/components/footer.js b/components/footer.js index 193a627e6..ecd868f10 100644 --- a/components/footer.js +++ b/components/footer.js @@ -58,7 +58,7 @@ const SocialsPopover = (
nostr diff --git a/components/item-info.js b/components/item-info.js index c45a8f9cf..c0ecbd439 100644 --- a/components/item-info.js +++ b/components/item-info.js @@ -188,7 +188,7 @@ export default function ItemInfo ({ opentimestamp } {item?.noteId && ( - window.open(`https://njump.me/${item.noteId}`, '_blank', 'noopener,noreferrer,nofollow')}> + window.open(`https://njump.to/${item.noteId}`, '_blank', 'noopener,noreferrer,nofollow')}> nostr note )} diff --git a/components/notifications.js b/components/notifications.js index 2a8e59bcf..d248472fa 100644 --- a/components/notifications.js +++ b/components/notifications.js @@ -343,14 +343,14 @@ function NostrZap ({ n }) {
{numWithUnits(n.earnedSats)} zap from {// eslint-disable-next-line - + {npub.slice(0, 10)}... } on {note ? ( // eslint-disable-next-line - + {note.slice(0, 12)}... ) : 'nostr'} diff --git a/components/user-header.js b/components/user-header.js index ef30f15e2..17a6aac81 100644 --- a/components/user-header.js +++ b/components/user-header.js @@ -221,7 +221,7 @@ function SocialLink ({ name, id }) { const npub = hexToBech32(id) return ( // eslint-disable-next-line - + {npub.slice(0, 10)}...{npub.slice(-10)} diff --git a/lib/lexical/mdast/visitors/nostr.js b/lib/lexical/mdast/visitors/nostr.js index 3dc003693..241ae347c 100644 --- a/lib/lexical/mdast/visitors/nostr.js +++ b/lib/lexical/mdast/visitors/nostr.js @@ -2,7 +2,7 @@ import { $createTextNode } from 'lexical' import { $createLinkNode, $isLinkNode, $isAutoLinkNode } from '@lexical/link' const NOSTR_ID_PATTERN = /^((npub1|nevent1|nprofile1|note1|naddr1)[02-9ac-hj-np-z]+)$/ -const NJUMP_ORIGIN = 'https://njump.me' +const NJUMP_ORIGIN = 'https://njump.to' function isNostrIdLink (lexicalNode) { const url = lexicalNode.getURL?.() diff --git a/middleware.js b/middleware.js index 926ba496a..fe7ad5e5e 100644 --- a/middleware.js +++ b/middleware.js @@ -110,7 +110,7 @@ export function middleware (request) { // unsafe-inline for styles is not ideal but okay if script-src is using nonces "style-src 'self' a.stacker.news 'unsafe-inline'", "manifest-src 'self'", - 'frame-src www.youtube.com platform.twitter.com njump.me open.spotify.com rumble.com embed.wavlake.com bitcointv.com peertube.tv', + 'frame-src www.youtube.com platform.twitter.com njump.me njump.to open.spotify.com rumble.com embed.wavlake.com bitcointv.com peertube.tv', "connect-src 'self' https: wss:" + devSrc, // disable dangerous plugins like Flash "object-src 'none'", diff --git a/pages/settings/index.js b/pages/settings/index.js index 3fb765172..0e72fa13b 100644 --- a/pages/settings/index.js +++ b/pages/settings/index.js @@ -495,7 +495,7 @@ export default function Settings ({ ssrData }) {
  • if checked and a link is an image, video or can be embedded in another way, we will do it
  • we support embeds from following sites:
    • -
    • njump.me
    • +
    • njump.to
    • youtube.com
    • twitter.com
    • spotify.com
    • From 0bda3114d633f33a865e1d7d56188b2e95c35aa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C9=85GO=E1=8F=92=C9=85?= Date: Sat, 20 Dec 2025 23:44:03 +0100 Subject: [PATCH 6/6] Change iframe source and origin for njump domain --- components/embed.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/embed.js b/components/embed.js index 0e40564e0..b336fc81e 100644 --- a/components/embed.js +++ b/components/embed.js @@ -29,7 +29,7 @@ export const NostrEmbed = memo(function NostrEmbed ({ src, className, topLevel, if (!iframeRef.current) return const setHeightFromIframe = (e) => { - if (e.origin !== 'https://njump.to' || !e?.data?.height || e.source !== iframeRef.current.contentWindow) return + if (e.origin !== 'https://njump.me' || !e?.data?.height || e.source !== iframeRef.current.contentWindow) return iframeRef.current.height = `${e.data.height}px` } @@ -46,7 +46,7 @@ export const NostrEmbed = memo(function NostrEmbed ({ src, className, topLevel, } // https://github.com/vercel/next.js/issues/39451 - iframeRef.current.src = `https://njump.to/${id}?embed=yes` + iframeRef.current.src = `https://njump.me/${id}?embed=yes` return () => { window?.removeEventListener('message', setHeightFromIframe)