Viktor Andersen
  • Contact
  • Bio

Projects

Sharizard

Sharizard.com is a simple SaaS that creates preview images for social media sharing on demand. Managing these images can be a hassle for website owners, so just being able to generate a unique image for each page from an url can save a lot of time and headache.

Status MVP shipped.
Problems Needs promotion. Needs a business model.
Frontend stack Nuxt
Backend stack AWS Lambda, Serverless framework

Sharizard

VP Bygg

VP Bygg is a homepage and ecommerce site for a building materials retailer. VP Bygg needed custom behavior in calculating sizes of orders, to make it user friendly for contractors to order materials. The site was therefore made in Gatsby JS with its own shopping cart and order logic.

The backend is handler with with AWS Lambda and AWS DynamoDB to allow a flexible and scalable serverless backend.

To allow for quick iteration, only JSON files were used as data sources in the beginning, but it gradually shifted to being JSON files editable through Netlify CMS to make editing possible for non-technical users.

The site performs well, uses rich data for products, automatically creates a feed to Google Shopping.

VP Bygg

Votify

Votify is a social jukebox for Spotify. The idea is that a group of people can vote for songs and create a collaborative playlist on the fly. Several similar apps exist, but none are good enough in my opinion. I did a write-up on the status of these apps on my blog.

The app isn't that big or complicated at the moment, but the system is quite complex, as it needs to communicate flawlessly with the Spotify API and between all the participants. The UX on an app like this should be near perfect and extremely intuitive, which is challenging to make. The backend is currently handled on an Express server and MongoDB. Much of the logic could be moved to a real-time database such as Firebase, even though it will always need a thin server to handle the core logic of communicating with the Spotify API.

Status MVP shipped. Needs better UX to launch.
Problems Needs promotion and a monetization strategy.
Frontend stack React, Redux, Semantic UI
Backend stack Express, MongoDB
Other tech Spotify API, Socket.io

Votify

Alle matpriser

allematpriser.no is an ambitious webapp that aims to provide price comparison and identify good offers on grocery products in Norway. It currently scrapes some online grocery stores and gets offers from grocery stores' own promotions via Shopgun. Having user contributions and some social capabilities is on the roadmap. So is using machine learning, but it might be overkill for a service like this. I did write an article about the topic on my blog.

This idea is quite ambitious and hard to make really good, and the service it provides is not necessarily that useful. It's not clear whether pursuing this idea is worth the investment needed.

Status MVP shipped.
Problems Needs promotion, better UX, and user feedback.
Frontend stack Vue
Backend stack Scrapy, AWS Lambda, Strapi, Express, MongoDB
Other tech AWS, Shopgun

Alle matpriser

Alle byggpriser

allebyggpriser.no is very similar to allematpriser, just for building materials. This project uses parts of the same backend engine. Some changes have been made in categorization and search, as there are notable differences between the grocery sector and building materials sector.

Status MVP shipped.
Problems Needs promotion, better UX, and user feedback.
Frontend stack Vue
Backend stack Scrapy, AWS Lambda, Strapi, Express, MongoDB
Other tech AWS

Alle byggpriser

Red Tours

Røde reiser is a travel agency specializing in travels to China with a focus on revolutionary history. What is known as red tourism has seen a global downturn since its heyday in the 1960-70s. VFA Solutions helped give the concept a modern image reflected in sleek design in combination with classic posters from past eras.

The site is made entirely in the Vue static site generator Gridsome. It leverages the framework's support for various data sources to use both Markdown and JSON data as content.

Status Shipped
Problems Could use a CMS that is friendly to non-tech people.
Frontend stack Gridsome, Vue
Backend stack Gridsome

Red Tours

Receipt scanning

Receipt scanning is a proof-of-concept of using the Google Cloud machine learning web services for something useful. Google is on their way to give world-class AI to the masses with their various AI-as-a-service products. I believe there is a huge market potential here, as speech recognition, OCR, and image recognition, and probably more to come, is available as a cheap web service. I tried to automatically read paper receipts, and it actually works quite well. Most of the work is making use of Google's output, but Google does all the heavy lifting.

This could be the basis of an app for businesses or consumers that need to do OCR on paper documents like receipts, but maybe the power of Google's ML could be leveraged in better ways. The current tech I used in this project is kinda roughly patched together, but it's a pre-MVP thing.

Status Proof-of-concept shipped.
Problems Needs a product market fit
Frontend stack Hyperapp
Backend stack Google Cloud Storage, AWS Lambda, AWS DynamoDB
Other tech Google Cloud Vision API

Receipt scanning

Lege1

Lege1 is a website for a local medical clinic. The site is made with Wordpress to give the owners control over its content and ensure maintainability in the long term. CDN caching is done by Cloudfront, and internal cache is done by a Wordpress optimize plugin and by memcached on the hosting server. SEO and presence on Google Maps and Facebook is ensured as this is crucial for a local business website.

Status Soon published.
Problems Seamless integration with booking system.
Frontend stack Wordpress
Backend stack Wordpress, Siteground

Lege1

HerbVu

HerbVu is one of the first webapps I made. I made it because I wanted a way to identify the best offers on special grocery products like sweeteners, nut flours, tea, etc. – basically things I buy on iHerb. Since iHerb has a great affiliate program, I thought this was a viable business. It turned out developing the site is just one third of the job. The rest is marketing, outreach, SEO, and UX design – which is harder for me to do casually. I learned a ton making it and still kinda believe in the idea.

Som effort should be made to find out whether there is a market for an idea like this. The market for these things is quite large and worldwide and it's growing too. I would make the site from scratch again with Nuxt or something, and go heavy on the outreach and marketing.

Status Shipped.
Problems Not maintained. Data is stale. "Old" tech.
Frontend stack Angular 1.x, Material design
Backend stack Scrapy, Express, MongoDB

HerbVu

Inneklemte dager

inneklemtedager.no is a simple website that gives an overview of what's known in Norway as sqeezed days. These are work days squeezed between two holidays, or a holiday and a weekend. People are generally free to choose which days to take out vacation days on in Norway, so taking a squeezed day off can give you a looong weekend to go skiing or something.

This website actually got featured in some online news outlets in 2017, which made it go viral for a while. Unfortunately, it has no monetization strategy.

Status Shipped.
Problems Could be made much lighter with Hyperapp or something.
Frontend stack React, react-create-app
Backend stack react-create-app

Inneklemte dager

Dataportabilitet

Dataportabilitet.no is a crowdsourced site for information about the data portability of Norwegian websites. See more about the reason for creating this and what EU's GDPR regulation can mean for data and the web on my blog post.

Main challange with this is app is finding a good way to handle crowdsourced material. I'm not really that happy with the result, and it may be that just using MediaWiki is better for this kind of stuff. I did, however, wish to make it easier to contribute than doing the entire MediaWiki thing. So I ended up using a form and handling contributions manually.

Status Shipped.
Problems Needs promotion and maybe better way of handling contributions.
Frontend stack Hyperapp, Parcel
Backend stack QuintaDB, Google Sheets

Dataportabilitet


To the top
d34db33f
2020 built with Gridsome
Blog
Travel blog