Skip to content

Account portal

Manage your account at https://portal.hackersidekick.com: Clerk sign-in, subscription and Stripe checkout, usage, and API key creation (where your plan allows).

The portal is the Hacker Sidekick control plane for account tasks, built as a Next.js app. Public marketing lives on hackersidekick.com; the portal is for signed-in customers.

What you can do in the UI

  • Sign in - Same Clerk app as the rest of the product. The desktop browser sign-in uses this origin (see Connection and sign-in).
  • Dashboard - One scrolling page with anchors, for example:
    • #portal-overview - account summary
    • #portal-plans - plan tiers
    • #portal-usage - usage and range
    • #portal-billing - billing
    • #portal-settings - account; /account/settings embeds Clerk UserProfile
  • Legacy routes - e.g. /account/billing can redirect into hash routes on the main dashboard.

Plans and billing

  • Tiers - e.g. Free, Starter, Pro, Enterprise, with live prices from public GET /api/v1/billing/prices when configured.
  • Checkout - Stripe Checkout via POST /api/v1/billing/checkout.
  • Customer Portal - Stripe Customer Portal (payment methods, invoices, downgrades) via POST /api/v1/billing/portal.

Hosting - The live portal runs at the URL above, with Clerk and Stripe configuration behind the scenes.

Usage, dashboard, and billing detail

The portal shows a unified dashboard for overview, plans, usage (UTC daily bars when usage_daily_rollups is populated), and billing. Data is session-scoped to the signed-in Clerk user.

  • Period totals - From the account and plan configuration; included tokens depend on your tier (e.g. Free, Starter, Pro).
  • Daily chart - If daily rows are missing, the API may return source: "unavailable" for the series while still showing period totals.
  • Presets - Usage is requested with preset ranges (e.g. 30, 60, 90, 365, all), not arbitrary from / to in all cases.

Automation may call the model endpoint for usage and quotas (with a bearer key or JWT) in addition to what you see in the browser.

Billing - New subscription or upgrade through Stripe Checkout; ongoing management through the Stripe Customer Portal, opened from the portal.

Webhooks (server-only, not for clients)

SourcePath (illustrative)Purpose
StripePOST /api/webhooks/stripeInvoices, subscriptions, etc.
ClerkPOST /api/webhooks/clerkUser sync to the app database

Do not call these from the desktop app. They are server-to-server with signature verification.

Portal HTTP API (Clerk session)

These Next.js Route Handlers run on the same host as the UI, https://portal.hackersidekick.com in production. They expect a Clerk session (cookies) or a Bearer token the server can validate. Interactive use in a browser is the normal path; scripted access may require additional setup from your administrator.

For humans, use the site in a browser at portal.hackersidekick.com. These routes support the SPA and scripts.

KindMethodPathNotes
LivenessGET/api/healthReadiness and orchestration for the portal service.
Public pricingGET/api/v1/billing/pricesPlan cards.
UserGET/api/v1/meSession; ensure DB user row.
UsageGET/api/v1/usage/daily?range=...Preset range values.
CheckoutPOST/api/v1/billing/checkoutStripe Checkout session.
Customer portalPOST/api/v1/billing/portalStripe Customer Portal URL.
API keysPOST/api/v1/api-keysCreate; plaintext key shown once at creation. List and revoke in the portal account UI as your plan allows.

Webhooks (again): POST /api/webhooks/stripe and POST /api/webhooks/clerk are for Stripe/Clerk servers only.

See also

Hacker Sidekick documentation