We make websites and graphics. We make them with heart and grit, and our core values baked right in. From the first draft to the final flourish, our values run through everything we do, guiding, inspiring, and keeping our work top-notch.
Let’s be honest, getting a website built or designs developed shouldn’t feel like pulling teeth, yet somehow it often does. Designers who disappear, quotes that change more than the weather, and websites that look like they were made during the dial-up era. We’ve heard the horror stories.
At Grinning Graphics, we’re a proper breath of fresh air.
We keep things simple. Straight-talking pricing, a friendly, joyful, collaborative process, and designs that work like a dream.
We listen, we graft.
Everything’s on-brand, accessible, responsive, and easy to manage.
No faffin, no fuss.
And, if you want us in your corner long-term, our website WebCare maintenance service will keep your site healthy, secure, and performing like a champion.
We like to push boundaries, break a few rules, and whip up designs that make people stop and stare. If it’s fresh, bold, and helps your brand stand out in a sea of beige, we’re on it. Round here, creativity’s not just a buzzword, it’s how we roll.
We don’t do half-baked. Every detail matters. Every pixel, every layout gets the full Grinning Graphics treatment. We sweat the small stuff so your brand or website looks sharp, runs smooth, and feels spot-on from first click.
We’re big believers that good design shouldn’t leave anyone out. That’s why our websites and graphics are built to be accessible, inclusive, and easy for everyone to use. Clear, user-friendly design that welcomes the whole world. Proper accessibility, baked in from the start.
We bring clear communication and proper updates all the way through, so you know exactly what’s happening, without the stress. We keep the lines open, explain everything clearly, and make sure the project runs like clockwork, no surprises, just results.
Let’s be honest, getting a website built or designs developed shouldn’t feel like pulling teeth, yet somehow it often does. Designers who disappear, quotes that change more than the weather, and websites that look like they were made during the dial-up era. We’ve heard the horror stories.
At Grinning Graphics, we’re a proper breath of fresh air.
We keep things simple. Straight-talking pricing, a friendly, joyful, collaborative process, and designs that work like a dream.
We listen, we graft.
Everything’s on-brand, accessible, responsive, and easy to manage.
No faffin, no fuss.
And, if you want us in your corner long-term, our website WebCare maintenance service will keep your site healthy, secure, and performing like a champion.
We like to push boundaries, break a few rules, and whip up designs that make people stop and stare. If it’s fresh, bold, and helps your brand stand out in a sea of beige, we’re on it. Round here, creativity’s not just a buzzword, it’s how we roll.
We don’t do half-baked. Every detail matters. Every pixel, every layout gets the full Grinning Graphics treatment. We sweat the small stuff so your brand or website looks sharp, runs smooth, and feels spot-on from first click.
We’re big believers that good design shouldn’t leave anyone out. That’s why our websites and graphics are built to be accessible, inclusive, and easy for everyone to use. Clear, user-friendly design that welcomes the whole world. Proper accessibility, baked in from the start.
We bring clear communication and proper updates all the way through, so you know exactly what’s happening, without the stress. We keep the lines open, explain everything clearly, and make sure the project runs like clockwork, no surprises, just results.
Kate and Carl are the partnership behind Grinning Graphics, helping mission-led organisations bring clarity to their message and create brands and websites people can quickly understand and trust.
Kate leads design and creative direction, while Carl leads copywriting and messaging. Working closely together, they combine strategy, design, and content from the outset so every project is cohesive, purposeful, and built to support meaningful engagement and action.
Kate is the creative engine behind Grinning Graphics, leading design and creative direction across every project.
With over a decade of experience in brand identity and web design, she specialises in turning ideas into clear, effective visual communication. From shaping early concepts to refining the smallest details, Kate creates brands and websites that feel confident, considered, and easy to use.
Carl leads copywriting and messaging at Grinning Graphics. He focuses on how organisations explain what they do and how people experience it.
He works at the intersection of clarity, structure, and storytelling, turning ideas into content that makes sense quickly and guides people to take action. From early positioning to full website copy, Carl ensures messaging is clear, consistent, and built to support how each site performs.
We’re based right in the heart of Dean Clough, in Fearnley Mill, Halifax.
A cracking spot for creatives, caffeine addicts, and anyone who appreciates a good slab of cake.
You’ll find us here most days, grafting away. Swing by, say hello, and we’ll grab a brew and a bun.
Building a new brand? Refreshing an old site? Starting from scratch and don’t know where to begin? Get in touch.
The only spam we like is in a butty. We won’t bombard you or waffle on. Unsubscribe anytime.
| Cookie | Duration | Description |
|---|---|---|
| LANG | 9 hours | Linkedin set this cookie to set user's preferred language. |
| nsid | session | PayPal sets this cookie to enable the PayPal payment service on the website. |
| tsrce | 3 days | PayPal sets this cookie to enable the PayPal payment service on the website. |
| wp_woocommerce_session_* | 2 days | WooCommerce sets this cookie to make a unique code for each customer so that it knows where to find the cart data in the database for each one. |
| x-pp-s | session | PayPal sets this cookie to process payments on the site. |
| Cookie | Duration | Description |
|---|---|---|
| l7_az | 30 minutes | This cookie is necessary for the PayPal login function on the website. |
| _gat | 1 minute | This cookie is installed by Google Universal Analytics to restrain request rate and thus limit the collection of data on high traffic sites. |
| Cookie | Duration | Description |
|---|---|---|
| CONSENT | 2 years | YouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data. |
| tk_ai | 1 year 1 month 4 days | JetPack sets this cookie to store a randomly-generated anonymous ID used only within the admin area and for general analytics tracking. |
| tk_lr | 1 year | JetPack plugin sets this referral cookie on sites using WooCommerce, which analyzes referrer behaviour for Jetpack. |
| tk_or | 1 year 1 month 4 days | JetPack plugin sets this referral cookie on sites using WooCommerce, which analyzes referrer behaviour for Jetpack. |
| tk_qs | 29 minutes | JetPack sets this cookie to store a randomly-generated anonymous ID used only within the admin area and for general analytics tracking. |
| tk_r3d | 3 days | JetPack installs this cookie to collect internal metrics for user activity and improve user experience. |
| _ga | 2 years | The _ga cookie, installed by Google Analytics, calculates visitor, session and campaign data and also keeps track of site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognize unique visitors. |
| _gid | 1 day | Installed by Google Analytics, _gid cookie stores information on how visitors use a website, while also creating an analytics report of the website's performance. Some of the data that are collected include the number of visitors, their source, and the pages they visit anonymously. |
| Cookie | Duration | Description |
|---|---|---|
| NID | 6 months | Google sets the cookie for advertising purposes; to limit the number of times the user sees an ad, to unwanted mute ads, and to measure the effectiveness of ads. |
| VISITOR_INFO1_LIVE | 5 months 27 days | A cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface. |
| YSC | session | YSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages. |
| yt.innertube::nextId | never | This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen. |
| yt.innertube::requests | never | This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen. |
| Cookie | Duration | Description |
|---|---|---|
| m | 1 year 1 month 4 days | No description available. |