Using Node 24 and SQLite for a Tiny Appointment API in Pompano Beach
The problem I faced as a local plumber Running a small plumbing business in Pompano Beach means I’m juggling phone calls, on‑site jobs, and a website that should show my availability. I didn’t want to pay for a hosted database or rely on a third‑party SaaS that could go down during hurricane season. What I needed was a local, zero‑maintenance data store that could be queried by my web front‑end…
As a local plumber operating a small business in Pompano Beach, the author faced the challenge of managing appointments without the need for a hosted database or third-party SaaS solution. He desired a local, zero-maintenance data store that could be accessed by both the web front-end and mobile forms used by technicians.
The author chose Node 24 due to its built-in SQLite driver, which allows the database to be stored in a single file. This choice was made because the performance was sufficient for handling a few dozen appointments per day, and the driver was part of the Node runtime, eliminating the need for additional npm packages.
To set up the project, the author created a folder called plumbing-api on his home server. The steps he followed included initializing the project, creating a minimal package.json file, and defining the SQLite schema in a file named schema.sql. The schema consists of an appointments table with fields for customer name, address, phone, service, scheduled time, and notes.
The Express server (server.mjs) was created with three essential routes: GET /api/appointments to list all upcoming jobs, POST /api/appointments to create a new job, and DELETE /api/appointments/:id to cancel a job. The schema is initialized when the server starts by opening the SQLite database and executing the schema SQL. The routes handle querying, inserting, and deleting data from the appointments table based on the incoming requests.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.