I lead marketing design and development at Softr. Website, CMS architecture, templates, automations, documentation, social and motion graphics, and sometimes brand policing.
When I started, the website had no templates and no design system — every page was custom-built, nothing could be reused, and shipping new content was slow. In my first six weeks, I shipped the design and Webflow development for the new site and brand, including logo refinements and the system architecture to scale from there.
After that, two to four unique page launches every month — use cases, customer stories, partner programs, blog, template directory, comparison pages, programmatic pages. All shipped while the migration was still in flight and product launches kept coming.
I built the web design system, CMS, and documentation so the team could launch pages at scale without me. Hundreds of pages live today, published by the team using these systems.
Designed in Figma. Motion in Jitter. Built in Webflow. Every page is crafted with intent from design to code.
Semantic HTML, not workarounds. Code components built with AI to go beyond Webflow's native capabilities. Lottie animations timed to interactions. Performance and brand held to spec on every page.
Motion is communication. Every Lottie is built to make the product self-explanatory — features that show how they work before you read a line of copy. Animations sequenced to user interactions, not just playing for the sake of it.
When Webflow can't handle it, I build it. Code components with semantic markup, clean structure, no bloat. AI is part of the workflow — writing custom code, iterating faster, and connecting systems through MCPs to update content across hundreds of pages at once.


Built for the team (and AI) to ship independently. Every system I build is designed to remove me as the bottleneck.
I build each template once, structured for reuse. Consistent layout, clear CMS fields, reusable components. Creating a new page should feel like filling out a form — the system does the rest.
Documentation comes with every template. What each field does, how to create a new entry, how to publish, and what not to touch. I spend time with the team once. After that, they run it themselves.
Use cases, customer stories, solutions, comparison pages, blog — hundreds of pages, all published by the content team. No design requests, no dev tickets. I move on to the next system while the last one keeps running.



Scaling the website meant going beyond what Webflow can do natively. Custom elements, integrations, and systems built in collaboration with developers.
Filtering is a good example. Custom-built search and filtering for directories — dropdown search for long lists, category-based filters — while maintaining design consistency. Hub pages that group directories by category, fully automated after setup.
Programmatic pages are another. I build the page structure in Webflow, set up the variable mapping, and document everything. A developer connects the Airtable data. Hundreds of pages generated through collaboration, with design controlled in Webflow and content managed externally.
The partner system follows the same approach. Partners manage their profiles through a portal app, data flows through Airtable, and surfaces on the Webflow site. I own the Webflow side and collaborate on architecture across tools. This pattern repeated across multiple systems.

The brand keeps growing every day. It demands new skills, redoing things, rewriting the narrative. I delivered all of it.
The work isn't just designing and developing pages — it's accessibility for the users visiting the site, UX for the team running it, and the operational glue that holds the whole marketing engine together.
Beyond the website: social assets, brand merch, event booths, motion graphics, managing contractors, fixing the broken, and making sure the team ships fast, efficient, and stress-free.
Building a marketing website isn't pushing pixels — it's running a system. The more I systematize, the more the team can ship without me. 1000+ pages and counting, and the model keeps compounding.