04
How I use Cursor, custom skills and automation to remove repetitive work while keeping the parts that matter firmly in my hands.
A large part of my work follows recurring patterns.
I build many production websites, often using similar workflows, technologies and content structures.
Over time, I started identifying the parts of my workflow that were repetitive and could be automated.
The goal was not simply to make development faster.
I wanted to spend less time on mechanical tasks and more time on the parts where I still want full control over the result.
I automate repetitive work so I can spend more time building the parts that matter.
Not every part of development should be automated. The challenge was identifying repetitive tasks where automation could genuinely save time without making the workflow rigid.
The tools needed to understand the way I already work. Instead of adapting my process to a generic automation system, I progressively built tools around my own conventions.
Automation handles repetitive and mechanical work. The final frontend implementation, visual decisions and code quality remain under my control.
This workflow was not built all at once.
It evolved through iteration.
I started with small scripts and gradually turned the most useful parts into reusable Cursor skills.
Each iteration made the tools more accurate and closer to the way I actually work.
It was progressively refined through real projects and repeated use.
I created a Cursor skill that uses the Figma context to generate the JSON structure for my WordPress content fields. The skill is based on conventions I have established for how I structure pages. I iterated on it over time until the generated structures became very close to the way I would build them myself.
I created scripts that automate repetitive parts of my frontend setup. For example, when a new WordPress template or content structure is required, the workflow can generate the required files and structure so I can move directly into development.
I also automated parts of the process around custom post types and WPGraphQL. Instead of manually recreating the same structures and TypeScript types for every project, I use scripts to generate the required files from the fields exposed by WordPress.
The workflow also uses structured JSON responses to validate the data being generated. This is particularly important in my Astro projects because the frontend is strongly typed with TypeScript. The goal is to catch differences between expected and actual content structures before they become frontend problems.
I also built smaller tools around recurring tasks such as form validation and other repetitive development operations. These tools are deliberately focused on removing mechanical work rather than replacing development itself.
The system has gradually expanded beyond backend and content structure. I now use Cursor skills that can take Figma references, screenshots and examples from websites I have already built to help reproduce my established frontend conventions. These skills also help with responsive implementation. The more I iterate on them, the closer they become to the way I naturally build interfaces.
Cursor is the environment through which I built and use this workflow.
The important point is the system I have created around it.
AI helps me generate, automate and refine repetitive parts of the process.
It does not replace my decisions about architecture, frontend implementation, visual fidelity or code quality.
The workflow continues to evolve.
Each project exposes another repetitive task.
When a task becomes frequent enough, I look for a better way to handle it.
Sometimes that means a script.
Sometimes a Cursor skill.
Sometimes a change to the workflow itself.
The result is a development environment that increasingly reflects the way I work.
The main result is not a single automation.
It is a development workflow that becomes more efficient and more specific to the way I work over time.
Repetitive tasks take less attention.
Project setup becomes faster.
Common structures are easier to reproduce.
And more of my time can stay focused on architecture, frontend implementation and the details that require human judgment.
I am not trying to automate development.
I am trying to automate the parts of development that do not need my attention.
The more repetitive work I can remove, the more time I can spend on the parts where my experience actually matters.