Show newer

I want to keep our GitHub issues low and, really, not use GH for project management. So we'll probably just accept pull requests and bug reports there, and then continue using our Phabricator instance for all planning and working with long-term contributors.

You can see some of what's planned already: phabricator.write.as/tag/write

One minor difference you'll see in : "Anonymous" posts are called "Drafts".

This is a great use for them already on @write_as, so they'll retain their function, but now the name will match.

Added more restrictive spam filters on posts, which keep flooding in even as sign ups have slowed down significantly.

Previously you couldn't go back and view older hashtagged posts — this is fixed now, as well as deleting or moving posts from those same pages.

Deviating from new feature plans to fix some user issues today. Right now: pagination on tagged post pages.

I think once I've forgotten all the keyboard shortcuts in Android Studio that's a good sign I've been away long enough.

Show thread

I was also focused on adding more features to the web app (the place where people could buy a subscription) so that more people would find it valuable enough to buy a subscription. Focusing on that took a few months before we saw our first customer that stayed.

I really wish I hadn't waited this long to take care of it -- I know plenty of people are waiting on the update. But the platform is at a good place, and I think I'm finally over the mobile development hangover. I'm ready to knock it out

Show thread

I *really* never meant for it to be delayed for as long as it has. Mostly, they were personal reasons -- for one, I was doing both Android and iOS development at a day job for most of the time after we launched blogs/accounts in 2016. And having my days packed with nothing but that really made me not want to do more of it when I got home. Relatively speaking, native mobile development feels like going back to the days of programming with punch cards to me.

Show thread

It lives!

Backend is set; now on to the last phase for : cleaning up the frontend. Includes supporting your various configurations, removing Write.as branding and paywall code still tangled up in there, and maybe shrinking down the stylesheet (not pictured here, of course).

So far so good on this -- seems like a much higher ratio of real users vs. spammers, and from what I can tell, no automated accounts getting through.

Show thread

Begrudgingly, I've added reCAPTCHA to the sign up form. This is just for now, and only for free accounts, to try and reduce the number of spam accounts being created. It's just too much work for me to keep them out manually, so I think this will help

Interactive setup / configuration process is in there now.

github.com/writeas/writefreely

This also includes validation -- something we can reuse when starting up the server, so we can be sure no invalid values are getting through and wreaking havoc on an instance.

Next:

- Update templated pages with the instance's configured name instead of "Write.as" and its metadata
- Removing template exceptions for an "official blog" (i.e. write.as/blog/)
- Adding a setup process

Was thinking about leaving a nice setup process out of v1.0, but it'll be easy to add and make onboarding / installation much nicer.

Show thread

On Write Freely again, removing code for handling sites across custom domains, subdomains, and paths. On a technical level, our blog lookup calls are now dependent on whether the blog is configured to be single- or multi-user.

A big reason for the database code refactoring is that, besides making everything cleaner / clearer, the self-hosted version will also support different database backends, like SQLite. It won't be completely ready for that when the code is released, but the groundwork will be there.

Officially, the open source version is still going to be released by the end of December. 

Unofficially I might finish it this month :)

Show thread

Good progress on Write.as open source today -- got the endpoints moved over and 2500 lines of database code migrated from global functions to struct methods. Left out all the API v1 stuff and removed paywall code.

Past 8 hours have been spent copying code, using tons of Vim macros to update everything, and build, fix errors, repeat. Now that it's compiling again, time to strip out more Write.as(the service)-specific functionality.

Show older

Write.as Development's choices:

A Bunch Tell

This instance is only for A Bunch Tell projects.