Skip to main content

My Code & Projects

Project Repositories

HeyLeaf (private, pre-release)

Privacy-friendly plant care app. Guest mode (local data), fast add flow, simple care schedules. Built as a React web app and packaged to iOS with Capacitor.
Status: Private, pre-release
Peek the code: Snippet below, request read-only access if needed
Stack: React, Capacitor (iOS), Tailwind CSS, Supabase
src/lib/identifyPlant.ts
export async function identifyPlant(api: string, file: File, organs='leaf') {
  const fd = new FormData()
  fd.append('images', file)
  fd.append('organs', organs)
  const r = await fetch(api, { method: 'POST', body: fd })
  if (!r.ok) throw new Error(`HTTP ${r.status}`)
  return r.json()
}
Next steps: UI/UX redesign for web, polishing iOS app, start packaging Android app, Easier sign-up (SSO with multiple providers)

Portfolio (Public)

This site: Minimal, fast, accessible; outcome-first content with real code receipts. Next.js 14 (App Router), TypeScript, Tailwind, shadcn/ui, Lucide.
Status: Public, open-source, in development
Highlights: client-island terminal with syntax highlighting, 3 outcome cards, strict TS
Dockerfile
# Dockerfile (Next.js 14 standalone)
FROM node:20-alpine AS build
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN corepack enable && pnpm i --frozen-lockfile
COPY . . && pnpm build
FROM node:20-alpine AS run
ENV NODE_ENV=production
COPY --from=build /app/.next/standalone /app/.next/static /app/public ./
USER node
CMD ["node","server.js"]