AI-Assisted Development, OpenAI Codex, UI/UX Design, Frontend Development, Full-Stack Web Development

A practical experiment in recreating a premium UI/UX design from a PDF—and what it reveals about building the complete system behind it.

From a PDF Design to a Functional Landing Page: Exploring AI-Assisted Web Development with Codex

A practical experiment in recreating a premium UI/UX design from a PDF—and what it reveals about building the complete system behind it.

Introduction

Recently, I came across an Upwork project that caught my attention.

The project wasn't simply asking for a static landing page. The requirements described a broader system involving a functional website, content management, and a more complete digital experience.

Before deciding how I would approach the entire project, I wanted to answer a simpler question:

How quickly can I take the provided design reference and turn it into a polished, responsive frontend using modern AI-assisted development tools?

So I decided to run a small experiment.

I downloaded the design attachment provided with the project, analyzed the visual structure, and used OpenAI Codex to recreate the UI/UX as a standalone landing page.

The goal wasn't to build the complete system yet.

This was Part 1: the UI/UX experiment.

The next stage will be to explore the architecture and implementation of the complete system described in the project requirements.


The Starting Point: A PDF, Not a Figma File

The design reference I had available was a PDF containing screenshots of the landing page.

There was:

  • No original HTML
  • No CSS
  • No Figma design system
  • No original image assets
  • No component library
  • No source code

That creates an interesting frontend challenge.

Normally, if I'm given a Figma design, I can inspect:

  • Exact dimensions
  • Typography
  • Colors
  • Spacing
  • Grid systems
  • Component states
  • Assets
  • Responsive layouts

With a screenshot-based PDF, most of that information has to be inferred.

So the challenge became:

Can an AI coding agent understand a visual reference and turn it into a maintainable frontend implementation?


Step 1: Understanding the Design

The first thing I did was analyze the design as a UI/UX engineer rather than immediately writing code.

The page uses a very specific visual language:

  • Editorial serif typography
  • Warm neutral colors
  • Cream and taupe backgrounds
  • Dark brown/black hero section
  • Large whitespace
  • Minimal navigation
  • Hand-applied material aesthetics
  • Asymmetric editorial layouts
  • Subtle visual transitions

The overall design feels more like a premium architectural or interior-design brand than a typical corporate website.

The important part was recognizing that the design isn't simply about colors and typography.

The material itself is part of the brand.

The website needs to communicate:

Texture Craftsmanship Imperfection Warmth Architecture Premium finishes

That became one of the main considerations during the implementation.


Step 2: Asking Codex to Recreate the Interface

I created a detailed development prompt for Codex, asking it to act as a senior UI/UX engineer and frontend architect.

The instructions emphasized:

  • Don't redesign the page
  • Treat the PDF as the source of truth
  • Recreate the layout as accurately as possible
  • Use semantic HTML
  • Use modern CSS
  • Make it responsive
  • Create reusable components
  • Use minimal JavaScript
  • Implement animations carefully
  • Maintain accessibility
  • Optimize for performance

I deliberately asked Codex to work iteratively rather than trying to generate everything in one pass.

The basic architecture was:

index.html

assets/
├── css/
│   ├── variables.css
│   ├── style.css
│   ├── layout.css
│   ├── sections.css
│   ├── components.css
│   └── responsive.css
│
├── js/
│   ├── app.js
│   ├── navigation.js
│   ├── animations.js
│   └── accordion.js
│
└── images/

This gave the AI agent a clear boundary between:

  • Design tokens
  • Layout
  • Components
  • Sections
  • Responsive behavior
  • JavaScript functionality

Step 3: The First Result

The first version successfully recreated the overall structure.

The page contained sections such as:

  • Hero
  • Brand introduction
  • Hand-applied finishes
  • Surface options
  • Benefits
  • Studio
  • Six-step process
  • Testimonials
  • Selected work
  • Educational content
  • FAQ
  • Contact
  • Footer

The first version was visually promising.

The color palette was right.

The typography direction was right.

The section hierarchy was right.

But there was one major problem.

The website felt too small inside very large sections.

The content was technically there, but the visual scale was not quite right.

It looked more like a carefully constructed prototype than a finished premium website.


Step 4: The Second Refinement Pass

Instead of rebuilding everything, I asked Codex to perform a visual QA and refinement pass.

The goal was to compare the implementation against the original reference again and fix:

  • Typography scale
  • Section width
  • Container width
  • Card dimensions
  • Image proportions
  • Horizontal spacing
  • Vertical spacing
  • Navigation scale
  • Portfolio scale
  • Contact form size

The second iteration introduced a more deliberate visual scaling system.

For example, the CSS started using larger fluid typography:

.hero-title {
    font-size: clamp(54px, 6.5vw, 96px);
}

.section-title {
    font-size: clamp(43px, 4.8vw, 68px);
}

The layout widths were also expanded to make better use of larger desktop screens.

This was a good example of why I prefer iterative AI-assisted development.

The first AI-generated implementation wasn't perfect.

But instead of throwing it away, I could identify the problems and give the agent a more precise instruction set.


The Result

The final UI experiment produced a complete, responsive landing page with:

  • Editorial typography
  • Responsive layouts
  • Sticky navigation
  • Scroll-based header transitions
  • Mobile navigation
  • FAQ accordion
  • Finish selection interface
  • Portfolio layout
  • Contact section
  • CSS-generated material textures
  • Responsive breakpoints
  • Lightweight JavaScript

The project is available publicly on GitHub:

View the Umami Walls Landing Page GitHub Repository

The experimental deployment is also available here:

View the Umami Walls UI/UX Experiment


A Few Things I Learned from the Experiment

The experiment also revealed an important distinction between building a visual prototype and building a production system.

The frontend looks convincing, but some elements are still prototypes.

For example:

Finish filtering

The interface has filter buttons, but the initial prototype only changes the active state.

A production implementation should actually filter the finish collection.

Contact form

The prototype demonstrates the UI and interaction, but a production website needs:

  • Validation
  • API integration
  • Email notification
  • Database storage
  • Spam protection
  • Error handling
  • Success states

Real imagery

For a premium wall-finishing company, CSS-generated textures are useful for prototyping.

But the final website should use real photography of:

  • Plaster finishes
  • Interior projects
  • Material close-ups
  • Finished walls
  • Application processes

That would significantly improve the visual storytelling.

Real business content

The final system should also replace any placeholder or experimental content with verified business information, real testimonials, real locations, and actual project data.


What I Think About AI-Assisted UI Development

This experiment reinforced something I've been thinking about for a while.

AI coding agents are becoming extremely effective at translating a visual concept into working frontend code.

But the quality of the final result depends heavily on the developer's ability to:

  • Analyze the design
  • Understand UX
  • Identify visual inconsistencies
  • Give precise feedback
  • Review generated code
  • Understand architecture
  • Know what should and shouldn't be automated

AI can generate the code.

But someone still needs to know what good code and good UX actually look like.

In this experiment, the first version was good.

The second version was better.

The difference came from the refinement process.


Is the Complete System Difficult to Build?

This is where the experiment becomes particularly interesting for me.

The landing page itself is not the difficult part.

The UI/UX is a relatively straightforward frontend implementation once the design language is understood.

The more interesting challenge is building the system behind the website.

Based on the requirements of the original Upwork project, I see the larger solution as something closer to:

                    Admin / CMS
                        │
                        ▼
              Content Management
                        │
        ┌───────────────┼───────────────┐
        ▼               ▼               ▼
     Finishes        Projects         Articles
        │               │               │
        └───────────────┼───────────────┘
                        ▼
                   Website API
                        │
                        ▼
                Public Frontend
                        │
             ┌──────────┴──────────┐
             ▼                     ▼
         Contact                  SEO
         Leads                 Metadata
             │                     │
             └──────────┬──────────┘
                        ▼
                  Notifications

Depending on the final requirements, the system could include:

  • CMS
  • Authentication
  • Admin dashboard
  • Finish management
  • Project management
  • Gallery management
  • Blog/content management
  • FAQ management
  • Lead management
  • Contact forms
  • Email notifications
  • SEO management
  • Image processing
  • Search
  • Filtering
  • API layer
  • Analytics
  • Deployment infrastructure

That is where my experience as a full-stack PHP/Laravel developer becomes much more relevant.


From UI Experiment to Full System

This UI experiment is therefore only Part 1.

The next step is to take the design and build the actual system behind it.

My preferred approach would likely be something along the lines of:

Frontend
    │
    │
    ▼
Laravel Application
    │
    ├── CMS
    ├── Admin Panel
    ├── REST API
    ├── Authentication
    ├── Content Management
    ├── Media Management
    ├── SEO
    ├── Lead Management
    └── Notifications
             │
             ▼
          Database

The frontend could either remain a lightweight HTML/CSS/JavaScript implementation or evolve into a more component-driven architecture depending on the requirements.

For a project like this, I would focus heavily on content architecture.

The important question isn't only:

"How do we build this page?"

It's:

"How do we make it possible for the business owner to manage this website without needing a developer every time they want to add a finish, update a project, publish an article, or change SEO metadata?"

That's where a proper CMS architecture becomes important.


My Takeaway as a Freelancer

After completing this UI/UX experiment, my conclusion is quite simple:

The frontend design is not the difficult part for me.

I can analyze the visual reference, build the responsive interface, reproduce the design system, and refine the implementation with AI-assisted development tools.

The more interesting part—and the part where I believe I can bring significantly more value—is building the complete system behind the interface.

The UI is just the visible layer.

The real product is the combination of:

UI + CMS + Content Architecture + Media Management + SEO + Lead Generation + Administration + Automation

This experiment gave me a practical way to validate the frontend direction before moving into the larger architecture.

And that's exactly where I want to go next.

Part 1 was about recreating the UI/UX.

Part 2 will be about building the actual system described in the project requirements.

That's where the real engineering challenge begins.


Project Links

Next: From AI-generated UI to a complete CMS-driven website: designing the architecture, database, admin panel, media system, and content workflow.

Share:

Get new posts in your inbox

No spam. One short email per new article — practical PHP, Laravel, devops, and AI-assisted workflows.

Comments

Powered by GitHub Discussions via Giscus. A free GitHub account is required.