I have a bad habit when planning international travel.
I open one tab.
Then another.
Then another.
Before I know it, I'm looking at an embassy website, an airport guide, a Reddit thread, a SIM provider, a hotel site, a packing list, a currency converter, a random travel blog from 2022, and somehow a YouTube video that has nothing to do with the original question.
And I'm still not sure if I've forgotten something.
The funny thing is that booking a trip has become incredibly easy.
Preparing for one is still surprisingly fragmented.
That's where the idea for Tripora came from.
Not another itinerary planner.
Not another "10 best places to visit" website.
Something more like:
I'm going to this country. What do I need to know before I go?
The first version was much smaller
The original idea was basically a checklist.
You enter:
From: Sri Lanka
To: Belarus
Purpose: Study
Duration: 1 year
And instead of searching for everything separately, you get one place containing the things that actually matter.
Visa.
Documents.
Airport.
Accommodation.
SIM.
Transport.
Packing.
Money.
Arrival.
The more I thought about it, the more I realised that a simple checklist wasn't enough.
A person going to Belarus for university needs completely different information from someone spending 10 days in Thailand.
So the system needed to understand the trip, not just the destination.
That became the foundation.
A trip isn't just a destination
The same country can mean completely different preparation depending on who's travelling.
For example:
Sri Lanka
↓
Germany
↓
Student
↓
Long-term
is completely different from:
Sri Lanka
↓
Germany
↓
Tourist
↓
10 days
So Tripora starts by asking a few things:
- Where are you travelling from?
- Where are you going?
- What's your nationality?
- Why are you going?
- When are you going?
- How long are you staying?
Those inputs become the trip profile.
Then the system uses that profile to decide what information is relevant.
197 countries later...
This is where the project got slightly out of hand.
The current database covers 197 countries.
And each country isn't just a name and a description.
There can be information about:
- Visa requirements
- Processing times
- Required documents
- Airports
- Airport transfers
- Transport
- SIM/eSIM providers
- Accommodation
- Costs
- Safety
- Emergency contacts
- Local etiquette
- Language
- Currency
- Useful official links
- Arrival information
- Packing rules
At some point I stopped thinking of it as a collection of country pages.
It's more like a travel knowledge base.
The interesting engineering problem wasn't the UI
The UI was actually the easy part.
The harder question was:
How do you structure travel information so that it can work across thousands of different trip combinations?
I didn't want this:
if Japan:
show Japan stuff
if Germany:
show Germany stuff
if Australia:
show Australia stuff
That would become painful very quickly.
Instead, the data is separated into different concepts.
Something roughly like:
Country
├── Airports
├── Visa Requirements
├── Transport
├── Accommodation
├── Internet Providers
├── Emergency Contacts
├── Arrival Information
├── Useful Links
└── Packing Rules
Then a trip is another layer:
Trip
├── Origin
├── Destination
├── Nationality
├── Purpose
├── Dates
└── Duration
And the application combines those things.
So:
Trip Profile
↓
Destination Data
↓
Relevant Rules
↓
Preparation Plan
That's what allows the same system to work for both a short holiday and a year-long move.
Visa information was where things got serious
Travel information is one thing.
Visa information is another.
It's the kind of information where being "mostly correct" isn't good enough.
I didn't want to create pages saying:
"You might need a visa. Check the embassy."
That's technically safe, but not particularly useful.
The system can instead organise information around the traveller's nationality and destination.
Where available, information can include:
- Visa type
- Processing time
- Fees
- Required documents
- Application information
- Official sources
- Verification date
And important information is associated with a source.
For example:
Visa requirement
Source:
Official government website
Last verified:
July 2026
That last field matters.
Because a database entry shouldn't quietly become "truth forever".
Visa rules change.
Fees change.
Processing times change.
So one of the principles behind the project is:
If information can change, it should have a source and a verification date.
And for anything involving immigration or entry requirements, the official authority remains the final source of truth.
Then came the Visa Timeline
Knowing:
"Processing takes approximately 30 days"
is useful.
But it's still not quite the same as:
"What should I be doing 90 days before my flight?"
So the visa information became a timeline.
Something like:
T-90
Check requirements
T-75
Gather documents
T-60
Apply
T-30
Check application progress
T-14
Review travel documents
T-7
Final checks
The actual dates depend on the information available for the destination and nationality.
The point isn't to predict the future.
It's to turn a static requirement into an actionable sequence.
Packing turned out to be its own little system
I also didn't want a packing list that just says:
Passport
Toothbrush
Clothes
Charger
because that's technically a packing list for literally every trip ever.
Packing depends on context.
A winter trip to Japan is different from a summer trip to Thailand.
Moving abroad for university is different from a five-day holiday.
So Tripora currently has:
72 packing items
and
74 country-specific rules
The rules can take into account things such as:
- Destination
- Trip type
- Duration
- Climate
- Country-specific considerations
The result is a checklist that changes with the trip.
And then you can actually tick everything off.
Simple feature, but surprisingly useful.
The T-90 problem
There's another problem with checklists.
A list of 30 things doesn't tell you when to do them.
So there is also a pre-trip timeline.
Instead of:
☐ Visa
☐ Accommodation
☐ Packing
☐ SIM
☐ Documents
☐ Insurance
you get something closer to:
90+ days
Visa research
Important documents
60 days
Visa application
Accommodation
30 days
Travel arrangements
Insurance
SIM research
7 days
Packing
Document backup
Airport preparation
Departure day
Passport
Boarding pass
Money
Phone
The whole idea is to make the preparation feel less like a giant task dumped on you the night before.
The airport is part of the trip too
A flight booking tells you how to get there.
It doesn't necessarily tell you what happens when you arrive.
So destination information also covers things like:
- Airport terminals
- Getting into the city
- Public transport
- Taxi options
- Wi-Fi
- Currency exchange
- Lounge information
- Useful airport information
And then there's the arrival guide.
Because arriving somewhere you've never been before at 11 PM with no mobile data is a very different experience from looking at the same destination on Google Maps from your bedroom.
The SIM card problem
This is one of those tiny things that can completely ruin the first hour of a trip.
You arrive.
Your normal SIM doesn't work.
You don't know which local provider is good.
You don't know whether the airport sells SIMs.
You don't know whether you should use an eSIM.
So destination guides include:
- Local providers
- SIM availability
- eSIM availability
- Where to buy
- Data plan information
- Provider websites
Again, this is information that changes, so it needs to be maintained rather than treated as permanent.
What about the first few days?
For longer trips, especially study, work and moving abroad, the journey doesn't really end when you reach the hotel.
There are still things to figure out.
Where's the university?
Where do I get essentials?
How does local transport work?
What local formalities might I need to deal with?
Where can I get connected?
So there are also first-days and arrival guides.
The goal is basically:
Don't just help me get there. Help me know what happens next.
Comparing destinations
Then another use case appeared.
Sometimes you're not sure where you're going yet.
Maybe you're comparing:
Japan
South Korea
Thailand
or:
Germany
Netherlands
Australia
Instead of researching each destination separately, Tripora can compare things such as:
- Visa requirements
- Costs
- Weather
- Safety
- General preparation
- Requirements
It doesn't try to decide for you.
It just makes the research less painful.
There is also a human side to the data
Official websites are important.
But official websites don't tell you everything.
A government website can tell you the official visa process.
It usually can't tell you:
"I applied from the US and got my passport back in five days."
That's why Tripora also has Visa Timeline Reports.
Travellers can share their actual experiences.
There are also community posts and comments for destination-specific questions and tips.
The idea is to keep the two types of information separate:
Official information tells you the rules.
Community information tells you what someone's experience was like.
One shouldn't pretend to replace the other.
A few features that came naturally from the same idea
Once the core trip system existed, a few other things made sense:
Trip sharing
Share a complete trip plan with someone you're travelling with.
PDF export
Save the plan as a PDF for offline use.
PWA
Install Tripora on your phone and keep important information accessible while travelling.
Readiness score
Instead of staring at a huge checklist, see how prepared you are.
For example:
76% ready
3 important things remaining
The score is based on actual completed preparation tasks rather than being a random progress number.
The tech stack
The current stack is:
Next.js 16
TypeScript
Tailwind CSS
shadcn/ui
Supabase
PostgreSQL
Vercel
PWA / Service Worker
The application is server-rendered where it makes sense, with API routes handling data operations.
Supabase handles the PostgreSQL database and authentication.
Vercel handles deployment.
Nothing particularly exotic.
And honestly, I think that's a good thing.
The interesting part isn't using 25 technologies.
It's figuring out how to turn messy real-world information into something that is actually useful.
Why I didn't make it an AI chatbot
This was a deliberate decision.
It would be very easy to put a big box on the homepage saying:
"Ask AI anything about your trip."
But imagine asking:
"Do I need a visa?"
and getting a confidently wrong answer.
That's not something I wanted to build around.
So the current system is based more on:
Curated data
+
Sources
+
Rules
+
Trip context
↓
Personalised preparation
rather than:
Question
↓
LLM
↓
Hopefully correct answer
AI could still become useful later.
But I'd rather have AI sit on top of verified information than have it become the source of truth.
There are still a lot of things I'd like to improve
Some of the next problems I'd like to tackle are:
- Live flight information
- Weather-based preparation
- Better currency information
- eSIM comparisons
- More community reports
- Document organisation
- Notifications
- Better offline functionality
- More detailed country-to-country preparation
- Native mobile apps
- An AI assistant grounded in Tripora's own verified data
- Daily update about each country
But I don't want to turn it into a giant feature list just for the sake of it.
The basic idea is still the same:
You shouldn't need to become a travel researcher just to travel somewhere.
There are already plenty of websites that help you decide where to go and what to do when you get there.
The less exciting — but arguably more important — part is everything you have to figure out before you leave.
That's the problem I'm interested in.
If you travel, I'm curious about something
What's the one thing you always end up searching for before an international trip?
Not necessarily something you think Tripora needs.
Just the thing that makes you think:
"Why is this information so damn difficult to find?"
That's the kind of problem I'm interested in solving next.
🌍 Tripora







Top comments (0)