Websites by Frank
About

Built by a former courtroom paralegal who got tired of waiting for vendors.

I'm Frank Alfano. I spent 33 years as a licensed Ontario paralegal — courtrooms, POA defence, criminal trials, appeals, judicial reviews. In 2024 I stepped off the licence to focus on building software for the legal industry I came from.

Since then I've shipped 25+ live Django sites for law firms, paralegals, marketplaces, and service businesses across Ontario. Every site uses the same boring, battle-tested stack: Django, PostgreSQL, Tailwind, Hetzner, Cloudflare. Boring is good. Boring stays up.

I'm currently a lawyer licensing candidate (L1) — LL.B. from the University of London, LL.M. from Osgoode Hall. I still know the legal industry from the inside, which means when you tell me your firm needs an LTB-specific intake form or a POA agent escrow flow, I don't need it explained twice.

What you actually get

  • You own the code. Full git repository, no proprietary lock-in.
  • You own the server. Hetzner VPS in your name if you want — I just deploy to it.
  • You own the domain. Always.
  • You can edit your own content. Django admin lets you update services, blog posts, team members, and SEO without redeploying.
  • It actually loads fast. WhiteNoise + Brotli, Cloudflare in front, nginx caching static assets.

The stack

Backend: Django 5.2, PostgreSQL, gunicorn, nginx.
Frontend: Tailwind, HTMX, vanilla JS, occasional React (Next.js) when it earns its place.
Hosting: Hetzner VPS, Let's Encrypt SSL, Cloudflare DNS + DDoS.
Payments: Stripe Checkout, Subscriptions, Connect Express.
SEO: JSON-LD schema, sitemap.xml, GA4, Google Search Console.

Want to talk? Send me a note.