The Dev Diary #1

Since I’m mostly coding solo over here, I’m going to be posting about what I do to get this product off the ground. This thread will chronicle the changes that I make to the application, no matter how small or minute. Most will be user-facing, and I’ll try to keep technicalities out to make reading easier.

Scroll all the way down for the latest posts

The Start

Here’s one for starters: I’ve added the latest forum posts to the app interface, and removed most of the journal buttons.

Here’s how it looks

I’ve been working on improving the admin tools for ingredient/product labelling. Data labelling is quite important for driving a lot of the analytics functionality that i want to build into the app.

For example, cross referencing ingredient labels would help identify ingredients that cannot be used together.

I’ve already completed half.

As I know the product/ingredient database has been an issue, i’ve been working on more tools to make adding them in faster (on my side). You should be able to see an improvement in the number of products/ingredients in the database soon.

I’ll post some stats on the database nearer to the end of the month

A new version has been released, with forum feed integration right in the home screen :ok_woman::confetti_ball:

A bug fix for the wrong link in the forum section header is on the way

As mentioned in the product review feature thread, the new main feature of this month has hit the app! :smiley:

The list of changes are:

  1. Saving of product reviews. Works for custom products.
  2. Simplification of test scheduling. I’ve done away with specific date scheduling, and product tests now use a simple start/end toggle. All of this is incorporated with a testing queue, so that you can queue different products for you to test.
  3. Temporary removal of photo comparison. This is in line with changes that I am making for merging the testing experience and the journaling experience together. More on this soon.
  4. Removal of “Sections” in routines. Now, a routine is simply a collection of steps to perform. As mentioned in the December update, I have done an automatic data migration for all routines. All routines with more than one section are now separated into two different routines.
  5. Cosmetic changes for whitelisting/blacklisting in the Laboratory tab.
  6. Removal of forced onboarding step to create routines. I think allowing users to explore and create their own routine is a better choice for getting a feel of what the application can do.
  7. Bug fixes for forum reply count display.

With the whole slew of changes done, I will be working on integrating the payment system into the webapp to turn this project sustainable.

Hey all, I hope everyone is doing well especially with the pandemic hanging over our heads. :hugs: I’m still busy integrating the payment system, and it has been a little bit more complicated than I had expected. It should be out within the next week or so.

In the payment update, I’ll also be clarifying the direction that the service will be taking, to make this a better and more value-added service for all users. Until then, stay safe and healthy!

I’m aware of the reviews shown under “Your Reviews” not being your own personal reviews. I’ll be including a patch for this in the next release :grin:.

Stay safe everyone!

I’ve rolled out a new version of the webapp.

Changes are as follows:

  1. Bugfix for reviews being accidentally exposed to all users.
  2. Removal of quick routine building. I’m planning on a drag-drop interface with a split-interface for product researching.
  3. Implementation of the payment system! Now we’re on track to making this project sustainable!

New changes have been rolled out:

  1. Email verification is now required for all accounts. This is to combat spammers.
  2. The UI has been reorganized to be more clear and focused. Search is now global, and all community features have been pushed to its own “Discover” tab.

Admittedly, the new UI is a little bit too white. I’ll add in some colour on the next update. :smile:

New updates are about! Most of the details are in the newsletter, but here is a summary of changes:

  1. Simplified home interface, for reviewing and blacklisting the products that you have tried. Check out the new table interface!
  2. Removed journaling features.
  3. Added some pink!
  4. Improved web crawling capabilities for discovering new products
  5. Updated pricing plans. We’re now priced at US$19/month. This will be for the long term foreseeable future.

Do refer to the newsletter for more details!

I’ve pushed out a few bug fixes, the app’s screen should not go blank anymore when searching for and clicking on a product.

I’ve been working on the ingredient list parsing problem, where I’m trying to extract the ingredients from a block of text without any human intervention. For example, converting the following:

Here is some ingredients:
Water (Aqua), Phenoxyethanol, Silica ...


Water, Phenoxyethanol, Silica

Such that I can then do lookups to find these ingredients within the database. Requiring people to type in ingredient list limits the accuracy and scale that I’ll be able to perform the risk scoring calculations. More to come soon :slight_smile:

The ingredient parser is working. I’m now focusing on increasing the number of verified ingredient lists in the database :smile:

New features have been rolled out, with a main focus on improving the blacklist ingredient analysis. There is now a graph that displays ingredients that show a high probability of causing bad reaction. This harnesses your blacklisted products data and retrospectively calculates the probability of this ingredient being a trigger. Due to the sparse dataset available, the current model is a simple one based on Bayes’ theorem, and I hope to upgrade it once we’ve got a greater number of users.

This feature works for both verified products and custom products, so you are not limited to products that are within the database. We’re at ~4200k products in the database now, and I’m working to get a higher ingredient list coverage for them so that you won’t have to do any manual copy-pasting.


Hi all, new ingredient and product blacklisting features has been released in the latest update, it should be now much easier to check ingredient lists for your triggers. More details are in the newsletter, and the accompanying blog post will be out shortly!

I’ve just rolled out the start product analysis feature, and would be adding in the data for it starting with sunscreen filters first :tada::blush:

3 July Changelog:

  • Improved product metrics chart
  • Added Product Comparisons analysis feature. A few bugs for web mobile exists, will be fixed ASAP.
  • Added ingredient and product labels. Clicking on labels would pull up the relevant citation for that piece of information.

13 July Changelog:

  • Fixed critical bugs relating to mobile usage of the products comparison feature.
  • New feature: Ingredient list breakdown. You can now have a quick overview on recognized ingredients and their effects/functions. This is also shown when doing product comparisons, so that you can compare across different products. It will also flag out known blacklisted ingredients.
    • Known limitations: The ingredient database is currently lacking citations (I’ve got my work cut out for me :sweat_smile: ), this will gradually improve over time as I add in more data sources.
  • New feature: Article feed. There is now a news feed under the “Discover” tab, which is an aggregation of multiple content creators, so that you can keep up to date on the skincare world easily.
    • image
    • Known limitations: Certain content creators that publish very frequently might dominate the feed. There may also be some product-pushing articles (which I personally frown upon :angry: )
  • Improvements: Brand Discovery: You can now view all brands that we have identified under “Discovery > All Brands”.

1st August Changelog

New Feature: Price History

Price history for known retailers is now active. When looking at a product page, you can now have an overview of the price history of each retailer offering.

We are currently tracking 4 main retailers as a trial run:

  1. Ulta (US)
  2. (AU)
  3. SokoGlam (US)
  4. SpaceNK (UK)

This lets feature lets you check if products are truly on sale, as some not-so-very-ethical online retailers may increase their prices over time just before a sale, so that they can draw in more customers with bigger discounts (since they can claim “it really is 70% off the sticker price!!!”).

At PillowSkin, we (or rather, I, but I’m sure you do too!) detest such dishonesty, and I hate marketing lies, and this price history feature should let you be much more informed when buying products.

Additionally, you might have noticed from the image that there are different types of product variations being shown. This is currently one of the limitations, as these different variations are not actually directly comparable, so it would be a little misleading to lump them all together. For example, travel-sized offerings should be separated from bundled offerings, and from product-only offerings, and so on.

Metrics Algorithm Improvement

As of now, the product metrics are calculated by modelling ingredient data from studies, and mapping them out onto a scale. The strength of a product’s ingredient combinations are then determined based on this scale. If the exact ingredient strength is unknown, an estimation is calculated, based on its relationship between other ingredients as mentioned in studies.

The previous iteration of the algorithm was not very accurate, and this current iteration should now be an order of magnitude more accurate. However, there are still some issues that are limiting it, such as situations where there are multiple conflicting ingredient combinations, or when there is limited data.

Expect it to get better with time :smile:

13 August Changelog

This round of improvements focuses on the Routine Builder and its related functionality. Notably, I’ve shipped the layout changes, with a dual pane viewing and searching layout.

You will see that the product search is much more accessible. I have added the following filtering capabilities:

  1. Dupe Similarity: Lets you choose a target product that you want to find a dupe for, and we will find similar products with a similar ingredient list.
  2. Specific ingredient filtering: Lets you select specific ingredients that you want a product to have.
  3. Blacklist ingredient exclusion: Lets you filter out products that have your blacklisted ingredients.

More filters are coming soon!

17 August Changelog

Another round of Routine Builder improvements are here!

I’ve added in even more filters, this time centered around price. Besides the min-max price filter, you can also narrow down the search options to products that have had recent price drops within the past 30 days.
You can also customize the drop percentage that you want to aim for. However, this only works if a retailer decides to hold a sale (hello sherlock!) and decides to drop the price to that amount.


Secondly, I’ve also added the product comparisons capability to the search results, so that you can compare products directly while browsing.

Thirdly, I have added in a rudimentary price calculation for your routines. This takes the average price of retailer offerings available, converts them to USD (according to the latest foreign exchange rates), and does a simple sum.