Photo of Samuel Teixeira
Samuel Teixeira
FPP
Software Engineer (Frontend - Nuxt/Vue)
Apr 2025 → May 2025

TSW.ai - The Student World AI Landing Page in Nuxt 3

Owned the implementation of a Nuxt 3 + Tailwind landing page (Hero, Features, and Chat CTA), structuring reusable sections and delivering a static site ready for AWS (S3/CloudFront) deployment.

Tech Stack

Nuxt 3
Vue 3
Tailwind CSS
pnpm
AWS S3
CloudFront

Key Metrics

14 commits (~82% of the repo in the slice)
7 active days
~10-day delivery (Apr 25, 2025 → May 5, 2025)

Summary

  • Delivery: a static marketing landing page for The Student World AI (TSW.ai) featuring Hero, Features, and a Chat CTA, plus a minimal UI kit to standardize layout and buttons.
  • How I unlocked speed: organized the UI into reusable sections and components (layout + UI) to iterate on design/copy without losing consistency.
  • Practical effect: a lightweight, backend-free page focused on conversion (CTA) and ready for static hosting.

In ~10 days, I delivered most of the landing’s frontend work (14 commits, ~82% of the repo in the extracted slice), prioritizing visual consistency and fast turnaround.

Context

  • Product and users: a marketing site to present TSW.ai and route users to the main app via CTA.
  • Why it mattered: it needed to be simple, stable, and quick to publish/update (copy and visuals) to support acquisition.
  • Architecture choice: intentionally static scope (SSR disabled) to reduce operational complexity in the short term.

Key Challenges

  • Turning “just a landing page” into a clean, maintainable structure (sections/components/styles) without overengineering.
  • Ensuring visual consistency (typography, buttons, spacing) with Tailwind and global styles.
  • Keeping it stateless: no API integrations, only links/CTAs and predictable performance.

What I did

  • Main page and sections: implemented the core structure and key sections (Hero, Features, Chat/CTA).
  • Componentization for rapid iteration: built reusable UI/layout components to speed up copy/design changes without visual regressions.
  • External links and navigation: wired CTAs and ecosystem links (main app, company site, social channels) consistently.
  • Project setup: Nuxt 3 + Tailwind + pnpm with static build output (SSR disabled).

Decisions & Trade-offs

  • Static site (SSR off) > SSR: simplest path for an acquisition landing page (lower complexity, more predictable deploy).
    Trade-off: gives up some SSR-specific SEO/render strategies, but the scope didn’t require them at the time.
  • Small reusable components > monolithic page: sections + a minimal UI kit to keep speed and consistency.
    Trade-off: more structure/files, but less rework and easier maintenance.
  • Script-based deploy (team) > CI pipeline: static publishing to S3/CloudFront via a scripted process.
    Trade-off: works, but relies on manual execution and local credentials.

Results

  • Measured (engineering): 14 commits (~82% of the repo in the slice), 7 active days, ~10-day delivery (Apr 25, 2025 → May 5, 2025).
  • Concrete technical proxies:
    • Landing page with three main sections (Hero, Features, Chat/CTA).
    • Minimal UI/layout kit for consistent buttons, modals, and structure.
    • CTA/link integration to the main app and ecosystem channels.
  • Operational impact: a backend-free foundation for fast copy/visual iteration, ready for static AWS hosting (via the team’s process).

Note: no automated tests or observability were configured in the analyzed slice.

What I’d do differently

  • Add minimal UI tests for critical components (Header/Footer/Modal/CTA) to reduce visual regressions.
  • Move manual deploy to CI (e.g., GitHub Actions) with preview/staging and automated invalidation.
  • Lightweight observability: CTA events and error tracking to measure conversion and catch issues early.