Skip to content
View harshasoftware's full-sized avatar
🧧
Playing Cards...
🧧
Playing Cards...

Organizations

@DeveloperOwl

Block or report harshasoftware

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
harshasoftware/README.md

harsha.software

Source for harsha.software β€” a Vite + React 19 + Tailwind v4 rebuild of the former Framer site, deployed to Cloudflare Workers.

Static assets are served straight from the Workers asset store. One route, /img/*, runs the Worker in worker/index.ts: it reads the master image from the asset store, resizes it with the Cloudflare Images binding (w= width, q= quality, f=auto negotiates AVIF β†’ WebP via the Accept header) and caches the result at the edge with immutable cache headers. src/lib/images.ts builds those URLs (img() / srcSet()); in vite dev it falls back to the untransformed /images/... files.

The "Passion Projects" sections embed live UI lifted from the real project repos (src/vendor/cartostar, src/vendor/halohome) instead of static screenshots. Each vendor folder has a README recording the source commit and the edits made.

Toolchain

  • Bun 1.3+ for install/scripts, Node 22+ for Wrangler.
  • On this Mac the zsh profile's lazy nvm hook shadows node/npm; if you see _nvm_load: command not found, run unset -f node npm npx; export PATH="$HOME/.nvm/versions/node/v25.0.0/bin:$PATH" first.
bun install
bun run dev        # http://localhost:5173
bun run build      # tsc + vite build + bundle guard β†’ dist/
bun run preview    # serve dist/ on :4173
bun run lint
bun run images     # regenerate public/images from scripts/originals (gitignored)
bun run cf:dev     # wrangler dev on :8787 β€” serves dist/ + the /img/* Worker locally (build first)
bun run cf:types   # regenerate worker-configuration.d.ts after editing wrangler.jsonc

Deploy

Local (Wrangler is already authenticated on this machine):

bun run deploy:dry   # validates without publishing
bun run deploy       # publishes to the workers.dev URL / custom domain

Live preview: https://harshasoftware.icy-lake-12be.workers.dev (until the custom domain is bound).

GitHub Actions (.github/workflows/deploy.yml): pull requests run lint + build + wrangler deploy --dry-run; pushes to main deploy. The Cloudflare steps are skipped with a warning until the API token secret exists. Repository secrets required:

Secret Where it comes from
CLOUDFLARE_ACCOUNT_ID already set (npx wrangler whoami)
CLOUDFLARE_API_TOKEN Cloudflare dashboard β†’ My Profile β†’ API Tokens β†’ Edit Cloudflare Workers template, then gh secret set CLOUDFLARE_API_TOKEN

Custom domain cutover (manual, last step)

  1. In the Cloudflare dashboard for the harsha.software zone, remove the DNS records that point at Framer.
  2. Uncomment the routes block in wrangler.jsonc and run bun run deploy.
  3. Verify https://harsha.software returns 200 with a valid certificate, then retire the Framer site.

Pinned Loading

  1. BubbleTrack BubbleTrack Public

    Kotlin

  2. Chrome-Extension-Autocaptcha Chrome-Extension-Autocaptcha Public

    JavaScript

  3. mobilecloud-14 mobilecloud-14 Public

    Forked from juleswhite/mobilecloud-14

    Source code and assignments for the Programming Cloud Services for Android Handheld Systems Course

    Java

  4. RootChecker RootChecker Public

    Java

  5. chalkclassroom/CoachingApp chalkclassroom/CoachingApp Public

    Data Acquisition and Coaching Application for Teachers and their Coaches

    TypeScript 14 7

  6. LinkedinSavedJobRemovalScript LinkedinSavedJobRemovalScript Public

    Linkedin Saved Jobs has 2000 Job Limit, this script will remove them automatically

    JavaScript 5 1