Your data, your node
No SaaS account, no API key, no hosted backend. The dashboard talks to a Radicle daemon you control.
Open source · self-hosted
An open-source Next.js dashboard for radicle-httpd. Point it at your local seed and ship a polished public profile.
See it live
The frame below is the actual /profile page served by this node. No screenshot.
No SaaS account, no API key, no hosted backend. The dashboard talks to a Radicle daemon you control.
Laptop, home server, VPS. Anywhere Node.js runs. Caddy + Cloudflare Tunnel publish it for free.
Generative avatar, search, sort, copy-as-clone. Familiar to anyone who's used a code-hosting profile.
Works even when /repos returns empty. Configure the RIDs you care about and they show up.
App Router, Tailwind v4, lucide-react. Tweak the components, theme, fonts. No proprietary primitives.
Zero analytics, zero third-party scripts, zero hosted backend. Just static HTML rendered from your node.
Quickstart
Get it running, then point it at your repos.
git clone <repo-url> radprofile
cd radprofile/dashboard
cp .env.example .env.local
npm install
npm run dev # http://localhost:3100# .env.local — make it yours
RADICLE_HTTP_BASE=http://127.0.0.1:8090
RADICLE_PROFILE_ALIAS=your_alias
RADICLE_DELEGATE_DID=did:key:z6Mk...
RADICLE_REPO_IDS=\
rad:zAbCd...,\
rad:zEfGh...Bring your own node — point this at it.
Run a Radicle node + HTTP daemon
rad node start && radicle-httpd --listen 0.0.0.0:8090
Point the dashboard at it
Set RADICLE_HTTP_BASE and an optional RADICLE_REPO_IDS.
Build & start
npm run build && npm start
FAQ
radicle.network). This dashboard is your personal homepage on the network: a curated profile of your repos, plus a whole-node view that respects pinning and search. Both read the same JSON API, so they’re complementary, not competing.npm run dev and visit localhost. To make it public, use Cloudflare Tunnel (free, no port-forward) or open ports 80/443 on your router. See the project repo’s infra/PUBLISH_WITH_CLOUDFLARE.md.RADICLE_HTTP_BASE at any reachable radicle-httpd. You give up sovereignty (you’re trusting that node’s data), but you can stand up a profile in minutes against e.g. a friend’s seed.RADICLE_REPO_IDS in your env to a comma-separated list of RIDs, or edit src/lib/profileRepos.ts and redeploy. The page fetches each one in parallel from /api/v1/repos/<rid>.radicle-httpd defaults /api/v1/repos to show=pinned. The dashboard queries show=all by default, but you can toggle to Pinned via the segmented control. To curate, run rad pin <rid> on your node.Clone it, point at radicle-httpd, and you’re live in about two minutes.