gasp development log: year 1, week 1
an unexpected bug took up most of the week, and we're better off because of itBy Tibet Tornaci | Mon, 09 Jan 2023 00:00:00 GMT | 4 minutes read
Year 0 recap
Year 0 (2022, for those keeping count) is the year this project started. In some ways a lot happened; I mean, the whole project started there, right. But at the same time, it started mid-December, so eh. My goal for Year 0 was to make a functional version of this before year 1 started. I pretty much succeeded, but had issues getting the thing deployed, so I was working on that until, and a few hours past, the New Year. But it worked, and on January 1, we were live. There was another nasty bug I didn't know about yet, because it's also a deployment issue, but we'll get to that.
Year 1, Week 1
New Features
Added JPEG-XL polyfill
I've added a slightly modified version of the JXL.js polyfill to make images viewable on devices that don't support the format natively. You should enable native support if available, I'll write an article on how to do this later.
Posts are now editable
If you made a post, you can now edit its title and description. Riveting stuff, I know.
Phase 1 of upload rework
Due to bugs that became apparent after initial deployment, the initial way I'd implemented uploads didn't work too well, sometimes failing, and generally just having terrible UX. This week, most of my time went to rebuilding the user-facing part of this infrastructure, by completely scrapping the existing upload page and instead creating an empty draft post.
Uploads are handled with Uppy now, which opens the door to a lot of future development, including allowing uploading multiple files at once, for variant sets, comics, etc., resumable uploads, so if your netowrk goes down or browser crashes you can pick up where you left off, importing directly from cloud storage or other social media, etc., and I will be working on those features over the coming weeks and months.
Opt out of Common Crawl
Common Crawl is a project that crawls the whole internet. It is used by LAION, and probably every other AI entity out there. While I don't consider this to be a problem on its own, as the tags aren't accessible to logged out users, and our image links would expire by the time someone tried to download them using this dataset anyway, out of an abundance of caution, I have decided to completely opt the whole website out of Common Crawl to protect the interests of the artists and users of the platform, and to send a message that the only easy way to get our data is by going through us, under our own terms, not by sniffing around.
Minor changes
- Improved transition performance.
- Removed the placeholder "Item 1" and "Item 2" links from the navbar, and added a link to your profile page.
- You can now update your username, but you shouldn't because it might break stuff. (see known bugs)
- Added a confirmation dialog when deleting posts.
Bugs Squashed
- Fixed a bug where profile images weren't appearing in the navigation bar.
- Fixed a bug where JXL.js wasn't getting loaded properly on some devices.
- Switched to subtler transitions when using JXL.js due to decoding not starting until DOM is fully loaded.
- Removed unused fields from database.
- Fixed a bug where posts that had likes on them couldn't be deleted.
- Fixed a bug where one user could make multiple profiles. (This is planned functionality, but it's not ready yet!)
Known Bugs
The AI options are missing from the new uploader. They've been coded and should be deployed today.- Currently using the single thread version of JXL.js due to some browsers (namely Safari) not supporting WebAssembly SIMD. Feature detection will be added to serve the faster version to browsers that can make use of it.
Usernames do not update in the navbar when changed, and the profile link in the dropdown also breaks.Changing your username makes it impossible to upload until you change it back again, unless you use another device or clear site data and log back in. This will be addressed today or tomorrow.Mobile layout has some extra whitespace sometimes.- There is a bug where going back after opening an image resets your scroll position to the top. This isn't really a problem until we get a lot of posts though, so get sharing. :)
The layout looks horrendous on tablets held vertically.- There is a dropdown for selecting the profile type when creating your profile; it doesn't actually do anything and will be removed.
The share button hasn't been implemented yet.- Deleting posts results in an HTTP 405 error. The posts are deleted fine, but you get the error in exchange!
Deleting a draft makes it impossible to create a new one.
Planned for this week
- [x] Make vertical layout on tablets have more columns.
- [x] Fix username upload bug.
- [ ] Add SIMD feature detection.
- [x] Fix whitespace in mobile layout.
- [ ] Make the tag input look nicer.
- [x] Make the share button work.
- [ ] Add support for variant sets! AFAICT no other site has support for these.
Happy sharing! https://gasp.256.fyi