Live
fuschimp_transparent.png
Fusite

My little corner of the internet showcasing personal projects and updates about my work

Node.js Serverless Handlebars Bun AWS

Timeline

v0.1.1

January 29, 2026

Fixes and improvements to how Notion content is rendered on published pages.

Fixed

  • Table cell rich text formatting: Table cells now preserve inline formatting from Notion (code, bold, italic, underline, strikethrough, links) instead of rendering as plain text
  • Added

  • Image width control via caption tag: Images support a [w:XX%] tag in the Notion caption to control display width (e.g. [w:60%]). The tag is stripped from the visible caption. Width defaults to 100% when no tag is present
  • Technical

  • Replaced manual plain_text extraction in processTableRowWithChildren() with processRichText() to apply Notion annotations
  • Added parseImageCaptionWidth() helper to parse and strip width tags from captions
  • Applied max-width style to the <figure> wrapper when a caption is present, or directly to the <img> when there is no caption, avoiding double-application
  • Updated three image rendering paths: processImage(), processImageWithS3(), and processNotionImage() in imageProcessor.ts
  • v0.1.0

    January 10, 2026

    The Fuscripts site is live! After a lot of tweaking to materialize the image I had in my mind for my personal website is finally here.

    Let’s see how long it lasts until I want to change it.

    Added

  • Static Site Generator: Custom build pipeline using TypeScript, Handlebars templates, and Rollup bundler
  • Notion Integration: Full integration with Notion API for content management (projects, chronicles, documentation)
  • Projects Metadata API: REST API endpoint (GET /fusite/projects) serving project information from Notion
  • Intelligent Build Cache: File-based caching system with timestamp validation for Notion API responses
  • Project Pages: Complete project detail pages with overview, documentation, and timeline sections
  • Responsive Layout: Mobile-first design with comprehensive mobile optimization (95% page compatibility)
  • Template System: Modular Handlebars templates with reusable components and partials
  • Technical

  • Build Performance with cache control: 66x faster builds with cache enabled (112s → 1.7s when content unchanged)
  • Technology Stack: Bun runtime, TypeScript 5.9+, Handlebars, Tailwind CSS, AWS S3 + CloudFront
  • Pagination Support: Proper handling of Notion API pagination for large pages (100+ blocks)
  • Parallel Processing: Parallelized block fetching using Promise.all for improved performance
  • Deployment: Static site deployment to AWS S3 with CloudFront CDN integration
  • Testing: Playwright end-to-end test suite covering mobile responsiveness, image loading, and link functionality