{% extends "baseTemplate/index.html" %} {% load static %} {% comment %} Project detail — edit the generated copy, watch it re-render, then publish. The generated content is model output and is treated as untrusted throughout: it reaches the browser through |json_script, is edited with ng-model and is displayed with ng-bind. Nothing on this page uses |safe or ng-bind-html, and the live preview is built from ng-repeat rather than from an HTML string, so a prompt-injected {# ---------------------------------------------------------------- #} {# Header #} {# ---------------------------------------------------------------- #}

{{ project.name }}

{{ project.businessName }} · {{ project.website.domain }} · template

{% if canDeploy == 1 %} {% endif %}
{% include "siteBuilder/_availability.html" %} {# ---------------------------------------------------------------- #} {# Running job #} {# ---------------------------------------------------------------- #}
%
{# ---------------------------------------------------------------- #} {# Published #} {# ---------------------------------------------------------------- #}
Your site is live.
The previous index.html was backed up to .
file(s) written:
{# ---------------------------------------------------------------- #} {# Nothing generated yet #} {# ---------------------------------------------------------------- #}

No content yet

This project has a brief and a template but no copy. Generate it and the builder will write every section for you — you can edit anything afterwards.

Estimated cost
left of your monthly budget.
No monthly limit set.
{% if canDeploy == 1 %} {% endif %}
{# ---------------------------------------------------------------- #} {# Editor + live preview #} {# ---------------------------------------------------------------- #}

Edit your content

This section has no editable text.
Unsaved changes All changes saved

Brief

Business
{{ project.businessName }}
Industry
{{ project.industry|default:"—" }}
Tone
{{ project.tone }}
Audience
{{ project.targetAudience|default:"—" }}

{{ project.businessDescription }}

{% if generations %}

Generation history

What each run actually cost, not what it was estimated at.

{% for run in generations %} {% endfor %}
When Model Tokens Cost Result
{{ run.dateCreated|date:"j M Y, H:i" }} {{ run.model }} {{ run.promptTokens }} in / {{ run.outputTokens }} out ${{ run.costUSD|floatformat:4 }} {{ run.status|default:"—" }} {% if run.errorMessage %}
{{ run.errorMessage }}
{% endif %}
{% endif %}
{# ---- live preview ---- #}
{{ project.website.domain }}

© ·

An approximation of the finished page — the published site uses the template's full layout, fonts and imagery.

{% endblock %} {% block scripts %} {% endblock %}