PageSourceSearch

https://www.expensebot.ai/static/js/4646.86e9bbe9.chunk.js

js expensebot.ai collected 2026-09-24 13:21:20 UTC 41,383 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[4646],{52059:(e,t,r)=>{r.d(t,{A:()=>i});r(65043);var o=r(35475),a=r(76697),n=r(70579);const i=()=>{const e={container:{background:"linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%)",borderTop:"1px solid #e2e8f0",padding:"2rem 1.5rem 1.5rem"},inner:{maxWidth:"1200px",margin:"0 auto"},accordionGrid:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(260px, 1fr))",gap:"0.5rem 1.5rem",marginBottom:"1.5rem"},details:{borderBottom:"1px solid #e2e8f0",padding:"0.5rem 0"},summary:{cursor:"pointer",listStyle:"none",display:"flex",justifyContent:"space-between",alignItems:"center",padding:"0.5rem 0",fontSize:"0.875rem",fontWeight:600,color:"#1e293b",textTransform:"uppercase",letterSpacing:"0.05em"},summaryArrow:{color:"#94a3b8",fontSize:"0.75rem",transition:"transform 0.2s"},sectionLinks:{display:"flex",flexDirection:"column",gap:"0.5rem",paddingTop:"0.5rem",paddingLeft:"0.25rem"},sectionLink:{color:"#64748b",textDecoration:"none",fontSize:"0.875rem",padding:"0.125rem 0"},divider:{borderTop:"1px solid #e2e8f0",paddingTop:"1.25rem",marginTop:"0.5rem"},bottom:{display:"flex",flexWrap:"wrap",justifyContent:"space-between",alignItems:"center",gap:"1rem"},logoWrap:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"0.75rem"},logo:{display:"flex",alignItems:"center",gap:"0.5rem",fontWeight:600,color:"#1e293b",fontSize:"1.125rem"},logoImg:{height:"28px",width:"28px",borderRadius:"6px"},primaryNav:{display:"flex",flexWrap:"wrap",gap:"1rem",alignItems:"center"},primaryLink:{color:"#475569",textDecoration:"none",fontSize:"0.9rem",fontWeight:500},legalRow:{display:"flex",flexWrap:"wrap",justifyContent:"space-between",alignItems:"center",gap:"1rem",marginTop:"1rem",paddingTop:"1rem",borderTop:"1px solid #e2e8f0"},copyright:{fontSize:"0.8rem",color:"#94a3b8"},legalLinks:{display:"flex",gap:"1.25rem",flexWrap:"wrap"},legalLink:{color:"#64748b",textDecoration:"none",fontSize:"0.8rem"},socialIcon:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",borderRadius:"6px",backgroundColor:"#f1f5f9",transition:"background-color 0.2s, transform 0.2s"}},t=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#2563eb";e.target.style.color=t},r=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#64748b";e.target.style.color=t};return(0,n.jsx)("footer",{style:e.container,children:(0,n.jsxs)("div",{style:e.inner,children:[(0,n.jsx)("div",{style:e.accordionGrid,children:a.Fh.map((a=>(0,n.jsxs)("details",{style:e.details,children:[(0,n.jsxs)("summary",{style:e.summary,children:[(0,n.jsxs)("span",{children:[a.title," ",(0,n.jsxs)("span",{style:{color:"#94a3b8",fontWeight:400,fontSize:"0.75rem"},children:["(",a.links.length,")"]})]}),(0,n.jsx)("span",{style:e.summaryArrow,children:"\u25be"})]}),(0,n.jsx)("div",{style:e.sectionLinks,children:a.links.map((a=>(0,n.jsx)(o.N_,{to:a.to,style:e.sectionLink,onMouseEnter:e=>t(e),onMouseLeave:e=>r(e),children:a.label},a.to)))})]},a.id)))}),(0,n.jsxs)("div",{style:e.divider,children:[(0,n.jsxs)("div",{style:e.bottom,children:[(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:e.logoWrap,children:[(0,n.jsxs)("div",{style:e.logo,children:[(0,n.jsx)("img",{src:"/eblogo_2_70.webp",srcSet:"/eblogo_2_70.webp 1x, /eblogo_2_140.webp 2x",alt:"ExpenseBot",width:"40",height:"40",loading:"lazy",style:e.logoImg}),(0,n.jsx)("span",{children:"ExpenseBot"})]}),(0,n.jsx)("a",{href:"https://www.linkedin.com/company/expensebot-ai/",target:"_blank",rel:"noopener noreferrer","aria-label":"Follow ExpenseBot on LinkedIn",style:e.socialIcon,onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#0077b5",e.currentTarget.querySelector("svg").style.fill="white"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="#f1f5f9",e.currentTarget.querySelector("svg").style.fill="#0077b5"},children:(0,n.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"#0077b5",style:{transition:"fill 0.2s"},children:(0,n.jsx)("path",{d:"M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"})})}),(0,n.jsx)("a",{href:"https://www.facebook.com/profile.php?id=61573601905645",target:"_blank",rel:"noopener noreferrer","aria-label":"Follow ExpenseBot on Facebook",style:e.socialIcon,onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#1877f2",e.currentTarget.querySelector("svg").style.fill="white"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="#f1f5f9",e.currentTarget.querySelector("svg").style.fill="#1877f2"},children:(0,n.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"#1877f2",style:{transition:"fill 0.2s"},children:(0,n.jsx)("path",{d:"M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385h-3.047v-3.47h3.047v-2.642c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953h-1.513c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385c5.737-.9 10.125-5.864 10.125-11.854z"})})}),(0,n.jsx)("a",{href:"https://www.instagram.com/expensebot.ai?igsh=MXUzNGhlenZmdnM1ZA%3D%3D&utm_source=qr",target:"_blank",rel:"noopener noreferrer","aria-label":"Follow ExpenseBot on Instagram",style:e.socialIcon,onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#e1306c",e.currentTarget.querySelector("svg").style.fill="white"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="#f1f5f9",e.currentTarget.querySelector("svg").style.fill="#e1306c"},children:(0,n.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"#e1306c",style:{transition:"fill 0.2s"},children:(0,n.jsx)("path",{d:"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 
10-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"})})})]}),(0,n.jsxs)("nav",{className:"eb-footer-reviews","aria-label":"Customer reviews",children:[(0,n.jsx)("span",{children:"Reviews:"}),(0,n.jsx)("a",{href:"https://www.g2.com/products/j2play-ltd-expensebot/reviews",target:"_blank",rel:"noopener noreferrer","aria-label":"Read ExpenseBot reviews on G2 (opens in a new tab)",children:"G2"}),(0,n.jsx)("span",{"aria-hidden":"true",children:"\xb7"}),(0,n.jsx)("a",{href:"https://www.trustpilot.com/review/expensebot.ai",target:"_blank",rel:"noopener noreferrer","aria-label":"Read ExpenseBot reviews on Trustpilot (opens in a new tab)",children:"Trustpilot"})]})]}),(0,n.jsxs)("nav",{style:e.primaryNav,"aria-label":"Footer primary",children:[a.hV.map((a=>(0,n.jsx)(o.N_,{to:a.to,style:e.primaryLink,onMouseEnter:e=>t(e,"#2563eb"),onMouseLeave:e=>r(e,"#475569"),children:a.label},a.to))),(0,n.jsxs)("a",{href:"https://chatgpt.com/plugins/plugin_asdk_app_69fca56e8244819185cb4a9c2462def9",target:"_blank",rel:"noopener noreferrer",style:{display:"inline-flex",flexDirection:"column",alignItems:"flex-start",gap:"1px",padding:"0.4rem 0.9rem",border:"1px solid #cbd5e1",borderRadius:"8px",backgroundColor:"#ffffff",textDecoration:"none",transition:"border-color 0.2s"},onMouseEnter:e=>{e.currentTarget.style.borderColor="#2563eb"},onMouseLeave:e=>{e.currentTarget.style.borderColor="#cbd5e1"},onClick:()=>{window.gtag&&window.gtag("event","chatgpt_app_click",{cta_location:"footer"})},children:[(0,n.jsx)("span",{style:{fontSize:"0.6rem",fontWeight:500,letterSpacing:"0.04em",textTransform:"uppercase",color:"#94a3b8",lineHeight:1.2},children:"Available in ChatGPT"}),(0,n.jsx)("span",{style:{fontSize:"0.85rem",fontWeight:600,color:"#1e293b",lineHeight:1.25},children:"Get it on ChatGPT"})]}),(0,n.jsxs)("a",{href:"https://claude.ai/directory/bfed9bf1-9728-448c-8db6-414958854089",target:"_blank",rel:"noopener noreferrer",style:{display:"inline-flex",flexDirection:"column",alignItems:"flex-start",gap:"1px",padding:"0.4rem 0.9rem",border:"1px solid #cbd5e1",borderRadius:"8px",backgroundColor:"#ffffff",textDecoration:"none",transition:"border-color 0.2s"},onMouseEnter:e=>{e.currentTarget.style.borderColor="#2563eb"},onMouseLeave:e=>{e.currentTarget.style.borderColor="#cbd5e1"},onClick:()=>{window.gtag&&window.gtag("event","claude_app_click",{cta_location:"footer"})},children:[(0,n.jsx)("span",{style:{fontSize:"0.6rem",fontWeight:500,letterSpacing:"0.04em",textTransform:"uppercase",color:"#94a3b8",lineHeight:1.2},children:"Available in Claude"}),(0,n.jsx)("span",{style:{fontSize:"0.85rem",fontWeight:600,color:"#1e293b",lineHeight:1.25},children:"Get it on Claude"})]})]})]}),(0,n.jsxs)("div",{style:e.legalRow,children:[(0,n.jsxs)("div",{style:e.copyright,children:["\xa9 ",(new Date).getFullYear()," ExpenseBot. All rights reserved."]}),(0,n.jsx)("div",{style:e.legalLinks,children:a.qi.map((a=>(0,n.jsx)(o.N_,{to:a.to,style:e.legalLink,onMouseEnter:e=>t(e,"#2563eb"),onMouseLeave:e=>r(e,"#64748b"),children:a.label},a.to)))})]})]})]})})}},34132:(e,t,r)=>{r.r(t),r.d(t,{default:()=>h});var o=r(65043),a=r(73216),n=r(35475),i=r(29490),s=r(52059),l=r(96967),c=r(1296),d=r(49033),p=(r(1641),r(70579));const h=()=>{const e=(0,a.Zp)(),[t,r]=(0,o.useState)(null);(0,o.useEffect)((()=>{const e=localStorage.getItem("userEmail"),t=localStorage.getItem("userName");e&&r({name:t,email:e})}),[]),(0,o.useEffect)((()=>{setTimeout((()=>{window.prerenderReady=!0}),500)}),[]),(0,o.useEffect)((()=>{(0,d.oe)("/freelance-developer-expense-tracker");return(0,d.gK)("/freelance-developer-expense-tracker")}),[]);const[h,m]=(0,o.useState)(!1),g=(0,o.useRef)("hero"),u=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"hero";g.current=e,m(!0)},[f,x]=(0,o.useState)(!1);(0,o.useEffect)((()=>{const e=()=>x(window.scrollY>500);return window.addEventListener("scroll",e,{passive:!0}),()=>window.removeEventListener("scroll",e)}),[]);const b=[{q:"Can a freelance developer deduct AWS, GitHub and other subscriptions?",a:"Cloud hosting and developer tooling you pay for to do client work are generally ordinary and necessary business expenses. The general treatment of recurring software costs \u2014 including annual plans and mixed personal/business use \u2014 is covered on our software subscriptions page. Estimates \u2014 confirm with your tax professional."},{q:"Can I deduct a new laptop, or does it have to be depreciated?",a:"It depends on the cost and on your jurisdiction. Most tax systems have some threshold or election below which equipment can be written off immediately rather than capitalised and depreciated over several years, but the threshold, the election, and the conditions differ between the US, 
1Canada, the UK and Australia \u2014 and they change. Do not assume a number you read somewhere still applies. This is a question worth asking your tax professional directly, because the answer materially changes the year the deduction lands."},{q:"What about a home office and my internet bill?",a:"Both are commonly deductible in some proportion for someone working from home, and both have jurisdiction-specific rules about how the proportion is calculated. We have separate guides on the home office deduction and on deducting your home internet bill. Estimates \u2014 confirm with your tax professional."},{q:"How do I separate personal and business use on the same subscription?",a:"In Review Expenses you can Split an expense into portions, so a subscription used partly for client work and partly personally is recorded as two amounts against the one charge rather than being counted whole or dropped entirely. The split is stored on the expense, so the category totals you export reflect it."},{q:"Does it handle usage-based cloud bills that change every month?",a:"Yes \u2014 each monthly invoice is captured as its own receipt with its own amount, so a variable AWS or GCP bill produces an accurate month-by-month record rather than an assumed average. That is also what makes an unexpected spike visible, since the rows sit next to each other in the sheet."},{q:"Where does the data actually live?",a:"In a Google Sheet in your own Google Drive. You can open it without ExpenseBot, script against it, export it, or keep it in full if you cancel. There is no proprietary format and no export request to file."}],y="https://www.expensebot.ai/freelance-developer-expense-tracker";return(0,p.jsxs)("main",{className:"faq-container1",role:"main",children:[(0,p.jsxs)(i.mg,{children:[(0,p.jsx)("title",{children:"Freelance Developer Expense Tracker \u2014 SaaS, Cloud & Hardware | ExpenseBot"}),(0,p.jsx)("meta",{name:"description",content:"An expense tracker for freelance developers: capture AWS, GitHub, SaaS and hardware receipts from Gmail into a Google Sheet you own. Subscription sprawl, handled automatically."}),(0,p.jsx)("link",{rel:"canonical",href:y}),(0,p.jsx)("link",{rel:"sitemap",type:"application/xml",href:"https://www.expensebot.ai/sitemap.xml"}),(0,p.jsx)("meta",{name:"robots",content:"index, follow, max-snippet:-1, max-image-preview:large"}),(0,p.jsx)("meta",{name:"keywords",content:"freelance developer expense tracker, software developer expenses, contract developer bookkeeping, developer subscription tracking, freelance programmer expenses, SaaS expense tracking freelancer"}),(0,p.jsx)("link",{rel:"alternate",hreflang:"en-US",href:y}),(0,p.jsx)("link",{rel:"alternate",hreflang:"en-CA",href:y}),(0,p.jsx)("link",{rel:"alternate",hreflang:"en-GB",href:y}),(0,p.jsx)("link",{rel:"alternate",hreflang:"en-AU",href:y}),(0,p.jsx)("link",{rel:"alternate",hreflang:"x-default",href:y}),(0,p.jsx)("meta",{property:"og:type",content:"website"}),(0,p.jsx)("meta",{property:"og:url",content:y}),(0,p.jsx)("meta",{property:"og:title",content:"Freelance Developer Expense Tracker \u2014 SaaS, Cloud & Hardware"}),(0,p.jsx)("meta",{property:"og:description",content:"Capture AWS, GitHub, SaaS and hardware receipts from Gmail into a Google Sheet you own. Built for developers with a dozen recurring vendors."}),(0,p.jsx)("meta",{property:"og:image",content:"https://www.expensebot.ai/og-image.png"}),(0,p.jsx)("meta",{property:"og:image:width",content:"1200"}),(0,p.jsx)("meta",{property:"og:image:height",content:"630"}),(0,p.jsx)("meta",{property:"og:site_name",content:"ExpenseBot"}),(0,p.jsx)("meta",{property:"og:locale",content:"en_US"}),(0,p.jsx)("meta",{property:"og:locale:alternate",content:"en_CA"}),(0,p.jsx)("meta",{property:"og:locale:alternate",content:"en_GB"}),(0,p.jsx)("meta",{property:"og:locale:alternate",content:"en_AU"}),(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("meta",{name:"twitter:url",content:y}),(0,p.jsx)("meta",{name:"twitter:title",content:"Freelance Developer Expense Tracker"}),(0,p.jsx)("meta",{name:"twitter:description",content:"AWS, GitHub, JetBrains, hardware \u2014 captured from Gmail into a Google Sheet you own. $10/mo, 60-day trial."}),(0,p.jsx)("meta",{name:"twitter:image",content:"https://www.expensebot.ai/og-image.png"}),(0,p.jsx)("meta",{name:"twitter:site",content:"@ExpenseBotAI"}),(0,p.jsx)("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"Organization","@id":"https://www.expensebot.ai/#organization",name:"ExpenseBot",url:"https://www.expensebot.ai",logo:"https://www.expensebot.ai/eblogo_2.png",sameAs:["https://www.linkedin.com/in/balahura/"]})}),(0,p.jsx)("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"WebPage","@id":y+"#webpage",url:y,name:"Freelance Developer Expense Tracker",isPartOf:{"@id":"https://www.expensebot.ai/#website"},dateModified:"2026-08-11",description:"Expense tracking for freelance and contract software developers: Gmail capture of cloud, SaaS, hardware and home-office receipts into a Google Sheet the developer owns, with splitting for mixed personal and business use."})}),(0,p.jsx)("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:b.map((e=>
1({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}})))})}),(0,p.jsx)("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://www.expensebot.ai"},{"@type":"ListItem",position:2,name:"Freelancers",item:"https://www.expensebot.ai/freelancer"},{"@type":"ListItem",position:3,name:"Freelance Developers",item:y}]})}),(0,p.jsx)("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"SoftwareApplication",name:"ExpenseBot",applicationCategory:"BusinessApplication",operatingSystem:"Web",offers:{"@type":"Offer",price:"10.00",priceCurrency:"USD",availability:"https://schema.org/InStock",url:"https://www.expensebot.ai/pricing-plans"},aggregateRating:{"@type":"AggregateRating",ratingValue:"4.7",reviewCount:"21",bestRating:"5"},description:"ExpenseBot captures a freelance developer's cloud, SaaS, hardware and home-office receipts from Gmail and photos into a categorized Google Sheet they own, including variable usage-based cloud invoices and split personal/business subscriptions.",image:"https://www.expensebot.ai/og-image.png",provider:{"@id":"https://www.expensebot.ai/#organization"},publisher:{"@id":"https://www.expensebot.ai/#organization"},author:{"@type":"Person",name:"Rob Balahura",url:"https://www.linkedin.com/in/balahura/"}})})]}),f&&(0,p.jsxs)("div",{style:{position:"fixed",bottom:0,left:0,right:0,backgroundColor:"#1f2937",color:"white",padding:"0.75rem 1rem",textAlign:"center",zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",gap:"1rem",flexWrap:"wrap"},children:[(0,p.jsx)("span",{style:{fontSize:"0.9rem"},children:"Cloud, SaaS & hardware receipts \u2014 into a Sheet you own"}),(0,p.jsx)("a",{href:"/api/auth?skipConsent=true",onClick:e=>{e.preventDefault(),u("sticky")},style:{backgroundColor:"#f97316",color:"white",padding:"0.5rem 1.25rem",borderRadius:"0.5rem",textDecoration:"none",fontWeight:"600",fontSize:"0.875rem",whiteSpace:"nowrap"},children:"Start Free \u2192"})]}),(0,p.jsxs)("header",{className:"faq-header1",children:[(0,p.jsx)("button",{onClick:()=>e("/"),"aria-label":"Go back to homepage",style:{padding:"0.5rem 1rem",backgroundColor:"transparent",border:"1px solid #e5e7eb",borderRadius:"0.375rem",cursor:"pointer",fontSize:"0.875rem",display:"flex",alignItems:"center",gap:"0.5rem",transition:"all 0.2s"},onMouseOver:e=>e.currentTarget.style.backgroundColor="#f3f4f6",onMouseOut:e=>e.currentTarget.style.backgroundColor="transparent",children:"\u2190 Home"}),(0,p.jsx)("div",{className:"logo-container",children:(0,p.jsx)("a",{href:"/",children:(0,p.jsx)("img",{src:"/eblogo_2.png",alt:"ExpenseBot Logo",className:"faq-logo",width:"40",height:"40"})})}),(0,p.jsx)("div",{className:"faq-title-container-lp",children:(0,p.jsx)("div",{className:"faq-title-lp",children:"Freelance Developer Expense Tracker"})})]}),(0,p.jsx)("section",{style:{padding:"2rem 1rem 1rem",textAlign:"center",backgroundColor:"#f9fafb"},children:(0,p.jsxs)("div",{style:{maxWidth:"820px",margin:"0 auto"},children:[(0,p.jsx)("h1",{style:{fontSize:"2.4rem",fontWeight:"bold",color:"#111827",marginBottom:"0.75rem",lineHeight:"1.2"},children:"Freelance developer expense tracker"}),(0,p.jsx)("p",{style:{fontSize:"1.15rem",color:"#4b5563",margin:"0 auto 1.5rem",lineHeight:"1.6"},children:"A working developer's costs are almost entirely recurring, almost entirely emailed, and spread across more vendors than anyone tracks by hand \u2014 cloud, tooling, APIs, hardware."}),(0,p.jsxs)("div",{style:{background:"#f6f8fa",borderLeft:"4px solid #ff6b35",padding:"16px 20px",borderRadius:"6px",margin:"20px 0",textAlign:"left"},children:[(0,p.jsxs)("p",{style:{fontWeight:600,margin:"0 0 6px"},children:["Quick answer: ",(0,p.jsx)("em",{children:"how should a freelance developer track business expenses?"})]}),(0,p.jsx)("p",{style:{margin:0,lineHeight:"1.65"},children:"Because nearly every developer cost is a recurring charge confirmed by email, the reliable method is to capture from the inbox rather than from a card statement \u2014 a statement line reading \u201cAWS\u201d is not a receipt. ExpenseBot connects to Gmail, reads the vendor, date and amount from each invoice, and files it into a categorized Google Sheet you own, including variable usage-based cloud bills and annual renewals that arrive once a year."})]}),(0,p.jsx)("div",{style:{marginBottom:"0.5rem"},children:(0,p.jsx)("a",{href:"/api/auth?skipConsent=true",onClick:e=>{e.preventDefault(),u("hero")},className:"cta-button orange",style:{display:"inline-block",padding:"1rem 2rem",fontSize:"1.125rem",textDecoration:"none"},children:t?"Open My Expense Sheet \u2192":"Start Free \u2014 Capture Every Subscription \u2192"})}),(0,p.jsx)("p",{style:{fontSize:"0.875rem",color:"#6b7280"},children:"60-day free trial \xb7 No credit card"})]})}),(0,p.jsxs)("section",{style:{padding:"3rem 1rem",maxWidth:"820px",margin:"0 auto"},children:[(0,p.jsx)("h2",{style:{fontSize:"1.75rem",fontWeight:"bold",color:"#111827",marginBottom:"1rem"},children:"The developer expense set, and the sprawl problem"}),(0,p.jsx)("p",{style:{color:"#4b5563",fontSize:"1rem",lineHeight:"1.7",marginBottom:"1.25rem"},children:"Developers are unusual among freelancers in how much of their cost base is subscriptions rather than purchases. There is very little you buy once. There is a great deal you rent monthly, from a dozen different c
1ompanies, several of which auto-renew annually on a date you have forgotten."}),(0,p.jsx)("div",{style:{overflowX:"auto",marginBottom:"1.25rem"},children:(0,p.jsxs)("table",{style:{width:"100%",minWidth:"540px",borderCollapse:"collapse",fontSize:"0.95rem"},children:[(0,p.jsx)("thead",{children:(0,p.jsxs)("tr",{style:{background:"#f1f5f9",borderBottom:"2px solid #cbd5e1"},children:[(0,p.jsx)("th",{style:{textAlign:"left",padding:"0.65rem 0.75rem",fontWeight:"600",color:"#111827"},children:"Category"}),(0,p.jsx)("th",{style:{textAlign:"left",padding:"0.65rem 0.75rem",fontWeight:"600",color:"#111827"},children:"Typical items"})]})}),(0,p.jsx)("tbody",{children:[["Cloud and hosting","AWS, GCP, Azure, Vercel, Fly, Render, object storage, domains"],["Developer tooling","GitHub, JetBrains, Figma, Linear, error monitoring, CI minutes"],["AI and API usage","Model APIs, usage-based credits, third-party API subscriptions"],["Hardware","Laptop, monitors, keyboard, drives, phone for testing"],["Home office","A share of housing costs, plus internet and power where applicable"],["Professional development","Courses, books, certifications, conference tickets and travel"]].map(((e,t)=>{let[r,o]=e;return(0,p.jsxs)("tr",{style:{borderBottom:"1px solid #e2e8f0",background:t%2?"#fafafa":"transparent"},children:[(0,p.jsx)("td",{style:{padding:"0.6rem 0.75rem",fontWeight:"600",color:"#374151"},children:r}),(0,p.jsx)("td",{style:{padding:"0.6rem 0.75rem",color:"#4b5563"},children:o})]},t)}))})]})}),(0,p.jsxs)("p",{style:{color:"#4b5563",fontSize:"1rem",lineHeight:"1.7",marginBottom:"1rem"},children:["For a sense of scale beyond anecdote: in ExpenseBot's aggregated, anonymised dataset of 1,647 businesses (July 2026), recurring subscriptions were detected for ",(0,p.jsx)("strong",{children:"16.5%"})," of them, and among those the median was roughly ",(0,p.jsx)("strong",{children:"$149 a month across two subscriptions"}),". Across the 356 businesses whose receipts were scanned in that window, Apple appeared for 25.8% and Google for 23.6% \u2014 the two most common merchants in the whole set."]}),(0,p.jsxs)("p",{style:{color:"#4b5563",fontSize:"1rem",lineHeight:"1.7"},children:["That is the general small-business picture, and a developer typically sits well above it on count. The number that matters is your own, which is the argument for capturing rather than estimating. Our"," ",(0,p.jsx)(n.N_,{to:"/blog/small-business-subscription-costs",style:{color:"#f97316",textDecoration:"none"},children:"write-up on small business subscription costs"})," ","goes through the benchmark data in more detail."]}),(0,p.jsxs)("p",{style:{color:"#4b5563",fontSize:"1rem",lineHeight:"1.7"},children:["Hardware is the other half of a developer's spend, and it raises a different question \u2014 whether a machine is an expense this year or an asset you depreciate. Most equipment under the per-item threshold can simply be expensed:"," ",(0,p.jsx)(n.N_,{to:"/blog/de-minimis-safe-harbor-election-explained",style:{color:"#f97316",textDecoration:"none"},children:"can I expense a laptop, or is it an asset?"})," ","covers the de minimis safe harbor and the two conditions people miss."]})]}),(0,p.jsx)("section",{style:{backgroundColor:"#f9fafb",padding:"3rem 1rem"},children:(0,p.jsxs)("div",{style:{maxWidth:"820px",margin:"0 auto"},children:[(0,p.jsx)("h2",{style:{fontSize:"1.75rem",fontWeight:"bold",color:"#111827",marginBottom:"1rem"},children:"Why developer expenses are hard to track specifically"}),(0,p.jsx)("p",{style:{color:"#4b5563",fontSize:"1rem",lineHeight:"1.7",marginBottom:"1rem"},children:"Four things make this cost base resist the usual approaches:"}),(0,p.jsxs)("ul",{style:{color:"#4b5563",fontSize:"1rem",lineHeight:"1.8",paddingLeft:"1.25rem",marginBottom:"1rem"},children:[(0,p.jsxs)("li",{children:[(0,p.jsx)("strong",{children:"Usage-based billing varies every month."})," A cloud bill is not a fixed subscription; it is a different number each month, and an average is not a record."]}),(0,p.jsxs)("li",{children:[(0,p.jsx)("strong",{children:"Annual renewals land once and vanish."}
1)," The JetBrains or domain renewal that charged in February is the single most commonly missed developer expense, because you have no monthly reminder that it exists."]}),(0,p.jsxs)("li",{children:[(0,p.jsx)("strong",{children:"Receipts are scattered across a dozen senders."})," Each vendor emails its own format, from its own address, with its own subject line."]}),(0,p.jsxs)("li",{children:[(0,p.jsx)("strong",{children:"Personal and business use mix on the same account."})," The same subscription may be part client work and part your own projects."]})]}),(0,p.jsx)("p",{style:{color:"#4b5563",fontSize:"1rem",lineHeight:"1.7"},children:"A card statement solves none of this. It tells you a charge happened and roughly who to, which is not enough to categorize it, substantiate it, or notice when it doubled."})]})}),(0,p.jsxs)("section",{style:{padding:"3rem 1rem",maxWidth:"820px",margin:"0 auto"},children:[(0,p.jsx)("h2",{style:{fontSize:"1.75rem",fontWeight:"bold",color:"#111827",marginBottom:"1rem"},children:"Hardware: expense it or capitalise it?"}),(0,p.jsx)("p",{style:{color:"#4b5563",fontSize:"1rem",lineHeight:"1.7",marginBottom:"1rem"},children:"This is the question every freelance developer eventually asks about a laptop, and it does not have a single answer. Broadly, tax systems distinguish between equipment cheap enough to write off in the year you bought it and equipment substantial enough to be treated as an asset and depreciated over several years. Where the line sits, whether claiming the immediate write-off requires a formal election, and what conditions attach to it all vary by jurisdiction \u2014 and the thresholds are revised periodically."}),(0,p.jsx)("p",{style:{color:"#4b5563",fontSize:"1rem",lineHeight:"1.7"},children:"We are deliberately not quoting a threshold here, because a stale number is worse than no number: it is exactly the kind of thing people carry forward for years after it changed. Ask your tax professional for the figure that applies to your jurisdiction and tax year. What ExpenseBot does is make sure the receipt and its amount are captured and categorized either way, so the decision is about treatment rather than about whether the record exists."})]}),(0,p.jsx)("section",{style:{backgroundColor:"#f9fafb",padding:"3rem 1rem"},children:(0,p.jsxs)("div",{style:{maxWidth:"820px",margin:"0 auto"},children:[(0,p.jsx)("h2",{style:{fontSize:"1.75rem",fontWeight:"bold",color:"#111827",marginBottom:"1rem"},children:"How ExpenseBot captures it"}),(0,p.jsxs)("p",{style:{color:"#4b5563",fontSize:"1rem",lineHeight:"1.7",marginBottom:"1rem"},children:["Connect Gmail once. ExpenseBot scans nightly, reads the vendor, date and amount from each invoice, categorizes it, and writes a row to a Google Sheet. Variable cloud bills come through at their actual monthly amounts. Annual renewals get captured on the day they charge, whether or not you remembered them. It labels what it has processed so nothing is double-counted, never sends mail on your behalf, and never deletes anything \u2014 see the"," ",(0,p.jsx)(n.N_,{to:"/gmail-receipt-scanner",style:{color:"#f97316",textDecoration:"none"},children:"Gmail receipt scanner"})," ","for the mechanics."]}),(0,p.jsxs)("p",{style:{color:"#4b5563",fontSize:"1rem",lineHeight:"1.7",marginBottom:"1rem"},children:["Where a charge is part business and part personal, open it in Review Expenses and use"," ",(0,p.jsx)("strong",{children:"Split"})," to record it as two portions against the one transaction, so your category totals reflect the business share rather than the whole charge or nothing at all."]}),(0,p.jsxs)("p",{style:{color:"#4b5563",fontSize:"1rem",lineHeight:"1.7"},children:["The sheet lives in your own Google Drive. Open it without ExpenseBot, script against it with the Sheets API, pull it into a notebook, export it, or keep it entirely if you cancel. There is no proprietary store and no export to request \u2014 a point this audience tends to check first, and reasonably so. The"," ",(0,p.jsx)(n.N_,{to:"/google-sheets-expense-tracker",style:{color:"#f97316",textDecoration:"none"},children:"Google Sheets expense tracker"})," ","shows the layout."]})]})}),(0,p.jsxs)("section",{style:{padding:"3rem 1rem",maxWidth:"820px",margin:"0 auto"},children:[(0,p.jsx)("h2",{style:{fontSize:"1.75rem",fontWeight:"bold",color:"#111827",marginBottom:"1rem"},children:"At tax time"}),(0,p.jsx)("p",{style:{color:"#4b5563",fontSize:"1rem",lineHeight:"1.7",marginBottom:"1rem"},children:"Because categorization happened on the way in, the year ends as a set of totals \u2014 hosting, softw
1are, hardware, home office, professional development \u2014 that map onto the business-expense schedule you file, Schedule C in the US, T2125 in Canada, the self-employment pages in the UK. Export to QuickBooks Online, Xero, Sage or Wave, or share the sheet; accountants use ExpenseBot free and can work directly from it."}),(0,p.jsxs)("p",{style:{color:"#4b5563",fontSize:"1rem",lineHeight:"1.7"},children:["Three guides worth reading before you file:"," ",(0,p.jsx)(n.N_,{to:"/are-software-subscriptions-tax-deductible",style:{color:"#f97316",textDecoration:"none"},children:"are software subscriptions tax deductible"}),","," ",(0,p.jsx)(n.N_,{to:"/is-a-home-office-tax-deductible",style:{color:"#f97316",textDecoration:"none"},children:"the home office deduction"}),", and"," ",(0,p.jsx)(n.N_,{to:"/blog/can-i-deduct-my-home-internet-bill",style:{color:"#f97316",textDecoration:"none"},children:"deducting your home internet bill"}),". US filers may also want the"," ",(0,p.jsx)(n.N_,{to:"/expense-tracker-usa",style:{color:"#f97316",textDecoration:"none"},children:"US expense tracker"})," ","guide. If you also do consulting or retainer work,"," ",(0,p.jsx)(n.N_,{to:"/expense-tracker-for-consultants",style:{color:"#f97316",textDecoration:"none"},children:"the consultant expense tracker"})," ","covers tagging costs to a client. Estimates \u2014 confirm with your tax professional."]})]}),(0,p.jsx)("section",{style:{backgroundColor:"#1f2937",padding:"3rem 1rem",textAlign:"center"},children:(0,p.jsxs)("div",{style:{maxWidth:"700px",margin:"0 auto"},children:[(0,p.jsx)("h2",{style:{color:"white",fontSize:"1.75rem",fontWeight:"bold",marginBottom:"0.75rem"},children:"Find out what you are actually paying for"}),(0,p.jsx)("p",{style:{color:"#9ca3af",marginBottom:"1.5rem",fontSize:"1rem"},children:"Capture every cloud bill, renewal and hardware receipt as it arrives \u2014 into a Google Sheet you own, for $10/month with a 60-day free trial."}),(0,p.jsx)("a",{href:"/api/auth?skipConsent=true",onClick:e=>{e.preventDefault(),u("bottom")},className:"cta-button orange",style:{display:"inline-block",padding:"1rem 2.25rem",fontSize:"1.125rem",textDecoration:"none"},children:t?"Open My Expense Sheet \u2192":"Start free \u2014 no credit card, 60-day trial"})]})}),(0,p.jsxs)("section",{style:{padding:"3rem 1rem",maxWidth:"820px",margin:"0 auto"},children:[(0,p.jsx)("h2",{style:{fontSize:"1.75rem",fontWeight:"bold",color:"#111827",marginBottom:"2rem"},children:"Frequently asked questions"}),(0,p.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"1rem"},children:b.map(((e,t)=>(0,p.jsxs)("details",{style:{border:"1px solid #e5e7eb",borderRadius:"0.5rem",padding:"1rem 1.25rem",backgroundColor:"white"},children:[(0,p.jsx)("summary",{style:{fontWeight:"600",color:"#111827",cursor:"pointer",fontSize:"1rem"},children:e.q}),(0,p.jsx)("p",{style:{color:"#4b5563",marginTop:"0.75rem",fontSize:"0.9375rem",lineHeight:"1.65",marginBottom:0},children:e.a})]},t)))})]}),(0,p.jsx)(l.A,{isOpen:h,onClose:()=>m(!1),onContinue:()=>{(0,d.kq)("/freelance-developer-expense-tracker",g.current),(0,c.l3)("freelancer"),window.location.href="/api/auth"},onContinueAs:e=>{(0,d.kq)("/freelance-developer-expense-tracker",g.current),(0,c.l3)("freelancer"),window.location.href=`/api/auth?skipConsent=true&login_hint=${encodeURIComponent(e)}`},returningUser:t}),(0,p.jsx)(s.A,{})]})}},76697:(e,t,r)=>{r.d(t,{Fh:()=>n,hV:()=>o,qi:()=>a});const o=[{to:"/pricing-plans",label:"Pricing"},{to:"/blog",label:"Blog"},{to:"/login",label:"Login"},{to:"/sitemap",label:"Sitemap"},{to:"/faq",label:"FAQ"}],a=[{to:"/privacy",label:"Privacy Policy"},{to:"/terms",label:"Terms of Service"},{to:"/refund-policy",label:"Refund Policy"}],n=[{id:"features",title:"Features",links:[{to:"/features",label:"All Features (overview)"},{to:"/gmail-receipt-scanner",label:"Gmail Receipt Scanner"},{to:"/apple-receipt-scanner",label:"Apple Receipt Scanner"},{to:"/amazon-receipt-scanner",label:"Amazon Receipt Scanner"},{to:"/google-photos-receipt-scanner",label:"Photos Import"},{to:"/google-drive-receipt-scanner",label:"Drive Scanner"},{to:"/google-sheets-expense-tracker",label:"Sheets Tracker"}
1,{to:"/googleworkspace",label:"Google Workspace"},{to:"/google-integration",label:"Google Integration"},{to:"/mileage-tracker",label:"Mileage Tracker"},{to:"/ai-expense-tracker",label:"AI Expense Tracker"},{to:"/income-expense-tracker",label:"Income & Expense Tracker"},{to:"/profit-by-client",label:"Profit by Client"},{to:"/bank-deposit-reconciliation",label:"Bank Deposit Reconciliation"},{to:"/credit-card-reconciliation",label:"Credit Card Reconciliation"},{to:"/subscription-tracker",label:"Subscription Tracker"},{to:"/shared-expense-tracker",label:"Shared Expense Tracker"},{to:"/reimbursable-expense-invoice",label:"Reimbursable Expense Invoicing"},{to:"/year-end",label:"Year-End Tax Workbook"},{to:"/todo",label:"AI Notes"}]},{id:"personas",title:"Who it's for",links:[{to:"/accountant",label:"Accountants (free)"},{to:"/bookkeeper",label:"Bookkeeper Software"},{to:"/freelancer",label:"Freelancers"},{to:"/separate-business-personal-expenses",label:"Separate Business & Personal"},{to:"/expense-tracker-small-business",label:"Small Business"},{to:"/expense-tracker-for-contractors",label:"Contractors & Trades"},{to:"/cfo",label:"CFOs"},{to:"/agencies",label:"Agencies"},{to:"/executive-assistant",label:"PAs & Office Managers"},{to:"/office-manager",label:"Office Manager Tracker"},{to:"/assetmanager",label:"RIAs"},{to:"/realestate",label:"Real Estate"},{to:"/content-creator-expense-tracker",label:"Content Creators"},{to:"/ecommerce-seller-expense-tracker",label:"Ecommerce Sellers"},{to:"/wedding-expense-tracker",label:"Weddings"},{to:"/wedding-budget-calculator",label:"Wedding Calculator"},{to:"/hud-medical-expense-tracker",label:"HUD Tenants"},{to:"/hud-medical-deduction-calculator",label:"HUD Deduction Calculator"}]},{id:"countries",title:"By country",links:[{to:"/expense-tracker-usa",label:"USA"},{to:"/expense-tracker-canada",label:"Canada"},{to:"/expense-tracker-uk",label:"United Kingdom"},{to:"/expense-tracker-australia",label:"Australia"},{to:"/expense-tracker-india",label:"India"}]},{id:"integrations",title:"Integrations",links:[{to:"/quickbooksintegration",label:"QuickBooks"},{to:"/xerointegration",label:"Xero"},{to:"/freshbooks",label:"FreshBooks"},{to:"/wave",label:"Wave"},{to:"/zoho-books",label:"Zoho Books"},{to:"/netsuite",label:"NetSuite"},{to:"/business-central",label:"Business Central"},{to:"/sage-intacct",label:"Sage Intacct"},{to:"/sage50canada",label:"Sage 50 Canada"},{to:"/sage50usa",label:"Sage 50 US"}]},{id:"compare",title:"Compare alternatives",links:[{to:"/expensify-alternative",label:"vs Expensify"},{to:"/concur-alternative",label:"vs SAP Concur"},{to:"/ramp-alternative",label:"vs Ramp"},{to:"/expensebot-vs-ramp",label:"ExpenseBot vs Ramp"},{to:"/ramp-alternative-for-accountants",label:"Ramp Alternative for Accountants"},{to:"/dext-alternative",label:"vs Dext"},{to:"/zoho-expense-alternative",label:"vs Zoho Expense"},{to:"/splitwise-alternative",label:"vs Splitwise"},{to:"/expensebot-vs-quickbooks-self-employed",label:"vs QuickBooks Self-Employed"},{to:"/comparisons",label:"All comparisons"}]},{id:"resources",title:"Resources & guides",links:[{to:"/answers",label:"Answers (KB)"},{to:"/expense-tracker-template",label:"Free template"},{to:"/mileage-log-template",label:"Mileage log template"},{to:"/mileage-calculator",label:"Mileage calculator"},{to:"/self-employment-tax-calculator",label:"Self-employment tax calculator"},{to:"/home-office-deduction-calculator",label:"Home office deduction calculator"},{to:"/per-diem-calculator",label:"Per diem calculator"},{to:"/per-diem-tracker",label:"Per diem tracker"},{to:"/bareme-kilometrique-2026",label:"Bar\xe8me kilom\xe9trique 2026"},{to:"/expense-tracker-usa",label:"Schedule C guide"},{to:"/t2125-expense-tracker",label:"T2125 guide"},{to:"/blog/how-to-track-business-expenses",label:"Track business expenses"},{to:"/blog/how-to-organize-receipts-for-taxes",label:"Organize receipts for taxes"},{to:"/blog/schedule-c-expense-guide",label:"Schedule C deductions"},{to:"/blog/missed-tax-deductions-freelancer",label:"Missed tax deductions"},{to:"/blog/irs-mileage-rate-2026",label:"2026 IRS mileage rate"},{to:"/blog/cra-mileage-rate-2026",label:"2026 CRA mileage rate"},{to:"/blog/best-receipt-scanner-app-2026",label:"Best receipt scanner apps"},{to:"/blog/shoebox-problem-accountants",label:"Shoebox problem fix"}]}];n.flatMap((e=>e.links))},1296:(e,t,r)=>{r.d(t,{F0:()=>d,QS:()=>l,ST:()=>c,V7:()=>s,l3:()=>n});const o="onboardingHint",a=new Set(["freelancer","incorporated","realtor","standard","accountant","executiveAssistant","business","personal","wedding","landlord","hudMedical","craMedical","hsaFsa","sharedExpenses","creator","filmmaker"]);function n(e){try{if(!e||!a.has(e))return;let r="";try{r="undefined"!==typeof window&&window.location&&window.location.pathname||""}catch(t){}localStorage.setItem(o,JSON.stringify({p:e,page:r,ts:(new Date).toISOString()}))}catch{}}function i(){try{const e=localStorage.getItem(o);if(!e)return null;if("{"===e[0]){const t=JSON.parse(e);return t&&a.has(t.p)?{persona:t.p,page:t.page||"",ts:t.ts||null}:null}return a.has(e)?{persona:e,page:"",ts:null}:null}catch{return null}}function s(){const e=i();return e?e.persona:null}function l(){return i()}function c(){try{localStorage.removeItem(o)}catch{}}const d={freelancer:"Freelancer Expense Tracker",incorporated:"Small Business Tracker",realtor:"Realtor Expense Tracker",standard:"Employee Reimbursement",accountant:"Accountant Solution",executiveAssistant:"Executive Assistant Solution",business:"Team Admin Solution",personal:"Personal Expense Tracker",wedding:"Wedding Tracker",landlord:"Rental Property Tracker",hudMedical:"HUD Medical Deduction Tracker",craMedical:"CRA Medical Tax Credit Tracker",hsaFsa:"HSA/FSA Tracker",sharedExpenses:"Shared Expense Tracker",creator:"Content Creator Expense Tracker",filmmaker:"Filmmaker Production Cost Tracker"}},1641:()=>{}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.