20 Commits
Author SHA1 Message Date
jake d3b2d07de7 refactor: use "use cache: remote" for request-time reads and updateTag/refresh for mutations
- Replace `"use cache"` with `"use cache: remote"` on functions that run inside dynamic holes (`getContributions`, `getRepos`, `getPostStats`, `getCachedComments`) so entries are shared across server instances
- Switch comment and view server actions from `revalidatePath`/`revalidateTag` to `updateTag` + `refresh` for read-your-writes invalidation
- Extract a `commentsTag(pageSlug)` helper so each page's comment cache is expired independently instead of blowing the whole "comments" tag
- Refactor `getComments` to delegate to a cached inner function that throws on failure (so errors are never cached); `getCommentCount` now reuses that cache entry instead of issuing a separate COUNT query
- Drop `lib/data/views.ts` (`getAllViewCounts`) — the `/api/hits` route now calls `getPostStats()` instead
- Remove `revalidateTag("views")` from `incrementViews`; view counts in `getPostStats` are allowed to lag by a cache TTL
- Remove the `Suspense`/`Skeleton` wrapper on the projects page since `getContributions` is now a remote-cached call
2026-10-03 09:50:06 -04:00
jakeandClaude Sonnet 5.5 6d255ce822 refactor: move read queries into server-only lib/data and render post stats on the server
Reads no longer live in "use server" files (which made them public
endpoints). /notes stats come from one cached query pair rendered on the
server; the post page comment count streams in as a dynamic hole.
revalidateTag("views"/"comments") now invalidates the cached stats.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-03 08:40:14 -04:00
jakeandClaude Sonnet 5.5 bd18c6d553 fix: validate server action inputs for views and comments
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-03 08:33:57 -04:00
jake 2403842f39 fix: address react-doctor violations 2026-09-26 12:54:00 -04:00
jake 38a00cf203 chore: next 16.3, drizzle v1, other cleanup (#2620) 2026-08-16 16:17:10 -04:00
jake 5a1636baa3 refactor: migrate from Biome to oxlint/oxfmt, remove contact form
- Replace Biome with oxlint + oxfmt (OXC toolchain) for linting and formatting
- Add .oxlintrc.json and .oxfmtrc.json configuration files
- Update VS Code settings and devcontainer to use oxc-vscode extension
- Remove contact form, Resend email integration, and related server action/schema
- Remove unused UI components (accordion, alert, card, tabs, toggle, etc.)
2026-04-05 19:45:18 -04:00
jakeandClaude Opus 4.6 6f86fd1ca9 refactor: remove @t3-oss/env-nextjs, use process.env directly
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:12:42 -05:00
jake c30197ccc5 refactor: eslint/prettier ➡️ biome 2026-02-19 14:02:03 -05:00
jakeandClaude Opus 4.5 bcc595e141 refactor: migrate contact form to TanStack Form
- Replace manual state management with @tanstack/react-form
- Add proper Field/FieldLabel components for accessibility
- Simplify server action (remove useActionState signature)
- Remove use-debounce dependency
- Update PGP key links and minor styling tweaks

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:08:54 -05:00
jake 5fc9efb181 fix: don't pre-render view and comment count components
- Introduced a new PostStats component to handle view and comment counts, replacing the previous async implementation with a client-side approach.
- Updated CommentCount component to use client-side state management for fetching comment counts.
- Removed unnecessary caching logic from view and comment fetching functions.
- Simplified date formatting by moving it inline, enhancing performance and readability.
2026-01-28 13:35:16 -05:00
jake 8a09aa918c chore: Next.js 15 → 16 (#2503) 2025-11-22 17:11:42 -05:00
jake 2fa9b73f8d Enhance notes page with comment counts and display. Update data fetching to include comment counts alongside views, and integrate comment count badges in both the notes listing and individual post pages. 2025-09-07 16:26:45 -04:00
jake f4fd80f20a Add BotID verification in comment creation to enhance security. Update instrumentation-client to include new notes route for POST requests. 2025-09-03 11:13:32 -04:00
jake a3f05dc7d8 Refactor bot detection logic in contact form to improve error handling. Log verification failures and throw errors for better debugging. 2025-09-03 11:05:24 -04:00
jake b06e7bbf4d Refactor contact form validation to use useDebounce for improved performance and streamline error handling. Simplify error retrieval logic and ensure touched state is updated on input changes. 2025-09-02 19:10:56 -04:00
jake 6a0ff897da Enhance contact form with client-side validation and error handling. Import validation schema from shared module and improve user experience by tracking input touch state for error display. 2025-09-02 18:39:54 -04:00
jake ab6b188a99 Remove Cloudflare Turnstile integration and replace it with Vercel's BotID for spam protection in the contact form. Update environment variables and dependencies accordingly. 2025-08-28 18:08:05 -04:00
jake a9d83768ca re-enable comments on non-post pages 2025-05-18 14:38:10 -04:00
jake cb5934647f revert back to zod 2025-05-17 20:43:15 -04:00
jake b196249f25 homebrew comments system 2025-05-14 09:49:55 -04:00