Specs for apps that do not exist yet.
These are not in the catalog and there is nothing to download. Every app on this site has a working demo, a verified package, and a screenshot of itself running — these have none of that, and listing them beside the ones that do would make the word “verified” worth less everywhere it appears.
They are published because the reasoning is the useful part, and because anyone can take one and build it. Every app here is MIT licensed and the source is yours; that includes the ones nobody has written yet.
PDF Toolkit
Merge, split, rotate, extract and compress PDFs without the file ever leaving the tab.
Why it has to be local
Every free PDF tool uploads your document to someone's server. The files people need this for are contracts, bank statements, medical letters and scanned passports — the precise documents you would not hand to a stranger. Doing the work in the browser is not a cost saving, it is the product, and it is provable: there is no network call for the app to make.
Where the real work is
Real page-tree manipulation with pdf-lib: reordering and extracting pages, rotating, merging documents while preserving metadata, and re-encoding images to shrink a file. Not a wrapper around someone else's API.
What it does
- Merge several PDFs, with drag-to-reorder before you commit
- Split by page range, by every N pages, or extract a selection
- Rotate, delete and reorder pages with visual thumbnails
- Compress by re-encoding embedded images, with before-and-after sizes shown
- Batch mode: apply the same operation across several files
- A running list of what you have done in this session, so a wrong step is undoable
What it must not do
- Nothing is uploaded, and nothing is stored between sessions unless the user asks
- No OCR and no cloud conversion — both need a server, and pretending otherwise would be the fake claim this catalog exists to avoid
- Large files must degrade honestly with a size warning rather than freezing the tab
Shape of the data
- LoadedFile — name, byte size, page count, the raw bytes held in memory only
- Operation — the kind, its parameters, and which file it applies to
- No persistence by default: a document toolkit that quietly kept your bank statements would be its own kind of betrayal
Honest difficulty
The heaviest dependency of any app in the catalog, and browser memory is the real limit — a 200MB scanned PDF will not behave. The fix is to say so before the user finds out.
What people search for
merge pdfsplit pdf freecompress pdf without uploadingpdf tools offline
Cycle Tracker
A period and cycle log with no account, no server, and nothing to hand over.
Why it has to be local
This is the strongest privacy argument in consumer software, and it is not close. Since 2022 the question of where this particular data lives stopped being abstract for a lot of people. Every mainstream tracker is a data business with a health app attached. An app with no account and no server has nothing to sell, nothing to leak, and nothing to disclose when asked.
Where the real work is
Cycle length and variability from the actual log, phase estimation, and prediction stated with a range rather than a false point estimate. The honest version reports its own uncertainty: six cycles of data supports a different confidence to two.
What it does
- Log periods, flow, symptoms and notes in a few taps
- Predicted next start shown as a range, with the confidence the data actually supports
- Cycle length history and variability, because the pattern matters more than any one month
- Full export, and a delete-everything that genuinely deletes
- Works entirely offline once installed
What it must not do
- Not a contraceptive, not a fertility tool, and it must never present itself as either
- No diagnosis, no medical claims, no interpretation of symptoms
- No account, no sync, no analytics, no crash reporting — the whole argument collapses the moment any one of those arrives
- Prediction must show uncertainty rather than a confident single date
Shape of the data
- Cycle — start date, end date, and flow observations
- Entry — date, symptoms, notes
- Settings — average cycle length override, prediction on or off
Honest difficulty
The framing carries more weight than the code. Getting the tone wrong, or letting an agent later add 'helpful' cloud backup, would be worse than not building it. The agent instructions need to be unusually firm.
What people search for
period tracker no accountprivate period tracker offlineperiod tracker that doesn't sell dataopen source cycle tracking
Shift Rota Planner
Build a rota and see who is being quietly stitched up by it.
Why it has to be local
Hospitality, nursing, retail and security run on spreadsheets nobody can read or on SaaS that charges per head per month. The fairness constraints are the actual product, and they are exactly what a spreadsheet cannot show you: who has had the last three weekends, who is on their fifth consecutive day, where coverage silently drops to one person.
Where the real work is
Genuine constraint checking rather than a grid: coverage minimums per shift, consecutive-day limits, minimum rest between shifts, and a fairness score distributing unsociable hours across the team. The hardest arithmetic on this list and the most defensible.
What it does
- Week and month grid, staff down the side, days across
- Coverage warnings when a shift drops below its minimum
- Consecutive-day and minimum-rest violations flagged as you build
- Fairness view: weekends, nights and bank holidays per person across the period
- Availability and time-off marked per person and respected by the warnings
- Print and CSV export, because the rota still ends up on a wall
What it must not do
- It warns, it does not auto-generate. A rota an algorithm wrote and nobody understands is worse than a bad rota someone can defend
- No payroll, no clock-in, no surveillance features
- Local-first: a rota holds names, availability and sometimes the reason someone cannot work Tuesdays
Shape of the data
- Person — name, contracted hours, availability, colour
- ShiftType — name, start, end, minimum staff
- Assignment — person, date, shift type
- Rules — max consecutive days, minimum rest hours, weekend fairness target
Honest difficulty
Scope creep towards auto-scheduling is the danger, and it is where the build stops being finishable. Warnings first; solver never.
What people search for
shift schedule templaterota planner freestaff scheduling app small businessemployee rota software open source
Mortgage Overpayment Calculator
What an extra hundred a month actually does, without giving anyone your email.
Why it has to be local
The answer is usually startling — years off the term and a five-figure interest saving — and every bank's calculator asks who you are before it will tell you. This one runs the schedule in the browser and shows the arithmetic rather than a lead-capture form.
Where the real work is
A full month-by-month amortisation, run twice: your current schedule and the overpayment scenario, compared. Handles regular overpayments, one-off lump sums, and a rate change when a fixed term ends — which is the case most calculators quietly ignore and the one that matters most.
What it does
- Balance, rate, term in; monthly payment and total interest out
- Overpayment scenario side by side: months saved, interest saved, new payoff date
- One-off lump sums at any point in the schedule
- Rate change at the end of a fixed period, with the payment shock shown
- The amortisation table itself, because the number is more convincing with the schedule under it
- Annual overpayment cap warning — most lenders limit you to 10% a year
What it must not do
- A modelling tool, not advice. It cannot know about early repayment charges, offset accounts, or whether the money is better in a pension
- No lead capture, no email gate, no broker referral
- Currency and rounding stated plainly, since compounding conventions differ by lender
Shape of the data
- Mortgage — balance, annual rate, remaining term, payment
- Overpayment — amount, frequency, start month
- LumpSum — amount and month
- RateChange — month and new rate
Honest difficulty
Low technically. The care needed is in the disclaimer: the moment it looks like it is recommending overpaying rather than modelling it, it is the wrong app.
What people search for
mortgage overpayment calculatorpay off mortgage early calculatorextra payment mortgage calculatormortgage overpayment vs savings
Schema Designer
Draw the tables, get real SQL, and be told what you forgot.
Why it has to be local
The good tools in this space gate saving behind an account, which is an odd thing to require for a diagram of a database that does not exist yet. Developers link to tools like this, and that is worth more than the raw search volume.
Where the real work is
Real DDL generation for Postgres, MySQL and SQLite from the visual model, plus static analysis of the schema: foreign keys with no index, nullable columns in a composite key, missing primary keys, and many-to-many joins with no unique constraint.
What it does
- Tables, columns, types, and relations laid out visually
- Generated SQL DDL, switchable between Postgres, MySQL and SQLite
- Schema warnings: unindexed foreign keys, missing primary keys, unconstrained joins
- Import an existing schema by pasting CREATE TABLE statements
- Export as SQL, as JSON, or as a printable diagram
What it must not do
- It never connects to a database. Generating SQL is safe; running it against someone's production instance is a different product
- Warnings are advisory and say why, rather than refusing to generate
- Paste-to-import must fail gracefully — a partial parse beats a blank screen
Shape of the data
- Schema — name and dialect
- Table — name, position on the canvas, columns
- Column — name, type, nullability, default, key flags
- Relation — from column, to column, cardinality
Honest difficulty
The canvas is the build cost. A simple auto-layout with drag-to-adjust is enough; a full graph layout engine is where a weekend becomes a month.
What people search for
database schema design tooldbdiagram alternative open sourceER diagram to SQLfree database designer no account
Statement Categoriser
Import the CSV your bank already gives you. No banking credentials, ever.
Why it has to be local
Mint and everything after it needs your online banking login, which means handing a third party the keys to your account and trusting an aggregator you did not choose. Every bank on earth exports CSV. That file is a thing you already have, and it is enough.
Where the real work is
A rules engine that learns: categorise a merchant once and every past and future line matching it follows, with the rule visible and editable rather than a black box. Plus recurring-charge detection by finding similar amounts at regular intervals — which is how you discover the subscription you forgot in 2023.
What it does
- Import CSV from any bank, with a column mapper for the ones that disagree about date formats
- Rules that match on merchant text and apply retroactively
- Recurring charge detection: same-ish amount, regular interval, flagged with confidence
- Monthly and category breakdowns from your real history rather than a projection
- Export the categorised data back out, so it can feed Budget Planner
What it must not do
- No bank connections, no Open Banking, no credential entry of any kind
- The column mapper must handle a badly formed CSV without losing rows silently
- Categorisation is always attributable: every transaction can say which rule put it there
Shape of the data
- Import — source name, column mapping, row count
- Transaction — date, description, amount, category, the rule that assigned it
- Rule — match text, category, created date
- Recurring — merchant, cadence, typical amount, confidence
Honest difficulty
CSV variance between banks is the whole difficulty. The mapper needs to be genuinely good, and the seed data should include two deliberately awkward formats.
What people search for
bank statement csv categorisercategorise transactions spreadsheetbudget app without bank loginfind recurring subscriptions in bank statement
Thought Record
The CBT thought record, done properly, kept where nobody else can read it.
Why it has to be local
Most mood apps offer a slider and a streak. The thought record is an actual clinical format with a structure that does the work — situation, automatic thought, evidence for, evidence against, the distortion named, the reframe. What people write in one is the most private text they will produce all week, which makes the absence of a server the entire point.
Where the real work is
Less arithmetic than the others, and more structure: guided steps that will not let you skip the evidence-against section, a named list of common distortions to choose from, and belief ratings before and after so the change is visible. Patterns over time surface which distortions recur.
What it does
- Guided record: situation, feeling and intensity, automatic thought, evidence both ways, reframe
- Belief rating before and after, so the shift is a number you can see
- The standard distortion list, chosen rather than typed
- History showing which distortions recur most
- Export and delete-everything, both obvious rather than buried
What it must not do
- Not therapy, not a diagnosis, and it must say so plainly rather than in a footer
- A visible route to real help, shown always rather than triggered by keyword detection — keyword scanning of private text is exactly what this app exists not to do
- No streaks, no gamification, no notifications nagging someone to record distress on schedule
- No account, no sync, no analytics
Shape of the data
- Record — date, situation, emotion and intensity, automatic thought, belief before and after
- Evidence — for or against, text
- Distortion — the named pattern selected
Honest difficulty
The most care of anything here. The format is well established and free to use, but the tone has to be right and the app must never imply it is a substitute for treatment.
What people search for
cbt thought record templatethought diary app privatecognitive distortion worksheetfree cbt worksheet app
Home Inventory
The room-by-room record your insurer asks for and nobody ever makes.
Why it has to be local
It is the standard advice after every burglary and every flood, and the tools for it are grim enough that almost nobody follows it. A full inventory of what you own, with values and serial numbers, is also a list you would rather not upload anywhere.
Where the real work is
Replacement-value totals by room and by category, checked against your policy's contents limit so the gap is a number rather than a feeling. Single-item limits flagged too — most policies cap any one item well below what a bike or a laptop costs.
What it does
- Room by room, with categories and a running total per room
- Purchase price, replacement value, serial numbers and purchase dates
- Cover gap: total replacement value against your policy limit
- Single-item limit warnings for anything above the policy's per-item cap
- A printable schedule formatted for a claim, plus CSV export
- Photo notes per item, stored locally
What it must not do
- Photographs never leave the device, which is the reason to use this rather than a spreadsheet in cloud storage
- No valuation service and no price lookups — the user sets replacement values
- The printed schedule must be plain enough for a loss adjuster to read
Shape of the data
- Room — name, order
- Item — room, name, category, purchase price, replacement value, serial, purchased date, notes
- Policy — contents limit, single-item limit, renewal date
Honest difficulty
Low. The design problem is data entry: an inventory nobody finishes is worthless, so the add-item path has to be fast and the app should reward a partial inventory rather than an empty one.
What people search for
home inventory list for insurancehome contents inventory templatebelongings inventory appinsurance inventory checklist
Image Toolkit
Resize, convert, compress — and strip the location data your photos have been carrying.
Why it has to be local
Every photo from a phone carries EXIF metadata, and that routinely includes the exact coordinates where it was taken. People post pictures of a new bike, a child's first day, a house for sale, and publish their home address alongside it without knowing. Online strippers require you to upload the very file whose location you were trying to protect, which is a strange bargain. Canvas does all of this in the tab.
Where the real work is
Real image work: canvas-based resampling with correct aspect handling, format conversion including WebP and AVIF, quality-targeted compression that reports the actual saving, and EXIF parsing that shows you what is in the file before offering to remove it. Seeing the GPS coordinates is what makes anyone care.
What it does
- Resize by dimension, percentage or target file size
- Convert between JPEG, PNG, WebP and AVIF
- EXIF inspector showing camera, timestamp and GPS before you strip it
- One-click strip of all metadata, or selective removal
- Batch mode across a folder of images, with a before-and-after size total
- Everything downloads back out; nothing is kept
What it must not do
- No uploads, no cloud conversion, no 'optimise with AI' that means send it somewhere
- The EXIF view must show what is actually there rather than a reassuring summary
- Stripping must be genuine — re-encoding through canvas drops metadata, and the app should verify rather than assume
Shape of the data
- LoadedImage — name, dimensions, byte size, parsed EXIF, bytes in memory only
- Preset — a named set of resize and format options for repeat work
- No persistence of image data, ever — only presets are remembered
Honest difficulty
Format support varies by browser: AVIF encoding is not universal and HEIC decoding mostly is not available at all. The honest move is to detect and say so rather than fail quietly on someone's holiday photos.
What people search for
resize image without uploadingremove exif data from photoconvert heic to jpg offlinecompress image privately
Sleep Diary
The two-week sleep diary a clinician actually asks for, with sleep efficiency computed properly.
Why it has to be local
Sleep tracking is dominated by wearables that infer stages from a wrist and present it with unearned confidence. The diary used in cognitive behavioural therapy for insomnia is a paper form, and it works: what time you went to bed, when you think you fell asleep, how long you were awake in the night, when you got up. It is deeply personal data about a bad time in someone's life, and it belongs on their own device.
Where the real work is
Sleep efficiency — time asleep divided by time in bed — which is the number CBT-I is built around and almost no consumer app shows. Plus rolling two-week averages, sleep-onset latency, wake-after-sleep-onset, and the correlation between the things you logged and the nights that went badly.
What it does
- Morning entry in under a minute: to bed, asleep, awakenings, up, quality
- Sleep efficiency per night and averaged across the rolling fortnight
- Optional factors — caffeine, alcohol, exercise, screens — logged and correlated
- A printable two-week diary in the format a sleep clinic expects
- No wearable, no inference, no sleep-stage theatre
What it must not do
- Not a diagnosis and not a treatment. CBT-I is delivered by a clinician; this is the diary that supports it
- No sleep staging, because a phone by the bed cannot know and pretending is the whole problem with this category
- No streaks and no scores — telling an insomniac they have failed a target is actively harmful
Shape of the data
- Night — date, bedtime, estimated sleep onset, awakenings and their duration, rise time, quality rating
- Factor — the optional daily inputs being tracked
- Derived — efficiency, latency, total sleep time, all computed rather than stored
Honest difficulty
Low technically. The discipline is in refusing the features people expect: the absence of a sleep score is the point, and it needs explaining on the page rather than defending later.
What people search for
sleep diary template pdfsleep efficiency calculatorcbt-i sleep log apptwo week sleep diary for doctor
Split & Settle
Work out who owes whom after a trip or a shared house, in the fewest possible transfers.
Why it has to be local
The incumbent wants everyone in the group to make an account, and then advertises at them. The maths does not need a server or a signup: one person keeps the ledger, and the result is a short list of payments that anybody can check. Sharing happens by sending the summary, not by recruiting five friends to a platform.
Where the real work is
Debt simplification, which is the genuinely interesting part: naively, eight people who each paid for something owe up to fifty-six transfers between them. Netting every balance and then greedily matching the largest creditor to the largest debtor collapses that to at most seven. Plus unequal shares, so the couple sharing a room pays two parts and the person who skipped dinner pays none.
What it does
- People, expenses, and who each expense was for
- Unequal shares — by parts, by percentage, or exact amounts
- Settlement plan reduced to the fewest transfers, with the arithmetic shown
- Multiple currencies with a rate you set, since the app does not phone a rate service
- Shareable plain-text or CSV summary, so nobody has to install anything
- Separate ledgers per trip or per household, archived when settled
What it must not do
- No accounts for participants — one keeper, a shared summary
- No payment integration. Telling you who to pay is useful; moving money is a different product with a different risk profile
- Exchange rates are entered by the user and stamped with the date they used
Shape of the data
- Ledger — name, currency, participants
- Person — name, share weight
- Expense — payer, amount, description, date, who it covers and in what proportion
- Settlement — computed, never stored, so it cannot drift from the expenses
Honest difficulty
The settlement algorithm is easy to get subtly wrong with rounding — pennies must land somewhere deliberate rather than evaporating. Worth a test suite, which would make it the second app in the catalog to ship one.
What people search for
split expenses group tripwho owes who calculatorsplitwise alternative no accountshared house bills calculator
Mileage Log
A journey log that survives contact with a tax inspector.
Why it has to be local
Claiming mileage requires a contemporaneous record — date, route, purpose, distance — and the tools are either an app that tracks your location continuously or a notebook in the glovebox. Continuous location tracking to claim forty pence a mile is a poor trade, and the notebook never gets typed up.
Where the real work is
Rate-band arithmetic that the flat calculators miss: most tax authorities pay a higher rate for the first tranche of business miles each year and a lower one after, so the claim is not distance times a single number. Running totals against the band threshold, split by vehicle, with the year-to-date claim always visible.
What it does
- Log a journey in seconds: date, from, to, purpose, miles
- Round trips, and repeat-last-journey for the commute you make weekly
- Business and personal split per vehicle, with the personal ones excluded from the claim
- Rate bands applied automatically, with the threshold crossing shown
- Year-to-date claim and a printable log formatted for a return
- CSV export for an accountant
What it must not do
- No GPS and no background tracking. The record is what you enter, which is also what the tax authority asks for
- Rates are user-editable data, not hardcoded — they change annually and vary by country, and a stale hardcoded rate is a wrong claim
- Not tax advice, and it must not imply the claim will be accepted
Shape of the data
- Vehicle — name, registration, rate scheme
- Journey — date, from, to, purpose, miles, business or personal
- RateScheme — bands, thresholds, effective dates, editable because rates change
Honest difficulty
The rate schemes are the maintenance burden. Shipping them as editable seed data rather than logic is what stops the app going quietly out of date.
What people search for
mileage log template for taxeshmrc mileage claim calculatorirs mileage log appbusiness mileage tracker no gps
Revision Planner
Give it your exam date and what you have to learn, and it works backwards.
Why it has to be local
Every revision timetable app asks you to build the timetable, which is the hard part and the reason people put it off. Working backwards from a fixed date across the days actually available, spreading topics so each is seen more than once, is arithmetic — and it is arithmetic nobody does at eleven at night three weeks before an exam.
Where the real work is
Backward scheduling with spaced repetition built in: topics distributed across available sessions so each gets an initial pass and at least two revisits at widening intervals, weighted by how confident you say you are. Blackout dates respected. If the plan does not fit, it says which topics are at risk rather than silently compressing everything.
What it does
- Exam dates, subjects, topics, and a confidence rating per topic
- Available study slots per weekday, with blackout dates for the week you are away
- Generated plan spreading topics with revisits at widening intervals
- Honest infeasibility: when there is not enough time, it names what will not get covered
- Tick off sessions and watch the plan re-balance around what you actually did
- Printable week view, because the plan ends up on a wall
What it must not do
- It must re-plan around missed sessions rather than accumulating guilt-inducing overdue items
- No account, no leaderboard, no study-streak pressure aimed at teenagers
- The plan is a suggestion and editable by hand — an algorithm that cannot be overruled will be abandoned
Shape of the data
- Exam — subject, date
- Topic — subject, name, confidence, estimated sessions needed
- Availability — weekday, slots, blackout dates
- Session — date, topic, whether it is a first pass or a revisit, completed
Honest difficulty
The scheduling is the build. Keep it a deterministic pass rather than an optimiser, and make manual overrides first-class so the plan survives real life.
What people search for
revision timetable makerstudy schedule generator exam datespaced repetition revision plangcse revision planner free
Retirement Projection
How long the money lasts, in today's money, with the assumptions visible.
Why it has to be local
Every projection tool belongs to someone who wants to manage your money, and each one hides its assumptions behind a friendly slider. The interesting question is not the headline number but which assumption it is resting on — and a tool that shows the working, in real terms, with no lead capture, is a different object entirely.
Where the real work is
Accumulation and drawdown in one model: contributions compounding to a retirement date, then withdrawals against a declining balance, all expressed in today's money so inflation is not quietly flattering the result. Sequence-of-returns sensitivity — the same average return arriving in a different order — which is the risk most calculators omit entirely and the one that actually ruins retirements.
What it does
- Current pot, monthly contribution, expected return, inflation, target retirement age
- Projection in today's money, with the nominal figure shown alongside so the difference is obvious
- Drawdown phase: what a given annual income does to the balance, and the year it runs out
- Sensitivity table — a point of return either way, two years of retiring later, higher inflation
- Bad-sequence scenario: identical average return, poor years first
- Every assumption on screen, editable, and shown on the printed summary
What it must not do
- A modelling tool, not advice. It cannot know about tax wrappers, state pension, guarantees, or anyone's circumstances, and must say so plainly rather than in small print
- No lead capture, no adviser referral, no product comparison
- It must never present a single number as a prediction — the range and the assumptions are the output
Shape of the data
- Plan — current balance, contribution, growth rate, inflation rate, current and retirement age
- Drawdown — annual income required, whether it rises with inflation
- Scenario — a named set of overrides for comparison
Honest difficulty
The framing carries the most weight of anything on this list. Done well it is the most useful calculator here; done carelessly it reads as advice, which it must never be.
What people search for
how much do i need to retire calculatorfire calculator ukpension drawdown projectionretirement calculator no email
If you want to build one
Start from the closest existing app rather than from nothing — each one downloads as a runnable project with agent instructions already in it, and the constraints above are written to be pasted straight into an agent prompt. Submissions back to this catalog are not open yet, so what you build is simply yours.