Had an amazing time last week hanging out with the @dub.co team in San Francisco 🌁
Being a fully remote + global team, offsites like these are extra special for us to meet IRL 🥹
Posts by Steven Tey
Sick photo of the Transamerica Pyramid + Golden Gate Bridge in the background
The @dub.co team is meeting in SF this week for our first offsite of 2026 🌁
Anything we should build/improve for Dub Links/Dub Partners?
We have a list of MVPs/bugfixes we're planning to get through, but curious what y'all have in mind 👀
Ideal date/timestamp UX:
• <1s: Just now
• 1-59s: “N”s ago
• 1-59min: “N”m ago
• 1-23h: “N”h ago
• >24h: “May 30” for current year dates, “Dec 12, 2024” for all non current year dates
Bonus: Add a hover tooltip to show the exact timestamps in UTC and local timezone 👇
Had an incredible time this week hanging out with the @dub.co team IRL for the first time ever.
We're a fully remote + global team, making offsites like these so much more valuable.
This year, we went to the Big Island of Hawaii 🌴
The best gift doesn't exis–
To celebrate @dub.co's 1-year anniversary, my wife got me this cute box of custom-made cookies 🥹
My favorite: "Steven with Superpowers" – inspired by our landing page tagline 😍
Introducing Dub Conversions 📈
Track how your clicks convert to signups and sales with our end-to-end attribution engine.
Featuring native integrations with Stripe, Shopify, @clerk.com, @supabase.com etc.
Learn more about @dub.co Conversions: d.to/conversions
😆 guilty as charged 🙋♂️
I've actually been using panic@thedis.co ever since I knew how to code, it's a fun little placeholder if you get the reference
export function async updateAge() { return await db.user.update({ where: { name: "Steven Tey" }, data: { age: { increment: 1 } } }) }
Completed another trip around the sun today 🥳
🥹🖤
Love this new project by @timbennetto.com → bsky.new
It's a free link shortener for your Bluesky profile – here's mine: bsky.new/steven
Best part? It's powered by @dub.co 🤩
Introducing bsky.new, a quick and clean link for people to get to your Bluesky profile. 🦋
Just leave a comment with the URL you want and I'll create one for you eg. bsky.new/tim
First come, first served!
Regions filter on Dub showing the some of the top US states by clicks (Oregon, California, Virginia, New York, Texas, etc.)
Good news: You can now filter your @dub.co analytics by regions.
E.g. in the US, you can filter by states (as per the ISO 3166-2 standard):
◆ New York (US-NY)
◆ California (US-CA)
◆ Texas (US-TX)
Read the changelog: d.to/regions
Weekend project: Added a subtle hover interaction on @dub.co that shows the next plan's limits when you hover over the upgrade button.
Built with the motion animation library + Cursor who wrote almost all of the code 🤯
Inspired by @vercel.com's "Upgrade to Pro" CTA hover effect ✨
🤯 ok this is wild y’all
love this! sent you some feedback via DMs!
thanks Tanner!! appreciate the kind words 😁
🤯
It's been a while since I last checked in here – curious how many DAUs Bluesky has nowadays? 👀
📌
This has been a WIP for the last couple of months, so we're incredibly excited to finally ship this!
Can't wait to see what you guys build with this 🤩
https://bsky.app/profile/vercel.com/post/3jzs7ijrao325
7. Dark mode
No @vercel.com / @nextjs.org template is complete without dark mode support 😁
The Platforms Starter Kit comes with dark mode out of the box for a better user experience at night 🌃
6. Dynamic OG images for blog posts
This template also uses @nextjs's `ImageResponse` constructor (https://nextjs.link/og to craft dynamic OG images at the edge.
Here's an example (layout & style inspired by @calcom):
https://demo.vercel.pub/nextjs-conf
5. Image Uploads with Vercel Blob
This works for both inline Markdown images and thumbnail images.
Note: Blob is still in private beta – but feel free to DM me for access!
4. Custom fonts, 404 pages, favicons, sitemaps for each site
Thanks to @nextjs.org file-based Metadata API, we are able to customize the look and feel of each site.
Best part? `revalidateTag` allows us to perform cache invalidations faster and more efficiently when changes happen.
3. AI-powered Markdown-based WYSIWYG editor
The new Platforms Starter Kit now comes built-in with intelligent AI autocompletion – powered by novel.sh ✨
2. On-demand cache invalidation
By using @nextjs' new `revalidateTag` API + Vercel's ISR feature (https://vercel.fyi/isr we are able to cache content pages + revalidate them when users make changes to them.
Best part? Changes get propagated in <500ms, globally ⚡
This template is jam-packed with lots of useful features for building platforms on Vercel.
1. Programmatically managing custom domains
Forget manually setting up custom server rewrite rules with NGINX. Vercel's Domains API makes things simple: https://vercel.fyi/9caERPH
A year ago, we launched the first version of this starter kit.
Since then, we've seen many platforms scale to tens of thousands of custom domains on Vercel:
◆ Hashnode.com
◆ Super.so
◆ Incident.io
◆ BeyondMenu.com
◆ Mintlify.com
◆ Moment.co
◆ @dub.sh
https://vercel.com/blog/platforms-starter-kit