Stats
What it takes to run this site: the monthly bill, line by line, and a few live numbers. Cloud cost is part of my work, so it seemed fair to show my own.
Running cost
$0.39/ month
Everything included; the domain was paid for two years up front and is shown here per month. Figures checked 29 September 2026. Vercel Hobby has no billing API, so they are updated by hand.
Hosting and CDN
Vercel · Hobby
Builds from GitHub on every push, serves the static pages and runs the API routes.
Source: Vercel project settings
$0/mo
Visitor counter storage
Upstash Redis · Free tier, via the Vercel Marketplace
One key, incremented once per browser. Reads on this page use a read-only token.
Source: Vercel Marketplace integration
$0/mo
Analytics
Vercel Web Analytics · Included with Hobby
Page views and a few named click events. No cookies and no personal data.
Source: Vercel project settings
$0/mo
Portfolio assistant
Runs in a Vercel function · Search-only mode
Answers from this site's own content with keyword retrieval. No LLM API key is configured, so no model is called and nothing is billed per question.
Source: Vercel environment variables (no ANTHROPIC_API_KEY set)
$0/mo
Source code and activity
GitHub · Free
Hosts the repository. The contribution graph and repo list are read from public GitHub pages and cached for 12 hours.
Source: github.com/pshah-lab
$0/mo
Fonts
IBM Plex, self-hosted · SIL Open Font License
Served from this site, so there are no requests to a font CDN.
Source: app/fonts/OFL-LICENSE.txt
$0/mo
Domain
Namecheap · pshah.fun, DNS on Vercel
The address. The only part of the site that isn't free.
Source: Namecheap order covering 18 Dec 2024 to 19 Dec 2026. Renewal due then; its price may differ
$0.39/mo$9.34 for 2 years
Live numbers
Read when this page was generated, at most once an hour. Last refresh 15 October 2026.
- Visitors
- 527
- Browsers counted since Aug 2025
- GitHub contributions
- 475
- In the last year
- darkmode.pshah.fun visits
- 11
- Force Dark Mode's site, counted without cookies since 30 Sep 2026
- Case studies
- 6
- Projects with a full write-up
- Engineering notes
- 3
- Short technical write-ups
How it stays this cheap
Pages are prerendered
Almost every page is static HTML built at deploy time, so a visit is served from Vercel's CDN without running a function.
External data is cached
GitHub data refreshes at most every 12 hours and this page at most every hour, so traffic spikes don't turn into API calls.
Heavy features load on demand
The assistant and the ⌘K palette download only when someone opens them.
One write per visitor
The counter increments once per browser and is rate-limited per IP, so storage use stays tiny.
No paid model by default
The assistant works without an LLM. Adding a key would switch it to generated answers, billed per token.
Stack
- Next.js 15.5.25
- React
- TypeScript
- Tailwind CSS
- Node.js 22
- Vercel
- Upstash Redis