Forrest Cameranesi Geek of all Trades

Web Development & Design

Screenshots and descriptions of web development and design projects that I've worked on, in reverse chronological order.

Ingredients Plus Pantry customer portal

Built in NextJS / ReactJS with Supabase. (2023-2024)

Pantry screenshot

This is a customer portal for Ingredients Plus. Admin users of the portal can create accounts for the company's existing customers, and those customers can send an automated message to the admins requesting that they do so from the "Sign Up" button on the login screen. (Please don't try to "Sign Up" if you're not an actual customer of theirs, as you'll be wasting a real human being's time with that request.)

Once logged in, customers are able to view their existing orders, contracts, and invoices, and submit new order requests. These new order requests are not currently processed automatically, because the admins wish at this stage to receive the order requests via email and manually enter them into their Sage ERP for safety, but in a future stage new order requests may automatically enter the order data into Sage. Data on existing orders, invoices, and contracts are all drawn from Sage via API.

Admin users can also create marketing content that will appear in sidebars of the customer interface, such as Thought Leadership and Blog articles; and lastly, they can create surveys with open-answer, select-one, or select-all answer possibilities, and select the date span in which those surveys will appear to customers, who can then answer them through their own user interface. The marketing content and survey data, like the user account data itself, is stored in Supabase tables.

I was one of two people who helped to estimate this project initially. A third coworker took lead on actually building it out, setting up the Next project and the Supabase database and hosting, with principally me and to a smaller extent a fourth coworker supporting him. I touched virtually every aspect of the project by the end, both front-end user interface aspects and back-end server actions submitting and retrieving data from Sage and Supabase, but probably the biggest and most complex contribution to the project I made was in the Surveys feature.

That has both a complex front-end that allows admins to create, edit, reorder, and delete both survey questions, and possible answers to those questions if they are select-one or select-all types, tracking all of that in React state; as well as a back-end connecting the table of surveys, which stores all of that variable information as JSON, to the table of users, in a many-to-many fashion via a join table, which also stores that particular user's response to that particular survey in a JSON field in that join table row.

The lead developer on this project praised me as indispensable in its completion.

You can see the login screen at least at pantry.ingredientsplus.com.

Royal Copenhagen Japan store

Built in EC Cube (using Symphony / PHP and MySQL), with Freshworks CRM API, hosted on Amazon EC2. (2023-2024)

Royal Copenhagen Japan screenshot

This was a project to update the web store for Royal Copenhagen's official presence in Japan to the latest version of EC Cube, the most popular ecommerce platform in Japan. To do so, we began with the similar project for Wedgwood Japan that we had done just prior, and made updates as appropriate for the different brand. Please see that entry below for further details.

I was the main developer responsible for updating this project from the Wedgwood base it started as.

You can see the finished product at www.royalcopenhagen.jp.

Moomin Arabia Japan store

Built in EC Cube (using Symphony / PHP and MySQL), with Freshworks CRM API, hosted on Amazon EC2. (2023-2024)

Moomin Arabia Japan screenshot

This was a project to update the web store for Moomin Arabia's official presence in Japan to the latest version of EC Cube, the most popular ecommerce platform in Japan. To do so, we began with the similar project for Wedgwood Japan that we had done just prior, and made updates as appropriate for the different brand. Please see that entry below for further details.

I was the main developer responsible for updating this project from the Wedgwood base it started as.

You can see the finished product at www.moominarabia.jp.

Iittala Japan store

Built in EC Cube (using Symphony / PHP and MySQL), with Freshworks CRM API, hosted on Amazon EC2. (2023-2024)

Iittala Japan screenshot

This was a project to update the web store for Iittala's official presence in Japan to the latest version of EC Cube, the most popular ecommerce platform in Japan. To do so, we began with the similar project for Wedgwood Japan that we had done just prior, and made updates as appropriate for the different brand. Please see that entry below for further details.

I only played a minor support role in the process of updating this project from the Wedgwood base it started as.

You can see the finished product at www.iittala.jp.

Wedgwood Japan store

Built in EC Cube (using Symphony / PHP and MySQL), with Freshworks CRM API, hosted on Amazon EC2. (2023-2024)

Wedgwood Japan screenshot

This was a project to update the web store for Wedgwood's official presence in Japan to the latest version of EC Cube, the most popular ecommerce platform in Japan. This apparently was not a simple matter of upgrading the underlying framework, but rather required that the newer version of the framework be installed from scratch, and then modified as necessary to match the various customizations that had been built atop the older version of it before.

A coworker who was our main expert in PHP frameworks began this project on her own, then myself and several other developers were brought on under her direction to support various different aspects of the project. She left our team not long afterward, and we all had to quickly up our game to get up to speed with the tech stack and continue the project without her.

In addition to that, I had the special task of integrating the user management of this web store, as well as three other web stores (listed above) owned by the same PE firm, to integrate with their Freshworks CRM via calls to its API at appropriate places in the user-management routines of the modified EC Cube project. I needed to make sure that updates users made to their information and settings in any store were reflected in the CRM without duplication, and that if user information was deleted from one store it was deleted from the CRM only if that information was not also associated with a different store.

I had no prior experience with such tasks but nevertheless completed that feature well under the allotted time and budget, to the praise of my supervisors.

You can see the finished product at www.wedgwood.jp.

Ingredients Plus site

Built in Webflow. (2022-2024)

Ingredients Plus screenshot

This is a fairly straightforward brochure-style site for Ingredients Plus, whom we rebranded from their old identity as Sweeteners Plus when they began working with us at Twisted Rope. Its most sophisticated features are the video backgrounds used especially on the home page, the searchable product catalogue making use of Webflow's Collections feature, and the custom main navigation menus that make extensive use of Webflow's Interactions feature.

I was one of a few developers co-developing this site simultaneously, none of us especially more lead than another but just dividing up the necessary tasks between us. I touched many different aspects of the site but the part that feels like my biggest contribution is that custom main navigation menu.

I felt that implementing those menus via Webflow Interactions was unnecessarily clunky, and could have been handled more elegantly in vanilla HTML/JS, but Webflow was the designated tool for the project, so I made sure to do things its way instead of hacking around it with custom code.

You can see the finished product at www.ingredientsplus.com.

Twisted Rope site

Built in Webflow. (2022-2024)

Twisted Rope screenshot

When I joined Twisted Rope, one of the early tasks assigned to myself and some other new hires was to rebuild the company website. We did so over the course of early 2022, a fairly simply brochure-style page with little more sophisticated than some Webflow Interactions and Forms, and some carousels using SwiperJS.

After about two years of that design getting only minor updates and expansions, our CEO wanted to redesign the site to better reflect the current character of the company. I was one of two developers tasked with putting together design proposals, and although the CEO initially preferred mine over my coworker's, the coworker then put together another design proposal that our CEO ultimately went with. On the basis of that proposal and with the input from the entire company following the CEO's vision, that coworker and I then fleshed out the site in full.

It's not especially more sophisticated on the development side than the older site, but it's built much more cleanly and has much more cohesive design and messaging.

You can see the finished product at www.twisted-rope.com.

Geek of all Trades site

Built in vanilla PHP, HTML5, CSS3, and JS / jQuery. (2008-2024)

Geek of all Trades screenshot

This is my own personal site. It's been gradually undergoing intermittent redevelopment since I first built it at this domain in 2008 – and even that was loosely based on an even older, untitled personal site once hosted on my old ISP, which had likewise been intermittently redeveloped since the late 90s.

It's still basically vanilla code both because of that long history stretching back to when that was the only option, and because there has never really been need for me to use any of the heavy complex frameworks that so many sites are built in today, and honestly just because I like sticking to low-level vanilla code whenever it's possible, and only using heavier frameworks when they are needed.

Despite that long development history, I have iteratively cleaned up and refactored the code over time, especially as new versions of the core vanilla technologies (HTML, CSS, JS) have become available and offered enhanced capabilities. I also make use of some things slightly beyond those as is useful: PHP mainly just for includes (so I can reuse code for the header and footer), and jQuery because some things (such as animating the dropdown menus in the main navigation menu) are still needlessly clunky to implement even in ES6/CSS3.

I like that I also get to stick to design features that I think are timeless and optimal instead of having to follow trends, here in my own personal space on the web. The main navigation system is inspired by a site I saw in the late 90s and I think it's better than other styles that are more common today. And I love skeueomorphic styles, but knowing that they are currently out of fashion and wanting to show my versatility, I now have the site by default show all flat styling, until an element is hovered over or otherwise interacted with, at which point it seamlessly transitions into subtler neuomorphic or full skeueomorphic depth instead.

You're already here, but for completeness' sake: www.geekofalltrades.org.

Get Nature Positive

Built in WordPress with Sage theme (using Acorn / Laravel / Symphony / PHP) hosted on WPEngine. (2023)

Get Nature Positive screenshot

This project was created by some coworkers at Twisted Rope before I joined the company, but I eventually became the main support person – and after the last of the developers who originally built the project left, the sole point person – helping with maintenance and client edits, the latter especially involving accessibility fixes.

This site is no longer online.

Accenture Media & Entertainment Spotlight interactive

Built in vanilla HTML and CSS, hosted on AEM. (2023)

Accenture Media & Entertainment Spotlight screenshot

This project just involved embedding some code exported from InDesign by our design team into the appropriate place within the client's AEM site, with some surrounding introductory material. The project was begun by coworkers before my time at Twisted Rope, but it is an ongoing series with multiple issues released over time, and I was responsible for handling a few of them. It's only really worth mentioning because it's one of a few times I've had to interact with AEM.

You can see the finished product at www.accenture.com.

PahPow app

Built in Unity with Vuforia and Xcode, hosted on iOS App Store. (2023)

This was an augmented reality greeting card app developed by some of my coworkers before my time at Twisted Rope. I had no role in actually creating the product, but I did help with minor fixes and updates as needed. It's mostly only worth mentioning because it's one of a few times I've had to work with Unity or Xcode and the process of publishing to the iOS app store.

This app is no longer available.

Accenture Workforce Inclusion and Diversity Initiatives interactive

Built in HTML, SCSS / CSS, JS, JSON, and NodeJS, hosted on AEM. (2023)

Accenture Workforce Inclusion & Diversity Initiatives interactive screenshot

This project is what the client refers to as an "interactive element" of an otherwise fairly static page, where data is displayed in a more complex manner with somewhat sophisticated Javascript and CSS pulling from a JSON file.

A coworker began this project before my time at Twisted Rope, but I was tasked with doing a major overhaul of it, and with further updates later. I quite enjoyed building the fun circular graphs with plain CSS (well, compiled from SCSS, but still) with some property values controlled by the JS pulling from the JSON data, got to actually apply a little trigonometry to calculate it all, which was nice.

You can see the finished product at www.accenture.com.

Moog Construction site

Built in WordPress with Divi theme, hosted on WPEngine. (2022-2023)

Moog Construction screenshot

A fairly straightforward brochure-style site for Moog Construction, this was mostly developed by one of my coworkers, but I helped resolve some tricky CSS issues (as the main CSS expert on our team) and served in some other support roles such as QA and bugfixes.

You can see the finished product at www.moogconstruction.com.

Landmark site

Built in WordPress with Divi theme, hosted on WPEngine. (2022-2023)

Landmark screenshot

This was a team project to completely rebuild the site for a client whose old site looked like it hadn't been updated in decades. The new site is still a fairly straightforward brochure-style site, but instead of being entirely static and made for only small desktop screens, it's now full of video and other motion and responsive for all viewports from modern large desktop screens to mobile phones and everything in between.

I was one of a few developers working on this rebuild, following designs put together by our design team. None of us was particularly more the lead than anyone else, and the load was fairly evenly distributed between us, each of us building a selection of different kinds of sections that would be reused across the site, and then assembling a selection of individual pages from those reusable section components.

You can see the finished product at www.teamlandmark.com.

Accenture Global Delivery Centers Map interactive

Built in HTML, SCSS / CSS, JS, JSON, and NodeJS, hosted on AEM. (2022-2023)

Accenture Global Delivery Centers interactive screenshot

This project is what the client refers to as an "interactive element" of an otherwise fairly static page, where data is displayed in a more complex manner with somewhat sophisticated Javascript and CSS pulling from a JSON file.

A coworker began this project before my time at Twisted Rope, but I was tasked with ongoing updates and maintenance over time.

You can see the finished product at www.accenture.com.

Moog convention demos

Built in Webflow with heavily customized CSS and JS. (2022)

Moog Bauma demo screenshot

These were three similar projects, all stand-alone sites that could run locally in a browser on a tablet not connected to the internet at the Moog booth at the Bauma convention. One of them had already been partially built by a coworker in Webflow, with mostly static content except for a "screensaver" effect (a some Javascript that would trigger a video overlay after a period of inactivity). I took over finishing that project, fleshing out some cool transition effects for when the buttons on the main menu were clicked, using just JS and CSS, and then developed the other two similar demos all on my own, based loosely on that first project.

You can see one of the latter finished products at baumamachine3.webflow.io.

Accenture ERP@Motion microsite

Built in Webflow, with custom JS drawing from an API served on Node, hosted on Amazon EC2. (2022)

ERP@Motion screenshot

This was originally a simple static microsite built as an educational resource for employees of a company the client had just acquired, which a coworker of mine had built in Webflow and exported for hosting on one of our EC2 servers before my time. However at one point the client needed those employees to be able to register themselves for educational events related to the merger, so another coworker of mine built a simple database in Node to store that registration data, and I was tasked with building two Javascript-driven front-ends to access that database, one for the users to do their own self-registration, and another for administrators to view and edit that registration data.

This site is no longer online.

Runzy

Built in Laravel / Symphony / PHP with MySQL and Elasticsearch. (2022)

Runzy screenshot

This project is a search engine for running events. It was started by one of my more senior coworkers who then brought on myself and another coworker who had joined around the same time as me to flesh out the front and back ends respectively, myself being our resident CSS expert and she being our resident PHP expert.

You can see the finished product at runzy.com.

Founders Intelligence site

Built in WordPress with Divi theme on WPEngine. (2022)

Founders Intelligence screenshot

This was a migration of the client's existing site, to be reimplemented in WordPress and hosted on WPEngine, as required by their new parent company. We at Twisted Rope did many such projects for new acquisitions by Accenture, usually dividing them up roughly evenly across two to four developers, none especially more lead than another.

Unlike some of our earlier migrations, rather than recreating the original site as faithfully as possible using the native components of the Divi theme theme that we used in WordPress, plus touches of additional custom code as needed, in this project we simply copied code from the original site as directly as possible into custom code containers within Divi, for greater time efficiency (but less easy of future modification).

You can see the finished product at www.foundersintelligence.com.

Accenture Building Sustainable Futures podcast feature

Built in vanilla HTML, CSS, and JS / jQuery, hosted on Sitecore. (2022)

Building Sustainable Futures screenshot

This is a page or microsite for an Accenture podcast. It was quite enjoyable just building this in vanilla code, structurally and semantically clean, with interactivity handled through some basic Javascript (later converted to jQuery by request of the client, but that's a simple translation and no less elegant than the original vanilla ES6) and simple CSS animations.

You can see the finished product at www.accenture.com.

Accenture Liquid Studios Map interactive

Built in HTML, SCSS / CSS, JS, JSON, and NodeJS, hosted on Sitecore. (2022)

Accenture Global Delivery Centers interactive screenshot

This project is what the client refers to as an "interactive element" of an otherwise fairly static page, where data is displayed in a more complex manner with somewhat sophisticated Javascript and CSS pulling from a JSON file.

A coworker began this project before my time at Twisted Rope, but I was tasked with ongoing updates and maintenance over time.

You can see the finished product at www.accenture.com.

Blueworx site

Built in WordPress with Divi theme on WPEngine. (2022)

BlueWorx screenshot

This was a migration of the client's existing site, to be reimplemented in WordPress and hosted on WPEngine, as required by their new parent company. We at Twisted Rope did many such projects for new acquisitions by Accenture, usually dividing them up roughly evenly across two to four developers, none especially more lead than another.

Unlike some of our later migrations, rather than copying code from the original site as directly as possible into custom code containers within the Divi theme we used in WordPress, this project has the original site recreated as faithfully as possible using the native components of the Divi theme itself, plus touches of additional custom code as needed, for greater ease of future modification, albeit at the expense of less up-front time efficiency.

You can see the finished product at www.blueworx.app.

AReveryware app

Built in Unity with Vuforia and Xcode, hosted on iOS App Store. (2022)

This was an augmented reality greeting card app developed by some of my coworkers before my time at Twisted Rope. I had no role in actually creating the product, but I did help with minor fixes and updates as needed. It's mostly only worth mentioning because it's one of a few times I've had to work with Unity or Xcode and the process of publishing to the iOS app store.

This app is no longer available.

Eternal site

Built in vanilla HTML5, SASS / CSS3, PHP, and JS / jQuery. (2004-2020)

Eternal screenshot

This is a simple static brochure-style site for my own personal game mod Eternal, that I have been gradually updating since the first public release of that ongoing project. It only uses PHP for the purpose of includes so I don't need to replicate the header/footer/etc on every sub-page, and is otherwise pretty vanilla code, that has been updated to the newer versions of the basic web technologies as they have rolled out.

Although it has a visual style very much like the 1990s computer games that the mod is for, it's all fully responsive and much more modern under the hood than you would think at first glance, even if it is still quite simple, with nothing more complex that what's needed.

You can see the finished product at eternal.bungie.org.

Castellino Training site

Built in vanilla HTML5, CSS3, and PHP. (2002-2020)

Castellino Training screenshot

I was hired by the Castellinos specifically to build them a website in what was originally just going to be a summer job between my first two terms at college, but I wound up sticking around with them for nearly a decade as their general technical and administrative assistant, not only their "webmaster" (which was still a thing you could do for a job back then) but their database admin, network and IT admin, and basically any other hats they needed me to wear.

Of course the website got many updates along the way too, and I even swung around now and again long after I left them for greener pastures to help with little touch-ups as needed. For the most part I haven't touched the site for years though, and it seems that other people have, so its current appearance and content is only loosely based on my work, which you can see more accurately represented in the old screenshot above.

You can see the current version at www.castellinotraining.com.

Myth @ Bungie.Org

Built in vanilla HTML5, CSS3, MGI, and JS / jQuery. (1998-2020)

Myth @ Bungie.Org screenshot

This is by far the oldest site of mine that's still online, for another old video game I was a fan of back in the late 90s. I didn't build the original version, but I did orchestrate the merger between the two older fan sites that eventually became this site, and over time I gradually took over running that, including redeveloping it as the years went by and technology changed, even long after the active years of the community had faded, just as a labor of love.

It still looks a lot like something from the 90s, befitting the aesthetics of the game that it's about, but aside from the truly ancient pre-PHP back-end using MGI, the technologies and techniques are all relatively modern, using semantic HTML5, lightweight CSS for visuals that would have been prebaked images back in the day, some JS and jQuery for interactions that wouldn't have even been possible back then, all responsive on viewport sizes from mobile to our giant desktop displays of today.

You can see the finished product at www.castellinotraining.com.

Anacapa Equipment site

Built in vanilla XHTML 1.1, CSS 2.1, and PHP, with MySQL. (2009)

This was one of my first projects delving into more dynamic back-end work instead of simple, mostly brochure-style projects built almost entirely on the front end. It was a catalogue site for someone who sold used industrial equipment, so it resembled an ecommerce site on the front end, with a search form and a list of categories, either of which would display tiled thumbnails for matching products which could then be clicked to view further details. There was also a password-protected admin interface where the client could add, remove, and edit products from the catalogue, including images.

My version of this site is no longer online.