The current build of Spontanephoto is 1.5. Click here for the changelog.
Spontanephoto is a fictitious Instagram-like mockup website created by LordAardvark. It is a purely clientside website, meaning none of the engagement operations (likes, comments, etc) actually work. Its sole purpose is for quickly generating Instagram-like renditions of artwork to be shared as art (or more specifically, if you're feeling particularly pretentious, meta-art).
Spontanephoto is an entirely open-source and unlicensed code-base, meaning you can do whatever you want with it. Use it to make and share your own art, modify its style to create your own Instagram-like site, modify its code to fit your needs. Hell, you can even turn around and sell it exactly as-is. I would appreciate a link back to this web-page if you decide to use Spontanephoto for anything, but that's not a license requirement or anything. You do you, boo.
Creating your own Spontanephoto Posts
Spontanephoto is designed to be extremely easy to add new posts. It uses custom HTML classes to enforce a one-post-one-element policy. Posts and the characters who create them are separated with the same methodology: one-character-one-element. This allows multiple posts by the same user without any duplication or consistency issues. In the words of our Lord and Savior Todd Howard, It Just Works.
Here is a video explaining how to create a new user and post. Note that this is video is outdated, using 1.0 of Spontanephoto. New posts should be added to the top of the posts list, pushing all of the older posts down. The order of profiles does not matter.
If a gallery image is added to a post, then it will add a selection box underneath the image (and above the post text) for all other images in the gallery.
Clicking a thumbnail in the selection box will swap out the post's image and caption with that particular image+caption.
Selecting any thumbnail will select the post as a whole, for loading comments and what-not.
The documentation for the gallery images has been added to the HTML, below comments.
1.4 - Released November 26, 2021
Added Follower counts for profiles, using the new "followers" tag.
1.3 - Released October 22, 2021
Added support for the tagging system, so that characters can be tagged with their internal names.
When defining a character profile, the 'charName' is their internal name.
By having text that tags them with the @ symbol, that tag will automatically be changed to their display name.
EX: charName=Marie ; displayName=marie.rose19 ; The text "@Marie" will be converted to "@marie.rose19"
Clicking @ tags will filter to show only posts made by that person, if that profile actually exists.
Clicking # tags will filter to show only posts with that same tag in its text or caption.
Clicking tags no longer marks their parent posts as active. You must click the text or container itself to mark a post as active.
Reworked the time system:
Comment post times are now offset from the previous comment, if any comments exist before them. Previously, all times were offset from the parent post, making long post chains difficult to offset correctly.
This means the timeAfter field on each comment is now how many minutes has passed since the previous comment was made, or since the post was made for the first comment.
Posts and comments now have their time adjusted, such that the final comment's post-time is equal to what was the base post's original post-time, before the comments were added. This is to ensure that comments never go into negative time.
The timestamp generator is now precise with its time, showing months, weeks, days, hours, and minutes. EG, 67 minutes is now "1 hr 7 mins", rather than just "1 hr".
Fixed an issue with the UI, where if a stat like Likes exceeded 4 digits, the layout would break. Only tested for 6 digits currently.
Added a "Show All Posts" button to the bottom of the page, just above the link to this download page. This is to undo the filtering done by clicking tags.
Updated the source to now include two sample posts, directly from my personal collection: Honoka's and Marie's posts.
Images are included, so the downloaded is rather large.
This is to provide a more robust example of how the system works as version 1.3.
1.2 - Released August 26, 2021
Actually hooked the download link on this page up to something, so it'd actually download. Oops.
Added cursor change and hover-popup notification denoting that images can be clicked to view their full-size counterparts.
Added click-to-view support to the filler background image for non-16:9 images.
Added support for linkifying #tags. They currently do nothing, but in future updates, will filter to only posts that contain the same #tag in their post or caption.
Added @tags and #tags support for image captions.
Styled @tags to now have hover and click-through highlights.
Changed active-post (blue-border post, as opposed to black-border post) behavior.
There is no longer any active posts by default.
Clicking an active post makes it inactive.
When a post is made active, all posts above it are hidden. This is purely for taking screenshots of specific posts, with the Spontanephoto logo visible above it.
When there are no active posts, all posts are visible.
Added profile click-through to show only posts by the clicked user.
It is currently untested if other posts by the user appear, since only one post per character exists at the moment. But, at least, it shows the clicked post and only the clicked post.
Clicking a profile also makes the clicked post active. See active-post behavior above for details. As expected, clicking the post again will restore all posts.
1.1 - Released August 25, 2021
Added support for linkifying @tags. Links currently do not do anything, but in future updates, will filter to only posts by that user (if they exist).
Changed how post times work:
Times are no longer static strings, but are now computed times using minute resolution and fuzzy "X hours ago" display. This allows for new posts to be added, and having older posts shift down in time appropriate.
The post attribute "time" has been replaced with "timeFirst" and "timeAfter".
If the post is the top post, then it will be shown as being posted "timeFirst" minutes ago.
Otherwise, the post's time will be equal to the previous post's post-time plus that previous post's "timeAfter" value (in minutes). This ensures that posts stay evenly spaced between each other, as new posts are added.
Changed how likes, comments, and shares ("stats") work:
Stats are no longer static strings, but are now computed based off the post's post-time and multipliers and logarithms defined by the post.
The post attributes of "likes", "shares", and, "comments" have now been replaced with three pairs of values: "[x]Mult" and "[x]Base".
The final stat value is equal to "[x]Mult * (log(postTime) / (log([x]Base))"
Put another way, the stat's value is equal to the stat's multiplier times the "[x]Base"-base logarithm of the post's post-time (in minutes).
This is done to reflect the posts "gaining" likes, comments, and shares as they get older. The logarithm is to ensure that there is a big initial burst, and then the numbers taper off as the post gets older.
The multipliers allow for controlling how "popular" a character. A relatively obscure character would reasonably by less popular than a queen, for example.
The base is optional, with a default value of 2 (EG the stats are calculated using base-2). Changing the base affects how quickly the stat falls off.
The six values are "likesMult", "sharesMult", "commentsMult", "likesBase", "sharesBase", "commentsBase"
Created this separate downloads page.
Added Spontanephoto version and link to this downloads page to the bottom of the Spontantephoto page.