Skip to content

Blog: three posts on books and taxes - #19

Merged
lobbystack merged 4 commits into
mainfrom
blog-books
Oct 9, 2026
Merged

lobbystack merged 4 commits into
mainfrom
blog-books

Conversation

@lobbystack

Copy link
Copy Markdown
Owner

Adds a blog at /blog with three posts about Books, plus two fixes found while writing them.

Blog

  • /blog lists posts newest first; /blog/<slug> renders one with its date, author and BlogPosting structured data.
  • Posts are markdown in src/content/blog/, prerendered, listed in the sitemap, served as markdown to agents, and linked from the footer.

Posts

  • How to get Stripe into QuickBooks or Xero: why a payout isn't revenue, the entries your books need, and four ways in (QuickBooks' Stripe integration, Xero, sync apps, OpenProfit's journal), with import steps. Targets "stripe quickbooks integration" (590 searches a month in the US, keyword difficulty 5).
  • Which tax line do OpenAI, Vercel and Stripe fees go on?: T2125, TP-80, GIFI, Schedule C and Form 1120 lines for each cost, a laptop, merchant-of-record sales and domains, checked against the 2025 forms. Targets "t2125" (5,400 a month in Canada, 18,100 in April) and "schedule c expenses".
  • My SaaS bills go on my personal card, so I built my own books: the founder's answer to "why would I choose this over QuickBooks?" from Reddit.

Every price and limit in the posts comes from the vendor's own page, checked on October 8, 2026.

Fixes

  • Tax report: T2125 payment fees move from 8710 to 8871, where the T4002 guide puts bank charges (matching TP-80 line 216). GIFI moves them from 8716 to 8715, Bank charges. New notes on TP-80 line 264, Schedule C Part V software subscriptions, and the de minimis practice needed from January 1.
  • 404 titles: /docs/nope, /compare/nope and /integrations/nope had the title "undefined · OpenProfit". A loader that throws notFound() leaves loaderData undefined, so these routes now skip their head without data, as /p/... does.

Checked

  • npx tsc --noEmit, Biome on the changed files, pnpm build.
  • scripts/check-books-tax.ts passes.
  • Production build: the three posts and /blog return 200, a missing post 404s, missing pages keep the site title, and the sitemap and markdown responses list the posts.

T2125 payment fees move to 8871, where T4002 puts bank charges, matching TP-80 line 216. GIFI moves them to 8715 Bank charges; RC4088's only example for 8716 is credit card interest. The TP-80 report notes that line 264 equals line 250 without home office or partnership amounts. Schedule C notes that Part V names software subscriptions, and that the de minimis safe harbor needs the practice in place on January 1. The de minimis comment cites Notice 2015-82 for the $2,500 limit.
/blog lists the posts newest first and /blog/<slug> renders one, with its date, author and BlogPosting structured data. Posts are prerendered, listed in the sitemap, served as markdown, and linked from the footer.
How to get Stripe into QuickBooks or Xero, which tax line each software cost goes on, and why OpenProfit writes books from provider APIs instead of a bank feed.
A loader that throws notFound() leaves loaderData undefined, so head() wrote "undefined · OpenProfit" on /docs/nope, /compare/nope and /integrations/nope. These routes now return no head without data, as /p/... already does, and the 404 keeps the root title. Blog posts skip their BlogPosting data the same way.
@lobbystack
lobbystack merged commit 85cb52d into main Oct 9, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant