Express Run: trigger your automation on demand feat
A new "Run Now" button on the Schedule tab lets you run your automation immediately instead of waiting for the nightly schedule. Every account gets 5 express runs per month. See your remaining runs under Settings > Express Executions.
Reports mark express runs with a badge feat
Execution history now shows an "Express" badge on runs that were triggered on demand, so it's easy to tell them apart from the regular nightly run.
Express Run is now easier to find, and safer to run alongside your edits feat
A "Run Now" pill now also lives in the Inventory command bar, not just the Schedule tab, so it's within reach from the moment you land in the app. Click it to kick off your automation immediately with one of your available runs. While the request is queued or running, an orange banner appears at the top of every tab to remind you that any inventory edits made in the meantime may not be reflected until the run finishes.
The "Run Now" pill in the Inventory command bar, showing how many free runs are left this month.
The banner shown across every tab while an Express Run is in progress.
Faster photo uploads perf
Photos are now compressed in your browser before they're uploaded to the gallery, so uploads finish faster and use less data, especially when adding several photos at once.
More accurate "next execution" countdown fix
If today's scheduled run has already fired, the Schedule tab no longer offers today again, even if you move today's time later in the day. This prevents a countdown to a run that won't actually happen until tomorrow.
Channel popover shows last published date and listing link feat
Click any Published status chip to see when the listing was last published and open it directly on the marketplace. The popover now shows the exact date and a link that takes you straight to the live ad, making it easy to confirm the listing is live without leaving the inventory.
Gallery shows a loading indicator while deleting a photo feat
When you delete a photo from the gallery, the footer now shows a spinner while the deletion is in progress. This makes it clear that the action is being processed and prevents accidental double-clicks.
Gallery always loads the latest photos when opened fix
The gallery now fetches photos fresh from the database every time it is opened, instead of relying on a local cache that could be out of date. Photos added or removed from another session are always reflected correctly.
Vehicle drawer stays in sync after a real-time update fix
When inventory data refreshes in the background, the open vehicle drawer now correctly tracks the vehicle being shown. Previously the drawer could shift to the wrong vehicle after a real-time reload if rows were reordered.
Complete inventory redesign feat
The inventory table has been rebuilt from the ground up. Each vehicle now shows a channel cluster with one status chip per marketplace, a thumbnail preview, and key vehicle details all in a single compact row. The vehicle detail panel opens as a side drawer without navigating away, making it easy to review and edit fields while keeping the list in view.
The header now shows live KPI counters (Total, Published, Republish, Draft, Errors) so you always know the state of your inventory at a glance. A collapsible sidebar keeps the table clear when you need more space. Bulk actions let you apply a marketplace state to multiple selected vehicles at once, scoped to the specific channel you want to update.
New photo gallery: reorder, cover photo, and fast parallel uploads feat
Photo management is completely new. Click the camera icon on any vehicle to open the gallery modal, which combines upload, reorder, and preview in a single screen.
Drag thumbnails to set the display order. The first photo automatically becomes the cover image shown in the inventory row. All photos upload in parallel so a set of 20 images finishes in seconds rather than minutes. Photos are stored in cloud storage and load directly, with no Drive round-trip required.
New vehicles work the same way: add photos before saving and a draft row is created automatically. Canceling the new vehicle also removes its photos.
Real marketplace logos in the channel columns feat
Each marketplace column now shows the actual brand logo, replacing the generic text labels. Kijiji, CarGurus, AutoTrader, and Website are immediately recognizable at a glance. The logos appear in the column headers and in the channel cluster of every row, making it faster to read the state of each listing without having to read the column name.
Explicit Save: edit freely, publish when ready feat
Field changes in the vehicle drawer no longer save on every keystroke. You can now edit multiple fields across multiple vehicles and commit them all with a single Save click. The Save button shows a count of unsaved rows so it is always clear what is pending. Marketplace state changes (clicking a status chip) are still applied instantly, separate from the field edits.
Add Vehicle: VIN lookup and smart defaults feat
Adding a new vehicle is now faster. Enter the VIN and the system looks it up automatically, filling in the title, make, model, year, trim, and fuel type before you even open the detail panel.
Add New Vehicle
Γ
Enter the VIN to automatically populate vehicle details.
17-character VIN
Add without VIN
Look Up VIN
Once added, the new row expands automatically, the title is pre-generated, and all enabled marketplace states are set to On Hold so nothing goes live until you decide it is ready. You can still add a vehicle without a VIN using the Add without VIN option.
Republish All covers all active marketplaces feat
The Republish All button now queues every enabled marketplace at once. Any vehicle that is Published gets switched to Republish across Kijiji, CarGurus, AutoTrader, and Website in a single click.
Republish All
KijijiCarGurusAutoTraderWebsite
Republish
Republish
Republish
Published
In the example above, Kijiji, CarGurus, and AutoTrader were published and are now queued for republishing. Website was already set to Published and keeps that state.
AutoTrader as a 4th marketplace feat
AutoTrader joins Kijiji, CarGurus, and Website as a fully integrated marketplace. Each vehicle now tracks its AutoTrader listing through the full state cycle:
Ready β Published β Republish β On Hold
Marketplace columns can also be shown or hidden per account. Only the platforms included in your subscription appear in the inventory table, keeping the view clean and relevant to your dealership.
Kijiji description character limit warning feat
Kijiji rejects listings with descriptions longer than 9,990 characters. The description field now shows a live character count that turns red when the limit is exceeded, and adds a red border to the text area so the problem is impossible to miss before saving.
...BLUETOOTH player,
we are here to help.
Please contact us.
17,782 chars
CarGurus as a new listing platform feat
CarGurus is now integrated as a second marketplace alongside Kijiji. Each vehicle tracks its CarGurus listing status through the full state cycle, independently from all other platforms. The CarGurus column appears in the inventory table between Kijiji and AutoTrader.
Archive tab redesign feat
The Archive tab has a new design that makes sold vehicles easy to read and search. Each record shows the vehicle name, VIN, year, color, sale price, and the date it was sold. The green header and sold date badge make it visually distinct from the active inventory at a glance.
Faster image uploads perf
Images are now compressed client-side before uploading: each photo is resized to a maximum of 1920px and optimized for the web. Combined with parallel batch uploads (5 photos at a time), large photo sets that previously took 30 seconds or more now complete in a fraction of the time. Compression happens automatically with no change to your workflow.
Sold vehicles & Archive tab feat
Vehicles can now be marked as Sold from the expanded row action bar. Once sold, they are removed from the active inventory and moved into a dedicated Archive tab, keeping your list clean without losing any records.
Inventory
Reports
Schedule
What's New
Archive
The Mark as Sold button is available in the row detail panel. Clicking it again undoes the action:
Mark as Sold
Republish state for Website listings feat
The Website listing status now supports the full status cycle, matching Kijiji exactly. Both platforms are now fully aligned:
Ready β Published β Republish β On Hold
Click the Published badge in the Website column to switch it to Republish. The automation will re-upload that vehicle's page on its next run, useful after a price drop, updated photos, or description changes.
Mobile & tablet support feat
The app is now fully usable on phones and tablets. Browse your inventory, update vehicle statuses, and republish listings straight from your phone, whether you're on the lot or on the go.
Vehicle statuses: what each one means feat
Each vehicle has two independent statuses: one for Kijiji and one for the Website. Click directly on the badge in the table to cycle through them. Available statuses:
On Hold: The vehicle is not ready. The automation ignores it completely.
Ready: The default status for a new vehicle added to the inventory. The next automation run will publish it to Kijiji and/or the Website.
Published: The vehicle is already live. The automation will not touch it unless you change the status.
Republish: Forces the listing to be updated on the next run. For Kijiji, the listing is deleted and re-posted (useful to refresh visibility). For the Website, use it after modifying vehicle details like a price drop.
Error: The last automation run failed for this vehicle. It will be retried automatically on the next run. Check the Reports tab for details.
New vehicle detail fields feat
The detail panel (expand a row by clicking the arrow next to the VIN) now includes five additional fields:
Fuel Type: Type of fuel: Gasoline, Diesel, Hybrid, Electric, or Other.
Cylinders: Number of engine cylinders (e.g. 4, 6, 8).
Interior Color: Interior color of the vehicle (same list as exterior color).
Interior Material: Upholstery material: Cloth, Leather, or Leatherette (Faux leather).
Seats: Number of seats: 1, 2, 3, 4, 5, or 6+.
Visual improvements to the inventory table fix
Several cosmetic adjustments to make the table cleaner and easier to read:
The expand arrow next to the VIN is now always visible and clearly indicates that the row can be expanded. Previously it disappeared on hover.
The selection checkbox only appears when hovering over a row, or remains visible at all times if the row is checked, keeping visual clutter to a minimum.
The Img and Carfax columns now use compact SVG icons instead of text badges.
Column headers were simplified and the tenant selector is now aligned on the same line as the connection indicator.
Protection against leaving with unsaved changes feat
The app now helps prevent accidental data loss when changes have not been saved yet. After editing one or more vehicles, the Save changes for the next execution button is highlighted and displays a counter showing how many rows have unsaved changes. If you try to close or reload the tab before saving, your browser will show a warning. Once the data is successfully saved to Drive, the warning state is cleared automatically.
Cleaner and more consistent interface perf
The app received a visual polish across key workflows. Inventory action buttons now use a more consistent style, spacing was reduced to make better use of screen space and show more of the vehicle table at once, and emoji-based controls were replaced with a cleaner SVG icon system across row actions, feedback options, save controls, and the What's New section. The result is a more compact, polished, and professional interface without changing the existing workflow.
Image gallery viewer: browse uploaded photos directly in the app feat
Vehicles with uploaded images now show a View Images button in the detail panel. Clicking it opens a full-screen gallery with a main preview pane and a scrollable thumbnail strip. Navigate between photos using the arrow buttons or your keyboard arrow keys. The first 8 images load immediately on open; additional images are fetched automatically as you navigate, keeping Drive requests efficient.
For vehicles in existing inventory where image IDs were not previously stored, the gallery will fetch them directly from Drive on first open and save them for instant access on every subsequent visit.
Improved image reordering in the upload modal feat
The upload modal now makes it easier to arrange photos before uploading. Thumbnails can be dragged and dropped into any position, and the final order is preserved when saved to Drive. Images are stored as 1.jpg, 2.jpg, 3.jpg⦠matching the sequence you set. The gallery and Kijiji listing will display photos in exactly that order.
New vehicle fields: Engine and Interior Color feat
The vehicle detail panel now includes two additional fields: Engine (e.g. 2.0L Turbo, 5.0L V8) and Interior Color (e.g. Black, Beige). Both fields are read from and written back to the Excel inventory file, so any data already in those columns will appear automatically after an import.
Kijiji Top Ad: protect paid listings feat
Mark any vehicle as a Top Ad using the star icon (β
) in the inventory table. When a vehicle is marked as Top Ad, it is excluded from automatic republishing, so your paid Kijiji placement is never overwritten by an automated run.
Important: the Top Ad status must be set manually for each vehicle. It is not automatically detected or synced from Kijiji. You decide which listings deserve protection. Once marked, the star remains active until you toggle it off.
Bug fixes fix
- The app no longer rejects $0 as an invalid sale price.
- Fixed an error that prevented reordering images. Drag-and-drop repositioning was not working correctly.
- Fixed the Delete Images button, which was not responding when clicked.
- Fixed vertical alignment of content in inventory table rows.
- Fixed a layout issue in the Schedule tab where the countdown and feed sections were rendering outside their container.
Regression testing: protect existing features from future changes perf
An automated test suite now runs against the live staging environment before every production deploy. If a change breaks an existing feature (inventory loading, image uploads, vehicle editing), the deploy is blocked automatically. Fewer surprises, more confidence.
Reports: execution history & performance dashboard feat
The new Reports tab shows the history of every automated execution run. The sidebar displays summary KPIs (Healthy / Attention / Errors / Published) and a duration sparkline so you can spot trends at a glance. The main timeline lists each run with its start time, total duration, and a per-vehicle breakdown. Click any run to expand it and see exactly which vehicles were published, updated, or failed. Use the filter buttons (All / No errors / Attention / With errors) or the search box to narrow results.
Schedule: configure your weekly automation calendar feat
The new Schedule tab lets you choose which days of the week the system automatically runs, and at what time. Toggle each day on or off with the switch, then pick the desired hour from the dropdown. The left panel shows a live countdown to the next execution and the number of active vs. disabled days. Hit Save Schedule to persist your changes. The countdown updates immediately. Use Reset to default to restore the original MonβFri 8 PM schedule.
Feedback button: report issues or suggest improvements feat
A Feedback button is now always visible in the top-right corner of the app. Use it to report bugs, request new features, or share general suggestions. Click the button, write your message, and hit Send. Your feedback is delivered directly to the development team. No email or external account required.
Multi-Tenant Architecture with admin impersonation feat
Admins can now view and manage any dealership's inventory from a tenant selector in the header. Each tenant operates in complete isolation with its own server storage.
Admin detection via environment variable fix
Admin role validation now uses the ADMIN_EMAILS environment variable instead of Netlify Identity roles, which are not available on the free plan.
Tenant configuration via TENANTS_CONFIG
refactor
Per-tenant Drive folder IDs are now stored in the TENANTS_CONFIG environment variable (JSON). Adding a new client no longer requires a re-deploy. Just update the env var.
Republish: re-list vehicles on Kijiji feat
New Republish state and Republish All button to mark all published Kijiji vehicles for re-listing on the next execution. Includes a dedicated filter in the status bar.
Delete vehicle photos feat
From each vehicle's detail panel, you can now delete all photos stored on the server with a single click.
MIME type validation on file uploads fix
The Drive proxy now validates the MIME type of each file before uploading, rejecting unsupported formats and preventing silent processing errors.
Required field validation before saving fix
The system now validates that VIN, Title, Year, and Odometer are filled in before allowing changes to be saved to Drive, preventing incomplete data in the inventory.
Panel de Reportes e Historial de Ejecuciones feat
New Reports tab with a full execution history: vehicles published per channel, errors, duration, and run status. Includes filters and a search bar.
UI improvements and next-execution countdown perf
General UI redesign: compact action bar, countdown timer to the next scheduled execution, and better control layout on mobile.
Initial release of the inventory system feat
First version of the vehicle inventory management system. Includes the vehicle table, per-channel states (Kijiji / Website), Excel import/export, and server integration.
Image and PDF (Carfax) uploads to Drive feat
From each vehicle's detail panel, you can upload multiple photos (with preview and drag-and-drop reordering) and the Carfax PDF, stored directly on the server.
No sold vehicles yet
Vehicles marked as Sold will appear here after the next automation run.
| # | Vehicle | Year | Color | Sale Price | Sold |
|---|