- Product
- Kyoto Daily Tours
- Sector
- Private tours & travel operations
- Our role
- Legacy modernisation, data migration and full-stack development
- Status
- Platform complete; launch planned for 2027 after the tourism season
- 2015Original CodeIgniter platform designed, developed and launched by C-Tech Solutions
- 2Languages, with English source content automatically translated to editable Spanish
- 57Connected Prisma models covering content, commerce and operations
- 32Permission-controlled administration modules managed from one system
Explore the completed pre-launch platform
Review the new customer experience while the client adds the remaining content and prepares for launch after the current season.
Visit Kyoto Daily ToursOpens in a new tab
Planning a legacy rebuild?
We can walk through the migration strategy, operational model and staged path from an established system to a new platform.
Book a walkthroughAbout 30 minutes, no obligation
A long-running product, not a blank-slate rewrite
We designed and developed the original CodeIgniter application for Kyoto Daily Tours in 2015, then added features as the business evolved. Its value is not only in the interface: years of tour definitions, booking history, customer communication, content and operating rules sit behind it.
The replacement therefore had to preserve business continuity while changing the technical foundation. We mapped the existing SQL records into a relational Prisma model, rebuilt the public pages in Next.js and reshaped the private workflows around how administrators and guides actually use the system. Development is complete, and the client is now adding content around its day-to-day workload. Launch is planned for 2027 after the tourism season, when the client team is no longer occupied with its busiest operating period.
A bilingual introduction to the business
The team adds source content in English and the system automatically creates the Spanish version through the Google Cloud Translation API. Both languages share one visual and data model, and administrators can still review and edit the generated Spanish content whenever local nuance or a business-specific phrase needs refinement.
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
From tour discovery to a confirmed reservation
Structured tour data flows from browse and detail pages into a reservation-fee journey, so the public experience and back-office record describe the same product.
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
Planning help and durable travel content
Visitors who are not ready to select a packaged tour can request a tailored itinerary, read local guidance and resolve common questions without leaving the platform.
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
Migration means preserving relationships, not copying tables
The new data layer models the business behind each page: tours connect to languages, cities, types, places, itineraries, pricing, media and add-ons; bookings connect customers, payments, notes, promotions and guide assignments; publishing connects pages, navigation, FAQs, reviews, awards and articles.
That structure allows existing SQL data to move forward without flattening the relationships that make it useful. Migration tooling can reconcile old identifiers, normalise records and verify counts while the application presents a cleaner operational model to the team.
The operations product behind the public website
The custom administration system makes the entire business manageable from one place. Its 32 permission-controlled modules cover tours, prices and itineraries; bookings, payments and guides; promotions and business rules; reporting and traffic; website pages, navigation and editorial content; customer communication; on-site SEO and generated JSON-LD structured data. The dashboard then surfaces revenue, balances, new bookings, enquiries, expiring promotions and work requiring attention instead of reducing the back office to a list of database records.
— view the complete, scrollable screenshot
The tour catalogue as structured operational data
Tours are not treated as decorative pages. The CMS connects bilingual copy to cities, places, itineraries, add-ons, prices, imagery and the records used during booking.
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
Bookings, calendars and guide coordination
A reservation becomes operational work. The back office provides table, calendar and detail views, then connects the booking with the guide responsible for delivery.
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
Commercial controls and reporting
Promotion management and business reporting sit beside bookings, giving operators a clearer view of revenue, demand and tour performance.
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
Governance for a system used by a team
Module permissions, account administration and activity records make responsibility visible as more people work inside the platform.
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
Publishing and site configuration in one place
The custom CMS also manages editorial content, navigation, reusable pages, email templates and site-wide settings, reducing reliance on code changes for everyday publishing.
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
A focused workspace for guides
Guides receive a smaller, role-appropriate portal that surfaces their own assignments without exposing the full administration system.
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
— view the complete, scrollable screenshot
The screenshots show the development environment and are included to demonstrate platform structure and workflow.
Engineering decisions worth explaining
Migrate the business graph
Legacy identifiers and connected records are preserved across tours, bookings, guides, customers, prices and content so the new system inherits operational meaning, not just raw rows.
Translate automatically without removing editorial control
Administrators enter content in English, and Google Cloud Translation automatically prepares the Spanish fields. The generated translation remains editable in the CMS, keeping the workflow fast without preventing human refinement.
Treat payments as server-verified events
PayPal and Square flows verify transaction state on the server and use stable booking references so a repeated callback cannot create duplicate financial effects.
Separate responsibility by role
Module permissions constrain the administration interface, while guides receive a focused portal for their own bookings, calendar and assignment details.
Cache public content deliberately
Tagged caching, incremental regeneration and sitemap warming keep public pages responsive while allowing changed tours and content to be refreshed precisely.
Build accountability into operations
Audit records, traffic monitoring, session controls and dashboard warnings give administrators evidence when they need to understand a change or follow up on risk.
Built with
Application
- Next.js App Router
- React
- TypeScript
- Tailwind CSS
- shadcn/ui
- Server Components
- Incremental Static Regeneration
Data & migration
- Prisma ORM
- MySQL / MariaDB
- CodeIgniter data migration
- Relational tour and booking model
- Migration reconciliation tooling
Operations & integrations
- next-intl
- Google Cloud Translation API
- FullCalendar
- TipTap
- PayPal
- Square
- Nodemailer
- Sharp image processing
Related services: Application Modernisation, Custom Web Applications, Business Websites, Technical Support & Maintenance.
Need to modernise a platform the business already depends on?
We can map the existing workflows, migrate the data and replace the technology in stages without treating years of operational knowledge as disposable.
