From Problem to Product: How I Built Time Port in 7 Days


Introduction
Every product starts with a tiny annoyance.
For me, it was bio links — those little URLs in your Twitter, Instagram, or LinkedIn bio. I realized they were always pointing to one static destination, no matter who was clicking, when they were clicking, or from where.
I thought: "What if a single link could behave differently based on time, day, or region?"
That question led to Time Port — a smart bio link tool that dynamically redirects users depending on real-world context.
This post is a behind-the-scenes, technical deep dive into how I built Time Port in just 7 days as part of my "1 Product a Week" YouTube challenge.
The Problem with Traditional Bio Links
Bio links are simple, but they’re also dumb. You get one destination for everyone.
That’s fine if your audience is local, or you only promote one thing. But if you're a:
Creator sharing different content throughout the day
Marketer running geo-targeted campaigns
Founder launching different products on different days
... then one static link becomes a bottleneck.
Manually switching links? Clunky.
Using a link tree? Static and impersonal.
I needed a context-aware bio link that could auto-update its behavior based on who was clicking and when.
Core Concept: What is Time Port?
Time Port is a smart redirector.
It lets users create a single link (called a Port) that contains multiple rules. These rules tell Time Port how to redirect based on:
⏰ Time of Day (e.g. morning vs night)
📅 Day of the Week (weekday vs weekend)
🌍 Region (country-level detection)
Each Port has a default destination, and then a rule engine that overrides it when conditions are met.
Tech Stack Overview
I knew the stack needed to be:
Edge-first
Real-time
Developer-friendly
Globally fast
Here’s what I chose:
Frontend: Next.js + TailwindCSS
Backend/DB: Supabase (Postgres + Auth + Edge Functions)
Redirection Layer: Vercel Edge Middleware
Geo Detection: req.geo
from Vercel Edge runtime
Auth: Clerk (session management + sign-in)
Building the Port Creation Flow
Each user logs in via Clerk. Once authenticated, they can:
Create a new Port with a default destination URL
Add any number of redirect rules
Set conditions like region, time range, and days
These rules are stored in Supabase, tied to the user’s UID.
The UI is a simple, clean dashboard built in Next.js, with conditional forms and dropdowns to make rule creation easy.
The Rule Engine (How Redirection Works)
Here’s the fun part.
When someone visits a Time Port link, Vercel Edge Middleware intercepts the request. The middleware fetches:
The rule list from Supabase (via Edge Function)
The user's current region via
req.geo
The current time and day via server-side JS
Example logic (pseudo-code):
if (geo === 'IN' && isWeekend()) {
return redirectTo('/india-weekend-offer');
} else if (isMorning() && geo === 'US') {
return redirectTo('/us-morning-landing');
} else {
return redirectTo(defaultDestination);
}
Rules are prioritized by order of creation (or priority weights in future versions).
Click Tracking & Analytics
I implemented basic click tracking using Supabase Edge Functions:
When a redirect happens, the function logs the timestamp, region, and matched rule
Future updates will include dashboards, graphs, and CTR breakdowns
No client-side JS. All tracking is handled server-side to keep links blazing fast and privacy-respecting.
Geo Detection Challenges
Getting region detection to work quickly and accurately was tough:
req.geo
works great on Vercel Edge but only gives country-level granularityI experimented with IP-based services, but they added latency and privacy concerns
For now, I stuck with fast, country-level routing. Future versions might add city-level or language-based rules.
What I Learned
Edge-first design forces you to rethink logic flow — and it's worth it
Rule evaluation needs to be both predictable and performant
Supabase Edge Functions are powerful but require careful error handling at scale
Developer onboarding should be instant — I used Clerk to keep auth frictionless
What’s Next
Time Port is live now and already getting love from indie hackers, creators, and early adopters:
Live App 👉 https://timeport.nrbuilt.live
Product Hunt 👉 https://www.producthunt.com/products/time-port
Build Challenge on YouTube 👉 https://www.youtube.com/@amanjanwani1486
Coming soon:
Detailed analytics dashboards
A/B testing engine
Team accounts & sharing
Rule presets for common use cases
Final Thoughts
This project started as a simple “what if...” and turned into a shipping masterclass. Time Port is more than just a smart link — it’s a step toward content that adapts in real time.
If you’ve ever felt limited by one static link, I hope Time Port makes your life a little smarter.
Thanks for reading 🙌
— Aman
Subscribe to my newsletter
Read articles from Aman janwani directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Aman janwani
Aman janwani
I am a web developer, student, and writer.