I found the major culprit to my loading time woes and want to share in case someone else is having trouble. In my case, I have a moderately-sized Postgres table (IMO) of ~25,000 rows and around 20 columns. I update one column frequently, every time the app loads or the user clicks a button. Otherwise, it’s all SELECT statements. But the loading times have grown from under 4 seconds at first, to over 25 seconds!
An Engineer at ElephantSQL took a look at my DB and suggested I VACUUM FULL the database (for more info on VACUUM FULL, click here: https://www.postgresql.org/docs/9.1/static/sql-vacuum.html). When he did it, my app load time dropped back to 3.5 seconds instantly. He then sent me this link on setting your auto vacuum and analyze settings: https://lob.com/blog/supercharge-your-postgresql-performance.
Essentially, when you update or delete tuples, the DB won’t actually delete them. In my case, my 15MB table had ballooned to 1.1GB over the last few months. You have to run a VACUUM and ANALYZE to fix it. Changing the auto vacuum settings on my DB now…