front-end, back-end, ui/ux
new york, us
showcase
front-end, back-end, ui/ux
new york, us

Lawfty.com is the direct-to-consumer side of the business. Someone searching for a lawyer lands here, not on a campaign page for a partner firm. It runs on the same Sanity and Next.js setup as the firm sites, with its own dataset and its own design language.


Content lives in a Pages collection. An editor writes a title, stacks the modules they need, and the slug is generated per locale. Everything goes through a draft and published state, so a page can be worked on and previewed without touching what's live.
The site is bilingual. English and Spanish live in the same document, each with its own slug, so the Español switch in the navigation is a language toggle on one page and not a second site to keep in sync.
Beyond free-form pages, the site is modelled around what the business actually publishes: attorneys, practice areas, locations and their landing pages, blog posts, FAQs and legal pages. Each has its own route. Adding an attorney means filling in a document, and the profile page appears. Redirects and vanity URLs are managed in the CMS too, plus an SEO fallback so a page missing its own metadata still ships with something sensible.
Blocks that repeat across pages are handled by a shared content type. An editor writes one once and reuses it everywhere, and the Studio offers a preset per module type, so you start from a real module and not an empty object.
These are some of the modules as they render on lawfty.com. Each one is a block an editor adds to a page in the Studio: the practice areas carousel, the numbered how it works steps, the settlements slider and the image with text block.




Typography is a set of tokens, so H1 through H6, subtitle, body, disclaimer and caption all come off one scale. An editor picks a level and it looks the same wherever that module ends up. Here is the whole scale, from the display headings down to captions.

The D2C components live in Storybook next to the CMS modules. The base layer is kept small: buttons, cards, inputs, selects, radios, checkboxes, a phone number input, text styles and icons, all built on the same tokens as the type scale above.
Icons come in two sets, a mono set for the interface and a duo tone set for practice areas. Each practice area has its own duo icon, picked by case type, and that is what the practice areas carousel renders.
Every CMS module has its own stories as well. The Hero has one for each variant an editor can pick, like a colour background with one or two CTAs, or a full width image with an anchor or chat CTA. The controls take the same block shape Sanity sends, so a story renders exactly what a page would.

Each module also has a story at every breakpoint we design for: 1920, 1440, 1280, 1024, 768 and 390. Checking a change across every width is a matter of clicking down the list, and the same stories are what the visual tests run against.

Navigation is driven from the CMS too, including the Practice Areas dropdown. Adding a practice area is a content change, not a deploy.

The legal pages are long and change often, so the table of contents builds itself from the headings in the document instead of being maintained by hand. The last updated date comes from the CMS as well.

The contact and attorney enquiry forms post to route handlers on our side, so Zod validates the same shape on the client and the server, and every submission is logged before it leaves the app.
D2C shares a monorepo with the firm sites. The Apollo client, the Redis cache layer, middleware, logging and env handling all come from one shared workspace, so a fix in either app benefits both. Sanity responses are cached in Redis and cleared through an authenticated refresh endpoint when content is published, with New Relic on the browser and server side.
Direct-to-consumer campaign landing pages running on the Sanity CMS I built. Marketing assembles a page from modules and A/B tests whole layouts through the experiments layer, no developer needed.
Campaign sites for partner law firms, all from one content source. Each site reads its own colours, logo and copy from the campaign config, so launching a firm is a content job instead of a new codebase.
Lawfty is the data-powered personal injury law firm that offers a clear advantage in uncertain times nationwide, since 2013.
DebugCon is a coding conference for developers held in Prishtina, Kosovo. I was tasked to design and develop their website, also helped with branding and marketing.
The rebuild of redIQ, a multifamily underwriting platform, as Radix Underwriting. Deals, rent rolls, operating statements and valuations in one React app, with a new design system underneath.
My own product: personalised birthday, Valentine's and New Year websites you make in a few minutes, pay for once and send as a link, or schedule to land in someone's inbox at the right moment.
An app for finding a room or a roommate in Kosovo. Owners post their rooms, people looking post themselves with a budget, and the search understands the many ways people write Albanian.
A free tool that shows who doesn't follow you back on Instagram, using the data export Instagram gives you. Everything runs in the browser, so nobody has to hand their login to a third-party app.
EpicFreeGamesMail is a tool that sends you an email every time a new free game is available on the Epic Games Store, built with React and TypeScript.
Airways is New Zealand's leading air navigation service provider. I was tasked to design and develop their air trafic controller manuals and showcasing a new way of how to navigate through them.
99Urban is a streetwear brand, built by me, using Shopify. I designed and developed the website, worked with marketing and dove into the world of SEO and Dropshipping.
Mailfomo is a daily top links aggregator, sending you the most popular links of the day to your email. The goal was to create a simple and easy to use app, with a focus to never miss the latest news.
Prime Panels is a leading manufacturer of melamine panels. I was tasked to design and develop their showroom website. The website was shown at the Auckland Home Show 2022.
NZRIS is a web application for the New Zealand government. I was tasked with creating a digital solution for NZRIS, a new online hub dedicated to the research, science, and innovation sector.
Wilsonart, a leader in decorative laminates, engaged me to design and develop their website for the New Zealand market. The website is built with Umbraco CMS, and it's fully responsive.
Kablamo is a digital product and innovation company. One of the projects I've worked on is a known bank in Canada, an app for iOS and Android built with React Native.
Lobster&Tap is a seafood restaurant in Auckland, NZ, Lobster&Tap engaged me to design and develop their Kiosk web-app which allows customers to order food and drinks.
Daruma is a Japanese restaurant in Auckland, NZ. I was tasked to develop their Kiosk web-app which allows customers to order food and drinks.
Linea Del Plata is a shipping company made up of private business groups with a long history in the maritime industry. I was tasked to design and develop their booking platform.
Scanatrax is a static pallet and cargo dimensioning system that delivers fast, accurate and reliable results, with full after-sales support. I was tasked to design and develop their website.
Flatmately is a flatmate finder app, built for New Zealand and Australian market. I was tasked to design and develop their website, and also helped with branding and marketing.
NxtStep is a job board for students and graduates. I was tasked to design and develop their website, and also helped with branding and marketing.
Yoga With Kassandra is a yoga teacher and content creator. I was tasked to design and develop her website and courses platform while I was working at VidApp.
Tourism New Zealand is a website I've built to showcase my skills utilising JavaScript, HTML5, CSS3, SASS, Bootstrap, Sketch. I was tasked to design and develop their website.
Renkon is a Japanese restaurant, I've pitched the new website and design for the ordering app. I used JavaScript, HTML5, CSS3, SASS, Handlebars and Bootstrap to build the website.
DotaPopQuiz is a quiz app built with JavaScript, HTML5, SASS, PHP. It was built as a fun project to make a game to increase brand awareness and to learn more about JavaScript and PHP.
VidApp is a video streaming platform. I was tasked to design and develop their website and the platform where users would publish their customised app for iOS and Android.