Skip to content

Client work

Taxcare Accountancy

A website, article library and Making Tax Digital calculator for an ACCA member accountancy practice in Ilford, east London.

Twelve service pages and around eighty-five articles are served from a database rather than hard-coded, with monthly package prices published openly from sixty pounds a month. The Making Tax Digital calculator works out whether a taxpayer is in scope, from which April, and estimates the income tax and Class 4 National Insurance that follow. The content came off a legacy Drupal site with the old URLs still resolving.

What it does

  • Twelve database-driven service pages with topic tags
  • Article archive of around eighty-five posts with tag filtering and related content
  • Making Tax Digital calculator covering scope, start date, income tax and Class 4 NI
  • Making Tax Digital explainer with quarterly deadlines and an FAQ
  • Published monthly packages from sixty pounds, with a bespoke tier
  • Tax tables, tax tips, business start-up and useful links resource pages
  • Contact form with validation, honeypot and client-side rate limiting
  • WhatsApp buttons that pre-fill the message with the chosen plan
  • Team, accreditation, awards and multilingual support pages
  • Legacy Drupal node URLs preserved through the migration

Most accountancy websites answer a question nobody asked. They explain that tax is complicated and that the firm is a trusted partner, then hide the two facts a reader came for: what it costs, and whether the new rules apply to them. Taxcare Accountancy is an ACCA member practice in Ilford, east London, selling fixed monthly packages to small businesses. Its site publishes the prices on a page anyone can read, and it answers the rules question with a calculator rather than a paragraph.

Why it exists

Taxcare Accountancy Limited was incorporated in January 2014 and works from 147 Cranbrook Road, Ilford. The practice covers twelve service areas: company formation, sole trader accounts and personal tax returns, rental accounts and property tax, tax investigations and tribunal support, audit support, international and offshore tax, bookkeeping, VAT and payroll, contractor and IR35 work for IT, engineering and medical professionals, insolvency and restructuring, auto enrolment pensions, CIS refunds, and year end accounts with corporation tax.

A practice of that shape has two website problems. The first is volume. Twelve services and around eighty-five articles cannot live in the codebase, or every price change and every new piece of guidance becomes a deployment and a developer's afternoon. The second is repetition. A large share of the enquiries arriving by phone are the same question in different words, and Making Tax Digital for Income Tax has been the loudest version of it: am I in this, and from when. Answering that properly on a page is worth more than another paragraph about proactive advice.

There was also an inheritance. Years of articles had been published on an older content system, and content that has been live that long is content other sites link to and search engines already index.

How it works

Services, pages, articles, menus and site settings are rows in a database rather than files in a repository, edited through an admin area, so adding an article or changing a package price does not involve an engineer. The article archive supports tag filtering and related content, which is what makes eighty-five posts navigable instead of a list.

The calculator is the part worth describing in detail. It asks for self employment turnover and for UK and foreign property income, adds them, and compares the total against the thresholds that bring a taxpayer into Making Tax Digital for Income Tax.

Qualifying income Comes into scope What the calculator then returns
Over £50,000 April 2026 Estimated income tax and Class 4 National Insurance
Over £30,000 April 2027 Estimated income tax and Class 4 National Insurance
Over £20,000 April 2028 Estimated income tax and Class 4 National Insurance
At or under £20,000 Not in scope on the published timetable Estimate only

Two things about building it mattered more than the code. Qualifying income is gross, before expenses, and that single point is where most people get their own answer wrong; the form is shaped to collect the figure the rules actually use rather than the one people expect to be asked for. And the thresholds and their start dates sit in one place rather than being scattered through the arithmetic, because the timetable has already moved more than once and will move again. When it does, the fix is a handful of numbers instead of an afternoon spent reading someone else's conditionals. The companion explainer page carries the quarterly update deadlines of 7 August, 7 November, 7 February and 7 May, plus an FAQ, because a number with no context simply generates the phone call it was meant to prevent.

Prices sit in the open next to all of this. Start-up is £60 a month plus VAT for a non VAT registered company under £80,000 turnover with one director and one shareholder. Limited Company is £125 for a VAT registered company under £150,000 turnover with payroll for up to two employees. Company Pro is £200 for two directors and shareholders with payroll for up to five. Company Premium is bespoke and priced on enquiry. Every tier includes year end accounts, the corporation tax return, correspondence with HMRC and Companies House, and meetings and telephone consultancy at no extra charge.

Enquiries arrive through two channels rather than one. A validated contact form writes to the database, with a honeypot field and client side rate limiting keeping the obvious spam out. The pricing cards open a chat with the chosen plan already named in the first line, so the practice knows which tier prompted the enquiry before anyone types a word. That pairing, a form for people who want to write something considered and a chat link for people who want an answer now, is the compromise we argue for in a chat link beats a contact form. It is the opposite conclusion to the one the same question produced at Linked Corporate International, where the site ships no form at all, because a practice needs a record of an enquiry in a way a commodity trader does not.

The decision that shaped it

The migration decided the shape of the database, and the interesting choice was how to keep the old addresses working.

The tempting implementation is a redirect file with several hundred lines in it. It works on launch day and rots quietly afterwards, because the moment somebody edits a slug in the new admin area the file is wrong and nothing announces it. Instead the old identifiers travel with the content: every migrated row carries the node and menu identifiers from the previous system, and a request for a legacy path resolves through a lookup.

GET /node/:id
  -> select slug from articles where legacy_node_id = :id
  -> found:     301 to the current path
  -> not found: 404

Derived rather than written down, so it stays correct when a slug changes later. One code path to test instead of one line per URL to eyeball. And it answers "what was this page before" from the data during the first month, when somebody always reports a link that no longer works. The full method, including the four sources you need to inventory old URLs and the checks that matter in the weeks after launch, is in rebuild the site, keep the URLs.

What the choice costs: a column and a unique index on every content table, plus the discipline of carrying legacy identifiers that will be meaningless to whoever reads the schema in five years. It is dead weight in the data model in exchange for links that keep working. We would make that trade every time.

Where it stands today

The site is live, with twelve service pages, roughly eighty-five articles, the calculator, the resource pages, team and accreditation pages, training and work placement sections, and support advertised in Bengali, Hindi, Italian, French and Nepalese alongside English.

Three honest caveats.

The first is a decision we are not fully happy with. The site is a client rendered single page application: content comes out of the database in the browser and page metadata is set after the app boots. It is indexed and search engines do run JavaScript, but that hands the crawler an extra job which buys the reader nothing. Prerendering the article and service pages to HTML at build time would have cost very little and removed a whole category of anxiety. For a content site that already ranks, HTML in the response is the safer default, and we would choose it now.

The second is the reviews carousel. It calls a serverless function and falls back to hard-coded placeholder reviews if that function is not configured. From outside the application you cannot tell which path is running, and we have not verified the review claims made elsewhere on the site against Google.

The third is scope of verification. The award named on the homepage is the firm's own statement and we have not checked it with the organiser. The admin area at its own route was not exercised as part of this work, so we make no claim about what it contains. Prices quoted here are as published, excluding VAT, and are the practice's to change.

What this says about how we work

The difficulty in a project is rarely where the tooling is. The React and the database here are ordinary work that any competent team could do. The calculator was hard because tax rules are hard and someone has to read them carefully enough to hand a member of the public a figure. The migration was hard because years of indexed addresses are hard, and getting it wrong shows up as a quiet third off the enquiries eight weeks after everyone has finished congratulating each other.

Publishing prices belongs in the same category. It is a business decision that no framework makes for you, and it filters enquiries better than any lead capture form: £60 a month is either right for a reader or it is not, and both parties find that out before the meeting rather than after it. What follows from publishing is that the record of who enquired and why has to be kept by someone, and a record is only worth reading if it is true, which is the arithmetic that decides whether a small team keeps a system at all. That argument is the whole subject of Consonas.

So when we scope a job, we are looking for the part that is genuinely difficult, and it is usually not the part that looks technical. If you are weighing up a rebuild of something that already has readers, start with a conversation about what you would lose rather than with what you would like to add.

What we wrote about building it

More of the same kind

Want something like this?

Tell us the shape of the problem and we will tell you honestly whether we are the right people for it.

Start a conversation