Bart Nagel's face Bart Nagel – web developer

I’m a programmer based in Vancouver, originally from the UK. I mostly work in web, as a full-stack developer.

There are contact details below.

Project history

  • : Too many shades (all development)
  • : Geminai Risingeducational game (development support and guidance, bug fixes)
  • : AGI Suretrack Prosingle-page marketing website (all development)
  • : AGI Suretrack Farmsingle-page marketing website (all development)
  • : Your Viking Name Twitter botauto-responding Twitter bot (all development)
  • : Vancouver’s Next Top AgentTV show website (all development, and most design)
  • : Vancouver’s Next Top Agentcasting call application form (most development)
  • : Zoconcierge app (maintenance and new features)
  • : Keep Canada Working Twitter botauto-responding Twitter bot (all development)
  • : Discuss Cannabis Twitter mapreal-time map of cannabis-related tweets (all development of map component)
  • : Vancouver Convention Centre Lot 185 pagecustom layout for new restaurant in convention centre (all development including new data schema)
  • : Trans Mountain website maintenance (layout and functionality changes, addition of French translation)
  • : Emerald Health registration microserviceserverless registration logic (all development)
  • : Sparkit Tokenbrochure for investment in company (all development)
  • : Airport City2017 annual report for Edmonton International Airport (most development)
  • : Keep Canada Working landing pageawareness and support-gathering campaign (all development)
  • : Hendrix (all development)
  • : this website (all development)
  • : HyperquakePrismic-based website for branding agency (maintenance of existing website)
  • : AbCellerastatic website for biotech company, pulling content from a cloud-based CMS (all development and toolchain)
  • : 360° panorama for Sky Residences at Ice District (front-end development)
  • : Trans Mountain community/pipeline mapinteractive map as part of new website build (front-end map development and tooling for map data processing)
  • : Matt Wiensrésumé page
  • : Ephie Roweport of legacy PHP-based website to Jekyll
  • : CESO 50th anniversary pagenew section for existing website (all development)
  • : Quality Milkmilk promotion for Dairy Farmers of Canada (most initial front-end development)
  • : Sparkitsocial platform for influencers and their fans (most front- and back-end development for MVP)
  • : Skittles Holidy Pawn Shop (front-end updates for year two, and some refactoring)
  • : Canada in a Daywebsite and video crowdsourcing for film project (all development and sysadmin)
  • : CESOwebsite for non-profit (back-end development and sysadmin)
  • : Priimwebsite for mobile app aimed at hairstylists (all front- and back-end development)
  • : Win the Boardweb-based game for SAP and Intel's Digital Boardroom product (back-end development)
  • : Spring Stylespage and banner for Metropolis at Metrotown (all development)
  • : Adidas Runmore awards pageshowcase of a marketing project (all development except mobile-specific styles)
  • : McDonald’s CRMnewsletter signup and questionnaire (front-end development and deployment scripting)
  • : Lifesize Stylistinteractive physical installation in a mall with 60-inch and 24-inch touch screens (all back-end and most front-end code)
  • : Beetle Road Storiesaward-winning Volkswagen campaign (3D “virtual test drive” feature with canvas fallback, all back-end code including admin panel and Google Street View pathfinding logic, some other front-end code)
  • : Blend Your Friendsproduct promotion for McDonald’s (proof-of-concept Imagemagick face-morphing code)
  • : Mark Wiensholding page based on existing business card (all development)
  • : BC Place Stadiumlarge-scale cloud-CMS-driven website (all back-end and some front-end development)
  • : Vancouver Convention Centrelarge-scale cloud-CMS-driven website (most back-end and some front-end code including map)
The list goes way (way) on.
  • : Selfie Swapcampaign for the Canadian Tourism Commission (all back-end and some front-end code, including moderation panel)
  • : py-lightpackfork of a Python library to control Lightpack
  • : McDonald’s Local Region Marketing toolinternal tool for McDonald’s staff to generate localized banners based on templates (all development)
  • : Milk Every Moment Snack Masterscampaign for the Strategic Milk Alliance (most back-end and some front-end code)
  • : Explore Edmontontourism website (most back-end and some front-end code)
  • : Mobile Stylistmobile-optimized dress-up-doll toy for Metropolis at Metrotown (all back-end development including admin panel, and some front-end code)
  • : Mark Wiens Community Lawn Care flyerflyer for chafer beetle awareness
  • : Canadian Tourism Commission HTML5 adinteractive HTML5 advertisement featured in Süddeutsche Zeitung, Frankfurter Allgemeine Zeitung, and Marco Polo Travel Magazine (all development)
  • : Chafer beetle damage mapuser-facing side of damage reporting database (all development)
  • : Sprintly-GitHubcommand-line tool for connecting Git repositories with Sprintly (fork with major refactoring, new features, and fixes)
  • : BC Hydro maps toolinternal tool for BC Hydro staff to produce custom interactive maps (all development)
  • : Healthy Choice (back- and front-end code for a new page for the existing website, and changes to accommodate a new product range)
  • : Chafer beetle damage reporter toolweb-based internal tool allowing reports and photos to be recorded while surveying for chafer beetle damage (all development)
  • : Milk Every Momentcampaign for the Strategic Milk Alliance (front-end development including the “milk cheers” crowdsourced video carousel feature and its admin panel)
  • : Good Karma Contestcampaign for Servus Credit Union (part of the front- and back-end development)
  • : McDonald’s Monopoly 2013annual Monopoly campaign website (all development including full image generation chain)
  • : McCafé Monday Catch-upscampaign for McDonald’s McCafé (all development)
  • : Mark Wiens Community Lawn Care flyerflyer for chafer beetle awareness
  • : HTML5 dicecustomizable dice roller written in HTML5
  • : Canadian Pacific Rail digital signageelements to be embedded in Flash-based digital signage (all development)
  • : QPC BLT vs BLT QPCcampaign for McDonald’s Quarter Pointer with Cheese BLT (all development)
  • : 24-hour Snack Trackermobile-optimized 24-hour restaurant navigator toy for McDonald’s (most front-end development including route-finding and progress-detection logic)
  • : Montecristo Magazine (front- and back-end development, various Wordpress widgets, responsive styles and code)
  • : Tourism KamloopsFacebook app (front- and back-end development)
  • : Nuvo Magazine (front- and back-end development, various Wordpress widgets, responsive styles and code)
  • : Tourism ChilcotinFacebook app (front- and back-end development)
  • : Mark Wiens Community Lawn Carewebsite for small business (redevelopment improving on an existing design and build)
  • : Mark Wiens Community Lawn Care flyermarketing flyer
  • : Starbucks Rekindleholiday campaign for Starbucks (part of the front-end development, and some back-end development including a video generation service)
  • : Starbucks Verismo Systemwebsite for the Starbucks coffee maker (most front-end development, including parallax system)
  • : Starbucks PSL Challengeinteractive games for Starbucks’s Pumpkin Spice Latte campaign (front-end development including wordsearch, quiz, and other mini-games)
  • : Rise Abovecampaign for the Nike Jordan brand (part of the front-end development)
  • : Starbucks Frappuccinothe 2012 website for Frappuccino (half of the front-end development, including a jingle-making toy)
  • : Mark Wiens Community Lawn Care printed materialsbusiness card, fridge magnet, flyer (design and layout)
  • : Nike Golf Speed Trialscampaign for Nike Golf (front-end development of mobile version)
  • : Tazo Tea Timecampaign for Starbucks (all front-end development)
  • : MPNotifierGTK system-tray tool for MPD (fork of existing software with significant changes)
  • : vubatGTK system-tray battery monitor (fork of existing software with significant changes)
  • : Read for Profitsales website for e-book and proofreading course (all design and development)
  • : afrepolinked data audiofile repository (all development)
  • : py-colourcolour manipulation module for Python
  • : Decorum Tile Studiowebsite redevelopment, improving on existing design (all development)
  • : Internationale Meistersinger Akademiesinging mastercourse website (all development of original version of site)
  • : EqiatQTI item authoring tool (all development)
  • : Question BankQTI collection and delivery system integrating with Eqiat (all development)
  • : imgur.sha somewhat-widely-used bash script for uploading to Imgur
  • : colour.jscolour manipulation module for Javascript
  • : More Than a Lifetime cover artsimple cover art for rock band The Livid’s EP
  • : py-translatecommand-line language translation filter leveraging the Google Translate API (defunct)
  • : Qube Mosaictile showcase website (adaptation of an existing website)
  • : Ephie Rowewebsite for ante- and post-natal fitness instructor (all design and development)
  • : Mind the Gapinformational site for the University of Southampton Students’ Union (design and development)
  • : Learn Freelancingmarketing and sales website for proofreading book and course (design and development)
  • : The Pocket Book of Proofreadingpromotional website (design and development)
  • : Live Music Societystudent society website (redesign and rebuild)
  • : Southampton University Staff Club Football Society (design and development)
  • : Learn Freelancing Proofreading and Editing Course (typesetting and digital annotation)
  • : Signal to Strikerock band website (design and development)
  • : Signal to Strike cover art and packaging (CD digipak and disc design)
  • : digital annotation of the Pocket Book of Proofreading (vector PDF edits resembling handwritten corrections)
  • : the Dance Floor Fillersfunctions band website (design and development)
  • : the Market House Innwebsite for an inn in Glastonbury, UK (design and development)
  • : 2006 EP cover art (cover art design)
  • : Westpointrock band website (Flash elements and layout)
  • : Hold Your Head Up Highpromotional website for novel (design and development)
  • : Live Music Societystudent society website (all development)
  • : Love and Comfort in a Time of Confuse bannerFlash banner ad for rock band Westpoint
  • : Treecare Tree Surgeons
  • : Love and Comfort in a Time of Confuse e-carde-card with music clips for rock band Westpoint
  • : 64dollar Productionsvideo production company website (design and development)
  • : The Lividrock band website redesign and rebuild (design and development)
  • : GBH clan signatureFlash toy
  • : ShawnL Productionswebsite for music producer Shawn Lefebvre (design and development)
  • : Edith Wienswebsite for soprano (design and development)
  • : The Lividwebsite for rock band (design and development)
  • : Crushed Like Fruit cover artcover art for InMe’s 2002 UK number 25 single (cover art design, one of two design contest winners)

Like what you see?

If you need any kind of web development done, let me know.

I’m currently interested in:

Other things I’m good at:

  • Website back-end coding (Node.js with Express or Serverless; Python with Django; PHP with Laravel; MySQL, MariaDB, PostgreSQL, and Sqlite; Linux/Unix shell)
  • Responsive site layout in HTML5 and CSS3
  • Javascript/ES6 coding, including Typescript
  • React and other front-end libraries and frameworks
  • Building APIs, and hooking up to existing ones
  • Building clear, powerful, and easy-to-use control panels
  • Setting up and optimizing build systems (for example with Webpack)
  • Devops and other automation
  • Automated unit and acceptance tests
  • Vector-based art (SVGs)
  • Proofreading
  • Music notation

On the other hand, I rarely accept work involving big content management systems such as Wordpress or Drupal, or maintenance of existing sites I didn’t build.


I proudly develop with almost exclusively open-source software.

A few particular highlights:

Not to mention the dozens of web development tools and libraries I use, but many of these constantly change from project to project.

Contact details


You can get my email address by taking and replacing the first a with @.

If you wish, you can encrypt messages you send to me using my OpenPGP public key. (There’s also a legacy PGP key for ECS-related stuff.)


Web communities