Made with Supabase

šŸŒŸ Swap your Twitter image based on interest/season temporarily or forever!


This project is inspired by Facebook's Temporary Profile Picture, as well as the Twitter Space's logo when someone is joining a Space. Thus, I've created this apps to swap your plain Twitter picture to fit the season/event/anything that you want your follower to notice!

After a certain amount of period (you can configure on the app), it will automatically swap back (hence, Swappy) to your original image. And you can revisit the app when you feel like putting on another badges in the future.

Powered by Supabase

Supabase Auth

As this project revolves around Twitter, it is obviously make sense to use Supabase Auth. But I had to work around, and store the user's oauth_token and oauth_token_secret to invoke User-based API because currently Supabase only return provider_token, and not secret. This issue has been raised on supabase/gotrue-js#105.

Supabase Database

Capture the old_image_key, and new_image_key, and get the images from Supabase Storage. It also capture the period of when to change the user's image back to old one.

Supabase Storage

Save all the user's old image, and new image, so that it can be easily retrieve to change into, or back original image.

Supabase Realtime

Show realtime toast notification when a user publishes a new image. It is using RLS that allow all users to SELECT.

Postgres Function

pg_cron and pg_net makes this app possible. It change back the user's old image when the time is up. CRON was set to hourly based, and triggers serverless function hosted on Vercel.

Related Projects

A project by Zernonia