Apollo 0.1.0 is on Maven Central!

Apollo is a Devise-like authentication library for Http4s: registration, login and sessions, password reset, and opt-in e-mail confirmation, with CSRF protection throughout. Pure FP — cats-effect, doobie, Twirl. It's split into three small modules so you only depend on what you use:

mvn"io.github.joshuakfarrar::apollo-core:0.1.0"
mvn"io.github.joshuakfarrar::apollo-http4s:0.1.0"
mvn"io.github.joshuakfarrar::apollo-doobie:0.1.0"

Out of the box it needs nothing but Postgres. Registration signs you straight in, and confirmation and reset codes print to the server log until you wire up a real mailer (I've helpfully bundled in my own Mailgun implementation).

The fastest way to try it is to use the giter8 template via Mill:

$ mill --interactive init joshuakfarrar/apollo.g8

That gives you a running webapp with login, registration, and password reset.

Also: you're reading this post through Apollo right now! Apollo has powered Tertulia for the last six months without a single 500 error.

https://github.com/joshuakfarrar/apollo

🎉

Apollo needs a feature, to bypass the Email Confirmation workflow. I pushed an updated joshuakfarrar/apollo.g8, to use the recently-refactored Apollo, and, during testing, had the realization that forcing the developer to have a Mailgun account, and setup, even to test Apollo is not The Way. So I've got Claude Code cooking on that during my morning meetings. Option[MailService] and Option[ConfirmationService] seem reasonable. (No MailService? No password resets for you!) Need to get the CSRF features documented too, and/or set them up with sensible defaults à la Rails, and update http4s dependencies.

[Rep. Marie Gluesenkamp Perez] has betrayed those who worked tirelessly to get her elected ever since she took office, with such dirty deeds as selling out to corporate interests and the genocidal state of Israel (via AIPAC), joining the godforsaken Blue Dog Coalition of conservative Democrats, and voting alongside MAGA in a strategy, as blatant as it is stupid, to keep her seat—all while gaslighting her constituents and brazenly looking to skirt accountability along the way. — Karissa Halstrom

Claude Fable 5 usage limits are shockingly low for a tool I could imagine trying to use every day. It may be a bit old-fashioned, but I really haven't tried coding agents despite using LLMs to help me understand and scaffold code. A couple days on a blog and I'm at 62% of my weekly Fable allocation, on a Max (5x) plan (@ $100/m USD). I have to wonder how profitable Anthropic is, behind the rumors of Q2 profitability.

Tomorrow, the House will vote on the NDAA, which includes a provision to merge parts of our military with the IDF. This amendment is an existential threat to American sovereignty and democracy. Every member of Congress must vote NO. — Representative Alexandria Ocasio-Cortez
The International Criminal Court issued an arrest warrant for Benjamin Netanyahu for a reason. He should be arrested and stand trial. — Zohran Mamdani

alright!

apollo has been broken up into `apollo-core`, `apollo-doobie`, and `apollo-http4s`. the idea is basically that you should be able to use at least some of Apollo regardless of your preference for a specific database or web framework/effect library (although obviously the focus of this application is http4s/cats). i upgraded tertulia too, with claude's help. it snagged on my csrf settings, that's fine: obvious enough to spot, obvious enough to quickly fix. i think the real challenge, barring implementing a robust automated test suite for this platform is the question that keeps software development teams and product managers up at night: what if the LLM introduces a more subtle bug? i'm strongly considering publishing Apollo to Maven Central. maybe i should consider that problem first.

also tried for the first time: Antigravity

Google Antigravity is a software development platform developed by Google. It consists of an integrated development environment, a command-line interface, and a software development kit designed to orchestrate autonomous artificial intelligence agents for code generation, execution, and testing.

it's practically a workstream just keeping up with the latest in coding agents and their tools!

🎉

considering opening this thing up to create a platform only for friends. a place where i can share my family photos with the people i care about, without the corporate surveillance or the behavioral manipulation. or, to avoid a moderation nightmare, maybe users can't create their own feeds, or respond on the platform, but must reach out to me by other means? to register, you have to receive an invite, and even with an invite i still have to approve your access request? idk, blogging is kinda hard. not super hard, but if who you reach matters, it's a little more complicated than a textbox and a list of posts.

another little side project for this afternoon: finally break up apollo into modules that make sense, and prepare it for publishing to maven central. this microblogging platform has depended on it for six months. no issues. i think it's safe to say it works. and that code is all mine! (well, it was all mine, 'til today) :)

Updates:

  1. new favicon with a stylized T
  2. RSS feed (still ironing out the kinks)
  3. facebook share image so it's not just a link when shared there
  4. little header tweaks

for this little platform, "vibe coding" appears quite viable. i've seen some things other folks are building with claude code. the architectures are... sus. but the products themselves look great. whether or not they're valuable to their owners and their businesses? remains to be seen.