Spindle needed somewhere to publish stuff. The domain was available. That was the brief.

Somewhere along the way, the logo acquired an entrance animation, the brand story acquired a marketing-spin control, and a virtual cocker spaniel acquired a crate.

A perfectly normal company website, then.

Built one “what if” at a time

This site took shape through a conversation with an AI coding assistant. Describe an idea, get something working, look at it, change the bits that feel wrong. Repeat.

The “What’s going on now” page is a good example. It started as a list of current projects: software for accountants, a Laravel/Inertia/Vue library called Weave, and raising Petra, a light ginger English cocker spaniel puppy.

Then came the question: what if those projects were planets?

The planets looked interesting, but tiny spheres didn’t explain much. So they became floating cards with a little context. Opening a separate panel felt disconnected. So the cards themselves grew to reveal the details.

Petra got a virtual counterpart. The first illustration looked odd. The next needed to be bigger. Barking briefly involved sound, before becoming a much better idea: a bright green box saying Woof!

That back-and-forth is the process. An idea doesn’t have to arrive fully dressed.

Under the slightly ridiculous hood

The website is built with Astro. Articles live in Markdown files; reusable components provide the layouts. Small TypeScript scripts handle the interactions, with CSS doing much of the animation work.

The project cards use native HTML details and summary elements. That gives them a useful starting point: they can open and close with a keyboard, and the content still works without JavaScript. The scripts coordinate the cards and Petra; the styling supplies the floating, expanding, and glowing.

The terminal is also entirely in the frontend. Published content becomes a search index when the site builds. Typing “show me articles” searches that index. No chatbot service is answering the prompt. Just a small command parser wearing a convincing outfit.

Petra uses an AI-generated image, animated in the browser. Her bark is silent. Her crate is virtual. Her effect on productivity remains suspicious.

Motion pauses where appropriate, and reduced-motion preferences are respected. Fun should still be usable.

AI has got rather good at this

The striking part is how quickly a loose suggestion can become something concrete enough to judge. Layout, copy, interaction logic, animation, even a puppy illustration: the assistant could work across all of it.

That makes experimenting feel different. A strange idea is cheaper to try, and easier to throw away when it doesn’t work.

The corrections still matter. “Too much text.” “That looks weird.” “Make it feel connected.” Those observations changed this site as much as the original requests did. A working implementation is a starting point; deciding whether it feels right takes attention.

Leave room for the unnecessary

A company website can explain what happens there and still have a personality. It can publish useful things and occasionally invite someone to throw a virtual tennis ball.

Not every interaction needs a business case. Sometimes something gets built because it sounds amusing, and stays because it makes the page nicer to spend time on.

Make the useful stuff. Try the odd idea. Give the puppy a Woof! button.