CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
This is a Quarto-based data blog focused on social media analytics and Buffer data insights. The project generates a static website with data analysis posts that include R code, visualizations, and insights about posting frequency, engagement, and social media behavior.
Project Structure
_quarto.yml: Main Quarto configuration defining website structure, theme (darkly), and navbarposts/: Individual blog posts, each in its own directory withindex.qmdand associated data files_freeze/: Quarto’s computational cache containing executed R code results and generated plots_site/: Generated static website output (published to Netlify)_publish.yml: Deployment configuration for Netlify hosting*.rds: R data files containing cached analysis results and datasets
Core Workflow Commands
Building and Previewing
# Render the entire site
quarto render
# Preview site locally with live reload
quarto preview
# Render specific post
quarto render posts/post-name/index.qmdRunning R Code
# Execute R commands directly
Rscript -e "command_here"
# Run R script file
Rscript script_name.R
# Check R environment and packages
Rscript -e "sessionInfo()"Publishing
# Publish to Netlify (configured in _publish.yml)
quarto publish netlifyContent Creation Workflow
Creating New Posts
- Create new directory in
posts/with descriptive name - Add
index.qmdwith YAML frontmatter including:title,author,datecategoriesfor post classificationimagefor post thumbnailformat.html.code-fold: trueto fold R code by default
- Include R code chunks for data analysis
- Save intermediate data as
.rdsfiles for performance
Data Analysis Pattern
Posts typically follow this structure: - Load required packages (buffer, dplyr, ggplot2, etc.) - Load or query data (often from BigQuery) - Perform analysis with R code - Generate visualizations - Save results as .rds files for reuse
Important Configuration
Computational Caching
freeze: trueis set inposts/_metadata.ymlto cache computational results- This prevents re-running expensive BigQuery operations and R analyses
- Delete specific cache files in
_freeze/to force re-computation
Code Folding
- R code blocks are set to fold by default (
code-fold: true) - This keeps posts readable while preserving code accessibility
Data Dependencies
External Data Sources
- BigQuery: Primary data source for Buffer analytics
- R packages:
buffer,bigrquery,tidyverse,ggplot2,ggthemes,scales,lubridate,fixest - Authentication: BigQuery requires proper authentication setup (
bq_auth())
Cached Data Files
.rdsfiles contain pre-processed datasets and analysis results- Common files: follower data, posting frequency data, time series data
- These files enable fast rendering without re-querying databases
Development Notes
R Environment
- Uses R for all data analysis and visualization
- Key libraries:
buffer(internal),dplyr,ggplot2,bigrquery - Statistical analysis with packages like
fixest,broom
Content Guidelines
- Posts focus on Buffer’s social media data insights
- Include methodology explanations and statistical analysis
- Visualizations use consistent theming (
ggthemes, custom styling) - Each post should be self-contained with cached data
Performance Considerations
- Use
freeze: trueto avoid re-computation during development - Cache expensive operations as
.rdsfiles - Large datasets should be pre-processed and saved locally