{
  "bio": {
    "name": "Luke Addington",
    "alias": "LukeDev",
    "title": "Full-stack developer / Head of Software",
    "summary": "I build efficient, scalable, and maintainable web solutions — from APIs and mapping platforms to browser tools and experiments. I enjoy sharing knowledge and contributing to the developer community.",
    "mission": {
      "primary": "Create efficient, scalable, and maintainable web solutions",
      "secondary": "Share knowledge and contribute to the developer community"
    },
    "contact": {
      "email": "contact@lukedev.co.uk",
      "github": "https://github.com/hairyduck",
      "linkedin": "https://linkedin.com/in/lukeaddington",
      "codepen": "https://codepen.io/HairyDuck"
    }
  },
  "seo": {
    "siteName": "LukeDev",
    "siteUrl": "https://lukedev.co.uk",
    "title": "Luke Addington | Full-Stack Developer & Head of Software | LukeDev",
    "description": "Portfolio of Luke Addington (LukeDev), a UK full-stack developer and Head of Software building APIs, mapping platforms, browser tools, and open-source projects including PostboxMap, GoodbyeGuide, and SpotterAtlas.",
    "ogImage": "https://lukedev.co.uk/assets/og-image.png",
    "ogImageWidth": 1200,
    "ogImageHeight": 630,
    "knowsAbout": [
      "Full-stack development",
      "Web APIs",
      "JavaScript",
      "Mapping platforms",
      "Open source",
      "Browser extensions",
      "AWS"
    ],
    "jobTitle": "Head of Software"
  },
  "categories": [
    {
      "id": "web-development",
      "label": "Web Development",
      "description": "Web-based projects and applications"
    },
    {
      "id": "tools",
      "label": "Development Tools",
      "description": "Utilities and tools for developers"
    },
    {
      "id": "experiments",
      "label": "Experiments",
      "description": "Experimental projects and prototypes"
    },
    {
      "id": "tutorials",
      "label": "Tutorials",
      "description": "Educational content and guides"
    }
  ],
  "projects": [
    {
      "name": "PostboxMap.co.uk",
      "description": "PostboxMap.co.uk is a free, community-driven map of UK postboxes. Spotters, historians, and contributors find boxes near them, log visits, add photos, and record details such as royal cypher and box type. Together they build a searchable public dataset of postal heritage. The map and data are open to everyone, with a public API for researchers and developers.",
      "category": "web-development",
      "link": "https://postboxmap.co.uk/",
      "page": "projects/postboxmap/",
      "icon": "assets/icons/postboxmap.png"
    },
    {
      "name": "GoodbyeGuide",
      "description": "GoodbyeGuide is a free, secure platform for documenting farewell wishes and personal preferences so loved ones are not left guessing. Record ceremony details, music, readings, and personal messages, then assign trusted Goodbye Guardians who can access your wishes when needed. Unlike a Will, it focuses on the personal side of how you want to be remembered. Preferences are encrypted and private until the right time, and you can update them whenever your thoughts change.",
      "category": "web-development",
      "link": "https://goodbyeguide.com",
      "page": "projects/goodbyeguide/",
      "icon": "assets/icons/goodbyeguide.png"
    },
    {
      "name": "Moon Phase API",
      "description": "A comprehensive lunar data API service providing real-time moon phase information, lunar events tracking, and detailed astronomical calculations. Features include moon phase tracking, illumination percentages, lunar events, moonrise/moonset times, and a visual lunar calendar.",
      "category": "web-development",
      "link": "https://moon-api.com",
      "icon": "assets/icons/moon-phase-api.png"
    },
    {
      "name": "SpotterAtlas",
      "description": "Spot, map, and verify the world together. A network of owner-run map communities for cataloguing real-world objects with photos, field-level verification, and moderation.",
      "category": "web-development",
      "link": "https://spotteratlas.com",
      "icon": "assets/icons/spotteratlas.png",
      "publicAlpha": true
    },
    {
      "name": "LunarDrop.link",
      "description": "Peer-to-peer file transfer in the browser. Share a mission code or link to send files directly between devices, with no account required and no permanent cloud storage.",
      "category": "web-development",
      "link": "https://lunardrop.link",
      "icon": "assets/icons/lunardrop.svg"
    },
    {
      "name": "HoursRight",
      "description": "Personal shift ledger for UK zero-hours and agency workers. Log offers, hours, cancellations, and notice on your device. Export when you need proof. Not legal advice.",
      "category": "web-development",
      "link": "https://lukedev.co.uk/app/HoursRight/",
      "icon": "assets/icons/hoursright.png",
      "comingSoon": true
    },
    {
      "name": "MileLog",
      "description": "Mileage tracking made simple. Log trips on your device for iOS and Android, apply your rate, and claim with less fuss. No account; trip data stays local.",
      "category": "web-development",
      "link": "https://lukedev.co.uk/app/MileLog/",
      "icon": "assets/icons/milelog.png",
      "comingSoon": true
    },
    {
      "name": "Med Log",
      "description": "A simple medication log for iOS and Android. Mark doses Taken or Skipped on your device, with optional reminders and a calendar trail. No account; logs stay local.",
      "category": "web-development",
      "link": "https://lukedev.co.uk/app/MedLog/",
      "icon": "assets/icons/medlog.png",
      "comingSoon": true
    },
    {
      "name": "Little Fibs",
      "description": "A private, on-device notebook for keeping small social fibs straight. Who you told, what you said, when you might see them again. No account, no cloud, no ads.",
      "category": "web-development",
      "link": "https://lukedev.co.uk/app/LittleFibs/",
      "icon": "assets/icons/little-fibs.png",
      "comingSoon": true
    },
    {
      "name": "Ring.com Live View Reconnector",
      "description": "A browser extension that automatically reconnects your Ring camera's Live View when it disconnects, ensuring continuous monitoring of your Ring cameras.",
      "category": "tools",
      "link": "https://github.com/HairyDuck/ring-live-view-reconnector",
      "icon": "assets/icons/ring-reconnector.png",
      "deprecated": true,
      "deprecationNote": "May still work, but Ring keep moving the goalposts to stop it working."
    },
    {
      "name": "Cyber Essentials Plus Compliance Script",
      "description": "Scripts to configure Windows 10, Windows 11, and macOS systems for Cyber Essentials Plus compliance. Automates security configurations and best practices to enhance system security.",
      "category": "tools",
      "link": "https://github.com/HairyDuck/Cyber-Essentials-Plus",
      "icon": "assets/icons/cyber-essentials.png"
    },
    {
      "name": "AWS Data Pipeline Manager",
      "description": "An open-source web application to view, edit, and manage AWS DataPipeline jobs. Created as a user-friendly alternative after the official DataPipeline console was discontinued on May 1st, 2023.",
      "category": "tools",
      "link": "https://github.com/HairyDuck/aws-datapipeline-manager",
      "icon": "assets/icons/aws-pipeline.png"
    },
    {
      "name": "osTicket API Plus",
      "description": "Open-source osTicket plugin that adds the missing REST ticket endpoints: list, view, reply, assign, close, catalogues, and attachment download. Same X-API-Key auth as core. No core file patches. MIT.",
      "category": "tools",
      "link": "https://github.com/HairyDuck/osticket-api-plus",
      "icon": "assets/icons/osticket-api-plus.svg",
      "versionLabels": ["osTicket 1.17+", "1.18+", "2.0 planned"]
    },
    {
      "name": "osTicket Statuspage",
      "description": "Native Atlassian Statuspage home for the osTicket client portal. Overall state, components, incidents, maintenance, and subscribe, without an iframe. Optional degraded banner elsewhere. No core patches. MIT.",
      "category": "tools",
      "link": "https://github.com/HairyDuck/osticket-statuspage",
      "icon": "assets/icons/osticket-statuspage.svg",
      "versionLabels": ["osTicket 1.17+", "1.18+", "2.0 planned"]
    },
    {
      "name": "osTicket Domain Gate",
      "description": "Domain allowlist and blocklist plugin for osTicket. Gate new tickets by sender domain, notify with a canned reply, honour organisation domains, and let staff allow a domain via an internal note. No core patches. MIT.",
      "category": "tools",
      "link": "https://github.com/HairyDuck/osticket-domain-gate",
      "icon": "assets/icons/osticket-domain-gate.svg",
      "versionLabels": ["osTicket 1.17+", "1.18+", "2.0 planned"]
    },
    {
      "name": "HAB Video Log",
      "description": "A habitat video log system with The Martian in mind: sol-by-sol style journaling, playback that feels like reviewing footage from the HAB, and the same stubborn idea that you can science your way through almost anything. A small tribute to Andy Weir's survival-on-Mars storytelling (on screen and on the page).",
      "category": "experiments",
      "link": "https://projects.lukedev.co.uk/HAB_Video_Log",
      "icon": "assets/icons/hab-video-log.png"
    },
    {
      "name": "CRT Terminal",
      "description": "A retro CRT terminal template with authentic effects including screen flicker, scanlines, and text glitches. Features customizable boot sequences and interactive command input. Perfect for creating old-school terminal interfaces.",
      "category": "experiments",
      "link": "https://github.com/HairyDuck/terminal",
      "icon": "assets/icons/crt-terminal.png"
    },
    {
      "name": "Synthetix Transcript Downloader (Unofficial)",
      "description": "A guide to using the unofficial Synthetix Transcript Downloader, an application that fetches and saves chat transcripts from the Synthetix platform.",
      "category": "tutorials",
      "link": "https://github.com/HairyDuck/Synthetix-Transcript-Downloader",
      "icon": "assets/icons/synthetix-transcript.png"
    }
  ]
}
