July 27
Hi everyone, hope you're doing well :) updates below!
Artwork albums
I’ve started to implement albums for artists to sort their art into different display galleries on their pages. Functionally in the backend they’re not too difficult, I just need to implement display of them, adding artworks to them in the submission and edit pages, etc. While doing that I’ve also made a note to improve the submit artwork code (for new artworks), so that it performs all updates in a transaction.
So far, adding albums and adding artworks to them is done. The main part left to do is album display and ordering.
Artwork comments
I’ve started building the foundations for artwork comments. While I’m still not 100% sure about enabling them, it’s better to have it ready to go than have to build it later. For the most part I don’t foresee any difficulties implementing it, as they are separate from artworks themselves and are basically just an extra database table and some display code in the display artwork page. Displaying multi-level replies might be a pain, will see about that.
It’s possible I might make comments a limited feature, not in terms of who can comment but in terms of limited text, e.g. only emojis or something like that. It’s something to think about; either way any form of commenting will mean making sure the moderation tools are up to scratch, since user comments means a lot of extra moderation work.
Gallery code improvements
The hide feature, for user navigation settings when eg a user doesn’t want to see NSFW of a given category, is implemented and working. I might implement a “count of hidden things” feature for the side of galleries etc when a user uses this setting, so that it isn’t confusing when e.g. a mostly NSFW artist’s gallery is mostly hidden or such like.
Gumroad alternative investigation
I believe I’ve found out how to make a Gumroad alternative, in the distant future. The technical part isn’t too hard, but Stripe only allows US registered businesses to pay out internationally. Stripe Atlas offers a US incorporation service, so it should be possible to achieve it via that - it’s not cheap though ($500 + $200/year + other fees for US tax stuff), both for that reason and tech reasons I will leave that to the future if and when I feel ready for it.
Stripe integration progress: webhooks and declined transactions
When adding a customer for the first time (i.e. they just subscribed having never subscribed before), I had a security question for Stripe - whether or not the customer ID should be taken from the Stripe session, which is returned in the GET parameters of the URL callback, or whether to wait for the webhook to deliver it. They confirmed the session should be used, which is definitely easier to do.
As such, the only testing left to do involves declined subscription payment events sent via the webhook. While this should be easy to handle - it just involves updating the customer’s subscription status in the appropriate database tables - I will need to test it anyway just to be sure.
I’ve also refactored the payments tables in the database to show the type of subscription the user has (monthly, yearly etc) and store the Stripe Price ID in case of any changes.
Stripe integration progress: multiple subscription options
Monthly and yearly subscriptions are both working correctly. I’ve tested my IPTables configuration and it’s working correctly for allowing Stripe webhooks through.
Commitments and ethics pages
I’ve started to flesh these out properly. They’re not done yet, but I want to make sure I’ve nailed my colours to the mast from the start of the site in terms of what the site does, how it does it, the financial commitments to the artist community and so on.