Claude/sweet hugle 14f9cb - #353
Open
bachngb wants to merge 52 commits into
Open
Conversation
… focus on security engineering, as well as my journey and skills in the field.
…and updating some details about my background and current pursuits. Also made a minor tweak to the "Hero" section for better clarity.
…rchive, about and hero sections updated)
src/components/footer.js
src/components/sections/about.js
src/components/sections/hero.js
…and update the footer to reflect my personal brand more accurately. Additionally, I will refine the language in the hero and about sections to better convey my focus on building secure systems and my background in the field.
- Add rel="noopener noreferrer" + target="_blank" to all external links in about, featured, hero, and projects sections to prevent tabnabbing - Add HTTP security headers (X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy) via static/_headers for Netlify - Validate post slugs in gatsby-node.js to guard against path traversal - Move GA tracking ID to GATSBY_GA_TRACKING_ID env var with fallback - Serve only woff2 fonts (drop woff), change font-display to swap to eliminate FOIT and 8 redundant font requests - Scope querySelectorAll to #content to avoid full-document DOM scan on every page load - Add will-change: filter to image wrappers in about and featured sections for GPU compositing - Wrap onKeyDown (jobs), projectInner (projects), and items array (hero) in useCallback/useMemo Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remove the Featured and Projects sections and replace them with a new Writing section that showcases Substack posts and links to https://substack.com/@bachng. - Add src/components/sections/writing.js: 3-column post card grid with bookmark icon, date, title, excerpt, tags, and external link per card; includes Show More/Less toggle and a "read all on substack" link - Add content/writing/: three sample post markdown files the user can replace with real Substack post URLs and content - Update src/pages/index.js: swap <Featured /> + <Projects /> for <Writing /> - Update src/components/index.js: export Writing instead of Featured/Projects - Update src/config.js: rename nav link "Work" -> "Writing" pointing to /#writing Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Delete src/components/sections/featured.js and projects.js (dead files) - Delete content/featured/ and content/projects/ (old template content) - Replace gatsby-source-filesystem 'projects' with 'writing' in gatsby-config.js - Rewrite archive.js to list content/writing/ posts with Year/Title/Topics/Link columns - Add 'view the archive' link to Writing section alongside Substack link - Add Link import to writing.js for internal archive navigation Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- New Community section with upcoming/past event cards and Netlify Forms subscribe CTA - Netlify CMS (Decap) at /admin for managing events and writing posts - Sample community event content (2 upcoming, 2 past) - static/images/uploads/ for CMS-managed event photos - Wire up: index.js, components/index.js, config.js, gatsby-config.js Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…scribe - Add api/auth.js + api/callback.js: Vercel serverless functions that handle GitHub OAuth flow so Decap CMS works without Netlify - Update config.yml backend to use base_url + auth_endpoint pointing to the new API routes; MFA comes from GitHub account settings - Replace data-netlify form with Formspree action (Netlify Forms does not work on Vercel) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace basic HTML form with @formspree/react useForm hook (mkokzdva). Adds success state, submitting disabled state, and field-level validation errors — no page reload on submit. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
✅ Deploy Preview for brittanychiang-v4 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
The /gatsby subpath does not exist on @vercel/analytics v1; /react is the correct subpath for any React app including Gatsby. Also bump the dependency to ^1.3.1 which is the current stable. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Previous deploys registered a Gatsby service worker that cached a 404 for /admin/config.yml. Two changes: - static/admin/index.html: on load, unregister any existing service worker and clear its caches, then reload once so Decap CMS fetches config.yml fresh. - gatsby-config.js: exclude /admin/** from workbox precache and mark /admin + /api as navigation fallback denylist so the SW never intercepts those routes again. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
gatsby-plugin-offline@3 bundles Workbox v4, which uses the older Blacklist/Denylist naming. The v6 name (navigateFallbackDenylist) and the globIgnores key are rejected by joi validation, failing the build. Drop the unsupported keys; the SW unregister script in admin/index.html is what actually prevents the stale cache from serving a 404 anyway. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.