Shrijal Acharya’s portfolio
The source for techwithshrijal.com, a portfolio for my software projects, technical writing, work history, community events, and contact information.
Live site · Report a bug · Request a feature
What is included
- Recent projects and a searchable project archive
- DEV and freeCodeCamp articles aggregated into one searchable blog index
- Server-rendered Markdown with syntax highlighting, embeds, and sanitization
- Work history, community events, contact form, scheduling, RSS, and metadata
- Dark/light themes, Vercel Analytics, and Speed Insights
Stack
- Next.js 16 App Router, React 19, and TypeScript
- Tailwind CSS 4 and Radix UI primitives
- Unified/Remark/Rehype for sanitized Markdown rendering
- Resend for contact-form delivery and Cal.com for scheduling
- Bun for dependency management, scripts, and tests
- Vercel behind Cloudflare for hosting
Project metadata and README content are mirrored from public GitHub repositories
tagged with the showcase topic. A scheduled GitHub Actions workflow keeps
those files synchronized.
Local development
Requirements:
- Node.js 20.9 or newer
- Bun 1.4 or newer
Install dependencies and create the local environment file:
bun install
cp .env.example .envThe application expects these variables:
RESEND_API_KEY=re_...
RESEND_FROM_EMAIL=[email protected]
NEXT_PUBLIC_MODE=developmentStart the development server:
bun run devThen open http://localhost:3000.
Quality checks
bun run lint
bun run typecheck
bun run test
bun run buildbun run check runs lint, type checking, and unit tests together. Pull requests
and pushes to main run those checks plus a production build in GitHub Actions.
Content maintenance
- Recent projects are generated from the newest synced repositories tagged with
the
showcasetopic, so they do not need a separate manual update. - Project pages are sourced from
content/projects/*_README.mdx. .github/workflows/fetch_project_readmes.ymlrefreshes showcase repositories daily and removes entries that no longer carry theshowcasetopic.- Blog cards and article bodies come from DEV and the freeCodeCamp author feed. Requests are cached, time-bounded, and retried with a bounded backoff.
License
This project is available under the MIT License.