[{"data":1,"prerenderedAt":859},["ShallowReactive",2],{"53Iw26Oqhb":3,"mcUn8NwYrD":81},[4],{"id":5,"Title":6,"Summary":7,"created_at":8,"updated_at":9,"ShortDescription":10,"Order":11,"slug":12,"Content":13,"Feature":18,"tags":68},9,"Orbit: AI grant scraping for Grants Online","How Pixelhop built Orbit for Grants Online: a continuous AI grant scraping pipeline that turned a year of manual review into minutes per grant.","2026-05-12T14:50:53.433Z","2026-05-12T16:21:10.404Z","An AI grant scraping pipeline that turned a year of manual review into minutes per grant.",-2,"orbit:-ai-grant-scraping-for-grants-online",[14],{"__component":15,"id":16,"Text":17},"text.text",440,":::stats\n~4 mins | per grant scrape, run in parallel\n93% | of updates auto-applied without human touch\n4 weeks | from kickoff to production MVP\n:::\n\nGrants Online runs a UK grants directory used by businesses, charities, schools, and councils to find funding they can actually apply for. Around 3,000 grants. A small team. A single source of truth that has to stay accurate while the funding landscape changes underneath it.\n\nThe job of keeping it accurate, before Orbit, was a year long. One pass across the catalogue. Funding amounts changing, deadlines moving, eligibility tightening, whole grants closing. By the time the team finished the loop, the start of the loop was already out of date. New grants piled up faster than old ones could be checked.\n\nAndreas Lichters, the founder, came to us with the idea. He didn't want an AI that *replaced* his team. He wanted one that did the grunt work so his team could spend their time on judgement calls. Our job, as an [AI product studio](https://pixelhop.io/services/ai-product-development), was to make that real. And to make it cheap enough to actually run.\n\n## How do you trust an AI to update a live grants database?\n\nNot by having a human approve every change. That defeats the point.\n\nThis was the design decision everything else hangs off. If every AI update needed a human eye, we'd just be shifting the bottleneck from \"review the whole catalogue once a year\" to \"review every AI suggestion, forever\". No time saved. The brief was different. The system needed to publish routine changes on its own, and only pull a human in when something looked unusual.\n\nSo Orbit has two layers. The first is **Orbit Admin**, a working surface where staff can see every proposed change as a field-by-field diff: current value on the left, proposed value on the right, accept, reject, or edit toggles per field. The second is **the Gatekeeper**, a separate AI agent whose only job is to look at each proposed change, compare it to the existing record, and decide whether a human needs to see it.\n\n![The Gatekeeper risk panel for a single scrape run, showing a 60/100 risk score, a manual-review decision, and a list of reasons including 'title identity change' and 'primary link host changed'.](https://res.cloudinary.com/djyjvrw5u/image/upload/v1778601473/Gatekeeper_from_Pixelhop_7367970169.png)\n*The Gatekeeper risk-scores every scrape and decides whether a human needs to look. The reasons it flags are the ones a human would have flagged.*\n\nThe Gatekeeper scores every run from 0 to 100 against signals like \"the title identity has shifted\", \"the primary link host has changed\", \"the location scope has changed dramatically\". Low-risk changes (a tightened deadline, a refreshed paragraph) auto-publish without anyone in the loop. High-risk changes (a fundamentally different grant under the same URL) get blocked and routed to the review queue. The team sees only the cases that genuinely need their judgement.\n\n![Orbit Admin's Proposed Changes view, showing the current value of a grant on the left and the AI's proposed new value on the right, with an accept-or-reject toggle on each field.](https://res.cloudinary.com/djyjvrw5u/image/upload/v1778601416/Proposed_Changes_for_Pixelhop_39e3ec00b6.png)\n*When the Gatekeeper does flag a change for review, this is what staff see. Field-by-field, accept or reject.*\n\nWe started cautious. Early in the project the Gatekeeper was strict and most changes flowed through the review queue. We watched what got flagged, watched what the team accepted, watched the false-positives pile up. As confidence in the agents grew, we relaxed the thresholds. Now 93% of updates publish without a human touch, and the queue holds only the genuinely ambiguous cases.\n\nThe principle, named: **earned autonomy.** Not every AI update needs a human signing it off. But the AI has to earn the trust to publish on its own, and the system needs a way to recognise when it should slow down and ask. That's what the Gatekeeper is for. We'll apply this pattern again.\n\n## How do you scrape thousands of different grant sites without breaking the bank?\n\nEvery grant funder builds their site differently. WordPress, custom CMSes, PDFs, hand-rolled HTML from 2007. There is no shared schema, no shared layout, no shared anything. A traditional scraper would need a custom rule per source and a developer on call when each one changed.\n\nSo we did the opposite. Three specialised AI agents, each doing one thing well: one scrapes the page, one categorises the grant, one judges whether the result needs human review. They're orchestrated through [Mastra](https://mastra.ai), a TypeScript agent framework, and they share state through a dedicated [Payload CMS](https://payloadcms.com) instance that acts as the AI's working scratchpad. Scraping itself runs on [Firecrawl](https://firecrawl.dev), which handles the awkward parts (JavaScript-rendered pages, anti-bot protection) so the agents don't have to.\n\n![The Mastra Studio workflow editor, showing the eight-step grant workflow with scraping, categorisation, region selection, and gatekeeper branches all visualised as a node graph.](https://res.cloudinary.com/djyjvrw5u/image/upload/v1778601086/Pixelhop_Workflow_1_31a4a25461.png)\n*The full grant workflow in Mastra Studio. Scrape, categorise, review, save: each box a specialised agent doing one job.*\n\nThe cost discipline was the harder problem. LLM calls aren't free, and a system that scrapes 3,000 grants on a rolling schedule could very easily run a bill that makes the whole thing pointless. The rule we held to: use AI only where it actually earns its keep. Page fetching, link-following, validation, deduplication, database writes: all conventional code. The expensive bits (language understanding, classification, judgement) only run where the page genuinely needs them.\n\nThe result is a scrape that completes in around four minutes per grant, runs many in parallel, and produces a structured draft ready for review. The whole pipeline ships into a Nuxt admin dashboard hosted on [Railway](https://railway.com), with search powered by [Meilisearch](https://meilisearch.com) (text, facets, and vector search in one). Not a workflow you wire up on a Friday afternoon. A pipeline that has to keep running on its own.\n\n## How do users actually find the grants?\n\nGrants Online were already running an AI chatbot on their site, built on [Chat Thing](https://chatthing.ai), Pixelhop's own AI agent product. So we didn't need to invent a new chat surface. We connected the new pipeline straight into the one they already had.\n\nMeet **Max**, \"Your Virtual Funding Advisor\". Max sits embedded in the main Grants Online site. A user types in who they are and what they need (\"we're a primary school in Cardiff, what grants are available to set up a breakfast club?\"). Max asks clarifying questions, runs targeted searches against the Orbit search API, and returns a ranked, sharable shortlist of grants the user can save and revisit.\n\n![The Max chatbot embedded on grantsonline.org.uk, asking a user clarifying questions about their biodiversity project before searching for grants.](https://res.cloudinary.com/djyjvrw5u/image/upload/v1778601186/Pixelhop_Grants_Agent_32f1a16c74.png)\n*Max asks the clarifying questions a researcher would ask, then searches Orbit's database and returns a ranked shortlist.*\n\nFeedback from real users since Max went live has been strong. It's the visible end of the pipeline, but it's only as good as the data underneath. The point of Orbit is that the data underneath is now actually fresh.\n\n## Results\n\nA year of manual review compressed into a continuous, automated pipeline. The team still owns the judgement calls. The grunt work runs in the background.\n\n- **~4 minutes per grant scrape**, with many running in parallel. The catalogue refresh that used to take a year now runs on a rolling cadence. New grants get picked up days after they appear, not months later.\n- **93% of AI updates auto-publish** without a human touch. We started with the Gatekeeper strict, then relaxed thresholds as the agents earned trust. The review queue is now bounded to the genuinely ambiguous cases, which is the actual measure of success.\n- **4 weeks from kickoff to production MVP**, scoped to the Grants for Schools subset. The system now manages the full Grants Online catalogue, around 3,000 grants and growing.\n\n![The Orbit Admin dashboard, showing 2,877 total grants, 1,862 active, a 93% workflow success rate, and a chart of recent workflow run activity.](https://res.cloudinary.com/djyjvrw5u/image/upload/v1778601706/Pixelhop_Dashboard_1_595e084531.png)\n*The dashboard the Grants Online team checks every morning. Total grants, review queue, weekly activity, all in one view.*\n\n## What's next\n\nMax is live on [grantsonline.org.uk](https://www.grantsonline.org.uk) and earning strong feedback from real users. We're tuning the agent's prompting and search behaviour as usage data comes in.\n\nIf you're thinking about how to weave AI into a content pipeline you actually trust, take a look at [our AI agent development practice](/services/ai-agents) or [the rest of our work](/our-work).\n",{"id":19,"name":20,"alternativeText":21,"caption":21,"width":22,"height":23,"formats":24,"hash":61,"ext":26,"mime":29,"size":62,"url":63,"previewUrl":31,"provider":64,"provider_metadata":65,"created_at":66,"updated_at":67},407,"Pixelhop Website Assets (1).png","",3444,2212,{"large":25,"small":37,"medium":45,"thumbnail":53},{"ext":26,"url":27,"hash":28,"mime":29,"name":30,"path":31,"size":32,"width":33,"height":34,"provider_metadata":35},".png","https://res.cloudinary.com/djyjvrw5u/image/upload/v1778597224/large_Pixelhop_Website_Assets_1_cc8e7b9cec.png","large_Pixelhop_Website_Assets_1_cc8e7b9cec","image/png","large_Pixelhop Website Assets (1).png",null,280.35,1000,642,{"public_id":28,"resource_type":36},"image",{"ext":26,"url":38,"hash":39,"mime":29,"name":40,"path":31,"size":41,"width":42,"height":43,"provider_metadata":44},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1778597226/small_Pixelhop_Website_Assets_1_cc8e7b9cec.png","small_Pixelhop_Website_Assets_1_cc8e7b9cec","small_Pixelhop Website Assets (1).png",95.39,500,321,{"public_id":39,"resource_type":36},{"ext":26,"url":46,"hash":47,"mime":29,"name":48,"path":31,"size":49,"width":50,"height":51,"provider_metadata":52},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1778597225/medium_Pixelhop_Website_Assets_1_cc8e7b9cec.png","medium_Pixelhop_Website_Assets_1_cc8e7b9cec","medium_Pixelhop Website Assets (1).png",181.54,750,482,{"public_id":47,"resource_type":36},{"ext":26,"url":54,"hash":55,"mime":29,"name":56,"path":31,"size":57,"width":58,"height":59,"provider_metadata":60},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1778597221/thumbnail_Pixelhop_Website_Assets_1_cc8e7b9cec.png","thumbnail_Pixelhop_Website_Assets_1_cc8e7b9cec","thumbnail_Pixelhop Website Assets (1).png",32.32,243,156,{"public_id":55,"resource_type":36},"Pixelhop_Website_Assets_1_cc8e7b9cec",1673.84,"https://res.cloudinary.com/djyjvrw5u/image/upload/v1778597219/Pixelhop_Website_Assets_1_cc8e7b9cec.png","cloudinary",{"public_id":61,"resource_type":36},"2026-05-12T14:47:06.704Z","2026-05-12T14:47:06.719Z",[69,75],{"id":70,"Name":71,"created_at":72,"updated_at":73,"slug":74},32,"AI agents","2026-05-12T15:25:43.879Z","2026-05-12T15:25:43.919Z","ai-agents",{"id":76,"Name":77,"created_at":78,"updated_at":79,"slug":80},34,"AI Automations","2026-05-12T15:26:32.941Z","2026-05-12T15:26:32.951Z","ai-automations",[82,245,262,455,674,807],{"id":83,"Title":84,"Summary":85,"created_at":86,"updated_at":87,"ShortDescription":88,"Order":89,"slug":90,"Content":91,"Feature":205,"tags":239},6,"F1 Arcade","## Helping deliver a world first F1 Arcade Experience in London\n\nPixelhop collaborated with F1 Arcade to create an exciting new racing experience in central London, combining cutting-edge racing simulation with delicious food and cocktails. Pixelhop provided a range of digital projects for F1 Arcade, forming a major part of the customer-facing experience.","2023-01-09T13:02:35.609Z","2023-01-09T13:23:26.888Z","Pixelhop collaborated with F1 Arcade to create an exciting new racing experience in central London.",1,"f1-arcade",[92,95,111,114,128,131,143,146,158,161,173,176,188,191,202],{"__component":15,"id":93,"Text":94},287,"## Creating the sim user interface\n\nAt the core of F1 Arcade are the simulators! These are the state-of-the-art racing simulators in which you and your friends will be experiencing sweat-inducing F1 races. Pixelhop built a custom interface displayed on both simulator screens before and after the race that onboards users to the F1 Arcade experiences, allowing them to make selections using the steering wheel, such as their team and difficulty, and displays the race results after the race.\n\nIn addition, Pixelhop also built the in-game heads-up display, including your car's speedometer, the leaderboard and in-race notifications.\n\nBelow is a short vid of the F1 legends David Coulthard and Mika Häkkinen experiencing our work and battling it out together.\n \n\n",{"__component":96,"id":97,"Video":98},"video.video",26,{"id":99,"name":100,"alternativeText":21,"caption":21,"width":31,"height":31,"formats":31,"hash":101,"ext":102,"mime":103,"size":104,"url":105,"previewUrl":106,"provider":64,"provider_metadata":107,"created_at":109,"updated_at":110},188,"VIDEO-2022-12-01-00-09-58.mp4","VIDEO_2022_12_01_00_09_58_c46bebf7a8",".mp4","video/mp4",58368.44,"https://res.cloudinary.com/djyjvrw5u/video/upload/v1673268854/VIDEO_2022_12_01_00_09_58_c46bebf7a8.mp4","http://res.cloudinary.com/djyjvrw5u/video/upload/c_scale,dl_200,vs_6,w_250/VIDEO_2022_12_01_00_09_58_c46bebf7a8.gif",{"public_id":101,"resource_type":108},"video","2023-01-09T12:54:18.593Z","2023-01-09T12:54:18.614Z",{"__component":15,"id":112,"Text":113},288,"And here's a little taster of some of our work on the team leaderboards close up during development. ",{"__component":96,"id":115,"Video":116},27,{"id":117,"name":118,"alternativeText":21,"caption":21,"width":31,"height":31,"formats":31,"hash":119,"ext":120,"mime":121,"size":122,"url":123,"previewUrl":124,"provider":64,"provider_metadata":125,"created_at":126,"updated_at":127},187,"Screen Recording 2022-10-26 at 20.19.19 (1).mov","Screen_Recording_2022_10_26_at_20_19_19_1_d129424f71",".mov","video/quicktime",58993.91,"https://res.cloudinary.com/djyjvrw5u/video/upload/v1673268540/Screen_Recording_2022_10_26_at_20_19_19_1_d129424f71.mov","http://res.cloudinary.com/djyjvrw5u/video/upload/c_scale,dl_200,vs_6,w_250/Screen_Recording_2022_10_26_at_20_19_19_1_d129424f71.gif",{"public_id":119,"resource_type":108},"2023-01-09T12:49:04.207Z","2023-01-09T12:49:04.223Z",{"__component":15,"id":129,"Text":130},289,"## Boosting guest interactions with the Driver Hub\n\nThe fun doesn't stop once your race has finished. Racing at F1 Arcade earns you Arcadians which can be spent in the F1 Arcade Driver Hub on exclusive rewards such as winners' cocktails, prize draws and mini-games. We built the Driver Hub to help extend guests racing experiences, make them more memorable and keep them coming back for more.",{"__component":96,"id":132,"Video":133},28,{"id":134,"name":135,"alternativeText":21,"caption":21,"width":31,"height":31,"formats":31,"hash":136,"ext":102,"mime":103,"size":137,"url":138,"previewUrl":139,"provider":64,"provider_metadata":140,"created_at":141,"updated_at":142},189,"Hub editted.mp4","Hub_editted_0a3568d180",16367.23,"https://res.cloudinary.com/djyjvrw5u/video/upload/v1673268942/Hub_editted_0a3568d180.mp4","http://res.cloudinary.com/djyjvrw5u/video/upload/c_scale,dl_200,vs_6,w_250/Hub_editted_0a3568d180.gif",{"public_id":136,"resource_type":108},"2023-01-09T12:55:44.152Z","2023-01-09T12:55:44.161Z",{"__component":15,"id":144,"Text":145},290,"## Who can top the leaderboard?\n\nGot some spare time between races? Why not try one of the two in-venue mini-games Pixelhop built to pass the time?\n\nReact is a reaction game where players have to physically turn off lights as they light up around a track when they light up. You have 60 seconds to turn off as many as you can. You might reach the top of the leaderboard if you are good enough. Pixelhop built the game on top of the provided hardware, allowing users to join the game by scanning their ticket, the main game interface and the public leaderboards.\n\nLights out is a pure test of reaction speed. Guests can see how quickly they would be off the start line by reacting to the F1 grid starting lights. Pixelhop built the entire game interface and leaderboards.",{"__component":96,"id":147,"Video":148},29,{"id":149,"name":150,"alternativeText":21,"caption":21,"width":31,"height":31,"formats":31,"hash":151,"ext":120,"mime":121,"size":152,"url":153,"previewUrl":154,"provider":64,"provider_metadata":155,"created_at":156,"updated_at":157},190,"IMG_1270.MOV.mov","IMG_1270_MOV_3fa69cbdcb",31411.47,"https://res.cloudinary.com/djyjvrw5u/video/upload/v1673269064/IMG_1270_MOV_3fa69cbdcb.mp4","http://res.cloudinary.com/djyjvrw5u/video/upload/c_scale,dl_200,vs_6,w_250/IMG_1270_MOV_3fa69cbdcb.gif",{"public_id":151,"resource_type":108},"2023-01-09T12:57:46.042Z","2023-01-09T12:57:46.050Z",{"__component":15,"id":159,"Text":160},291,"## Learn about F1 Arcade\n\nA new concept like F1 Arcade needs a marketing site that explains the concept, conveys the vibe and encourages bookings. So Pixelhop built F1 Arcade, a marketing site where users can learn everything they need about the experience.\n\n",{"__component":96,"id":162,"Video":163},30,{"id":164,"name":165,"alternativeText":21,"caption":21,"width":31,"height":31,"formats":31,"hash":166,"ext":102,"mime":103,"size":167,"url":168,"previewUrl":169,"provider":64,"provider_metadata":170,"created_at":171,"updated_at":172},191,"Marketing site editted.mp4","Marketing_site_editted_ea31d0bc86",59099.51,"https://res.cloudinary.com/djyjvrw5u/video/upload/v1673269235/Marketing_site_editted_ea31d0bc86.mp4","http://res.cloudinary.com/djyjvrw5u/video/upload/c_scale,dl_200,vs_6,w_250/Marketing_site_editted_ea31d0bc86.gif",{"public_id":166,"resource_type":108},"2023-01-09T13:00:38.489Z","2023-01-09T13:00:38.503Z",{"__component":15,"id":174,"Text":175},292,"## Booking Journey & Booking companion\n\nBooking your F1 Arcade experience must be as fast and straightforward as possible. So Pixelhop built a custom booking journey that guides users through choosing their race mode, adding guests, and selecting a date and time.\n\nOnce they have a booking, Pixelhop also built a booking companion that allows guests to check in on race day and add drivers to their race.",{"__component":96,"id":177,"Video":178},31,{"id":179,"name":180,"alternativeText":21,"caption":21,"width":31,"height":31,"formats":31,"hash":181,"ext":120,"mime":121,"size":182,"url":183,"previewUrl":184,"provider":64,"provider_metadata":185,"created_at":186,"updated_at":187},193,"Booking editted.mov","Booking_editted_96c6694141",8950.19,"https://res.cloudinary.com/djyjvrw5u/video/upload/v1673270112/Booking_editted_96c6694141.mov","http://res.cloudinary.com/djyjvrw5u/video/upload/c_scale,dl_200,vs_6,w_250/Booking_editted_96c6694141.gif",{"public_id":181,"resource_type":108},"2023-01-09T13:15:14.450Z","2023-01-09T13:15:14.461Z",{"__component":15,"id":189,"Text":190},293,"## A shared foundation - Front-end component library\n\nIn addition to the above projects, Pixelhop built a bespoke component library shared across all the F1 Arcade front-end projects. This keeps all projects consistent with the F1 Arcade brand and provides an excellent base for starting new projects. Although there were unique challenges in creating the component library, it needed to work across a vast range of resolutions, up to gigantic sim screens down to mobile.\n",{"__component":96,"id":70,"Video":192},{"id":193,"name":194,"alternativeText":21,"caption":21,"width":31,"height":31,"formats":31,"hash":195,"ext":120,"mime":121,"size":196,"url":197,"previewUrl":198,"provider":64,"provider_metadata":199,"created_at":200,"updated_at":201},194,"Screen Recording 2023-01-09 at 13.18.05.mov","Screen_Recording_2023_01_09_at_13_18_05_2c0a5297a1",54739.21,"https://res.cloudinary.com/djyjvrw5u/video/upload/v1673270411/Screen_Recording_2023_01_09_at_13_18_05_2c0a5297a1.mov","http://res.cloudinary.com/djyjvrw5u/video/upload/c_scale,dl_200,vs_6,w_250/Screen_Recording_2023_01_09_at_13_18_05_2c0a5297a1.gif",{"public_id":195,"resource_type":108},"2023-01-09T13:20:13.936Z","2023-01-09T13:20:13.950Z",{"__component":15,"id":203,"Text":204},294,"## Wrapping up an extremely exciting multi-faceted digital project\n\nThe above is a concise summary of how Pixelhop helped F1 Arcade deliver a world-first experience. Each project could do with a case study of its own, but hopefully, this gives you a flavour of the kind of multi-platform innovative work we can achieve.",{"id":206,"name":207,"alternativeText":21,"caption":21,"width":208,"height":209,"formats":210,"hash":233,"ext":212,"mime":215,"size":234,"url":235,"previewUrl":31,"provider":64,"provider_metadata":236,"created_at":237,"updated_at":238},195,"f1-arcade.jpeg",820,547,{"small":211,"medium":220,"thumbnail":226},{"ext":212,"url":213,"hash":214,"mime":215,"name":216,"path":31,"size":217,"width":42,"height":218,"provider_metadata":219},".jpeg","https://res.cloudinary.com/djyjvrw5u/image/upload/v1673270602/small_f1_arcade_6a97fa7ee2.jpg","small_f1_arcade_6a97fa7ee2","image/jpeg","small_f1-arcade.jpeg",43.77,334,{"public_id":214,"resource_type":36},{"ext":212,"url":221,"hash":222,"mime":215,"name":223,"path":31,"size":224,"width":50,"height":42,"provider_metadata":225},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1673270602/medium_f1_arcade_6a97fa7ee2.jpg","medium_f1_arcade_6a97fa7ee2","medium_f1-arcade.jpeg",84.9,{"public_id":222,"resource_type":36},{"ext":212,"url":227,"hash":228,"mime":215,"name":229,"path":31,"size":230,"width":231,"height":59,"provider_metadata":232},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1673270601/thumbnail_f1_arcade_6a97fa7ee2.jpg","thumbnail_f1_arcade_6a97fa7ee2","thumbnail_f1-arcade.jpeg",12.23,234,{"public_id":228,"resource_type":36},"f1_arcade_6a97fa7ee2",102.03,"https://res.cloudinary.com/djyjvrw5u/image/upload/v1673270600/f1_arcade_6a97fa7ee2.jpg",{"public_id":233,"resource_type":36},"2023-01-09T13:23:23.279Z","2023-01-09T13:23:23.290Z",[240],{"id":162,"Name":241,"created_at":242,"updated_at":243,"slug":244},"Development","2024-02-28T11:26:22.605Z","2024-02-28T11:26:22.622Z","development",{"id":5,"Title":6,"Summary":7,"created_at":8,"updated_at":9,"ShortDescription":10,"Order":11,"slug":12,"Content":246,"Feature":248,"tags":259},[247],{"__component":15,"id":16,"Text":17},{"id":19,"name":20,"alternativeText":21,"caption":21,"width":22,"height":23,"formats":249,"hash":61,"ext":26,"mime":29,"size":62,"url":63,"previewUrl":31,"provider":64,"provider_metadata":258,"created_at":66,"updated_at":67},{"large":250,"small":252,"medium":254,"thumbnail":256},{"ext":26,"url":27,"hash":28,"mime":29,"name":30,"path":31,"size":32,"width":33,"height":34,"provider_metadata":251},{"public_id":28,"resource_type":36},{"ext":26,"url":38,"hash":39,"mime":29,"name":40,"path":31,"size":41,"width":42,"height":43,"provider_metadata":253},{"public_id":39,"resource_type":36},{"ext":26,"url":46,"hash":47,"mime":29,"name":48,"path":31,"size":49,"width":50,"height":51,"provider_metadata":255},{"public_id":47,"resource_type":36},{"ext":26,"url":54,"hash":55,"mime":29,"name":56,"path":31,"size":57,"width":58,"height":59,"provider_metadata":257},{"public_id":55,"resource_type":36},{"public_id":61,"resource_type":36},[260,261],{"id":76,"Name":77,"created_at":78,"updated_at":79,"slug":80},{"id":70,"Name":71,"created_at":72,"updated_at":73,"slug":74},{"id":263,"Title":264,"Summary":265,"created_at":266,"updated_at":267,"ShortDescription":268,"Order":89,"slug":269,"Content":270,"Feature":412,"tags":448},4,"Run Things","[Run Things](https://www.runthings.co.uk/) is a virtual running platform organising exciting events in aid of the charity Mind. They aim to promote brilliant mental and physical health, all while bringing people together from all over the world.\n\nWe love everything Run Things are about, so we were really excited when they came to us for help with their new site.","2021-02-04T18:57:28.159Z","2024-02-28T11:29:26.956Z","Virtual running events in aid of Mind.","run-things",[271,312,315,325,328,368,370,410],{"__component":272,"id":273,"Size":31,"caption":31,"Image":274},"image.image",19,[275],{"id":276,"name":277,"alternativeText":278,"caption":21,"width":279,"height":280,"formats":281,"hash":306,"ext":26,"mime":29,"size":307,"url":308,"previewUrl":31,"provider":64,"provider_metadata":309,"created_at":310,"updated_at":311},39,"Screenshot 2021-02-04 at 19.05.52","Run Things homepage",2754,1812,{"large":282,"small":288,"medium":294,"thumbnail":300},{"ext":26,"url":283,"hash":284,"mime":29,"size":285,"width":33,"height":286,"provider_metadata":287},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1612465582/large_Screenshot_2021-02-04_at_19.05.52_3908fa547b.png","large_Screenshot_2021-02-04_at_19.05.52_3908fa547b",1118.53,658,{"public_id":284,"resource_type":36},{"ext":26,"url":289,"hash":290,"mime":29,"size":291,"width":42,"height":292,"provider_metadata":293},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1612465584/small_Screenshot_2021-02-04_at_19.05.52_3908fa547b.png","small_Screenshot_2021-02-04_at_19.05.52_3908fa547b",313.43,329,{"public_id":290,"resource_type":36},{"ext":26,"url":295,"hash":296,"mime":29,"size":297,"width":50,"height":298,"provider_metadata":299},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1612465583/medium_Screenshot_2021-02-04_at_19.05.52_3908fa547b.png","medium_Screenshot_2021-02-04_at_19.05.52_3908fa547b",661.89,493,{"public_id":296,"resource_type":36},{"ext":26,"url":301,"hash":302,"mime":29,"size":303,"width":304,"height":59,"provider_metadata":305},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1612465579/thumbnail_Screenshot_2021-02-04_at_19.05.52_3908fa547b.png","thumbnail_Screenshot_2021-02-04_at_19.05.52_3908fa547b",80.96,237,{"public_id":302,"resource_type":36},"Screenshot_2021-02-04_at_19.05.52_3908fa547b",5935.56,"https://res.cloudinary.com/djyjvrw5u/image/upload/v1612465578/Screenshot_2021-02-04_at_19.05.52_3908fa547b.png",{"public_id":306,"resource_type":36},"2021-02-04T19:06:25.125Z","2021-02-04T19:06:37.315Z",{"__component":15,"id":313,"Text":314},36,"## Outgrowing Wordpress\n\nLike many companies, Run Things had got by with WordPress site for several years. Unfortunately, it was beginning to crack under the weight of Run Things' increasing popularity.\n\nWordPress had been heavily customised to power their virtual running events. It was bursting at the seams with plugins and pages were taking ages to load leaving their customer's frustrated.\nIf there's one thing runners appreciate it has to be speed, and Run Things was literally a \"slow running site\". 🤣\n\nIt was time for Run Things to move away from WordPress and onto a platform that would better support their bespoke needs and give their customer base the kind of performance they crave.\n\n## Our solution\n\nWe rebuilt the Run Things marketing site, shop and event entry process from the ground up with modern technologies that would allow Run Things to scale and grow in the future without the constraints of WordPress. \n\n### Headless Craft CMS & Craft Commerce\n\nTo manage their content and power the Run Things store we decided to use Craft CMS and its e-commerce extension Craft Commerce.\n\nCraft CMS allowed us to model the site content intuitively and flexibly making it easy for Run Things to add new pages, create new events, and add items to their store. We use Craft CMS heedlessly. This means Craft CMS isn't being used to render the site pages, instead, we make use of the GraphQL APIs to load the content separately on the frontend.\n\nIn layman's terms this means the site much more scalable and performant. On top of that, if Run Thing's were ever to make a mobile app, using Craft heedlessly would make re-using the same content in the mobile app a breeze.\n\n### Gridsome, Vue.js and Netlify for speed and scalability\n\nTo power the front-end experience we used the static site generator Gridsome. This is what makes the site super fast. Gridsome uses the APIs from Craft CMS to load in all the content and then pre-renders all of the sites pages. This means when a user loads a page its not slowed down by things like slow database connects, or naughty WordPress plugins.\n\nCombine this with hosting on Netlify and you have got a site that's fast enough for Usain Bolt.\n\nThis approach is called the JAMstack. You might have noticed we talk about it a lot, and hopefully, by clicking around the Run Things site for yourself you can appreciate its benefits.\n\nVue.js is our weapon of choice when building interactivity on websites as it allows us to build highly usable sites without stifling our creative flare.\n\n### Sparking joy\n\nWe believe every site should spark joy. Our slogan is \"We make computers dance\" after all!\n\nRun Things is no different, and we sprinkled a little bit of signature Pixelhop seasoning in the form of a shower of confetti to make users feel like winners when adding products to their shopping basket.",{"__component":96,"id":89,"Video":316},{"id":317,"name":318,"alternativeText":21,"caption":21,"width":31,"height":31,"formats":31,"hash":319,"ext":102,"mime":103,"size":320,"url":321,"previewUrl":322,"provider":64,"provider_metadata":323,"created_at":324,"updated_at":324},40,"Screen_Recording_2021-02-01_at_16.49.46_(convert-video-online.com)","Screen_Recording_2021-02-01_at_16.49.46_(convert-video-online.com)_61ccbb12af",340.46,"https://res.cloudinary.com/djyjvrw5u/video/upload/v1612465699/Screen_Recording_2021-02-01_at_16.49.46_%28convert-video-online.com%29_61ccbb12af.mp4","http://res.cloudinary.com/djyjvrw5u/video/upload/c_scale,dl_200,vs_6,w_250/Screen_Recording_2021-02-01_at_16.49.46_(convert-video-online.com)_61ccbb12af.gif",{"public_id":319,"resource_type":108},"2021-02-04T19:08:20.593Z",{"__component":15,"id":326,"Text":327},38,"Not only does this make filling up your shopping basket super fun and satisfying, but it also serves an important UX purpose in indicating the product has been added and to basket successfully and to draw the user's eye to the new basket total.\n\n## Happy customers, happy client\n\nWhat does all of the above amount to? Well on launch day Run Things were happy to receive lots of lovely comments from customers and their first big event post-launch Run Up To Christmas was a huge success.",{"__component":272,"id":329,"Size":31,"caption":31,"Image":330},21,[331],{"id":332,"name":333,"alternativeText":334,"caption":21,"width":335,"height":336,"formats":337,"hash":362,"ext":26,"mime":29,"size":363,"url":364,"previewUrl":31,"provider":64,"provider_metadata":365,"created_at":366,"updated_at":367},41,"Screenshot_2021-02-01_at_16.55.16","Great Run Things launch day twitter feedback",1232,1282,{"large":338,"small":344,"medium":350,"thumbnail":356},{"ext":26,"url":339,"hash":340,"mime":29,"size":341,"width":342,"height":33,"provider_metadata":343},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1612513223/large_Screenshot_2021-02-01_at_16.55.16_1d05bae289.png","large_Screenshot_2021-02-01_at_16.55.16_1d05bae289",343.34,961,{"public_id":340,"resource_type":36},{"ext":26,"url":345,"hash":346,"mime":29,"size":347,"width":348,"height":42,"provider_metadata":349},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1612513225/small_Screenshot_2021-02-01_at_16.55.16_1d05bae289.png","small_Screenshot_2021-02-01_at_16.55.16_1d05bae289",127.49,480,{"public_id":346,"resource_type":36},{"ext":26,"url":351,"hash":352,"mime":29,"size":353,"width":354,"height":50,"provider_metadata":355},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1612513224/medium_Screenshot_2021-02-01_at_16.55.16_1d05bae289.png","medium_Screenshot_2021-02-01_at_16.55.16_1d05bae289",225.63,721,{"public_id":352,"resource_type":36},{"ext":26,"url":357,"hash":358,"mime":29,"size":359,"width":360,"height":59,"provider_metadata":361},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1612513221/thumbnail_Screenshot_2021-02-01_at_16.55.16_1d05bae289.png","thumbnail_Screenshot_2021-02-01_at_16.55.16_1d05bae289",21.05,150,{"public_id":358,"resource_type":36},"Screenshot_2021-02-01_at_16.55.16_1d05bae289",262.8,"https://res.cloudinary.com/djyjvrw5u/image/upload/v1612513220/Screenshot_2021-02-01_at_16.55.16_1d05bae289.png",{"public_id":362,"resource_type":36},"2021-02-05T08:20:25.707Z","2021-02-05T08:21:25.359Z",{"__component":15,"id":276,"Text":369},"We were lucky enough to receive an awesome testimonial from Run Things too:",{"__component":272,"id":371,"Size":31,"caption":31,"Image":372},22,[373],{"id":374,"name":375,"alternativeText":376,"caption":21,"width":377,"height":378,"formats":379,"hash":404,"ext":26,"mime":29,"size":405,"url":406,"previewUrl":31,"provider":64,"provider_metadata":407,"created_at":408,"updated_at":409},42,"Screenshot_2021-02-01_at_16.58.36","Awesome Run Things testimonial for Pixelhop",1194,468,{"large":380,"small":386,"medium":392,"thumbnail":397},{"ext":26,"url":381,"hash":382,"mime":29,"size":383,"width":33,"height":384,"provider_metadata":385},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1612513447/large_Screenshot_2021-02-01_at_16.58.36_e931613118.png","large_Screenshot_2021-02-01_at_16.58.36_e931613118",142.41,392,{"public_id":382,"resource_type":36},{"ext":26,"url":387,"hash":388,"mime":29,"size":389,"width":42,"height":390,"provider_metadata":391},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1612513449/small_Screenshot_2021-02-01_at_16.58.36_e931613118.png","small_Screenshot_2021-02-01_at_16.58.36_e931613118",56.12,196,{"public_id":388,"resource_type":36},{"ext":26,"url":393,"hash":394,"mime":29,"size":395,"width":50,"height":203,"provider_metadata":396},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1612513448/medium_Screenshot_2021-02-01_at_16.58.36_e931613118.png","medium_Screenshot_2021-02-01_at_16.58.36_e931613118",95.06,{"public_id":394,"resource_type":36},{"ext":26,"url":398,"hash":399,"mime":29,"size":400,"width":401,"height":402,"provider_metadata":403},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1612513446/thumbnail_Screenshot_2021-02-01_at_16.58.36_e931613118.png","thumbnail_Screenshot_2021-02-01_at_16.58.36_e931613118",20.91,245,96,{"public_id":399,"resource_type":36},"Screenshot_2021-02-01_at_16.58.36_e931613118",65.36,"https://res.cloudinary.com/djyjvrw5u/image/upload/v1612513445/Screenshot_2021-02-01_at_16.58.36_e931613118.png",{"public_id":404,"resource_type":36},"2021-02-05T08:24:09.642Z","2021-02-05T08:26:05.933Z",{"__component":15,"id":317,"Text":411},"### Collaborating to get results\n\nAt Pixelhop we are used to collaborating with UI designers, UX designers, and developers to achieve great results. Run Things was no different and we had a great time breaking down the barriers of time and distance working with the awesome New Zealand based designer Alex Slack ([Check his instragram here](https://www.instagram.com/alex_slack_creative/?hl=en-gb)) and Run Things' own in house developer [Jack Allen](https://jackallen.me/) who did an amazing job building the RunThings app and APIs.",{"id":413,"name":414,"alternativeText":21,"caption":21,"width":415,"height":416,"formats":417,"hash":442,"ext":26,"mime":29,"size":443,"url":444,"previewUrl":31,"provider":64,"provider_metadata":445,"created_at":446,"updated_at":447},322,"Group 43.png",1542,990,{"large":418,"small":424,"medium":430,"thumbnail":436},{"ext":26,"url":419,"hash":420,"mime":29,"name":421,"path":31,"size":422,"width":33,"height":34,"provider_metadata":423},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1708620915/large_Group_43_7e8f7ebc12.png","large_Group_43_7e8f7ebc12","large_Group 43.png",522.52,{"public_id":420,"resource_type":36},{"ext":26,"url":425,"hash":426,"mime":29,"name":427,"path":31,"size":428,"width":42,"height":43,"provider_metadata":429},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1708620918/small_Group_43_7e8f7ebc12.png","small_Group_43_7e8f7ebc12","small_Group 43.png",159.24,{"public_id":426,"resource_type":36},{"ext":26,"url":431,"hash":432,"mime":29,"name":433,"path":31,"size":434,"width":50,"height":51,"provider_metadata":435},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1708620916/medium_Group_43_7e8f7ebc12.png","medium_Group_43_7e8f7ebc12","medium_Group 43.png",313.37,{"public_id":432,"resource_type":36},{"ext":26,"url":437,"hash":438,"mime":29,"name":439,"path":31,"size":440,"width":58,"height":59,"provider_metadata":441},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1708620914/thumbnail_Group_43_7e8f7ebc12.png","thumbnail_Group_43_7e8f7ebc12","thumbnail_Group 43.png",50.39,{"public_id":438,"resource_type":36},"Group_43_7e8f7ebc12",739.45,"https://res.cloudinary.com/djyjvrw5u/image/upload/v1708620912/Group_43_7e8f7ebc12.png",{"public_id":442,"resource_type":36},"2024-02-22T16:55:18.544Z","2024-02-22T16:55:18.600Z",[449,450],{"id":162,"Name":241,"created_at":242,"updated_at":243,"slug":244},{"id":132,"Name":451,"created_at":452,"updated_at":453,"slug":454},"Design","2023-05-18T14:11:46.661Z","2023-05-18T14:11:46.679Z","design",{"id":89,"Title":456,"Summary":457,"created_at":458,"updated_at":459,"ShortDescription":460,"Order":461,"slug":462,"Content":463,"Feature":631,"tags":671},"Rye & Beyond","We built the Rye and Beyond Cottages holiday rental site using modern JAMStack technologies to give them an advantage over their slow competitors and £0 hosting costs.\n","2020-04-26T09:44:51.098Z","2024-02-28T11:29:48.553Z","Hand picked Cottages, Houses & apartments in East Sussex & Kent.",3,"rye-and-beyond",[464,466,505,507,546,549,587,590,628],{"__component":15,"id":83,"Text":465},"[Rye and Beyond Cottages](https://ryeandbeyondcottages.co.uk) needed a website to showcase their wonderful collection of holiday cottages and rentals in South East England. Great photos and content are key to choosing a holiday cottage, so the site needed to provide comprehensive content management abilities, as well as photo-rich pages to showcase each property, all while being easy to use, fast and SEO friendly.",{"__component":272,"id":83,"Size":31,"caption":31,"Image":467},[468],{"id":469,"name":470,"alternativeText":471,"caption":21,"width":472,"height":473,"formats":474,"hash":499,"ext":26,"mime":29,"size":500,"url":501,"previewUrl":31,"provider":64,"provider_metadata":502,"created_at":503,"updated_at":504},20,"Screenshot 2020-04-30 at 16.35.09","Rye and Beyond Cottages Homepage",2594,1560,{"large":475,"small":481,"medium":487,"thumbnail":493},{"ext":26,"url":476,"hash":477,"mime":29,"size":478,"width":33,"height":479,"provider_metadata":480},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1588261188/large_Screenshot_2020-04-30_at_16.35.09_4b0f0dfa96.png","large_Screenshot_2020-04-30_at_16.35.09_4b0f0dfa96",1085.41,601,{"public_id":477,"resource_type":36},{"ext":26,"url":482,"hash":483,"mime":29,"size":484,"width":42,"height":485,"provider_metadata":486},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1588261190/small_Screenshot_2020-04-30_at_16.35.09_4b0f0dfa96.png","small_Screenshot_2020-04-30_at_16.35.09_4b0f0dfa96",298.41,301,{"public_id":483,"resource_type":36},{"ext":26,"url":488,"hash":489,"mime":29,"size":490,"width":50,"height":491,"provider_metadata":492},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1588261189/medium_Screenshot_2020-04-30_at_16.35.09_4b0f0dfa96.png","medium_Screenshot_2020-04-30_at_16.35.09_4b0f0dfa96",636.76,451,{"public_id":489,"resource_type":36},{"ext":26,"url":494,"hash":495,"mime":29,"size":496,"width":401,"height":497,"provider_metadata":498},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1588261185/thumbnail_Screenshot_2020-04-30_at_16.35.09_4b0f0dfa96.png","thumbnail_Screenshot_2020-04-30_at_16.35.09_4b0f0dfa96",78.7,147,{"public_id":495,"resource_type":36},"Screenshot_2020-04-30_at_16.35.09_4b0f0dfa96",5473.45,"https://res.cloudinary.com/djyjvrw5u/image/upload/v1588261184/Screenshot_2020-04-30_at_16.35.09_4b0f0dfa96.png",{"public_id":499,"resource_type":36},"2020-04-30T15:39:50.605Z","2020-05-02T10:31:43.401Z",{"__component":15,"id":263,"Text":506},"## Gaining an edge with the JAMStack\n\nThe holiday cottage sector is hotly contested in the UK, and any competitive advantage is worthwhile. While researching local competitors we found that the majority seemed to care more about SEO than the usability and performance of their sites. \n\nCompetitors sites were typically extremely slow to load, especially when on mobile, and navigating between page and performing common activities such as searching and booking felt like a chore rather than an exciting pre-holiday activity.\n\nBelow is a Google Lighthouse report for Rye and Beyond's biggest local competitor:\n\n\n\n\n",{"__component":272,"id":263,"Size":31,"caption":31,"Image":508},[509],{"id":510,"name":511,"alternativeText":512,"caption":21,"width":513,"height":514,"formats":515,"hash":540,"ext":26,"mime":29,"size":541,"url":542,"previewUrl":31,"provider":64,"provider_metadata":543,"created_at":544,"updated_at":545},17,"Screenshot 2020-04-30 at 16.25.29","A Rye and Beyond competitor's lighthouse poor score",1178,496,{"large":516,"small":522,"medium":528,"thumbnail":534},{"ext":26,"url":517,"hash":518,"mime":29,"size":519,"width":33,"height":520,"provider_metadata":521},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1588260350/large_Screenshot_2020-04-30_at_16.25.29_28b4882c6b.png","large_Screenshot_2020-04-30_at_16.25.29_28b4882c6b",81.89,421,{"public_id":518,"resource_type":36},{"ext":26,"url":523,"hash":524,"mime":29,"size":525,"width":42,"height":526,"provider_metadata":527},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1588260351/small_Screenshot_2020-04-30_at_16.25.29_28b4882c6b.png","small_Screenshot_2020-04-30_at_16.25.29_28b4882c6b",31.2,211,{"public_id":524,"resource_type":36},{"ext":26,"url":529,"hash":530,"mime":29,"size":531,"width":50,"height":532,"provider_metadata":533},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1588260351/medium_Screenshot_2020-04-30_at_16.25.29_28b4882c6b.png","medium_Screenshot_2020-04-30_at_16.25.29_28b4882c6b",54.42,316,{"public_id":530,"resource_type":36},{"ext":26,"url":535,"hash":536,"mime":29,"size":537,"width":401,"height":538,"provider_metadata":539},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1588260349/thumbnail_Screenshot_2020-04-30_at_16.25.29_28b4882c6b.png","thumbnail_Screenshot_2020-04-30_at_16.25.29_28b4882c6b",10.92,103,{"public_id":536,"resource_type":36},"Screenshot_2020-04-30_at_16.25.29_28b4882c6b",36.99,"https://res.cloudinary.com/djyjvrw5u/image/upload/v1588260348/Screenshot_2020-04-30_at_16.25.29_28b4882c6b.png",{"public_id":540,"resource_type":36},"2020-04-30T15:25:52.085Z","2020-05-02T10:32:36.717Z",{"__component":15,"id":547,"Text":548},5,"In case you aren't aware, Google Lighthouse is a tool used by web developers to measure and improve the quality of websites. It gives a website a score out of 100 based on many factors, including how quickly the site loads, the accessibility of the site, how well the site is optimised for SEO amongst other factors.\n\nAs you can see above, Rye and Beyond's competitors don't fair well. There is no point spending so much time optimising your site for SEO if it takes 13 seconds to load when people finally arrive there. We wanted to make sure we didn't make the same mistake for Rye and Beyond.\n\nHere is Rye and Beyond's Lighthouse score and as you can see its night and day difference! ",{"__component":272,"id":547,"Size":31,"caption":31,"Image":550},[551],{"id":552,"name":553,"alternativeText":554,"caption":21,"width":555,"height":556,"formats":557,"hash":581,"ext":26,"mime":29,"size":582,"url":583,"previewUrl":31,"provider":64,"provider_metadata":584,"created_at":585,"updated_at":586},18,"Screenshot 2020-04-30 at 16.26.38","Rye and Beyond's Lighthouse good score",1187,508,{"large":558,"small":564,"medium":570,"thumbnail":575},{"ext":26,"url":559,"hash":560,"mime":29,"size":561,"width":33,"height":562,"provider_metadata":563},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1588260429/large_Screenshot_2020-04-30_at_16.26.38_9edf6bbd19.png","large_Screenshot_2020-04-30_at_16.26.38_9edf6bbd19",84.98,428,{"public_id":560,"resource_type":36},{"ext":26,"url":565,"hash":566,"mime":29,"size":567,"width":42,"height":568,"provider_metadata":569},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1588260431/small_Screenshot_2020-04-30_at_16.26.38_9edf6bbd19.png","small_Screenshot_2020-04-30_at_16.26.38_9edf6bbd19",30.73,214,{"public_id":566,"resource_type":36},{"ext":26,"url":571,"hash":572,"mime":29,"size":573,"width":50,"height":43,"provider_metadata":574},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1588260430/medium_Screenshot_2020-04-30_at_16.26.38_9edf6bbd19.png","medium_Screenshot_2020-04-30_at_16.26.38_9edf6bbd19",55.46,{"public_id":572,"resource_type":36},{"ext":26,"url":576,"hash":577,"mime":29,"size":578,"width":401,"height":579,"provider_metadata":580},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1588260428/thumbnail_Screenshot_2020-04-30_at_16.26.38_9edf6bbd19.png","thumbnail_Screenshot_2020-04-30_at_16.26.38_9edf6bbd19",11.51,105,{"public_id":577,"resource_type":36},"Screenshot_2020-04-30_at_16.26.38_9edf6bbd19",37.84,"https://res.cloudinary.com/djyjvrw5u/image/upload/v1588260427/Screenshot_2020-04-30_at_16.26.38_9edf6bbd19.png",{"public_id":581,"resource_type":36},"2020-04-30T15:27:11.383Z","2020-05-02T10:32:24.552Z",{"__component":15,"id":588,"Text":589},7,"As a result of these high scores Rye and Beyond loads in a flash, even on mobile with a poor connection, and navigation between pages feels almost instant. All of this while maintaining great SEO optimisation, accessibility, and security. \n\nTo achieve scores like these we used something called the [JAMStack](https://jamstack.org/). The JAMStack is a modern way to build websites that offers much better performance, security, and cheaper, easier scaling.\n\n## Tiny Hosting Costs \n\nAnother welcome benefit of JAMstack sites are the reduced hosting costs. A traditional site requires a server to host the site and its content, and can quickly become an expensive recurring cost, especially when traffic to the site increases.\n\nThe Rye and Beyond site hosted entirely on [Netlify](https://netlify.com) and to date, the hosting bill has been £0. Netlify has an extremely generous free tier that is enough to support sites even as their traffic grows far beyond what a tradition host/server could support. \n\nOn top of this hosting on Netlify allows the site to load quickly wherever you are in the world. A traditional web server becomes slower the further away you are from its geographic location. You can see this clearly by how Rye and Beyond's competitors Lighthouse scores vary drastically by region, where are Rye and Beyond's stay fairly consistent. \n\n",{"__component":272,"id":588,"Size":31,"caption":31,"Image":591},[592],{"id":371,"name":593,"alternativeText":594,"caption":21,"width":595,"height":596,"formats":597,"hash":622,"ext":26,"mime":29,"size":623,"url":624,"previewUrl":31,"provider":64,"provider_metadata":625,"created_at":626,"updated_at":627},"Screenshot 2020-05-01 at 08.44.35","Rye and Beyonds blog page",2486,1832,{"large":598,"small":604,"medium":610,"thumbnail":616},{"ext":26,"url":599,"hash":600,"mime":29,"size":601,"width":33,"height":602,"provider_metadata":603},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1588319117/large_Screenshot_2020-05-01_at_08.44.35_168bce4279.png","large_Screenshot_2020-05-01_at_08.44.35_168bce4279",881,737,{"public_id":600,"resource_type":36},{"ext":26,"url":605,"hash":606,"mime":29,"size":607,"width":42,"height":608,"provider_metadata":609},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1588319119/small_Screenshot_2020-05-01_at_08.44.35_168bce4279.png","small_Screenshot_2020-05-01_at_08.44.35_168bce4279",243.18,368,{"public_id":606,"resource_type":36},{"ext":26,"url":611,"hash":612,"mime":29,"size":613,"width":50,"height":614,"provider_metadata":615},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1588319118/medium_Screenshot_2020-05-01_at_08.44.35_168bce4279.png","medium_Screenshot_2020-05-01_at_08.44.35_168bce4279",519.11,553,{"public_id":612,"resource_type":36},{"ext":26,"url":617,"hash":618,"mime":29,"size":619,"width":620,"height":59,"provider_metadata":621},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1588319115/thumbnail_Screenshot_2020-05-01_at_08.44.35_168bce4279.png","thumbnail_Screenshot_2020-05-01_at_08.44.35_168bce4279",50.34,212,{"public_id":618,"resource_type":36},"Screenshot_2020-05-01_at_08.44.35_168bce4279",4211.48,"https://res.cloudinary.com/djyjvrw5u/image/upload/v1588319114/Screenshot_2020-05-01_at_08.44.35_168bce4279.png",{"public_id":622,"resource_type":36},"2020-05-01T07:45:20.201Z","2020-05-02T10:33:00.924Z",{"__component":15,"id":629,"Text":630},8,"## First of its kind\n\nAs far as we are aware this is the first holiday rental site built using the JAMStack but we are sure there will be many more to follow!\n\nUsing the JAMStack approach has given Rye and Beyond a website that stands out amongst their competitors, is fast and easy to use, and has tiny running costs. ",{"id":632,"name":633,"alternativeText":21,"caption":21,"width":634,"height":635,"formats":636,"hash":665,"ext":26,"mime":29,"size":666,"url":667,"previewUrl":31,"provider":64,"provider_metadata":668,"created_at":669,"updated_at":670},323,"Group 67.png",1561,1020,{"large":637,"small":644,"medium":651,"thumbnail":658},{"ext":26,"url":638,"hash":639,"mime":29,"name":640,"path":31,"size":641,"width":33,"height":642,"provider_metadata":643},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1708621094/large_Group_67_d4f09e214b.png","large_Group_67_d4f09e214b","large_Group 67.png",701.21,653,{"public_id":639,"resource_type":36},{"ext":26,"url":645,"hash":646,"mime":29,"name":647,"path":31,"size":648,"width":42,"height":649,"provider_metadata":650},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1708621096/small_Group_67_d4f09e214b.png","small_Group_67_d4f09e214b","small_Group 67.png",206.74,327,{"public_id":646,"resource_type":36},{"ext":26,"url":652,"hash":653,"mime":29,"name":654,"path":31,"size":655,"width":50,"height":656,"provider_metadata":657},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1708621095/medium_Group_67_d4f09e214b.png","medium_Group_67_d4f09e214b","medium_Group 67.png",422.02,490,{"public_id":653,"resource_type":36},{"ext":26,"url":659,"hash":660,"mime":29,"name":661,"path":31,"size":662,"width":663,"height":59,"provider_metadata":664},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1708621093/thumbnail_Group_67_d4f09e214b.png","thumbnail_Group_67_d4f09e214b","thumbnail_Group 67.png",58.45,239,{"public_id":660,"resource_type":36},"Group_67_d4f09e214b",947.75,"https://res.cloudinary.com/djyjvrw5u/image/upload/v1708621092/Group_67_d4f09e214b.png",{"public_id":665,"resource_type":36},"2024-02-22T16:58:17.410Z","2024-02-22T16:58:17.423Z",[672,673],{"id":132,"Name":451,"created_at":452,"updated_at":453,"slug":454},{"id":162,"Name":241,"created_at":242,"updated_at":243,"slug":244},{"id":547,"Title":675,"Summary":676,"created_at":677,"updated_at":678,"ShortDescription":679,"Order":680,"slug":681,"Content":682,"Feature":770,"tags":804},"Sussex University - Halogen","We were approached by the School of Mathematical and Physical Sciences at the University of Sussex to help them produce a tool for regional healthcare planners to forecast the local impact of Covid-19.\n\nCovid-19 has changed everyone's lives on a global scale so we jumped at the chance to help in any way we could.","2021-02-05T08:57:48.661Z","2024-02-28T11:30:06.288Z","Forecast the local impact of COVID-19",2,"sussex-university-halogen",[683,722,724,767],{"__component":272,"id":684,"Size":31,"caption":31,"Image":685},23,[686],{"id":687,"name":688,"alternativeText":688,"caption":21,"width":689,"height":690,"formats":691,"hash":716,"ext":26,"mime":29,"size":717,"url":718,"previewUrl":31,"provider":64,"provider_metadata":719,"created_at":720,"updated_at":721},44,"Halogen homepage",2630,1858,{"large":692,"small":698,"medium":704,"thumbnail":710},{"ext":26,"url":693,"hash":694,"mime":29,"size":695,"width":33,"height":696,"provider_metadata":697},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1612515281/large_Halogen_homepage_0f8f2f04b6.png","large_Halogen_homepage_0f8f2f04b6",212.75,706,{"public_id":694,"resource_type":36},{"ext":26,"url":699,"hash":700,"mime":29,"size":701,"width":42,"height":702,"provider_metadata":703},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1612515282/small_Halogen_homepage_0f8f2f04b6.png","small_Halogen_homepage_0f8f2f04b6",80.33,353,{"public_id":700,"resource_type":36},{"ext":26,"url":705,"hash":706,"mime":29,"size":707,"width":50,"height":708,"provider_metadata":709},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1612515282/medium_Halogen_homepage_0f8f2f04b6.png","medium_Halogen_homepage_0f8f2f04b6",144.36,530,{"public_id":706,"resource_type":36},{"ext":26,"url":711,"hash":712,"mime":29,"size":713,"width":714,"height":59,"provider_metadata":715},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1612515279/thumbnail_Halogen_homepage_0f8f2f04b6.png","thumbnail_Halogen_homepage_0f8f2f04b6",23.27,221,{"public_id":712,"resource_type":36},"Halogen_homepage_0f8f2f04b6",326.84,"https://res.cloudinary.com/djyjvrw5u/image/upload/v1612515278/Halogen_homepage_0f8f2f04b6.png",{"public_id":716,"resource_type":36},"2021-02-05T08:54:43.215Z","2021-02-05T08:55:11.096Z",{"__component":15,"id":332,"Text":723},"## Forecasting the local impact of Covid-19\n\nThe fantastic team at the University of Sussex had an innovative way to model Covid-19 on a local scale. Most of the existing Covid tools focussed on a national scale ignoring regional differences in population demographics that can significantly impact the way the pandemic progresses within a region.\n\nThe University of Sussex envisaged a tool that took into account these local differences and could help regional planners develop scenario-based policies to help manage the pandemic.\n\nSussex came to us with a basic prototype completed but wanted to build it into a professional quality tool.",{"__component":272,"id":725,"Size":31,"caption":31,"Image":726},24,[727],{"id":728,"name":729,"alternativeText":21,"caption":21,"width":730,"height":731,"formats":732,"hash":761,"ext":26,"mime":29,"size":762,"url":763,"previewUrl":31,"provider":64,"provider_metadata":764,"created_at":765,"updated_at":766},46,"localhost_63395_dashboard_hospital-admissions.png",3584,3316,{"large":733,"small":740,"medium":747,"thumbnail":754},{"ext":26,"url":734,"hash":735,"mime":29,"name":736,"path":31,"size":737,"width":33,"height":738,"provider_metadata":739},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1619798163/large_localhost_63395_dashboard_hospital_admissions_e1cac35cc0.png","large_localhost_63395_dashboard_hospital_admissions_e1cac35cc0","large_localhost_63395_dashboard_hospital-admissions.png",116.13,925,{"public_id":735,"resource_type":36},{"ext":26,"url":741,"hash":742,"mime":29,"name":743,"path":31,"size":744,"width":42,"height":745,"provider_metadata":746},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1619798165/small_localhost_63395_dashboard_hospital_admissions_e1cac35cc0.png","small_localhost_63395_dashboard_hospital_admissions_e1cac35cc0","small_localhost_63395_dashboard_hospital-admissions.png",43.76,462,{"public_id":742,"resource_type":36},{"ext":26,"url":748,"hash":749,"mime":29,"name":750,"path":31,"size":751,"width":50,"height":752,"provider_metadata":753},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1619798164/medium_localhost_63395_dashboard_hospital_admissions_e1cac35cc0.png","medium_localhost_63395_dashboard_hospital_admissions_e1cac35cc0","medium_localhost_63395_dashboard_hospital-admissions.png",76.44,694,{"public_id":749,"resource_type":36},{"ext":26,"url":755,"hash":756,"mime":29,"name":757,"path":31,"size":758,"width":759,"height":59,"provider_metadata":760},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1619798160/thumbnail_localhost_63395_dashboard_hospital_admissions_e1cac35cc0.png","thumbnail_localhost_63395_dashboard_hospital_admissions_e1cac35cc0","thumbnail_localhost_63395_dashboard_hospital-admissions.png",11.16,168,{"public_id":756,"resource_type":36},"localhost_63395_dashboard_hospital_admissions_e1cac35cc0",354.9,"https://res.cloudinary.com/djyjvrw5u/image/upload/v1619798159/localhost_63395_dashboard_hospital_admissions_e1cac35cc0.png",{"public_id":761,"resource_type":36},"2021-04-30T15:56:05.383Z","2021-04-30T15:56:05.408Z",{"__component":15,"id":768,"Text":769},43,"## Interactive graphs and simulations\n\nIn addition to a traditional marketing site explaining how the tool works and selling its features, we built the main app using Nuxt.JS allowing us to create interactive graphs that will enable planners to see how the pandemic is predicted to progress.\n\nUsers can adjust key pandemic parameters such as R rate and hospital capacity to help them predict when they will need to make interventions such as local lockdowns to ease demand on hospitals and reduce transmission.\n\nWe also helped the Sussex mathematicians take their mathematical models written in Python and place them behind a secure API that the front end can use to run the simulations and retrieve the graphs' data.\n\n\u003Ciframe data-v-20ed4c6b=\"\" width=\"100%\" height=\"600\" src=\"https://www.youtube.com/embed/uq16rVvjouA\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"allowfullscreen\" loading=\"lazy\">\u003C/iframe>\n\n## Keeping pace with the pandemic\n\nWhen we started the project, no one could have predicted how quickly the pandemic would progress, so building an app that kept up with the ever-changing situation was undoubtedly a challenge. \n\nLuckily we worked with an incredible team including a UX researcher (\u003Ca target=\"_blank\" href=\"https://bensauer.net/\">Ben Sauer\u003C/a>), UX designer (\u003Ca target=\"_blank\" href=\"https://emma-smith.co.uk/\">Emma Smith\u003C/a>), and UI Designer (\u003Ca target=\"_blank\" href=\"https://www.hustlersquad.net/\">James Gilliard\u003C/a>) who all did an excellent job of taking the tricky maths behind the models and making them into a useful and understandable tool.",{"id":771,"name":772,"alternativeText":21,"caption":21,"width":415,"height":416,"formats":773,"hash":798,"ext":26,"mime":29,"size":799,"url":800,"previewUrl":31,"provider":64,"provider_metadata":801,"created_at":802,"updated_at":803},324,"halogen.png",{"large":774,"small":780,"medium":786,"thumbnail":792},{"ext":26,"url":775,"hash":776,"mime":29,"name":777,"path":31,"size":778,"width":33,"height":34,"provider_metadata":779},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1708621811/large_halogen_9593044a07.png","large_halogen_9593044a07","large_halogen.png",337.1,{"public_id":776,"resource_type":36},{"ext":26,"url":781,"hash":782,"mime":29,"name":783,"path":31,"size":784,"width":42,"height":43,"provider_metadata":785},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1708621814/small_halogen_9593044a07.png","small_halogen_9593044a07","small_halogen.png",105.85,{"public_id":782,"resource_type":36},{"ext":26,"url":787,"hash":788,"mime":29,"name":789,"path":31,"size":790,"width":50,"height":51,"provider_metadata":791},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1708621812/medium_halogen_9593044a07.png","medium_halogen_9593044a07","medium_halogen.png",208.64,{"public_id":788,"resource_type":36},{"ext":26,"url":793,"hash":794,"mime":29,"name":795,"path":31,"size":796,"width":58,"height":59,"provider_metadata":797},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1708621810/thumbnail_halogen_9593044a07.png","thumbnail_halogen_9593044a07","thumbnail_halogen.png",36.65,{"public_id":794,"resource_type":36},"halogen_9593044a07",451.33,"https://res.cloudinary.com/djyjvrw5u/image/upload/v1708621809/halogen_9593044a07.png",{"public_id":798,"resource_type":36},"2024-02-22T17:10:15.348Z","2024-02-22T17:10:15.363Z",[805,806],{"id":132,"Name":451,"created_at":452,"updated_at":453,"slug":454},{"id":162,"Name":241,"created_at":242,"updated_at":243,"slug":244},{"id":629,"Title":808,"Summary":809,"created_at":810,"updated_at":811,"ShortDescription":812,"Order":31,"slug":813,"Content":814,"Feature":817,"tags":851},"Chat Thing","Chat Thing is our first in house product that allows users to create magic AI chatbots.","2024-02-28T09:41:15.840Z","2024-03-20T12:01:15.997Z","Chat Thing is our first in house product that allows users to create magic AI chatbots","chat-thing",[815],{"__component":15,"id":520,"Text":816},"## Client\nPixelhop! We were the client! We have always wanted to diversify Pixelhop’s revenue, and balance client work with our own in house product. After many many projects that we began and never saw through, it felt good to finally change that with Chat Thing.\n\n![Xnapper-2024-03-19-19.34.53.webp](https://res.cloudinary.com/djyjvrw5u/image/upload/v1710876950/Xnapper_2024_03_19_19_34_53_66b816965e.webp)\n\n## The problem\n\nTrue story, this all started because we had a bit of an existential crisis one weekend and were worried about our jobs as designers and developers. Instead of quivering and shying away from it we used it as an excuse to learn more about AI. So we racked our brains and came up with Chat Thing. An easy to use platform that allows users to use their data from different sources and create their own bots. We wanted a no code solution opening up AI possibilities for almost anyone. After a hackathon weekend we had our MVP and Chat Thing was born. \n\n![Xnapper-2024-03-20-11.52.12.webp](https://res.cloudinary.com/djyjvrw5u/image/upload/v1710935582/Xnapper_2024_03_20_11_52_12_788eaba87e.webp)\n\n## Pixelhop’s approach\n\n### SPEED! Just get it out there…\n\nOur approach was essentially speed, we didn’t wait for things to be perfect and polished before getting it out. We designed > built > launched > adapted > repeat.\n\nChat Thing was a weekend project that quickly rocketed. We didn’t have the time to spend on getting it absolutely perfect from the start, we had to build, get it out and adapt. \n\nWe started small and basic then build form there. We decided to start by connecting it up to Notion, where so much of our Pixelhop work is (employee handbook, project management, proposals, documentation etc etc). From here we could create bots and showcase Chat thing. \n\nIn under a week we had a working prototype, we recorded some videos and shared to see how they were received. Eventually people seemed to be getting excited. We weren’t ready yet to launch, so we created a really basic page where people could sign up to show their interest, and to see how many people would sign up. \n\nWe couldn’t believe we got a couple of thousand people sign up in less than a month. \n\nAt this point we hadn’t really thought of all of the possibilities, or where Chat Thing could really go. To be honest, we still don’t know all the different possibilities as the opportunities are endless. \n\n## Strategies Employed\n\n- **Bootstrap Approach:** Chat Thing was developed and launched without external funding.\n- **Fast Prototyping:** The initial idea was prototyped on February 27, with a working model by March 5.\n- **Waitlist Generation:** A basic landing page and strategic posting on Twitter generated a growing waitlist of users eager to try the product.\n- **Phased User Invites:** Began inviting users from the waitlist in small batches to control growth and user experience.\n- **Name and Brand:** The name “Chat Thing” reflects the versatility of the AI bots that can be created using the platform.\n- **High-Profile Support:** Recognition and support from Seth Godin and Dave Winer boosted credibility and exposure.\n\n## Results\n\n- **Revenue Generation:** First paying customer signed up on March 22, and by June, monthly recurring revenue reached £5,000.\n- **User Engagement:** More than 5,300 users have created nearly 4,000 bots within three months.\n- **Product Evolution:** From a single data source and chat channel at launch to supporting multiple data sources and chat channels like Discord, Slack, WhatsApp, and an API.\n- **Recognition:** High-profile users like Seth Godin and Dave Winer have adopted the platform for their content.\n- **Improved Features:** Ongoing updates to product features based on customer feedback.\n\n## Next Steps\n\n- **MRR Goal:** Aim to reach £10,000 MRR, which would make the project self-sustaining and allow for re-investment into the product.\n- **Feature Development:** Implementation of new features and improvements to differentiate Chat Thing from competitors.\n- **Marketing Efforts:** Address current lack of marketing to aid further growth.\n\n## Conclusion\n\nChat Thing has successfully launched as a bootstrapped side project, quickly gaining traction and revenue. Despite the initial challenges and competition, the product has attracted a significant user base and high-profile endorsements. With continuous improvements and strategic marketing, Pixelhop aims to solidify Chat Thing's presence in the market.",{"id":818,"name":819,"alternativeText":21,"caption":21,"width":415,"height":416,"formats":820,"hash":845,"ext":26,"mime":29,"size":846,"url":847,"previewUrl":31,"provider":64,"provider_metadata":848,"created_at":849,"updated_at":850},325,"chatthing (1).png",{"large":821,"small":827,"medium":833,"thumbnail":839},{"ext":26,"url":822,"hash":823,"mime":29,"name":824,"path":31,"size":825,"width":33,"height":34,"provider_metadata":826},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1709113234/large_chatthing_1_dee071de7f.png","large_chatthing_1_dee071de7f","large_chatthing (1).png",438.37,{"public_id":823,"resource_type":36},{"ext":26,"url":828,"hash":829,"mime":29,"name":830,"path":31,"size":831,"width":42,"height":43,"provider_metadata":832},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1709113237/small_chatthing_1_dee071de7f.png","small_chatthing_1_dee071de7f","small_chatthing (1).png",141.71,{"public_id":829,"resource_type":36},{"ext":26,"url":834,"hash":835,"mime":29,"name":836,"path":31,"size":837,"width":50,"height":51,"provider_metadata":838},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1709113236/medium_chatthing_1_dee071de7f.png","medium_chatthing_1_dee071de7f","medium_chatthing (1).png",276.89,{"public_id":835,"resource_type":36},{"ext":26,"url":840,"hash":841,"mime":29,"name":842,"path":31,"size":843,"width":58,"height":59,"provider_metadata":844},"https://res.cloudinary.com/djyjvrw5u/image/upload/v1709113233/thumbnail_chatthing_1_dee071de7f.png","thumbnail_chatthing_1_dee071de7f","thumbnail_chatthing (1).png",47.07,{"public_id":841,"resource_type":36},"chatthing_1_dee071de7f",504.53,"https://res.cloudinary.com/djyjvrw5u/image/upload/v1709113232/chatthing_1_dee071de7f.png",{"public_id":845,"resource_type":36},"2024-02-28T09:40:37.656Z","2024-02-28T09:40:37.670Z",[852,857,858],{"id":177,"Name":853,"created_at":854,"updated_at":855,"slug":856},"AI","2024-02-28T11:26:42.918Z","2024-02-28T11:26:42.935Z","ai",{"id":162,"Name":241,"created_at":242,"updated_at":243,"slug":244},{"id":132,"Name":451,"created_at":452,"updated_at":453,"slug":454},1778602940034]