Reference

API Documentation

Admin API endpoints for managing portfolio content. All endpoints require admin authentication via Supabase magic-link.

POST/api/admin/upload

Upload files to Supabase storage bucket

Admin required

Body parameters

fileFile to upload
bucketStorage bucket (site-assets, project-media, blog-media, certification-badges, pet-media)
POST/api/admin/blogs

Create a new blog post

Admin required

Body parameters

titleBlog title (required)
excerptShort excerpt (required)
readingTimeReading time in minutes (default: 5 min)
tagsArray of tag strings
featuredBoolean to feature on home
statusdraft | published
heroImageCover image URL
publishedLabelPublished date label (DD Mon YYYY format)
contentBlocksArray of content block objects
PATCH/api/admin/blogs/[slug]

Update an existing blog post

Admin required

Body parameters

titleBlog title (required)
excerptShort excerpt (required)
readingTimeReading time in minutes
tagsArray of tag strings
featuredBoolean to feature on home
statusdraft | published
heroImageCover image URL
publishedLabelPublished date label (DD Mon YYYY format)
contentBlocksArray of content block objects
DELETE/api/admin/blogs/[slug]

Delete a blog post and its associated media

Admin required

POST/api/admin/projects

Create a new project

Admin required

Body parameters

titleProject title (required)
summaryProject summary (required)
sectorProject sector (required)
yearLabelYear label like '2024' (required)
roleYour role (required)
stackArray of tech stack strings
tagsArray of tag strings
featuredBoolean to feature on home
statusdraft | published
heroImageHero image URL
publishedLabelPublished date label (DD Mon YYYY format)
contentBlocksArray of content block objects
PATCH/api/admin/projects/[slug]

Update an existing project

Admin required

Body parameters

titleProject title (required)
summaryProject summary (required)
sectorProject sector (required)
yearLabelYear label
roleYour role (required)
stackArray of tech stack strings
tagsArray of tag strings
featuredBoolean to feature on home
statusdraft | published
heroImageHero image URL
publishedLabelPublished date label (DD Mon YYYY format)
contentBlocksArray of content block objects
DELETE/api/admin/projects/[slug]

Delete a project and its associated media

Admin required

PATCH/api/admin/projects/reorder

Reorder projects by updating sort_order

Admin required

Body parameters

orderArray of slugs in desired order
POST/api/admin/pets

Create a new pet entry

Admin required

PATCH/api/admin/pets/[slug]

Update a pet entry with images and details

Admin required

Body parameters

namePet name
speciesSpecies type
descriptionShort description
storyDetailed story
imagesArray of { url, caption, featuredOnHome } objects
DELETE/api/admin/pets/[slug]

Delete a pet entry and its images

Admin required

PATCH/api/admin/pets/reorder

Reorder pets by updating sort_order

Admin required

Body parameters

orderArray of slugs in desired order
POST/api/admin/certifications

Create a new certification entry

Admin required

Body parameters

slugURL-friendly slug
titleCertification title
issuerIssuing organization
issueDateYYYY-MM-DD
noteOptional note
credentialUrlVerification URL
PATCH/api/admin/certifications/[slug]

Update a certification entry

Admin required

Body parameters

titleCertification title
issuerIssuing organization
issueDateYYYY-MM-DD
noteOptional note
credentialUrlVerification URL
DELETE/api/admin/certifications/[slug]

Delete a certification entry

Admin required

PATCH/api/admin/certifications/reorder

Reorder certifications by updating sort_order

Admin required

Body parameters

orderArray of slugs in desired order
PATCH/api/admin/home-hero

Update homepage hero section settings

Admin required

Body parameters

heroHeadingMain hero heading text
heroSubheadingHero subheading text
heroIntroHero intro paragraph
roleLabelRole label for snapshot card
locationLocation text
availabilityAvailability status text
howTextHow section text
spotifyEmbedUrlSpotify embed URL
spotifyTitleSpotify section title
PATCH/api/admin/home-tools

Update tools/skills section content

Admin required

Body parameters

groupsArray of { title, text } objects for tools categories
PATCH/api/admin/home-trajectory

Update work experience and education timeline

Admin required

Body parameters

workExperienceArray of { company, role, period, note } objects
educationItemsArray of { institution, degree, period, note } objects
PATCH/api/admin/home-contact

Update contact information displayed on homepage and footer

Admin required

Body parameters

ctaCall-to-action text
phonePhone number
emailContact email
whatsappUrlWhatsApp link URL
gmailComposeUrlGmail compose URL
resumeUrlResume download URL
linkedinUrlLinkedIn profile URL
githubUrlGitHub profile URL
twitterUrlX/Twitter profile URL
instagramUrlInstagram profile URL
dribbbleUrlDribbble profile URL
behanceUrlBehance profile URL