software · Case study
Sakkas Poster
Full-stack app that fully automates social media posting for Sakkas Store, a fashion brand — from a product URL to a carousel post on Facebook and Instagram.
- Organization
- Sakkas Store
- Note
- Live — posting to the store's Facebook and Instagram
A How it works
- 01Takes a Shopify product URL and fetches all of the product's photos through the Shopify Admin API
- 02Processes every photo into a consistent 4:5 ratio
- 03Generates an on-brand caption with Claude (Anthropic API) in a fixed format: description, then product link, then hashtags
- 04Posts or schedules a carousel simultaneously to Facebook and Instagram through the Meta Graph API
- 05Stores the scheduling queue, post history, and images in Supabase (Postgres)
- 06Runs a custom Supabase pg_cron scheduler every minute, since Instagram has no native scheduling API
- 07Sends live-post notifications through the Telegram Bot API
C Engineering challenges
- Issue 01
Shopify retired its auth flow mid-project
Shopify retired its old auth flow partway through the project, so the app was migrated to a client-credentials grant.
- Issue 02
Meta changed its app permission flow
Meta changed its app permission flow, so Instagram publish permissions had to be obtained through the Facebook Login path.
- Issue 03
GitHub Actions cron was unreliable in production
The first scheduler ran on GitHub Actions cron, which managed only about 8 runs over several weeks. The scheduler was rebuilt on Supabase pg_cron, running every minute.