1 of 40

David + Dylan

Lunch + Learn

  1. beg llm to �do a frontend
  2. ???
  3. profit

2 of 40

Three workflows to consider…

Workflow #1

Mockup-driven: Make mockups either by-hand or using image generation, and then pass the mockups to an AI agent to build the application.

Workflow #2

Full-service AI system: Use a FE-specific AI tool like v0 or Lovable to design, develop, and preview your app.

Workflow #3

AI-assisted development: Use AI agents like Cursor or Claude Code to design and develop your app, with your assistance.

3 of 40

Workflow #1 was a bust, unless you’re already a Figma expert

4 of 40

Image generators can do an okay job with mockups…

5 of 40

…and are arguably a bit more creative than LLM coding agents…

6 of 40

Workflow #1 was a bust, unless you’re already a Figma expert

But the image generators are very bad at tweaking a design in response to feedback…

…and the LLM coding agents are very bad at turning an image into an application.

7 of 40

Mockup vs Cursor’s version

8 of 40

Mockup vs Figma AI’s version

https://www.figma.com/make/JQVWfmLfSFJgqf1GA1IUK3/Website-Creation?node-id=0-1&p=f

9 of 40

What are the pros and cons of Workflow #2 (using FE-specific AI tools) vs Workflow #3 (standard AI coding flow)?

To explore this, we tested the same prompts using different approaches.

10 of 40

What is v0?

v0 is an full-service AI app-building tool. There are MANY of these, but v0 is owned by Vercel, so we could get a paid account without bugging Nick for a credit card.

STRUCTURE

  • Everything is in a PROJECT
    • A v0 Project can be linked to exactly 1 Vercel Project and exactly 1 GitHub repo
  • Within a Project, you have Chats
    • A single Chat can be linked to exactly 1 GitHub branch
    • If you fork to a new branch, it forks the Chat as well
  • After every message you send in a Chat, v0 writes code and creates a new Version
    • If you have “Auto-Commit” on, each Version will be committed and pushed to the branch

PRICING

  • $30/mo per user
  • 30 credits/mo per user
  • ~1 credit for initial prompt and a few follow-ups for a mid-sized app

11 of 40

The v0 workflow

  1. (if needed) Add rules, sources, and integrations (e.g. databases) to your project.�
  2. Enter your prompt.�
  3. View the preview, and iterate as needed.�
  4. Sync to GitHub + Vercel to deploy.

12 of 40

The Cursor workflow

  • Stand up a repo using your preferred template:

npm vite create@latest my-app && cd my-app�

pnpm i @radix-ui/themes @tailwindcss/vite tailwindcss @faker-js/faker react-router-dom recharts react-icons��// add tailwind config to vite�// add radix ui component css

  • Give your prompt to Cursor agent.�
  • Deploy locally or in Vercel.�
  • Iterate, as needed.

13 of 40

FTM2J Prompt

Please create a website for viewing data about public companies. This tool is intended to be similar to a Refinitiv or Bloomberg terminal, but lighter weight and focused on a small subset of features:�

  • Seeing a tree of subsidiaries of a company, and finding the public company at the root of a tree by searching a subsidiary.
  • Seeing a list of companies that own shares in a company, and the size of each of their stakes.
  • Seeing a list of companies that own commercial debt in a company, and the size and nature of their loans.�

This website should be very simple. It does not need to have a user profile or login or any fancy customization features.�

Please build the website with five pages:�

  • Landing Page, where you can search for a public company by name, ticker, or by searching for a subsidiary.
  • Company Overview Page, where you can see summary info about a specific company, as well as previews of subsidiaries, shareholders, and debt-holders.
  • Company Tree Page, where you can see the tree of subsidiaries beneath a company, using a tab-based approach to showing the trees with the ability to click to expand and collapse sub-trees.
  • Shareholders Page, where you can see a list of shareholders and the size of their stakes.
  • Debt Page, where you can see a list of debt-holders and the size and nature of the debt.�

Please use ultra-modern, sleek, and clean design principles. Follow all best practices for modern web design. Use accessibility best practices in laying out text and selecting colors.

14 of 40

Cursor - claude

15 of 40

Cursor - chatgpt

16 of 40

Cursor - ChatGPT Codex

17 of 40

18 of 40

Can LLM coding tools implement design styles?

19 of 40

Can LLM coding tools implement design styles?

Swiss

20 of 40

Can LLM coding tools implement design styles?

Glassmorphism

21 of 40

Can LLM coding tools implement design styles?

Contemporary

22 of 40

Can LLM coding tools implement design styles?

Swiss

Update the styling in the application to follow Minimalist, modernist (swiss) design principles

Glass

Update the styling in the application to follow Glassmorphism design principles

Contemporary

Update the styling in the application to follow friendly, flat, contemporary and illustrative web design

23 of 40

Swiss

24 of 40

Swiss

25 of 40

Glass

26 of 40

Glass

27 of 40

Contemporary

28 of 40

Contemporary

29 of 40

Ok. So what?

30 of 40

Key Info:

Design / integration�phases

GitHub / deploy

Backend?

Notes

Blank slate to MVP. Can be used as production app

Deploy within Lovable ecosystem. GH integration for premium users.

External dev / prod servers.

Defaults to Vite (CSR). Fairly verbose components.

Blank slate to MVP. Can be used as production app

Deploy within Vercel ecosystem. GH integration for premium users.

Can connect to Vercel compatible services (Neon, Supabase).��External dev / prod servers.

Defaults to NextJS (SSR+CSR). Moderately verbose.

Blank slate to MVP. Can be used as production app

IDE / desktop tool, so integrates with GH. �No built-in deploy.

Can do anything, including local dev environment.

No defaults pretty much. Will err on the side of fewer files/components unless instructed.

Blank slate to visual design / ideation.

N/A

N/A

N/A

31 of 40

Judgement

Pros:

  • “Preview” provides instantaneous pseudo-deployment
  • First pass slightly better UI/UX polish
  • Non-developers can make changes without cloning, committing, etc.

Pros:

  • Flexibility for giving it stuff (eg sample data)
  • Flexibility in defining tech stack
  • Different models are better at different things
  • Already in dev
  • Already paid

Kinda cool but nah

32 of 40

Open questions

  • Is there a combination of setup + model selection that will enable Cursor to get v0-refinement level on the first pass?�
  • What can these tools NOT do reliably? Maps? Dynamic charts?�
  • What is the best way to get coding agents to draft a variety of different UX flows and styles, to help with the ideation/design phase?�
  • What is the best way to use these tools to develop a frontend that works with a real backend? (should the backend be built first?)

33 of 40

Appendix

34 of 40

OAEC - ClimateCast

Please build a public website where a user can enter an address or zip code in the United States and get various information about current and future climate that would be useful for permaculture site design planning.

The user should be able to view current metrics and future metrics under various CMIP6 RCP scenarios for future years of 2040, 2060, 2080, and 2100:

- Average temperature and precipitation

- Extreme heat days

- Large rain events

- Humidity/wet bulb days

In addition, the user should be able to see information about the sensitivity of their location to various climate disasters in the future, including:

- Drought�- Flooding�- Sea level rise�- Hurricane risk�- Wildfire risk�- Drought risk

In addition, the user should get some additional relevant information about their location, including

- Plant hardiness zone�- Demographic and socioeconomic features

The dashboard should be very simple and clean and readable.

35 of 40

36 of 40

37 of 40

38 of 40

Things we know:�

  • AI coding tools are useful early in the product dev process as a replacement for classic mockup tools
  • Letting an AI take the first crack at coding is good.

Things we don’t know and want to test:�

  • How far can AI coding tools get you for precise and high-quality UX/styling?
  • If you know how to deploy your app locally, is there much benefit to using something like Lovable?
  • Which app-building tool should we default to (v0, lovable, etc)?
  • What should be in the prompts besides feature description:
    • Instructions for handling backend (both real and for testing purposes)?
    • Should we provide fake data? If we’re going to use AI for it anyway, is it better to do it separately?
  • What is the flow for back-end+front-end with these tools?

39 of 40

Trials:�

  • Follow the money to justice terminal
  • ClimateCast climate data tool
  • Grocery Gap Atlas Figma sketch
  • Different design styles

Evaluation criteria:�

  • Does it meet design and UX goals? Does it look good?
  • How easy is the iteration process?
  • What does it take to productionalize it from here (i.e. how useful is the code)?

Approaches:�

  • Loveable
    • Branches: give it more context about stack and then export; or, let it have at it with whatever it defaults to, then refactor in cursor.
    • Pros: owns deploy, rules for constraining development, web UI for updates/fixes
    • Cons: Free version limited (but only $20)�
  • Hybrid - some set up of important things, then let LLM run with it�
  • Mockup - traditional, then export to other tools

40 of 40