Payments, billing and subscriptions that renew
The second chargeis the hard one

Which of your systems is telling the truth about last month? Taking the money once is straightforward. Then it repeats. A customer moves house, changes card, pauses a subscription for a month, then asks for one item of four to be refunded, and every system you own forms its own opinion about what happened. Klarna and the card processor pay out on their own schedules. Xero wants one tidy line.
Book a 15-minute callSend the details below. I'll reply by email to arrange a time.
London, UK · Available for new projects
What actually slows independent e-commerce brands
Rent on a checkout you cannot change
Platform fees scale with your revenue whether or not the platform did anything to earn it, and the checkout is the one page you are least allowed to touch. That is the page the whole business converts on.
A dozen apps doing one job each
Reviews, subscriptions, affiliates, support, analytics. Each is a subscription, a script tag and a slower page, and no two of them agree on what a customer is.
Nobody in the building can change anything
Every copy tweak becomes a ticket to an agency who bill by the hour and get to it next week. The people who know what needs to change are the people who cannot change it.
payments, billing and subscriptions
Checkout on Stripe or Klarna, written directly against the API. Where the provider's own hosted page would do the job, you get told that first. Then the part nobody demos. A webhook that arrives twice, a card that fails on renewal, a plan changed halfway through a month, a partial refund. Each one gets a path in code and a line in a log you can replay. Delta Xi runs on this, custom checkout and an affiliate programme, no Shopify anywhere.
- The same webhook twice, one charge
- Every event from the payment provider is stored with its own id and acted on once, however many times it arrives. When something looks wrong you replay the stored events and watch the same decision happen again.
- What happens when the payment goes wrong
- Partial refunds, chargebacks, a card that stops working on renewal, a plan changed mid-cycle. Every one has a decided behaviour, written into the code and onto a page you can read, so the answer is the same whoever picks up the email.
- Payouts checked against the bank statement
- Charges, refunds and fees are matched against what the bank actually received, and the unmatched rows get listed instead of rounded away. Some of those rows will be my own bugs, and you see them when I do.
Built one of these already. Delta Xi. A mathematics apparel brand on a storefront I wrote from scratch.
See the full serviceSelected projects
Products I built and open-source projects I maintain. Open a project to see the work for yourself.
- 01
2025 →Delta Xi
E-commerce · Brand
A mathematics apparel brand on a storefront I wrote from scratch

I built the cart, checkout, product recommendations, affiliate programme and support desk, and run the infrastructure myself.
- Next.js
- React Server Components
- Stripe
- Auth.js
- Tailwind
- Umami
- Chatwoot
- Cloudflare
Founder · Engineer · Operator
- Custom checkout on Stripe + Klarna
- Server-rendered recommendation engine
- Self-hosted analytics and live chat
- 50+ STEM explainers driving organic search
- 022026
Dr Flavia Pretti Aslanian
Healthcare · Practice site
A bilingual dermatology website for a practice in Harley Street and Wimbledon

A new landing page guides patients to medical, aesthetic and surgical care. The practice edits its own content, and staff have a password-protected dictation tool in the same app.
- Next.js
- Sanity CMS
- Tailwind v4
- Radix
- Motion
- ISR
- Railway
- Cloudflare
Design · Build · Deploy
- 84 published English and Portuguese routes
- 72 treatment pages with clinic-editable content
- Custom before/after comparison UI
- Internal clinician dictation tool
See 4 more projects
- 03
2026Continuum
Web3 · DeFi protocol
A Solana DeFi protocol for 24/7 synthetic exposure to real-world assets

Deposit USDC, mint matched long and short tokens at NAV, sell the leg you don't want. A constant-product invariant keeps the pair redeemable back to the deposit.
- Rust
- Anchor
- Solana
- TypeScript
- Pyth
- Next.js
- Bun
- Railway
Pre-mainnet. Devnet markets, audits pending.
Protocol · Frontend · Infra
- 5 Solana smart contracts in Rust
- 8 synthetic markets on devnet
- 4-state oracle risk machine
- Volatility-scaled fee curve
- 042026
Dray
AI tools · Product website
A product website for keeping project context across AI agents

An editorial landing page introduces shared project context, shows illustrative agent workflows and explains setup and privacy ahead of beta.
Beta coming soon. The public demos illustrate the workflow; they are not live agent connections.
Design · Build
- Interactive agent-linking illustration
- Project-context walkthrough
- Setup and privacy guidance
- 052026
Tallylamp
Open source · Browser infrastructure
A browser for AI agents that you can watch and take over

I built the browser service, dashboard, MCP server and public website. Agents use Chrome on your server while you watch the same browser live. Take control to sign in, then hand it back; saved profiles carry between sessions.
- TypeScript
- Next.js
- Chrome
- MCP
- SQLite
- Docker
- Railway
Public site at tallylamp.dev. The browser service and dashboard are self-hosted.
Creator · Engineer · Maintainer
- Live viewing and explicit human handoff
- Separate agent permissions and reusable profiles
- MIT licensed, with a Railway deploy template
- 06
2025 →CarClout
SaaS · AI content engine
A subscription app that turns a phone photo of a car into something worth posting

Upload a photo, pick a template, get the edit back a moment later. Thirteen AI models sit behind a metered credit ledger, next to a layer editor, a post scheduler and a live chat room.
- Next.js
- SurrealDB
- Auth.js
- Stripe
- fal.ai
- Cloudflare R2
- Stream.io
- Railway
Engineering · Infra · SEO
- 724 generated landing pages, all live
- 128 API routes behind one app
- 13 AI models on a metered credit ledger
- Instagram posting, scheduling and analytics
One runs on the client's own domain and one is internal to theirs, so there is nothing here of mine to show you.
- ClientJooyontechAI sales assistant, Korean and English
- ClientPHFWeb, AI and automation · private medical practices, UK
Not everything is public. A fair amount of the work sits in private repositories I cannot hand you a link to. Ask, and I will walk you through it.
Ask to see moreHow a project runs
- 01Before code
Scope
One call, then a written spec. What it does, what it deliberately does not do, and what milestone one is. You sign that off before I write a line.
- 02Early
First deploy
A narrow slice that actually works, running where it belongs. A URL you can open, a build on your phone, a job on your own servers. Real data, real hosting, no placeholder screens.
- 03Ongoing
Build in the open
Deploys land as the thing fills in, not in one drop at the end. You watch it happen. And you get to change your mind while changing it is still cheap.
- 04Handover
Yours to run
The product runs in your accounts, with the domain, hosting and documentation under your control. Source-code transfer is quoted separately; we agree what is included during scoping.

Rafael Aslanian
I got my hands on a computer at 6 and never really stopped.
Now it is decentralised finance, tokenising real-world assets and topological deep learning, then building whatever those turn into. Continuum came out of that. So did Delta Xi (δξ, an infinitesimal change in a random variable).
Bossa nova and MPB were always on at home, so I sang before I played anything. Guitar and piano came later, then jazz.
- Based
- London, UK
- Languages
- English, Portuguese; intermediate Spanish and Chinese
- Focus
- Web3, DeFi, real-world asset tokenisation
- Also
- Music
Have an idea? Tell me.
Need the audience too?
I can build the thing. Getting people to notice it is a separate job, and not mine. For that I work with Nytforge, who film, edit and put the work in front of a local audience. They are strongest with automotive and local businesses.