From 32ddb3adb51692522903485d77d0cac39874c123 Mon Sep 17 00:00:00 2001 From: Justin Levine <20596508+justinlevinedotme@users.noreply.github.com> Date: Thu, 12 Mar 2026 22:04:42 -0700 Subject: [PATCH 1/5] docs(registry): update install commands to use jalco/ namespace Now an official shadcn registry. Install commands change from: npx shadcn@latest add https://ui.justinlevine.me/r/code-line.json to: npx shadcn@latest add jalco/code-line Updated: install-command component, component-docs-page, prompts, installation page, ai-copy-button docs, and README. --- README.md | 2 +- app/docs/components/ai-copy-button/page.tsx | 2 +- app/docs/installation/page.tsx | 15 +++++++++------ components/docs/component-docs-page.tsx | 2 +- components/docs/install-command.tsx | 2 +- lib/prompts.ts | 2 +- 6 files changed, 14 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index aaae0cf..1d59efe 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Components are polished, composable, and built for React and Tailwind CSS. Insta ## Install ```bash -npx shadcn@latest add https://ui.justinlevine.me/r/[component].json +npx shadcn@latest add jalco/[component] ``` Browse all components at [ui.justinlevine.me/docs](https://ui.justinlevine.me/docs). diff --git a/app/docs/components/ai-copy-button/page.tsx b/app/docs/components/ai-copy-button/page.tsx index f28e1e4..256fa17 100644 --- a/app/docs/components/ai-copy-button/page.tsx +++ b/app/docs/components/ai-copy-button/page.tsx @@ -18,7 +18,7 @@ const sampleContent = `# Getting Started with jalco ui Install the registry component you need: \`\`\`bash -npx shadcn@latest add https://ui.justinlevine.me/r/ai-copy-button.json +npx shadcn@latest add jalco/ai-copy-button \`\`\` Then import and use it in your project.` diff --git a/app/docs/installation/page.tsx b/app/docs/installation/page.tsx index beeefd6..c000eba 100644 --- a/app/docs/installation/page.tsx +++ b/app/docs/installation/page.tsx @@ -83,7 +83,7 @@ export default async function InstallationPage() { CLI to add any component from the registry:
This will:
@@ -112,16 +112,19 @@ export default async function InstallationPage() {
- The base registry URL is:
+ jalco ui is listed in the official shadcn registry. All components use
+ the{" "}
+ jalco{" "}
+ namespace:
- Individual component payloads are available at: + You can also install directly from the registry URL:
+ Async server component. Fetches the Product Hunt
+ GraphQL API at build time and caches the result for 1 hour via
+ Next.js ISR. Requires{" "}
+
+ PRODUCTHUNT_TOKEN
+ {" "}
+ — get one at{" "}
+
+ producthunt.com/v2/oauth/applications
+
+ . Alternatively, pass pre-fetched data via{" "}
+
+ upvotes
+ {" "}
+ and{" "}
+ name{" "}
+ props to skip the API call entirely.
+
+ PRODUCTHUNT_TOKEN
+ {" "}
+ to enable live data fetching. Get a developer token at{" "}
+
+ producthunt.com/v2/oauth/applications
+
+ .
+
+ next.revalidate
+
+ .
+
+ upvotes
+ {" "}
+ and{" "}
+ name{" "}
+ props to skip the API call entirely — useful for static sites or
+ when you already have the data.
+ &te|HTmC+F4ZPb2iVlfIT
z-~#lN(8Wql=43=VTkA9Rt;xtEnt1RwRn&|!G%^}U83c})lKCk5b3H~IZ)z}jCsiIc
z@C=I1tRvDrrKUghNr%)}6C0O7Y&3!RbHw5mUR~EdXNf*>O2RQCat$`cvUJ6Eyff1z
zyP`fyJnZM&`t#c4@<>`u=~i$iXGk%+k`XA~ UV=!>Yf$mNk5oB)2X=Lze@hDX
zL7jjY8AfW>`G?q@V&p787gpKmmRzc~nTAZ_aI%Jynxv6imszNeQ LN{y5DZ%tcd%9kY^?BjU%cKataViI59*!6uJ<8t2yX|-0dj2
z6$-!Y=_<&nZyUOP|D0p>TgNopn6&lJE{P*GIgJ4!STkvtMQf0WbC=j0WRk}wne$dr
z;ivR;P71k(zVSo{NorL}ad0s6yK<~C5c@+>{oKT>gg-;O$#h%Yn$m8w>O1@9xvNOz
z<4Wjs5R0vk1(5Tdv%Dk4)wS0y4v&b?Dc3y06t8|U&Gce+RkBYOZyx#aCN5R?zNE0D
zeko9*Rp>go?%Bwls3IVc+iG8mlm(QevN^Go6L(XHb_Y)pqXii+w)dkCtuyL$$Cl$p
zmWm?0VuH$>cf@cXFAgNK^W?EM1D~xc{?iGpL=CR^i~?B1L4LI&
zbY;FtIGT7m5SYD7)2Wn?yALYE5>FUX&5LZiXBacu``nr*ZZuRNrl;#y%E~&end|pG
zZ%=?j(j)GH^>CcfJll2}8T7j~faaA9YW)4W#F;EwAt?oU#qi#+MItD
zsSk%eL1b~ZR)lhMtG2CcFZtf=$J>
1(UL9O>;5M7Y_iq5#stW&mJ@_*nSjlH;3wUVreOj{C>
D^>
zM)M?wp!FN$rI?dvh8!)!^+H`gj2h)YGLAe;r)+mu+Wh$
{7Z%H)N;ur?BjT0mHuowNZNserqG|?+ns;
zyV%`kKJt`5`0uqEy>a9}WPdxEz`1##S<&6_9d3kYcE1D|5zgnAa_z=AM&x)>T`_jn
zsWNmgV#4m;+_kpB#B=mUoSBf<$7#B(_8i}x?-g3TUy;hgRuSQ&W1;+6_<2bsU1=;S
zD1Wc9dT#nec5S-8Y$<(bV iDJh4(!<
WSiI3)l-hZA8vFfQUnHjOZ}QGhyz@(fp4y!mfV{Z+=z_es
zv47}G=5#RxbT2&RML5HI{Ko#t^qHiGWz6V33SM|JO-#^X`oWY(vgNyQT090e@Cq*~
z&_x)k83EH3nCoy_U+L-&DPzCnUpCu$rHUyp`$`iNeVBfzit}1IM`nnm$~Y6Ugyf%3
zBi;XedO;0e4e)Xl;W3TmW3!PVO=rtF8tQdyj!`hc5dfddT<*B(qU$EiWKv!*%eF_}
z3-5`}I^$J_1qimQYqiBQd%rD!mit6aT=r&`Oc}q_p=uTijISBaUGA8+7EjH(ENjVR
zVzvpRUFgLFsBP55(hrq@st!KB;C;wg$jS?~A2vmeVqk=KB}xvPF|^noD?De()P3Eh
zS&+Dop+A6%Xo-%=7=aPeLRL~ty5-ufR5Wn;JHR=AAet(J5cE9xei`%yM;gpkX(b$G
zZPm9Sv+|QxxO2?;w(}~iqQxHV;JI>YVB%W%lP-DJt3EEjca%JinH4q`R8;ChV5Uad
z(n<8<0_7VT8u%l#PBeSGYiGmBj2pV`HHE^jr(TwDSVxqI)^6Rq&EN*bWTkr!or}FE
zG%zbNmhZAYvs3Wa|FkU7V=8tkhP{}N{CH;mORsvHPbjQYaya`?B@6a57j-JUMw^<(
z>(2BS7kQc(sv`+%_nU 8m=1X*V|gpqN_$q)^d;M>m^_-CP_Ct$B7
zHzE_oL4+Fp`}xavyk`Rt^8W0L$Dndl)Ee0}Ftb2?HOcuvhST*A-08Ne;6K7wlJ4U%
zQ`!IVji}qD=Ha?($R5l3!T-;&C&iS6#*_iuSgX`5#q?X-F%3PVB9a-z9#Ii5)ACX6
zxqr)N-kXam>wd%aV>;|LtD^7)!?9h%CTcdXcDdl)`)}UrT$aj;p+ku>2MJK4+}Yn>
z7Ak-~!TFJx(+Fc@Gcd$G6$wiVZ7apC*Rxi_-1wye;PlFhP!8D7r=#nxbNP}?E<8B<
z3fVV>()eI$A+Mei?IN=q$6BpZY-W*