Sunflower Design Studios

Design, history, and interactive 3D on the web.

How the Website Was Built


TL;DR


The pipeline at a glance

  1. Idea: name the story, name the audience, name the goal.
  2. Research: verify the facts against sources. Record the source beside the fact.
  3. Draft: write the post. Build the interactive element. Collect openly licensed images.
  4. Review: check facts, check tone, check licenses, check accessibility.
  5. Build: commit the code to Azure DevOps. The pipeline builds the static files.
  6. Test: publish to the test address first. Click the links. Load the pages. Fix the errors.
  7. Deploy: promote to production with a change-control entry. Purge the CDN cache.
  8. Monitor: watch analytics, watch real-user performance, watch uptime.
  9. Correct: log the errors as tickets. Fix the errors. Test the fixes. Deploy the fixes.
  10. Improve: feed the lessons back into the next post.

1. Service Strategy — start with the idea

Start with demand, not with code. Answer three questions before writing a word:

Record the answers in a ticket. The ticket carries a number, a priority, and a status. The ticket outlives the post: the ticket holds the research, the decisions, and the corrections.

Pick the home for the story. Sunflower Design Studios lives at sunflowerdesignstudios.com, registered at Porkbun on November 8, 2026, for $11.81 a year, auto-renew on, expiring November 8, 2027. DNS runs on Bunny, zone 984130, with DNSSEC validated. The domain belongs to the design studio; the site shows the studio's work and the studio's thinking.

Choose the service model up front. The site is static: HTML, CSS, and JavaScript, no server code, no database, no containers. Static keeps hosting cheap (about $1 a month at Bunny's minimum), keeps the attack surface small, and keeps the pages fast. The 3D demos on the hub follow the same model: static pages with Three.js in the browser.

2. Service Design — draw the blueprint

Design the page before building the page. The blueprint covers five parts:

Design the hosting alongside the page. Code lives in an Azure DevOps repository in the sjultra organization. The pipeline builds the static files, deploys the files to Bunny Storage, and purges the Pull Zone cache. The test address, hub.sjuapi.com, serves from the first Dell T110 in Los Angeles through the Cloudflare tunnel. The production address, hub.sunflowerdesignstudios.com, serves from Bunny. The apex and www addresses redirect to the hub.

3. Service Transition — build, test, release

Move the work from draft to live in gated steps. No step skips the gate ahead.

Note the boundary: static sites use no container registry. The demos ship as files, not as images, so Harbor plays no part in the Sunflower pipeline. The test origin uses the T110 and the tunnel; the production origin uses Bunny. Test and production stay separate by design.

4. Service Operation — run the live service

Operate the site as a service, not as a pile of files. Operation covers four duties:

5. Continual Service Improvement — correct and improve

Close the loop. Improvement runs on a cycle, not on inspiration:


The stack

PartChoiceStatus, November 9, 2026
Domainsunflowerdesignstudios.com, Porkbun, $11.81/year, auto-renew onLive, expires November 8, 2027
DNSBunny DNS, zone 984130, DNSSEC validatedLive, no records yet
Code homeAzure DevOps repository, sjultra organizationDecided; repository creation awaits the plan
BuildAzure DevOps pipeline, static filesDecided; pipeline awaits the plan
Test originhub.sjuapi.com, first Dell T110, Cloudflare tunnelDecided; test build on hold
Production originhub.sunflowerdesignstudios.com, Bunny Storage plus Pull ZoneDecided; no files deployed yet
RedirectsApex plus www redirect to the hub, Bunny redirect recordsDecided; not configured yet
AnalyticsGoogle Analytics on the pagesRequired; property setup awaits a decision
PerformanceDatadog RUM on the built pagesRequired; app and token setup awaits a decision
3D libraryThree.js, vendored copy from the hub stagingIn hand, copied into the prototype folder
ImagesWikimedia Commons, CC BY 2.0 and CC BY-SA 4.0, attribution on the imagesIn hand, 9 files downloaded
Change controlManual promotion, change-control entry per promotion, owner approvalDecided
ContainersNo containers: static sites use no Harbor, no registryDecided

Current status — read before quoting the page

Read the status with care: the pipeline above is decided, not yet live. As of November 9, 2026:

The page above describes the pipeline as designed. Update the status table when the parts go live. Never describe a decided step as a finished step.

The Century domes post as a worked example

Trace the Century domes post through the five stages:


Draft prepared November 9, 2026, ticket #F7ZY. Pipeline facts follow tickets #G65H, #5OCZ, and #A2GC. Status statements reflect November 9, 2026; update the status table as the pipeline goes live.

Pronoun check, November 9, 2026: the draft passes the mechanical grep with a single documented exception, a quoted proper name, not authorial voice: the requested page title "how we built this website" contains "we". The draft uses "How the Website Was Built" as the heading to keep the prose pronoun-free; the requested title appears in the quoted exception line of the verification note. No other hits on the core or extended pronoun lists.