01
<marketing-site/>
Marketing sites
Landing pages, content sites, conversion-focused homepages. Built with intent: who's arriving, what they need to see, where they should go next. Performance and SEO done as defaults, not afterthoughts.
[§] Where it all sits on
Twenty years writing the code that runs small businesses. The shape of a site decides what marketing can do, where AI can route, how a sale actually closes. I've been at every layer: the front of the funnel, the back of the database, and every middleware layer between.
Code becomes the substrate
[§ 01]
How I think about it.
Since 2006
Twenty years on the substrate
Web work for me has never been a deliverable on its own. It's the substrate every other discipline ends up sitting on. The shape of a site decides what the marketing campaign can do, what the AI can route into, where a sale actually closes. Get the substrate wrong and everything downstream limps.
That's a different mindset than picking up a one-off project. When I build a site, I'm thinking about what the marketing automation will need to plug into in six months, what the AI receptionist will pull from on a Tuesday afternoon, what the staff member adding a new menu item will actually do. The site is a tool that has to fit a hand.
Most agencies sell you a redesign. I build the substrate the next three years of the business have to run on.
[§ 02] What I actually build
01
<marketing-site/>
Landing pages, content sites, conversion-focused homepages. Built with intent: who's arriving, what they need to see, where they should go next. Performance and SEO done as defaults, not afterthoughts.
02
<commerce/>
Shopify, WooCommerce, custom carts. Catalog, checkout, post-purchase email, abandon recovery, review collection, loyalty. The full lifecycle from impression to repeat customer, well past the buy button.
03
<automation-backbone/>
The plumbing nobody sees: form intake routed to CRM, eClub signup triggering welcome series, lead scoring feeding sales handoff, webhooks tying the AI receptionist to the calendar. Where most of the daily ROI lives.
04
<internal-tools/>
Admin dashboards, staff portals, reporting tools, custom integrations between SaaS the business already uses. The unglamorous software that operators actually click on every day.
[§ 03] Five sites, five stories · Shipped recently
Most sites now come out of the same bucket: a theme, or one prompt into a page builder, and you can tell from across the room. These five shipped recently, built by me front to back. BRC had a whole day to walk you through, thirteen rooms of it. Friends Insurance had a phone number, a storefront, and thirty-one years on one corner. AK Collision had one customer photo and a phone number. Same job on each: find the story the business actually has, then build the site so the scroll does the telling.
01
Fair Lawn, New Jersey
Day spa · Sauna resort
The story it tells
A day at the spa, in the order you actually do it. Heat first. Then the cold. Then come up, forget your wallet, eat, and go back in.
What there was to work with
BRC had the opposite problem from most clients: too much to show. Thirteen rooms in one building, a hundred and ninety dishes and pours, treatments, a whole circuit people do twice in a day. All of it wanted on the page, and none of it fit in a grid of cards.
What I built
So the home page is one long walk instead of a menu of sections. Every act pins to the screen and plays as you scroll: steam rolls in over the sauna, a white line drops you under the water of the ice bath, a counter ticks off seconds under, and a label in the corner (English and Russian, because that is who walks in) tells you which room you are standing in. Around seventeen thousand pixels of scroll, driven by a scroll engine written in plain JavaScript. No animation library, no framework, nothing to update next year.
Signature moves
02
Sheepshead Bay, Brooklyn
Insurance broker · Since 1994
The story it tells
What they do and where they are. Six kinds of coverage, same-day binding, and the same corner of Nostrand Avenue since 1994.
What there was to work with
Friends had almost nothing to hand me. A phone number, a storefront, eighteen carriers they compare, thirty-one years on one block, and no photo library to speak of. They wanted to look as good as anyone, and they did not want the site every other broker in Brooklyn has.
What I built
So I drew the block. The hero is the storefront at 3606 Nostrand as a flat illustration, and scrolling drives a car down the street past it, headlights on, with the biggest lines of business pinned to the drawing as callouts. From there the page tells what they do in order: six coverage lines in one dark table, an insurance ID card for same-day binding, a 1994 to 2026 timeline for the same corner, and Edward's story, from the Soviet Union to a John Hancock agent to his own storefront. No stock photos anywhere on it.
Signature moves
03
Cropsey Avenue, Brooklyn
Auto body shop · Since 2013
The story it tells
What happens after a crash, told from the driver's seat. Where'd they get you, and then everything else goes on the shop's list.
What there was to work with
A body shop with a 4.8 on Google, forty-nine reviews that keep naming the owner, and otherwise the thinnest brief of the five. The only photograph on the whole page is a customer's, pulled from the Google listing. Most body shop sites are the same stock photo of a spray gun, and that was the whole thing to avoid.
What I built
So the page runs on drawings and paper instead. The hero is a vehicle check-in sheet: three line-drawn views of a car, and you tap where it got hit, dent, scratch or smashed, and the marks collect into a list you can send with photos. Then the after-crash to-do list crosses itself out line by line as the shop takes each job off you, until the only thing left on it is the phone number. The services are written up as an estimate that totals $0.00. Further down, that customer's photo of a hood flips over to show the shop's sign in the paint, and forty-nine Google reviews get read for the one thing they keep saying: ask for Arthur. Plain HTML, CSS and JavaScript with SVG drawings, nothing heavier.
Signature moves
04
Sheepshead Bay, Brooklyn
Restaurant · On the water since 1990
The story it tells
Thirty-five years on Emmons Avenue. The room, the kitchen, the terrace, and the evening in that order.
What there was to work with
A garden palace on the bay, open since 1990, with a room worth filming and a reputation that has outlived most of the block. Plenty of video, a long history, and a kitchen that wanted its own chapter.
What I built
The wordmark fills the screen over a cocktail on video, then the page changes mood as you go down: dark bar at the top, cream and rose through the story and the kitchen, back to deep green and smoke when you reach the terrace. The seven signature plates pin in place and scroll through one at a time. GSAP ScrollTrigger does the choreography, and nine videos carry the room, because photographs of this place undersell it.
Signature moves
05
Brighton Beach, Brooklyn
Restaurant · Seafood and French classics
The story it tells
A place and the man who built it. The boardwalk at sunset, Radu's story, and then the plates.
What there was to work with
A seafood and French place on Brighton Beach with a founder who had a real story to tell, a neighborhood that reads a menu in two languages, and a dining room that fills on live music nights.
What I built
The hero is the boardwalk at golden hour on video with ADOR set across it in a serif you can read from the back of the room, and the page eases down from there on Lenis smooth scroll. The founder's story sits beside a Coney Island sunset with a Russian toggle. The signature plates run sideways as a rail, each with its Russian name under the English one. Underneath the pretty part is the working part: the eclub popup (a complimentary cocktail to join, a gift on your birthday) writes straight into the CRM, and a chat host waits in the corner.
Signature moves
[§ 04] The stack
Twenty years means a lot of older stacks too (LAMP, jQuery, Drupal, Magento, classic ASP, Flash if we're going way back). The layers below are what's on the desk in 2026, not the history.
[§ 05] How it connects
Every campaign has to land somewhere. Every AI handoff has to write into something. Every customer eventually clicks something. The web stack decides whether all of that flows or breaks. The reason I keep web on the desk after twenty years is that without it, everything else is theatre.
[§] Start a build
Tell me what you're running on now, what's breaking, and what the next year of the business needs the site to do. I'll come back with whether I can help and what the shape of the work would look like.