Budget Notify – Part 1

This is the start of a series of posts as I build out a new project called "Budget Notify". I don’t know how many posts this will take, when it will be finished, or even how often I’ll post an update. I’m going to be learning some new tech during this project, so it seems like a good project to write about – both for my benefit as well as anyone getting started with this same tech.

For today, I thought I’d share a little background on what the project is and why I’m working on it. I plan to get more into the technical side in future posts.

What is Budget Notify?

Budget Notify is a service that monitors your budget and triggers notifications based on various conditions.

Why would I need something like this?

If you’re the main budgeter in your household (or you are the household), then you don’t need a service like this – at least not for yourself. If you have a budget shared by the family, but the rest of the family isn’t as interested in checking the budget like you are, then this can help. If you set a budget for dining out that applies to the whole family, but no one else looks at that budget category before they place an order, the budget isn’t exactly helping.

With Budget Notify, you can set up notifications so if someone picks up Taco Bell on the way home from work, everyone else is notified that the available dining out funds are a bit lower. A notification like this helps people visualize how much is being spent and how much can still be spent on key budget categories. Budget Notify makes it as frictionless as possible to keep everyone aware of your budget.

How does the service know what the "budget" is?

For now, the focus is specifically on YNAB budgets. If you use YouNeedABudget.com, then your budget will work with Budget Notify. In the future, other budgeting systems may be supported, but for two, it’s YNAB only. Why? Well, two good reasons. First, I personally use YNAB so that’s what I need. Second, YNAB has a nice API that makes querying budget data simple.

What’s the new tech stack?

AWS Amplify w/ GraphQL & React. This may be old hat to you, but it’s brand new for me. I’ve written web apps for years, but not with React. I’ve seen GraphQL many times at conferences, but never tried to implement it in a real project. I’ve worked on Azure, but barely touched AWS outside of a few Alexa lamdas and general EC2/S3 usage, so Amplify is going to be all new.

Why use a new (to you) tech stack?

I’ve started this project a couple of times using the tech stack I know – .NET/C# for the code, SQL Server or Postgres for the DB, and a regular Linux VM for the manually maintained server. The reason for Amplify this time is I’m going to need some Amplify experience for my day job in the next 3-6 months. I learn a new tech stack better when I have a specific usage in mind, and this has such a narrow scope (and no specific timeline) that it’ll be a great learning project.

WordPress/PHP Nonsense

fault code -32700 parse error. not well formed

That’s what I’ve been getting when I tried to use any client to connect to my WordPress instance. The WP web UI worked fine and I wasn’t seeing any errors in the dashboard.

I’ve been trying to get back into the habit of using my micro.blog account for a while now, but kept having trouble with the micro.blog apps. I could read just fine, but I couldn’t post to micro.blog via the app (which in turn posts to my self-hosted WP blog).

This process used to work a few months ago and I thought it was a problem with micro.blog itself. After more investigating and some pointers from Manton Reese via Micro.blog support, I finally figured out the issue…

The server was missing the package php-xml. Turns out, WordPress will happily run without it and the xmlrpc endpoint will even respond with XML without it, but it won’t actually work. After doing a quick:

yum install php-xml

I was back in business. I’m surprised WordPress didn’t detect this and point out that a required package was missing. Maybe it did and it just didn’t make it obvious? I’m not really sure, but I see lots of people with the same issue when I search for the solution. I had to dig through several Google results to finally find the answer which was also surprising.

So if you get an error saying “fault code -32700” and “parse error. not well formed”, make sure your php-xml package is installed.

Blogging Thoughts

One of the reasons I haven’t tried to blog, or even post to social media, more these days is I can’t figure out how I want to manage all of my accounts. I haven’t used Facebook in a year and a half (or more) at this point and I don’t see myself going back.

I go through periods where I don’t look at Twitter at all, but I still have some friends that I only see on there, so I hate to abandon it altogether. I also have this blog which I’ve had forever – I’ve imported most of my old content from various other blogs into this one.

I think this blog will stay the single repository for anything I make. That keeps it nice & easy, even though it doesn’t get nearly as much traffic as my social media accounts.

I’m still trying to post to Micro.blog as well, but I’m not involved in many discussions there since there are so few people I know using it. Any blog posts on here that are tagged with microblog will also show up on Micro.blog itself. I’m sure I’d have a different feeling about it if most of my friends from Twitter (and some from Facebook) were there, but that’s not the situation today.

I used to have Micro.blog cross-post to Twitter for me and maybe I’ll end up turning that back on, but the catch for me was that I didn’t want to check Twitter for replies. At the same time, if I post something there and I get a comment about it, I’d like to see it. I haven’t found a way to get just Twitter replies sent to me though. If I have the Twitter app (well, Tweetbot) installed, I’m going to mindlessly browse Twitter more than I’d like. Without the app, I only get emails when someone DMs me. It sounds like I should be getting reply emails as well based on Twitter’s setting screen, but I’ve never seen that in emails.

For now, I think I’m going to go back to not using Twitter. I recently signed up for Feedbin and it lets to subscribe to specific Twitter accounts as if they were regular RSS feeds. I think that may be a nice middle ground to keep up with the handful of accounts I like to follow without getting sucked into scrolling Twitter for ages.

I’m going to keep posting my content to this blog and I may look at turning on Twitter cross posting for the microblog category specifically – so those posts go out automatically, but I’ll have to manually cross post any longer content if I want it to go out.