This commit introduces a 'Contact Sales' modal on the web development page, allowing users to inquire about specific service plans.
- The pricing plan buttons now trigger this modal, pre-filled with the selected plan's details.
- Users can add custom remarks to their inquiry.
- On submission, a pre-formatted message is generated and opened in WhatsApp using a new `useWhatsAppMsgSender` composable.
- Adds `NUXT_PUBLIC_WHATSAPP_NUMBER` to the runtime configuration.
- Refactors content validation by introducing Zod schemas for `PricingPlan` and `Button` props to improve type safety.
- Adds new i18n keys for the modal interface and message templates.
This commit introduces a comprehensive engineering audit report for the Tootaio Studio project. The report is structured into documents covering architecture, code quality, performance, security, CI/CD, and
observability. It also includes a phased improvement roadmap and a set of `.patch` files to apply immediate fixes for content schemas, package scripts, and CI configuration.
This commit introduces a new page at `/webDev` to display web development services and pricing plans.
To support this, a new reusable composable `useLocalizedCollection` has been created to simplify fetching localized content from Nuxt
Content. The index page has been refactored to use this new composable.
- Adds `webDev.vue` page and corresponding `webDev.yml` content files for EN and ZH.
- Defines a Zod schema in `content.config.ts` for the new content type.
- Updates the navigation link to point to the new page.
Replaced the static navigation with a dynamic, internationalized dropdown menu powered by a new `useNavLinks` composable. The
navigation items are now sourced from i18n files. The featured project cards on the homepage have been refactored to use the
`<UPageCard>` component, and the content schema is updated with `spotlight` and `highlight` options for enhanced display.
This commit refactors the index page to source its content from @nuxt/content, replacing the previous implementation that used i18n
JSON files and hardcoded data within the component.
Key changes:
- Introduced `content.config.ts` to define collections and Zod schemas for type-safe content.
- Moved page content into localized YAML files (`content/en-US/index.yml` and `content/zh-CN/index.yml`).
- Updated `app/pages/index.vue` to fetch data dynamically using `useAsyncData` and `queryCollection`.
- Removed redundant content from i18n JSON files and the Vue component script.
This change decouples content from presentation, improves maintainability, and centralizes content management.
This commit introduces the foundational content and navigation for the website's homepage.
- Adds a new navigation menu to the default layout, linking to Services, Projects, and Insights.
- Creates YAML content files for the homepage in both English (en) and Chinese (zh-CN).
- Populates the content with key sections including capabilities, featured projects, and tech stack.
This commit introduces a complete overhaul of the homepage, rebuilding it from the ground up with Nuxt UI and full
internationalization support. The new design better showcases the studio's capabilities and projects.
- Re-architected the index page with multiple new sections: Capabilities, Featured Projects, Tech Stack, and Why Choose Us.
- Implemented full i18n for English (en-US) and Chinese (zh-CN) across all new content.
- Centralized the page structure into a `default.vue` layout with a global header (including color mode and locale selectors) and
footer.
- Replaced placeholder logos with a dynamic `UMarquee` of technology icons using Iconify.
This commit integrates the `@nuxtjs/seo` module to establish a baseline for search engine optimization.
Key changes include:
- Installation and configuration of the `@nuxtjs/seo` module.
- Definition of default meta tags for title, description, keywords, Open Graph, and Twitter cards.
- Addition of a default Open Graph image.
- Renaming of `robots.txt` to `_robots.txt` to align with the module's conventions for static file handling.
This commit introduces internationalization (i18n) support by integrating the `@nuxtjs/i18n` module. It configures English (en) and
Simplified Chinese (zh-CN) locales, adds a language selector to the header, and internationalizes the index page content using
translation files.