Sagini AI Analytics — AI-powered data intelligence platform (sagini.net (http://sagini.net))
Designed and built the full marketing site for Sagini AI Analytics, a tool that turns any uploaded file into instant charts, insights and anomaly reports.
The visual identity here is deliberately different from a typical SaaS landing page. Instead of the common blue and sans-serif "tech" look, the site pairs a deep navy background with a warm gold accent and a serif display typeface for headlines. This gives the product a premium, editorial feel that signals trust and authority, fitting for a tool people use to make decisions on their actual data. Body copy stays in a clean sans-serif for contrast and readability, so the serif is reserved for moments that need weight.
The hero headline uses two different type treatments in one sentence: "Your data," in a solid serif, "decoded instantly" in a gold italic script. This creates a clear visual hierarchy and makes the value proposition the most memorable element on the page, rather than burying it in a paragraph. A trust bar directly below (10+ formats, under 5 seconds, AI powered, 100% your data) answers objections before the visitor has to ask.
The "How it works" section uses a three-step numbered layout with a connecting line between steps, which reads as a literal pipeline rather than a bullet list, reinforcing the "file in, insight out" simplicity of the product. The features grid below groups capabilities into six equal cards with consistent icon and copy structure, making a technically dense feature set easy to scan.
The supported-formats section replaces a wall of text with format badges (CSV, PDF, XLSX, PNG, and others), which communicates breadth instantly and visually rather than through a sentence a visitor would skim past.
The page closes with a repeated, high-contrast CTA block on the gold-accented navy background, plus an honest "Currently in Beta" and "Free during beta" disclosure, which builds trust rather than undermining it.
Stack: FastAPI, Python, Claude API. Deployed with nginx, systemd, Let's Encrypt SSL, MySQL.
2
272
Ranksit — AI content and SEO SaaS (ranksit.net (http://ranksit.net))
Designed and built the full marketing site for Ranksit, an AI tool that turns a keyword into a researched, SEO-scored article.
The hero leads with a clear before/after promise ("Turn a keyword into publish-ready, optimised content"). The key differentiator, "optimised," is pulled out in a contrasting colour so it reads first. A single input field sits directly under the headline instead of a generic CTA button, letting a visitor try the core action immediately, with popular example prompts underneath to lower the effort of that first interaction. Four short feature cards below establish credibility (researched, audited, live feedback, ready to ship) without needing a separate scroll section.
The "How it works" section breaks the product into three numbered steps for scannability, followed by real content score examples (92, 88, 74) that make the abstract "SEO scoring" concept concrete and visual rather than just a claim.
Pricing uses a simple two-tier layout with the Pro plan visually distinguished by a border and badge. The price is the largest element on the card since it's the first thing a comparison shopper looks for.
The FAQ section closes objections before the final CTA. The page ends on a repeated, action-oriented close ("Ready to rank?") rather than trailing off after pricing.
Stack: FastAPI, Python, HTMX.
1
235
Just shipped Sagini AI Analytics — sagini.net (http://sagini.net)
Drop in a CSV. Get back charts, anomaly detection, AI-generated insights, and a shareable report. No SQL. No analyst. No waiting.
This is what I built because I was tired of clients paying thousands for dashboards that take weeks to deliver. Sagini AI does it in seconds.
Stack: FastAPI · Python · Pandas · Plotly · SQLite · Vanilla JS
If you need a custom version of this — internal analytics tool, automated reporting, AI integrated into your existing data pipeline — that's exactly what I do.
Live at sagini.net (http://sagini.net). More at sagini.me (http://sagini.me).
DM me and let's build something.
Suds & Scruff Mobile Dog Grooming, Walthamstow, East London
Nia is made up. Her problems aren't.
She grooms dogs from a van across Walthamstow, Leyton and Chingford, and she works an area a day. Enquiries come in by DM while she's mid-groom, so she answers them at 9pm. Getting one dog booked takes about six messages. Two dogs a week don't turn up, and she's already driven there.
What I built:
Customers book themselves. Size and coat set the price and the time, and they only see days when the van is in their area.
If someone would rather message, the message gets a price, real slots and a booking link back in seconds.
The evening before, every customer gets a one-tap "still on?". Say nothing and the slot goes to the next dog on that area's waitlist. Nia gets one line she can undo.
Customers move or cancel their own bookings inside the same rules.
Nia's dashboard only lists what needs her. Everything else is logged with the minutes it saved: about five hours a week.
To see her side, click "See what Nia sees" at the top of the site. It signs you in to a demo account. Texts are simulated and every one is in the Outbox. Demo data resets every night.
Veranda, a luxury residential concept landing page
Veranda is a concept build I created for a fictional luxury residential brand. It is not client work or a real property. The images and hero motion were generated with AI as part of the creative process.
I wanted to explore something that matters when building high-fidelity landing pages: after several rounds of changes, how do you make sure the final page still looks like the design that was approved?
The site is built in Next.js with responsive layouts, self-hosted fonts, GSAP motion and an interactive walkthrough. I also built in a proper QA process around it, not just checking that the page loads and the buttons work.
It compares 12 sections across five screen sizes against approved visual baselines. It flags visual drift, missing baselines and changes that have not been reviewed. I also tested interactions, accessibility, contrast, performance, browser behaviour and reduced-motion states.
The main lesson for me was simple: a page can pass functional tests and still no longer be the page that was agreed.