Everything that changed in SpicyChef, newest first.
Choose what every screen keeps without zoomingWebsite
For a picture the page stretches across the screen, such as the hero, the dotted area in Adjust framing can now be dragged onto the part that matters. Phones and wide screens keep that part. Before, the dotted area was pinned to the middle, so moving it meant zooming in first.
Past bookings can be added, not only correctedBooking Engine
A dinner that happened but was never typed in can now be recorded. In New booking, the date goes as far back as your editable history window allows (Restaurant settings), the times listed are the ones the space was open at, and the guest is not emailed a confirmation for a meal already eaten.
Read moreChoosing a picture closes the picker straight awayWebsite
Clicking a picture used to leave the picker open for several seconds with nothing to show it was working. It now closes at once, and the spot shows 'Preparing' until the picture's files are ready.
Change the number of guests and the tables in one goBooking Engine
Two more guests used to mean adding a table first, then raising the number of guests; two fewer meant the reverse, and the other order was refused. Now you say the number first. In the edit form, a number the current tables cannot seat offers "Pick other tables" for that number. On the floor plan, the footer has a guest counter next to the tables you pick. Either way the guests and the tables are saved together.
Read moreChanging the number of guests always offers to pick other tablesBooking Engine
When you change the number of guests on a booking, the edit form now says which tables the party keeps and how many seats they have, and offers the floor plan for the new size, even when the guests still fit. Useful when a smaller party could sit on one table.
Read moreThe story section's heading sits above its text on a computerWebsite
On the home page introduction and the About page story, the heading used to jump to the right-hand column on a computer, leaving the text alone on the left. It now stays above the text. And when the section has no pictures, the text no longer runs from one background colour onto another halfway through a paragraph.
Stock photos arrive large enough for the spotWebsite
Pictures from the stock library used to be brought in at a modest size, so most of them could not fill a banner and looked soft on a large screen. They are now brought in at the full size the site can use, and when you search from a picture spot, only pictures large enough for that spot are shown. If nothing large enough matches, the search says so.
Read moreAdjust framing now follows your hand when you drag the pictureWebsite
On a large photo, dragging inside Adjust framing moved the picture only a few pixels, so the only way to change what was shown was the zoom. Dragging now moves the picture exactly as far as you move the pointer, so you can pick the part of the photo the spot shows.
Editing a dinner booking on a day with a lunch closure works againBooking Engine
When a space was closed for part of the day, say lunch, changing anything on an evening booking that day answered "The space is closed on this date". The closure's hours are now respected when a booking is edited, as they already were when it was made.
Read moreChanging the tables of a past booking works inside the editable history windowBooking Engine
Change table on a completed booking answered "booking not active" even with the editable history window open. It now follows the same rule as Edit booking: a completed or no-show booking can be re-tabled while the window is open, and a cancelled one never.
Read moreSetting up your website is fasterWebsite
When you continue from Photos, your photo descriptions are now translated several at a time, and “Write the site” writes several pages at once instead of one after another. Translating the last missing texts and the languages of a new blog post also run side by side.
Read more“Write the site” no longer lists missing translations while it writesWebsite
While your pages are being written, the step no longer shows how many texts each language is still missing, because those counts were about to change. Whatever is still missing once writing is done is listed as before.
Read moreDescribing a picture shows you the pictureWebsite
When you add pictures, in Images or in the Photos step of the website setup, or change what a picture shows, a small preview now sits beside each description box. You can see which picture you are describing instead of guessing from its file name.
Read morePages load lighter picturesWebsite
Every picture is prepared in several sizes, and the visitor's browser now picks the one that matches the space it fills: gallery tiles, team portraits, author photos and the small thumbnails beside a post no longer download a file meant for a much larger spot. The restaurant logo is also shipped at the size the header and footer actually show it, instead of the full upload.
The booking section's picture preview has the right shapeWebsite
The booking section stretches its picture across the page behind its text: a wide strip on a computer, close to a square on a phone. Its preview in the page editor now shows that wide strip instead of a hero-shaped frame, and the dotted area in Adjust framing now marks the part both a computer and a phone keep.
Read moreExtras and picture fields fit a laptop screenWebsite
On a laptop screen, the Extras step showed three cramped cards, with buttons spilling out of the picture field. The cards now take the room they need, and a picture field in a narrow space puts the picture above its buttons, in the setup and in every page editor.
Read moreAdding several pictures at once no longer interrupts the editorWebsite
Framing several pictures in a row, or framing pictures while “Write the site” was running, could briefly take the service down and leave those pictures on “generating” for an hour. Pictures are now prepared one at a time, a preparation cut short is picked up again within minutes by the next one, and a picture that cannot be prepared says so instead of trying for ever.
Read moreYour framing is what the site showsWebsite
When the same photo is used in two places, each place now shows the framing you made for it in Adjust framing. Before, the site used the largest framing everywhere and centred it, so a picture framed for a square spot could appear cut where you had placed it. Nothing to redo: framings already saved are used as they are.
Framing a hero shows the area every screen keepsWebsite
A page's top picture and the reservation band stretch to fill the visitor's screen, so a phone shows a tall slice of it and a wide monitor a wide strip. Adjust framing now draws a dotted safe area on those pictures: keep the dish or the room inside it and it stays in view on every screen.
Read moreAdjust framing now shows the shape your page really usesWebsite
Gallery tiles and the chef's favourites are square on your site, and cards and thumbnails have their own shapes, but the framing window used a different shape for some of them, so the picture you framed was trimmed again on the page. Every spot now frames at the shape the page shows. Pictures already placed keep publishing as before; open Adjust framing on a gallery or favourite picture to reframe it at the new shape.
Read moreA language is no longer held back by a page that is not on your siteWebsite
Your Offers, Events, Gallery and Blog pages appear only once something is published in them, and the editor says so. The last step of “Write the site” still counted their texts, so it could say “Khmer will follow (3 texts to go)” and name a page no Khmer visitor would ever see. Those pages are now left out until they are on your site; what you wrote on them is kept and counted the day the page appears.
Read moreThe assistant interviews you before writing your websiteWebsite
“Write the site” used to work from a handful of details, so pages came out generic or the assistant had nothing to say. It now asks ten quick questions first — the atmosphere, how the site should sound, the dishes guests come back for, what sets you apart, how guests get a table, your story, your team, who comes, what guests praise, and what the site must never claim. Pick a card or type a few words; skip anything you like. Your pages start writing in the background as you answer, and your answers are kept so you can change them any time. Every later suggestion from the assistant, anywhere in the editor, knows them too.
Read moreChange an answer, rewrite the pages it feedsWebsite
“Write my website” only fills what is empty, so changing your answers used to change nothing. The summary now offers “Rewrite the pages my answers changed” — or “Rewrite from my answers” for every page. Only the assistant’s own words are replaced; anything you typed yourself is kept, and your other languages follow the new text.
Read moreWrite a missing text without leaving the setupWebsite
When the assistant leaves a text unwritten, “Write it yourself” used to open the page editor in another tab and leave you to find the empty box. It now opens a small panel in the wizard listing exactly what that page still needs in that language — with the main language's wording underneath each one to translate from.
Choose the picture for your first offer, event and postWebsite
All three need a picture, and the setup quietly borrowed your cover photo — so if you skipped the photos step they were created without one, and you only found out at the publish check. Each card now has its own picture field, starting from the cover.
The setup explains its two writing buttonsWebsite
“Write my website” writes about your restaurant, from the details you confirmed. “Add starter text” drops the template's own general sentences into anything still empty, in your main language only, so the site can be published while you get to the real words. A description left blank in a second language is also explained: the assistant translates it from your main language, so an empty box is a choice rather than a gap.
Setup asks for your description in your main language onlyWebsite
The “Your restaurant” step showed one description box per language your site offers. It now asks once, in your main language; the assistant translates it into the others when it writes your site.
Read moreA generated picture is shown to you before you closeWebsite
In the Photos step, asking the assistant for a picture used to end with a small message and the same empty form — the picture had gone to your images behind the window. You now see what it made, right there, with OK to close and Generate another to try again with the same wording.
Read moreSetup asks what a photo shows when you upload itWebsite
Uploading in the Photos step now asks for a short description of each picture, as the Images page does. It becomes the picture’s description and the starting alt text wherever the picture is placed.
Read morePublishing finishes even when the connection is slowWebsite
A publish used to run as one long request, and a connection that dropped part-way could leave you with no answer while the work went on unseen. It now runs in shorter steps that pick up exactly where the last one stopped, so the progress bar keeps moving and the result always comes back.
Read moreText can no longer end up unreadable on its backgroundWebsite
Some pages — the blog, offers and gallery, when they had no photo — could show white text on a pale background, and the Design page let you pick a text colour that vanished on your page colour. Your site now always shows a readable colour in its place, and Design tells you which text cannot be read on which background, shows the two colours side by side, and offers one button to fix them. Saving is held until every text colour reads.
Read moreYour offers and posts appear in the menu the day you publish themWebsite
Publishing an offer or a blog post put it on your home page but left no Offers or Blog link in your menu, and the editor kept saying nothing was published there. Times were being read in the wrong zone, so anything published today looked scheduled for later. Everything published is now counted from the clock on your own wall — and an offer stays valid for the whole of its last day, instead of expiring at midnight of the day before.
The preview works while your photos are still being preparedWebsite
Opening the preview just after adding an offer showed a page of technical text instead of your site, because its photo had not finished being sized. The preview now draws a grey box where the photo will go, so you can look at the page while it finishes. If a preview still cannot be drawn it says so in a sentence, rather than in code.
Writing the site no longer leaves texts unwrittenWebsite
After the questions, a page could still show “the assistant had nothing honest to write here”, and your short description was never translated. The assistant now asks itself twice for anything it declined, and if it still cannot, the page gets the template’s starter sentence so nothing is left empty — the grid tells you which texts those are so you can replace them. Your description is now translated into your other languages like every other text.
Read more"Write my website" no longer spins for ever if the assistant was interruptedWebsite
If the service restarted while the assistant was writing your pages, the wizard kept showing the job as running with no way out. It now tells you the run was interrupted after ten quiet minutes, keeps every page that was already written, and lets you run it again for the rest.
Read moreYour other languages are finished with the site, not after itWebsite
“Write the site” could say every page was written while the last step still said “French will follow once its pages are written (3 texts to go)” — texts on a dish, an offer or a picture that the pages never showed. Once your pages are written, the assistant now translates those too, and anything it cannot is listed by name, in both steps, with a link to where it is written.
Read moreA page the assistant did not answer can be asked for againWebsite
A whole page in Khmer could come back as “the assistant did not answer”, leaving only “Write it yourself” and every Khmer box empty. Pages are now written in smaller pieces so a long text does not sink the rest, a piece that fails is retried on its own, and a cell that is still not written offers “Ask the assistant again” first.
Read moreDescribe a picture once, and every page reuses itWebsite
When you add a picture, SpicyChef asks what it shows. Those words fill in the description box automatically wherever you place the picture, so you write it once instead of on every page. You can still change the words on any spot, and a dish photo is described with the dish's name without your typing anything.
Add a language, and offer to translate the whole siteWebsite
Ticking a new language in Website > Site settings now asks whether to translate everything into it. Say yes and SpicyChef works through every page and every entry in the background — you can carry on editing while it runs, and a card in the corner shows how far it has got. The translations wait for your read on the Translations page.
Picture descriptions are translated with everything elseWebsite
The words describing your photographs now go through automatic translation like every other piece of text on the site, and appear in the review queue on the Translations page. A site in three languages no longer describes its pictures in one.
The assistant writes every page, not just the main onesWebsite
"Write my website" now also covers your Offers, Events, Gallery and Blog pages and your restaurant's own description. That is why a second language could sit at "still a few texts to go" while the Translations page showed nothing waiting: text nobody has written is not a translation anyone can review. The Translations page now says outright how many texts each language is still missing.
Long waits say how far along they areWebsite
Setting up a website and writing it both take a while. Instead of a button that simply goes quiet, you now get a progress bar, a line saying what is happening, and — while the assistant writes — a count of how many texts are done out of how many.
Carry on while your photos uploadWebsite
Uploading no longer holds the Continue button, and the corner tray no longer stands on top of it — drop a dozen photos, move to the next step, and pick them up in Photos when they land. Photos are also prepared noticeably faster.
Put a field back to what Restaurant settings saysWebsite
Your address, phone number and the rest are borrowed from your restaurant profile, and you can edit them for the website only. Each of those fields now has a reset beside it, in the setup wizard and in Website > Pages > Business details, so going back to the original no longer means opening another screen and copying it across.
Starter text asks first, and "write it yourself" keeps your placeWebsite
"Add starter text" fills in every empty text on every page, so it now says so and waits for your yes. And the "write it yourself" link opens the page editor in a new tab instead of closing the wizard behind you.
A page that is not on your site yet says soWebsite
Your Offers, Events, Gallery and Blog pages only exist once there is something published in them — a link to an empty list is a dead end. Their settings were editable all the same, so dressing them changed nothing and nothing explained why. Each now says the page appears with your first published item, and each collection says the same from the other side.
A photo too small for its spot tells youWebsite
A picture smaller than a spot needs is never enlarged — the site serves the biggest size it can and stretches it, which looks fine in the editor and soft on a large screen. The picture chooser now marks any photo that cannot fill the spot you are filling, and the spot itself says how wide the photo can be served against how wide the page wants it.
Fields no page could ever show are out of the editorWebsite
The Blog and Offers pages asked you to write a message for when their list is empty — but those pages only exist once something is published in them, so the message could never appear. Along with a map pin title no page reads, they are gone from the editor. Every field it still asks for now reaches a page.
Publishing shows what it is doingWebsite
Publishing a site takes about a minute — it freezes your content, renders every page, uploads them, checks the links and moves your address to the new version. You used to confirm and then see nothing until it was over. Now a panel names the step it is on and how many are left, and closes when your site is live.
Leaving a page and coming back no longer loses your wordsWebsite
Editing a page, switching to another one and coming straight back could show the page as it was before your last edit, then warn that "someone else saved this page" the moment you typed. The editor now checks what it saved on its way out, and only asks you to reload when somebody really did change the same field.
Your first offer, event and blog post now appear on the siteWebsite
The setup wizard used to create them as unfinished drafts, and a page like Offers only exists once there is something real to show — so you filled the card in, were told it was created, and then found no Offers page and no Offers link in your menu. They are created ready to go now, written in every language your site offers, and they appear the next time you publish.
The chef's favourites you picked show on your home pageWebsite
Plates picked in the setup wizard were quietly left off every published site — the band was there, empty. They are published with the rest of the page now.
A photo brings its description with itWebsite
Describe a photo once — in the wizard, in Images, or in the box under any spot you put it in — and every later use of that photo starts from those words. Swapping the photo in a spot now clears the old description instead of leaving words about a picture that is no longer there, and a translation that comes back as a question rather than as French is no longer saved as the description.
Past events move to Previous eventsWebsite
What's on and Previous events were showing the same list, so last spring's dinner stayed at the top of What's on and next month's tasting was filed under Previous events. Each page now shows its own half, and Previous events shows the message you wrote for when it is empty.
Your address and phone number are shown where they really come fromWebsite
The setup wizard let you type your name, address, phone, email and currency, but your website publishes those from Restaurant settings — so editing them there changed nothing on the site. The step now shows them exactly as your site will publish them, with a link to change them where they live. What stays editable is what the site itself owns: your description in each language, and your cuisines.
A photo tells you when it is ready to publishWebsite
After you add a photo, SpicyChef spends a few seconds making the sizes your pages actually serve — and until that finishes the photo does not appear in a preview or on a published page. Nothing said so, so a photo could look added and be missing from your site. The spot now shows "Preparing sizes — 2 of 9" while it works and "Ready" when it is done, and publishing warns you if any photo is still being prepared.
Send Reserve somewhere else if you want toWebsite
Website > Business details has a new Booking link field. Leave it empty and SpicyChef chooses for you. Fill it in — with another booking service, or any page of your own — and every Reserve button on the site follows it instead. The change applies the next time you publish.
Your Reserve buttons know where to send guestsWebsite
If you subscribe to the Booking Engine, every Reserve button on your published site now opens your own booking page. If you do not, they open your contact page. Until now only the button in the header led anywhere: the one in the mobile menu, the floating button and the Reserve sections were not shown at all.
Split-table parties can lose a table againBooking Engine
Changing the tables of a party seated across several tables failed with "Failed to fetch" whenever a table was removed, and could also fail when a party was brought back onto one joined table. Both work again. Only the tables you drop change: every other table keeps its booking, the dropped ones are cancelled, and the guests are re-split across what remains.
A party's guest count no longer includes tables it leftBooking Engine
After removing a table from a split-table party, the booking page still listed the cancelled table and counted its guests in the party total. The party now shows only the tables it still occupies.
Going back to the times keeps your date and timeBooking Engine
Choosing a date and a time, then stepping back from the details page, dropped you on the first open day with nothing selected — so moving a 7:00 pm booking six months out to 7:30 pm meant clicking through the calendar all over again. The booking page now reopens on your party size, your date and the time you had chosen. Changing the party size keeps your date too, as long as the restaurant still has room that day.
The deposit notice no longer touches the timesBooking Engine
In a room that asks for a deposit, the amount sat flush against the first row of times and read as part of it. It now has room to breathe.
See how your website is doingWebsite
A new Analytics page under Website shows how many people visit your site, which pages they read, where they arrive from, and how many send you a message or sign up to your newsletter. It also lists broken links, so a page nobody can reach stops being invisible. Visitors are counted without cookies, so your site still needs no consent banner, and no visitor can be followed from one day to the next. Figures cover the last 90 days.
Your dashboard tells you what to do nextWebsite
The Website dashboard now shows when your site was last published and flags unpublished changes. It checks your draft as soon as it opens and says "Ready to publish" or lists what to fix, each line opening the right field. Failed publishes are explained in plain words, naming the offer or page concerned.
Publish from the page you are editingWebsite
Every page and collection now has Open preview and Publish at the top, so you no longer go back to the dashboard to see or ship a change. Publish checks the site first and tells you what blocks it.
Hide or show an offer in one clickWebsite
In every collection, the row menu now hides, shows, publishes, unpublishes, archives or restores an item without opening it. Inside the form, status and visibility come first instead of hiding under "More options". Archived items fold away behind an "Archived" toggle, with Restore.
The setup wizard shows its progressWebsite
The write step shows which pages and languages still need words before you run it, and counts them on the button. The photos step reports which photo it is describing and resizing instead of a bare "Saving". The dashboard checklist uses the wizard's own step names, each a link, with optional steps marked as such.
Add photos to your setup by dropping them inWebsite
The photos step of the setup guide now takes photos dropped or pasted straight onto it, and offers stock photos and AI pictures without leaving the guide. Uploads no longer freeze the step: they run in the corner while you carry on marking the cover and writing descriptions.
Photo descriptions start from a suggestionWebsite
The assistant cannot see your photos, so it can only translate a description you write — which left you with a row of empty boxes before the site could go live. Each photo now starts from a real sentence naming your restaurant, the page and the spot, ready for you to correct in a word.
Pick several stock photos in one goWebsite
The stock photo search closed after every single choice. It now stays open, ticks the ones you have taken, and lets you gather as many as you need before closing it. The AI panel keeps your prompt so you can ask for another picture without retyping.
When the assistant declines, write it yourselfWebsite
The assistant refuses rather than invent a fact, and "nothing honest to write here" used to be a sentence with nowhere to go. Every page and language still missing text now links straight to the field, in that language.
Unsaved edits are no longer lostWebsite
Leaving a page with unsaved words now asks first, and a last save goes out as you leave. A save that failed shows a banner with Try again instead of a small grey note. The "things to finish" count now includes errors, not only warnings.
A translated photo description no longer blocks the setup guideWebsite
A long photo description became longer once translated, and the photos step then refused to continue over a language you had never written in. Translations are now shortened to fit, cutting between words.
The setup guide no longer refuses your own changesWebsite
Describing the cover and another picture on the same page could end with "someone else changed this, reload" — for a change you had just made yourself. The same happened after using the starter text. Both are fixed.
Continue is never stuck on the writing stepWebsite
If the connection dropped for a moment while the assistant was writing your pages, the step stayed on "Writing…" and Continue never came back — only reloading helped. It now keeps checking, and if it truly loses the run it says so and lets you carry on.
Your chosen dishes are no longer duplicated after an errorWebsite
If something failed while saving the chef's favourites, trying again added the dishes that had already been saved a second time. The step now remembers what went through and asks only for the rest.
Offers and posts are dated by your own clockWebsite
A first offer or blog post created from the setup guide was dated in UTC, so the time was wrong — and early in the morning, so was the day. Small fixes elsewhere: the writing step explains a problem in words instead of a code, and a custom domain shows a readable status.
Gallery photos now actually appear on your siteWebsite
Photos chosen for the gallery could be missing from the published site. Large pictures uploaded from the Images page were sent at full size and their resizing sometimes stopped part-way, and a gallery whose photos are not ready is left out entirely. Pictures are now reduced before uploading, a stalled one can be restarted from its row menu, and the last step warns you before publishing instead of quietly dropping the gallery.
Platform administrators can edit a website template with a preview.Website
Jinja, CSS and JavaScript changes can be previewed safely, saved as a draft and submitted as a new version for review. Editing does not change a live restaurant website.
Newsletter sign-ups receive their confirmation emailWebsite
A visitor who signs up on your website is now sent the double opt-in confirmation, so they actually join your list once they confirm.
Choose how your site is translatedWebsite
Site settings has a new Translations choice. Automatic: text you add or change is translated into every language you offer as soon as it is saved. Automatic, with review: the same, but each machine translation waits for someone to read it. By hand: nothing happens on its own. Translations you wrote yourself are never overwritten in any mode.
A queue of translations to reviewWebsite
Website → Translations lists every machine translation nobody has read yet, and every reviewed translation whose original text has changed since. Each line opens the editor on that field and language; mark one reviewed, or a whole page at once. In the editor, each translated field says where its words came from.
Put a picture in place with one gestureWebsite
Drop or paste a photo straight onto the picture spot, on a website page or on a product, and it is uploaded, framed and placed. Choosing from your images, a stock photo or a generated picture places it with one click too: the separate “Use this picture” step is gone. The spot now shows the framing the page will use, so Adjust framing is there when the preview is not what you want.
No more waiting on a pictureWebsite
Uploads, stock imports and generated pictures now run in the background. The window closes as soon as they start, a small tray in the corner shows their progress, and the picture drops into its spot when it is ready. Keep editing the rest of the page meanwhile.
Large photos upload fasterWebsite
A phone photo is shrunk in your browser before it is sent, so a 6 MB picture leaves as well under 1 MB. Nothing you would see changes: the largest size any page uses is still fully covered.
Picture sizes are ready soonerWebsite
The files a page serves are now produced by a dedicated image service instead of on the same server that runs your bookings, so they are ready sooner and the back office stays responsive while they are made.
Platform administrators confirm before running a publishWebsite
Running a queued publish from the platform panel now asks for confirmation, since it puts a restaurant's site live. Template versions activated on the platform, and versions rolled out to restaurants, are now what those sites actually render.
Restoring a previous version of your website works againWebsite
The website dashboard and the Publish history page now show the versions you actually published, which one is live, and let you restore an earlier one with a reason. Restoring pointed at an empty address before.
A publish that stopped halfway no longer blocks the next oneWebsite
If a publish is interrupted, the next attempt picks it up and finishes it instead of leaving the site stuck. Long builds also keep their turn for the whole run.
Old web addresses now lead to the new pageWebsite
When you rename an offer, event, post or policy address, the old address redirects to the new one on the published site instead of showing a missing page.
Every published language now works, and search engines see the default oneWebsite
Sites published in Spanish, German, Italian, Chinese, Japanese, Korean, Thai or Vietnamese no longer fail their checks, the footer credit uses the page's own language, and each page tells search engines which language to show by default.
Your dish photos now show on your menu pageWebsite
A photo you set on a product in your catalogue now appears beside that dish on your published menu, at the size and shape the page expects. Nothing extra to switch on: if the product has a picture and your menu page is set to show images, it is there the next time you publish. The description you framed is what visitors see, and the picture is served in modern formats so the page stays fast.
Find a photo without leaving SpicyChefWebsite
Choosing a picture now offers three places to get one: your own images, free stock photos from Pixabay and Pexels, and an image generated from a description you write. Stock photos are free to use commercially and cost no credits; a generated image uses AI credits, and the picker says so before you press the button. Whatever you pick lands in your images, ready to frame and reuse.
Choose how the AI writes, and see what it costsWebsite
A new AI settings page under Website lets you pick the tone the assistant writes in — warm, professional, playful, elegant or concise — add a short note about how you want to sound, and choose the model it runs on, with the more capable ones marked as costing more. The same page shows your AI credits for the month: how many are left, what each recent run cost, and when they reset. Your monthly allowance is set by SpicyChef; ask us if you need more.
Eight more languages for your website.Website
The Languages step now offers Spanish, German, Italian, Simplified Chinese, Japanese, Korean, Thai and Vietnamese alongside English, French and Khmer. Tick the ones you want and the assistant writes them; each language gets its own web addresses, and a language switcher appears in your site's header as soon as a second language is fully written. Ticking a language never blocks a publish — a language only goes live once its pages are written, so your site keeps publishing while you translate.
Read moreProducts can have a photoCore
Every product in your catalogue can now carry a photo, chosen the same way as a website picture: from your own images, uploaded, found in the free Pixabay and Pexels libraries, or generated from a description. Photos are framed at the shape delivery apps expect, so a picture you already use elsewhere works here. You do not need a website for this — the photo shows in your catalogue straight away.
Website platform: sites and publish jobsCore
Platform administrators can see every restaurant website with its live release, domain and last publish, open one to republish it, roll back to an earlier release, reconcile delivery, or run and cancel a queued publish. Every action asks for a reason and appears in the activity log.
Website platform: rollout campaigns and publish timelinesCore
Platform administrators can roll a template version out to a chosen set of restaurant sites with a canary first, then batches, an automatic pause when too many fail, and a way back for every site that moved. Every publish job now shows a timeline of what happened, step by step.
A cropper that shows the result, not a diagram of itWebsite
Framing a photo used to mean dragging a small rectangle around on top of a dimmed picture. Now the frame stays still at exactly the shape the published file will be, and you move and zoom the photo behind it — drag to move, scroll or use the slider to zoom, arrow keys for fine adjustment. What you see inside the frame is what gets published. The media library also loads much faster, especially the second time.
Zoom in when you frame a pictureWebsite
The framing window could only be moved, never resized, so a detail in a large photo could not be brought forward. Scroll, drag the slider, or press + and − to zoom; the arrow keys nudge the frame a pixel at a time. The zoom stops before the picture would come out soft on a large screen.
Publishing explains when the platform is pausedCore
When publishing is paused platform-wide for maintenance, the Publish button says so instead of showing a generic error. Your changes stay saved.
Adding a photo during setup no longer makes the next step fail.Website
On the Photos step, uploading a picture and clicking Continue straight away could show an error, and clicking Continue again a few seconds later worked. Your photos are now saved before the sizes are prepared, so Continue works the first time.
Read morePage and collection editors show only the languages your site offers.Website
After the new languages arrived, the editors briefly listed every language the template can build — eleven tabs, which also pushed the page's buttons off the side. They follow your choice from the Languages step again, and the row wraps if you offer many. A site that never made that choice shows the languages it is already written in.
Read moreSite settings accepts all the new languages, and warnings only count the ones you chose.Website
Site settings could still only record three languages, so a fourth choice was refused. It now offers the same list as the Languages step. The "things to finish before publishing" count on a page was also counting untranslated text in languages you never chose; it counts only your own languages now. The publish check no longer lists every language you left out either — it mentions one only when it is fully written and still not on the site.
Read morePortrait photos are no longer stretched when you frame themWebsite
A photo taken upright on a phone was shown lying on its side and squashed to fit, and the frame you set on it was applied to the wrong part of the picture. Photos are now measured the way they are actually stored, so what you frame is what gets published — including photos you uploaded before this fix.
Generating and importing pictures is more reliableWebsite
Large pictures could fail partway with an unhelpful message. They are now fetched in a lighter format and refused politely when they are genuinely too big, and each kind of failure says what it actually was — the model still being set up, a rate limit, or a picture too large to keep.
Cancelling a party seated across several tables frees every one of its tablesBooking Engine
A party spread over several tables is one booking. Cancelling it used to release only the table shown on the line, and the other tables stayed taken — the booking read "Cancelled" while the floor plan and the time slots still held its tables, for good. Cancelling, refusing or marking a party no-show now releases every table of that party, and the tables left held by parties cancelled before this fix have been released.
Editing a booking no longer files it as an abandoned cartBooking Engine
In a restaurant that asks guests to prepay, changing the date, time, party size or space of a booking you had already confirmed sent it back to waiting for payment — and minutes later it was filed as an abandoned cart, off the service list and its table released. An edit made from the back-office now keeps the status the booking already has. A guest checkout left unpaid still gets its full 30 minutes before it counts as abandoned.
Paid bookings always hold their table when availability is computedBooking Engine
One availability response still ignored paid bookings and bookings whose planned end had been moved, so it could offer a time every other screen refused. It now follows the same rule as the rest of the app.
A guided setup takes your website from empty to published.Website
Open the Website module and "Set up your website" walks you through it in one sitting: choose your languages, confirm your restaurant's name, address and contact details (filled in from Restaurant settings), check your opening hours, let the assistant write a first draft of every page in every language you chose, then publish. Leave at any step — everything is kept, and "Continue setup" on the dashboard brings you back to where you left off.
Read morePick your chef's favourites, photos and look inside the guided setup.Website
Three more steps: tick up to six dishes from your catalogue for the home page's chef's favourites (or open the catalogue if it is still empty), upload photos and mark one as the cover and up to twelve for a first gallery with a one-line description each, then choose a palette and corner style for the whole site. Every choice can still be refined later in the page editors.
Read moreAdd a first offer, event or blog post, and your own domain, before you publish.Website
Two more steps in the guided setup. Extras: create a first offer, a first event or a first blog post (the assistant writes it from a subject, in every language you chose) as drafts you finish later, and add your Facebook, Instagram, TikTok and chat links. Address on the web: see your SpicyChef address, add your own domain with the DNS records to set up, and check it — your site goes live on the SpicyChef address meanwhile, so nothing here holds up publishing.
Read moreYou can see when a list is loadingCore
Changing page, sorting a column, applying a filter or a search used to leave the old rows on screen with no sign that anything was happening. A thin green bar now runs under the top bar and the rows fade while the server answers, on every list in the back-office. Page buttons pause while the next page loads.
Platform operators get a Website platform overviewCore
A new Website platform section in Platform administration shows the template registry at a glance: template families, active and ready versions, the conversion queue, publishing settings with a clear warning when publishing is paused, which integrations are configured, and the latest administration events. Reading only for now; managing templates and settings comes next.
Template families and versions, managed from the platformCore
Platform operators can now list template families, create one, edit its name and description, archive or un-archive it, import a new version from an exact git commit or an archive, and activate or deprecate versions with a typed confirmation. Every screen says it plainly: this is the registry only — restaurant websites are not republished or changed by any of it.
Template versions can be converted, reviewed and made readyCore
Importing a version now runs its conversion immediately and tells you the result. A converted version waits for a named review: approve runs the automated checks on every page and language and makes it Ready to activate; reject records your note. The version details show who reviewed it and the validation report. Still registry only — no restaurant site changes.
Website platform settings and activity logCore
Platform administrators can edit the website platform settings in one dialog, pause publishing with a confirmed switch, and read every accepted change in a filterable activity log.
Choose the columns of the bookings export, add-ons and notes includedBooking Engine
Export CSV on the Bookings list now opens a short list of columns to tick: guest, email, phone, company, status, payment, tables, guests, date, time, add-ons, notes, created and source. Add-ons come out as "Birthday cake × 2, Champagne × 1", so the sheet you send the kitchen says what each party ordered ahead. Your choice is remembered on the device. A party on several tables exports once, with all its tables and its full size.
The website dashboard shows a setup checklist until your site is published.Website
Instead of a single line saying a few steps are left, the dashboard lists what is done and what is not, with one button into the guided setup. Once published, "Run setup again" stays available to review everything.
The languages you tick are the languages your site offers.Website
A language you leave unticked in the setup's Languages step is never shown to visitors, even when the starter text would make it complete. A ticked language still goes live only once its pages are written. "Write the site" now runs as one job you can watch fill in, and each page that could not be written says why. The dashboard's setup card can be put aside with "Not now".
Saving rides out a short interruption instead of failingWebsite
The website service restarts briefly when it is updated. A save landing in that window failed on the first click and worked on the second — most visibly when choosing your colours. Saves now keep trying for long enough to cover a restart, and if one still cannot get through, the message says the service may be restarting and that nothing was lost.
The assistant writes only the languages your site offers.Website
The write-with-AI buttons on a page, on a section and inside a record used to draft every language the template supports. They now write the languages you ticked in setup, and the counts on the buttons say so. Nothing is drafted into a language your site does not show — and an unticked language is still yours to type by hand whenever you want it live.
Only the languages your site offers can be editedWebsite
Editors showed a tab for every language the template can carry, including ones you left unticked — text typed there was never served to anyone. The tabs now follow the Languages step: untick a language and its tab goes away, tick it and it comes back with whatever was already written in it. Your main language is always shown.
One account menu at the top rightCore
Profile and settings, the language switch and Sign out now live together under the account icon, so the top bar carries fewer controls. The language switch is available on phones too — it used to be desktop only.
Every row has its … menu; filters sit above the tableCore
Tables, rooms and spaces, opening rules and team members now show the same … actions menu as bookings, and the duplicate pencil icon on opening rules is gone. On Bookings, Guests and Event logs the active-filter chips moved from the page header to just above the list, next to the search, so the header keeps only Saved views, Export and the primary action.
Fewer silent failures: confirmations, feedback and a retry buttonCore
Merging two guest profiles, archiving a loyalty program or a segment, and deactivating a catalog reference now ask for confirmation in the usual dialog instead of a browser pop-up or nothing at all. Creating a profile, resolving a duplicate, toggling an email scheduler and updating a program say when they succeed and when they fail. When a list fails to load (bookings, guests, companies, event logs, a home card, "Load more" events, the analytics export) you get a Try again button rather than a dead end.
The Team list shows active members firstCore
Deactivated team members no longer sit in the list by default. A "Show deactivated members" tick above the table brings them back, with their count, so a past employee or a test account can still be reactivated at any time.
The team member form explains roles and teamsCore
When you add or edit a team member, the Role field now says in one line what Owner, Admin, Staff and Viewer can do, and that these rights are the same for every restaurant. The Team field says a team is a label for organising the list and does not change permissions.
Platform administration is easier to scanCore
On the overview, each restaurant needing attention folds to one line with its counts; open the ones you want. A restaurant's control center folds its panels too — today's service and diagnostics stay open, the rest show a count until you expand them — and diagnostics list what failed first, with passed checks behind one toggle. Explanations and fixes read in your language. Every button shows it is working, and the search and filters show the loading bar.
Test emails show your shortcodes filled inBooking Engine
"Send test email" used to deliver the template as written, with the shortcodes left as placeholders, so you could not see how the guest name, party size or add-ons would look. A test email now fills every shortcode from a sample booking — a fictitious guest, a party of 4, two add-ons — together with your restaurant's real name and address.
Change table lists tables in name orderBooking Engine
The table picker used to follow the floor plan's drawing order, which looked random when you were looking for one table. It is now sorted by name, with numbers in natural order.
Service board: a free table shows the time of its next bookingBooking Engine
A free table booked later in the day used to say "Next booking in 420 min", which was easy to read as simply available. When the booking is more than two hours away, the tile now says "Booked at 19:30".
Floor plan: a table's popup shows the booking's detailsBooking Engine
In Projection and on the Service board, clicking a table showed only the guest, the party size, the time and the status. The card now also shows when the table is planned to be free again, the guest's phone (tap to call), where the booking came from and its notes, plus an "Open booking" link to the full booking.
Service board: arrivals open with the booking's detailsBooking Engine
Clicking an arrival in the side panel, or a table with a party, now shows the planned end time, the guest's phone, the source, the notes and an "Open booking" link — the same facts as the Projection popup.
Publishing no longer stops on its last checkWebsite
After your site went live, a final check asks your address for the page it has just published. A brand-new site can take a few seconds to answer, and that was reported as "publishing stopped" — so you pressed Publish a second time to finish a publish that had already happened. The check now waits and asks again on its own. If your address is still catching up, the message says your site is published and the delivery network is behind, rather than showing an error.
Read moreA text that is too long says so before you try to continueWebsite
Your short description is filled in from Restaurant settings, and your website allows 300 characters for it. A longer one was accepted by the form and refused when you pressed Continue, with nothing on screen saying which text or by how much. Each description now shows its character count as you write, turns red when it is over, and Continue waits until you have trimmed it. When a text is refused for any other reason, the message names the field and the language instead of "Something went wrong".
Read moreA publish problem now says which one, and takes you to itWebsite
The check before publishing used to answer with things like "offer 15 alt text" — and with fifteen offers, finding the picture with no description meant opening them one by one. Each line now names the page or the item by its title, the field and the language, and clicking it opens exactly that form with the field waiting for you. Lists also show, per row, how many things that item still needs before publishing.
The language you select stays readableWebsite
Picking a language in an editor turned its button into white text on a white background, so the language you were writing in looked like it had disappeared. The same missing colour made field error messages, required markers and the "things to finish before publishing" line render in plain text instead of red or amber — so the marks meant to point at what is missing pointed at nothing.
Home, the POS service screen and the catalog speak your languageCore
The Home page title and empty state, the POS dialogs (record a payment, apply a deposit, move an item, finalize or remove an invoice), the product picker, the product detail page and the set-price dialog stayed in English whatever language you had chosen. They now follow it, like the rest of the back-office. Shared controls (Refresh, Close, no-results messages) do too.
Keyboard focus is visible on every buttonCore
Tabbing through the back-office now shows a green ring on every button, icon button and dialog close, so keyboard users always know where they are. Page headers no longer let the action buttons overlap the page subtitle on narrow screens, and Guest CRM and Booking engine landings gained their breadcrumb.
"Booking" and "guest" everywhere in English copyCore
A few English labels still said "reservation" or "customer" (the Bookings subtitle, Guest communication recipients and placeholders, a prepayment hint, an analytics subtitle). They now use the same words as the rest of the product.
Draft invoices no longer show an internal numberCore
The POS invoices list and its CSV export showed a technical identifier for invoices that had no document number yet. They now read "Draft". The booking detail also stops listing a technical booking number.
The help button no longer covers the Next page buttonCore
On lists that fill the screen, the round help button at the bottom right sat on top of the Next button of the page controls. Every page now keeps a clear strip at the bottom for it.
Error and warning text is readable everywhereCore
Across the app, red and amber messages were set in a shade too light to read against the background they sit on — and in some places the colour was missing altogether, so the message came out in ordinary black text with nothing to mark it as a problem. Error, warning and success text now use a darker step of the same colour, checked against the accessibility contrast standard. Warning and error icons keep their brighter shade so a glance still reads as amber or red.
The bookings list shows as many bookings per page as you asked forBooking Engine
A booking spread across several tables counted once per table when the list was cut into pages, so "10 per page" could show 7 lines, a busy day was scattered over more pages than needed and the total at the bottom counted tables rather than bookings. Pages and totals now count bookings: a multi-table party is one line, and a page holds the number of bookings you chose. The quick-filter counts above the list and exports follow the same rule.
Emails say the whole party's size for multi-table bookingsBooking Engine
When a party was seated across several tables, the "number of guests" in the confirmation emails — the guest's and the restaurant's — showed only one table's share, so a party of 4 read as 2. It now shows the whole party. Tables freed when a booking is moved no longer count.
Change a booking's date even when its tables are taken that dayBooking Engine
Moving a multi-table booking to another day was blocked whenever its tables were already booked then: Save stayed greyed out and there was no way to choose other tables, so you had to cancel and rebook. The edit form now offers "Pick other tables": it opens the floor plan at the new date and time, you choose the free tables, and the whole party moves onto them in one step. The guest receives the usual date-change email. The same button appears for a single-table booking when no table is free at the new time.
Booking widget: the additional notes section no longer cuts off its contentBooking Engine
On the online booking form, the expandable sections kept the height they had when opened, so anything that grew afterwards — a long note, options revealed by a choice — was clipped. Each section now grows with its content.
Service board: forgotten services no longer block tables for daysBooking Engine
When a walk-in or a seated booking was never closed on the Service board, its table stayed occupied and the party kept showing as seated — sometimes a week later — and nobody else could be seated there. A service left open for more than a day with nothing ordered or paid is now closed automatically the next time the board opens, its booking marked completed, and the event log says so. A service with an order, a payment or a deposit is left for you to close.
Service board: no Order or Payment tabs without the POSBooking Engine
On a restaurant without the POS module, the table popup still showed greyed Order and Payment tabs and an "End without order" button. The popup now shows only the booking, and the button reads "End service".
Pick a date range on the bookings list without the list jumpingBooking Engine
The Date filter reloaded the list the moment you picked "From", so setting "To" afterwards — or a single day — was a fight. The two dates now wait for "Apply dates" (or Enter). A range that ends before it starts is refused. Today, Upcoming and All dates still apply with one click.
Fill your empty pages in one click.Website
New sites have been starting pre-filled; sites that already existed kept their blank pages. "Fill empty pages" on the website dashboard now does the same for yours — starter text, your restaurant's name, town and booking link, and your first dishes from the menu as chef's favourites. Only empty fields are filled, so nothing you have written is ever replaced, and pressing it twice tells you there was nothing left to fill.
Search engines are handed a map of your whole site.Website
Your site now publishes a sitemap and a robots file. Every page, in every language you publish, is listed with its translations, so search engines find your offers, events and articles instead of waiting to stumble on them. Your pages had been pointing at a sitemap that did not exist. The page-not-found page is left out of it, and now asks not to be indexed.
Your menu, events and FAQs can now show up directly in search results.Website
Every page now tells search engines what is on it, in the format they read: your dishes and their prices, your opening hours and address, your events with their dates, your articles, your photos and your FAQ answers. This is what lets a search result show your menu or your next event instead of a plain blue link. Nothing to fill in — it is built from what is already on your pages, so it can never say something your site does not.
Your website starts written, not blank.Website
Opening the Website module now fills every page for you — welcome text, section headings, your restaurant's name, town and booking link — so you can publish on day one and edit afterwards. Nothing you write is ever overwritten: only empty fields are filled.
An "All bookings" quick filter shows past bookings tooBooking Engine
The bookings list opens on upcoming bookings, from today onward. A new quick filter above the list, with its own count, opens every booking the restaurant has ever taken in one click.
Pages with nothing on them no longer appear.Website
No blog articles meant a Blog page saying "nothing here yet", linked from your menu bar. Offers, Events, Blog and Gallery now appear only once they have something in them — and appear on their own with your first published item.
A language goes live when you translate it.Website
You no longer choose which languages the site publishes. Your own language is always live; another appears in the language buttons once everything is translated into it, and the editor tells you how many fields are left. Turning a language on can no longer block your publish.
The editor opens in your own language.Website
Every page and record editor used to open in English, and the ✨ AI fill translated out of English too. Both now follow your site's own language, so a site written in Khmer is edited in Khmer and translated from it.
Your opening hours appear on your site, and you can edit them.Website
The footer showed an "Opening hours" heading with nothing under it. Hours now come from the schedule your bookings already run on, and you can override the text — useful when the kitchen stops seating before the room closes.
Your pages look the way the design intended.Website
The published site was compared page by page against the design it is built from. Section headings that sat off to the left are centred, gallery and menu bands that had lost their styling are back, headings on dark photos are readable again, and the small navigation trail that the design never had is gone.
The list says when it is only showing upcoming bookingsBooking Engine
An "Upcoming only" chip now sits in the page header whenever past bookings are hidden. Dismiss it to see all dates; your other filters stay in place.
A publish that failed no longer looks like it is still running.Website
Some publishes that stopped part-way stayed in your release history as "building" for ever. Opening the history now closes them and shows the reason instead. A publish that is genuinely still running is left alone.
You can publish before you have photographs.Website
Every page needed a header photo before the site could go live, so publishing waited on a photo shoot. Pages without one now use your brand colour, and an image description written in one language is used in the others until you translate it.
Publishing works again when your menu has prices.Website
Publish ended with "Something went wrong. Try again." for any restaurant whose menu carried a price, and nothing was ever built. It publishes normally now. Two price bugs were fixed with it: an amount could lose its last digit (12.5 instead of 12.50), and prices in riel were shown a hundred times too small.
The language buttons work on offer, event and article pages.Website
On a single offer, event or article, the language buttons pointed at an address that did not exist, so switching language led nowhere. Each button now goes to that same offer, event or article in the chosen language — and a language you have not translated the item into is no longer offered.
Page two of your blog, offers and events can be found.Website
Every page of a list declared itself a copy of the first one, so search engines would have indexed only page one — and the publish was refused because of it. Each page now has its own address, in each language.
Publishing is yours alone, and a failed publish says so.Website
Two restaurants publishing at the same time could interfere with each other: one press of Publish could stop the other's from running. Each publish now stays entirely its own. And when a publish does fail, it is shown as failed in your release history with the reason, instead of appearing to build forever.
The bookings count on a guest or company counts bookings, not tablesCore
A regular whose parties are seated across several tables looked far more frequent than they were: a single dinner on three tables added three to their bookings count, on the guests and companies lists and at the top of their page. Each party now counts once, so the number matches the booking history below it.
Paid bookings no longer appear as free tablesBooking Engine
The floor plan and booking checks now agree: confirmed paid and changed bookings hold their tables, while preauthorisation and bookings awaiting restaurant confirmation do not. When a party is seated without an expected end, the restaurant's meal duration is used.
Your site now has a proper "page not found" page.Website
A visitor following a broken or outdated link now lands on a friendly page in your site's own design, with your message and links back to your main pages. You can edit its heading and text in the website editor.
Add photos to your gallery from the editor.Website
Gallery groups now take pictures directly: pick from your image library or upload, frame the crop, write the description, and reorder or remove at any time.
A business details page, without retyping your restaurant.Website
Write the website's short description, cuisines, social and chat links in one place. Your address, phone, opening hours and booking link follow Restaurant settings automatically — one source, never two copies.
Write a whole blog article with AI.Website
In a new blog post, type a subject — "our new autumn menu" — and the AI drafts the title, the excerpt and the whole article, in all three languages. It lands in the form for you to review; nothing is published until you decide.
Blog posts get a visual editor.Website
The article body now looks like the article while you write it — real heading sizes, styled paragraphs and quotes, captions under their pictures. Drag blocks to reorder them, duplicate or remove from a hover toolbar, and insert a new block exactly where you want it with the "+" between blocks. Photo lists and content sections drag to reorder too.
Your restaurant's logo now appears on your website.Website
The logo you upload in Restaurant settings is used in the site header and footer. Nothing to upload twice — it is the same logo the rest of SpicyChef already uses. If you have not set one, your restaurant's name is shown instead, exactly as before.
Big parties book online without picking tablesBooking Engine
With multi-table bookings on, a party too big for any single table can now book without doing anything special: the tables to combine are worked out automatically and the guest simply sees that their party will be seated across several tables. Showing the floor plan so guests pick the tables themselves is a separate option — with both on, seating is still arranged automatically and picking on the plan is offered as an extra, never required.
Guests can pick their table on the floor plan for any bookingBooking Engine
Table choice on the floor plan is no longer reserved for parties that span several tables. With the new option on, every guest booking online can open the room's floor plan and pick where they sit — the plan only offers tables that seat their whole party, and skipping the choice keeps automatic assignment. Rooms without a drawn floor plan keep automatic assignment as before.
Add team members from your real team.Website
When adding someone to the website's team section, pick them from your restaurant's staff to prefill their name — then write the public role, biography and photo yourself.
Adding offers, events and articles is much simpler.Website
The form is wider and leads with the essentials — title, photo, summary, dates, price. Everything else waits behind "More options". The web address writes itself from the title, new items arrive visible and published, and an AI button can draft the empty text in all three languages from what you already typed.
Events at your restaurant know the venue already.Website
An event held at your restaurant shows your name, address and directions link automatically — no retyping. Fill in the venue fields only for events held elsewhere.
The live preview refreshes without jumping.Website
After each save the preview used to blank out, show a loading screen and jump back to the top. Now the old page stays on screen until the new one is ready, a small "Refreshing" pill is the only signal, and the page comes back exactly where you were scrolled.
Snappier navigation and clearer AI feedback.Website
Moving between website pages now shows the layout immediately while it loads. Picking a product for a chef's favourite sits right next to the source switch. And when the AI has nothing honest to write — an empty FAQ, for instance — it says it needs a starting point instead of claiming success.
Previews land where your content lives.Website
Editing reviews, FAQ, favourites or the team scrolls the preview straight to that section of the page. Switching between collections shows the layout instantly, the article editor reads as a centred page, and the width slider only appears for the desktop preview where it means something.
Offers, events and articles get a full row of share buttons.Website
There was a single plain-text "Share" link. There are now Facebook, X, LinkedIn, WhatsApp, email and copy-link buttons, shown as icons as the design intended.
A gentle note when a picked table is bigger than the party needsBooking Engine
When a guest picks a table with more seats than their party while a smaller table is still free — say two people on a table for four — the floor plan shows a short note pointing at the tighter option. It never blocks the choice, and each table's own minimum and maximum party size still decides which tables light up at all.
Table selection settings are now two clear switchesBooking Engine
In Booking engine settings, the single multi-table switch becomes two: "Allow multi-table bookings" and "Let guests pick their table on the floor plan". Each is available with its own plan feature, and only the floor-plan one needs a drawn plan. Restaurants that had the old option on keep both behaviours without doing anything.
Everything you can type now shows up on your site.Website
We filled every single field of every editor and checked each one on the published page — and fixed everything that did not show. Event details (venue, status, ticket link), blog article content and author bylines, legal pages, SEO settings, the contact page intro and the past-events page all render as written now.
Offer and event pages show their title again.Website
An offer's or event's own page rendered without its main heading. The title, tagline and short summary now sit at the top of the page, where the design always intended them.
Menus and page names are translated in every language.Website
The website's navigation showed technical page names like "Blog Index" in every language. The header, footer and breadcrumbs now use proper names — Home, About, Offers, Events, Gallery, Blog, Contact — translated into English, French and Khmer.
The footer no longer shows "None".Website
If you had not written a copyright line yet, the bottom of every page showed the word "None" with a broken link. The footer now falls back to a proper, translated default until you write your own.
The contact page shows its intro, map and directions link.Website
The introduction text under the contact page's heading never appeared, and the map section could miss its picture and "Get directions" link. All three render now when filled in.
Event pages show venue, schedule status and ticket links.Website
An event's venue block (name, address, link), its attendance mode, a notice when it is cancelled or postponed, and a ticket button pointing at the linked offer all render now. Previously an event with these details filled in could not be published at all.
Record pickers show your real content.Website
Choosing reviews, FAQs or favourites for the homepage, and pinning related offers, events or articles, showed empty lists. The pickers now list your records by name.
Offers with a price publish correctly.Website
Writing a price on an offer could stop the site from publishing. Prices typed with a comma or a dot both work now, and an empty price shows as "price on application".
The Design page shows your real colours.Website
Colour swatches showed black instead of the template's palette, and the preview beside your saving looked stuck. The swatches now show the real colours, and Save enables as soon as you change one.
Saving no longer trips over itself.Website
Editing quickly could show a "newer version" warning caused by two of the editor's own saves colliding. Saves now go one at a time, and a real conflict from a second tab still warns you before anything is overwritten.
Publishing survives a slow connection.Website
A publish that was actually finishing could be reported as failed when the connection dropped mid-build. The dashboard now retries and picks the build up where it left off.
Lists, dates and pickers behave.Website
Bulleted and numbered lists can grow past one item again. "Updated" dates disappeared from the forms — the site stamps them itself — and a published post dates itself, so creating no longer fails on an empty date. Every image problem now says what went wrong instead of "could not be added".
AI-written articles save, and drafts show in the preview.Website
A post written with the AI could refuse to save afterwards no matter what you changed — fixed. Error messages now point at the exact field and language. Opening a draft post shows its page in the preview before you publish, and each form starts with a reminder that only fields marked * are required.
Every collection creates, saves and previews reliably.Website
We exercised every collection end to end — create, edit, preview — and fixed what surfaced: a blog page that crashed when a post had no web address yet, gallery groups failing to create, and a cryptic server error when a web address was already taken (it now tells you, and reminds you archived items keep theirs).
Your site now looks the way it was designed to.Website
A large part of the site's styling was never applied. Page backgrounds were left to the visitor's browser, hero titles turned dark on their dark photo, the offers and events pages sat flush against the left edge, offer cards shrank to a sliver, and offer, event, legal and page-not-found pages had almost no styling at all. All of it now renders as designed.
Visitors can switch language on your site.Website
A site published in more than one language told search engines about its other languages but showed visitors no way to reach them — the language switcher never appeared. It is now in the header on every page, with the current language marked.
Links to your site show your photo when shared.Website
Unless you had set a social image by hand, sharing a page on Facebook, WhatsApp or X produced a card with no picture — and even where an image was set, the address was incomplete. Pages now fall back to their own main photo, and the address is always complete.
The menu page's booking banner and the header menu.Website
The reservation banner at the foot of your menu page had no heading, text or button to fill it — those fields did not exist to be written. You can write them now, along with a heading for the dish list. The header menu also carried two entries too many and wrapped onto a second line; it is back to one row.
A party split across tables counts as one booking in guest historyCore
On a guest's page, a party seated across several tables was listed once per table — one dinner looked like three separate bookings, each showing only its own table's share of the covers. It is now a single line showing every table the party sits on and the whole party's number of guests, exactly as the bookings list already showed it. Opening the line opens the booking. Company pages and the exported guest history read the same way.
See your changes live while you edit.Website
Page editors now show a live preview of your website next to the form. Your work saves automatically as you type, and the preview refreshes to show exactly what visitors will see — switch between desktop and mobile at any time. Nothing goes live until you publish.
Click a section in the preview to edit it.Website
In the live preview, hover any part of your page and click it. Click a heading, a paragraph, a photo or a button and you land in that exact field; click anywhere else in a section and that section of the form opens. Opening a form section also scrolls the preview to it, so the two sides always stay together.
Let AI write your empty fields.Website
Each page editor now offers to write its empty text fields for you. The draft uses only what it knows — your restaurant's name and what you have already written — never invented dishes, prices or claims. Fields fill in one by one with the preview updating live, and nothing goes on your site until you review and publish.
Adjust the framing of a placed picture.Website
Each placed picture now has an Adjust framing button. Drag the frame to show the part of the photo you want — it keeps the same shape, so it always fits the spot. A warning appears if the picture is too small to look sharp on large screens.
Collections get the live preview too.Website
Offers, events, blog posts, team members and the other collections now show the page they appear on beside the list, refreshed after every save. Every page editor also previews its own page correctly, and on smaller screens an Open preview button opens the draft in a new tab.
Fields show the template's suggested text.Website
An empty field now shows what the template will display in its place, and a Reset button next to a field you changed takes it back to the template's version.
Empty translations say what visitors will see.Website
When a French or Khmer field is still empty, a note under the field explains that the site shows the English text for now, so nothing looks broken while you translate.
Rolling back asks you to confirm first.Website
The rollback button now shows which build will go live and waits for your confirmation before switching. The previous live build stays available if you need to switch again.
Add pictures to your site.Website
Upload photos on the new Images page, then place one wherever your pages ask for a picture. Each photo is checked, cut to fit that spot, and prepared in several sizes so pages stay fast. Location data from phone photos is removed automatically.
Write blog posts block by block.Website
Build a post from paragraphs, headings, lists, quotes and pictures, and move any block up or down. Each piece is laid out by your template, so a post always looks like the rest of your site.
Publish your website.Website
Publish now builds every page of your site, puts the pictures in the sizes each spot needs, checks that no link leads nowhere, and only then makes it live. If something is not ready, it tells you which step stopped and your current site keeps serving untouched.
Every picture can be described for screen readers.Website
Write the description in each language, or mark a picture as decorative when the words beside it already say everything. A page with an undescribed picture can still be saved, but says so before you publish.
A simpler Website section.Website
The old page builder is gone: Navigation, Pages, Content, Content features and Media have been removed, along with the workflow band at the top of every website screen. Your pages, collections and images are edited in their own forms instead, and the menu on your site now follows the pages your template publishes, so it can never point somewhere that no longer exists.
Your website pages, section by section.Website
A page now opens as the list of sections a visitor sees, each one you can fold away. A folded section tells you whether it still needs something before you publish, and options you rarely change sit behind one link per section. The sidebar is grouped the same way: pages, collections, images, and settings.
Colours that actually change your site.Website
The design screen now offers exactly the colours, corner rounding and fonts your template uses, and each one starts on the template's own value rather than blank. Reset puts a colour back to that value, and your site keeps following the template if it is ever updated.
See and remove your images.Website
The Images page now shows each photo rather than only its file name, and you can delete one you no longer want. A photo a page still uses is kept and tells you how many places to remove it from first. Each photo is prepared in several sizes when you place it on a page, not when you upload it, and the page now says so.
Every photo says what it is doing.Website
A photo now tells you whether it is waiting to be placed, still preparing its sizes, ready, or stopped partway. If preparation stopped, you can start it again from the photo itself instead of re-uploading.
Buttons and links on your pages are now editable.Website
Give a button its text, choose the page it opens, and pick how it looks. Choosing a page uses that page's address in the language you are editing, so a French button stays on the French page.
Lists on your pages can be edited and reordered.Website
Reviews, FAQ, homepage rows, performers, content sections and pinned related items: add an entry, fill it in, and move it up or down. The page shows them in the order you set.
Discover SpicyChef without signing inCore
A new public Discover page presents the booking engine with an animated walkthrough — first as your guests see it, from party size to the confirmation email, then as your team runs it in the back office. A contact button lets a restaurant reach the SpicyChef team to subscribe.
The wiki and release notes are open to everyoneCore
The official SpicyChef wiki and the full release notes can now be read without an account, from the public Discover pages. The back-office wiki keeps your restaurant's private notes signed-in only.
Every content list is reachable from the sidebar.Website
Offers, events, blog posts, gallery groups, legal pages, team, chef favourites, reviews, FAQ, content rows, titled sections and SEO now each have their own place in the Website menu.
Moving a service to another table: tables grouped by room, in alphabetical orderPOS
The move-table list now groups the free tables by room and orders them alphabetically within it, with numbers read as numbers, so table 2 comes before table 10. Which tables can take the service has not changed.
The welcome page leads to DiscoverCore
The public welcome page now puts Discover front and centre: the main button opens the booking-engine walkthrough, the feature cards link to it, and the wiki and changelog sit in the header and footer.
The welcome page no longer opens on a blank screenCore
While the welcome page checks whether you are signed in, it now shows its layout with gentle placeholders instead of a blank screen, and the public pages show a loading state when moving between them.
Table lists are in alphabetical orderCore
Choosing a table — moving a party to another table, giving a booking to a service, picking a table for a new booking — now lists the tables in alphabetical order, with numbers read as numbers, so table 2 comes before table 10. On a floor with dozens of tables the one you are looking for is where you expect it. Which tables are offered has not changed.
Split a booking across tables from Change tableBooking Engine
Change table could only ever move a booking to one other table, so turning a party into a split-table booking — or bringing a split party back onto one joined table — meant cancelling and starting over. The floor plan now lets you pick several tables instead of one: the party is spread across them, largest table first, as a single booking. It works both ways and in one step, from a joined table to separate tables and back, and the booking keeps its guest, its notes and its history. Tables the party already occupies stay pickable, and the bar at the bottom shows the seats you have against the guests you need before you confirm. The guest is not emailed — which table a party sits at stays between you and your team.
Add-on names are fully readable in the add-ons popupBooking Engine
In the “Add add-ons” popup, long add-on names were cut off after a few characters. The popup is now wider, names wrap onto a second line instead of being clipped, and on a narrow screen each add-on takes its own line with its price, quantity and subtotal underneath.
One table is enough when splitting a bookingBooking Engine
On a new booking with “Split across several tables” ticked, picking a single table left the Create booking button greyed out with no explanation. The split is now dropped on its own: the booking is created on that one table, exactly like choosing a table without splitting, and a short note says so. With no table picked at all, the button stays clickable and tells you a table is missing instead of staying dead.
Seat or book a single selected table from the floor planBooking Engine
On the Service board, selecting tables required two of them: with one table selected, Seat now and Create booking both stayed greyed out. One table is now enough — Seat now seats the party on it as an ordinary walk-in, and Create booking opens the form pinned to that table. The selection bar says which of the two you are about to do.
Table colours on the guest floor plan no longer depend on your brand colourBooking Engine
When a guest picks their tables on the floor plan, free, selected and taken tables were coloured from your booking-engine brand colour. A restaurant with a red or orange brand showed free tables in red — the colour a guest reads as unavailable. Table states now use the same colours everywhere: green for free, blue for the tables you picked, grey for taken, with the legend and the seat counter to match. Your brand colour still colours the rest of the booking page — buttons, steps and links.
Adjust an add-on's price for one bookingBooking Engine
Owners and admins can now type a one-off unit price while adding an add-on to a booking — a comped cake, a negotiated group rate. The price applies to that booking only: your catalog price never changes, and the adjusted amount follows through to the draft invoice. Both changes are kept in the event log.
One-click views of today, tomorrow and the weekBooking Engine
A row of buttons now sits above the bookings list: Today, Tomorrow, This week, Needs confirmation, and Booked today. Each one shows how many bookings are behind it, so you can read the state of the service before clicking anything. Choosing one keeps your search and your sort order; clicking it again returns the list to its usual upcoming view.
Record how each booking reached youBooking Engine
Bookings taken by your team used to be labelled “System”, which said nothing about how the guest actually reached you. You can now pick a source — phone, email, walk-in, WhatsApp, or any channel you add yourself — while creating or editing a booking, and filter the bookings list by it. Manage the list under Booking engine › Booking sources: rename, reorder, or switch off the ones you do not use. Every booking already in your list has been relabelled, and bookings from your online widget keep showing as Booking engine.
Book several tables together from the floor plan's future viewBooking Engine
The floor plan's future view (Projection) now has the same Select tables mode as the live board: pick a day and time, select two or more tables — by button or Shift-click — and create one split-table booking for the whole party. The booking form opens already set to the day and time you were looking at.
Seat a party across several tables in one goBooking Engine
Select two or more tables on the live floor plan and choose Seat now: the party is seated immediately across them — no date or time to pick. Guests, expected stay, company, source and a note are all set in one dialog, and the table window opens straight after, ready to take the order.
Pick the table yourself when creating a bookingBooking Engine
The New booking form no longer has to leave the table to us. Once the date and time are set, choose a table on the floor plan — the same picker the split-table bookings use, showing what is free at that time — or leave it on automatic and the booking flow assigns one as before. A table you pick is held for the booking, and the form tells you if it stops being free after you change the time or the party size.
One order and one bill for a party on several tablesPOS
A party seated across several tables is now one service in the POS: every table shows the same party, the order and the bill are shared, and closing any of its tables finishes the whole party and frees all its tables at once.
Pages now use the whole width of your screenCore
Content used to stop at a fixed width, leaving empty margins on either side of wide tables on larger screens. It now stretches to fill the space available, so more columns fit before you have to scroll sideways.
The bookings table fills the screen and scrolls on its ownCore
The bookings table now takes the height left on screen, and only the table scrolls — up and down, and left to right. Its column headers stay in place while you scroll, and both scrollbars sit at the edge of the table instead of hiding below the page. The other tables will follow.
Release notes now have their own pageCore
The full list of what changed in SpicyChef used to sit at the bottom of the Wiki page. It now lives under Wiki › Release notes in the sidebar, grouped by release and by New, Improved and Fixed. The "What's new" button opens it too.
A clearer add-on picker with line subtotalsBooking Engine
When adding add-ons to a booking — on the booking page or while creating one — each line now shows the add-on, its unit price, the quantity and a subtotal, with the total underneath. What you see is exactly what will be charged.
See at a glance which bookings have notesBooking Engine
A small marker now appears next to the guest name in the bookings list when the booking carries a note — one from the guest, or one written by your team. Automatic notes are not marked, since every booking has those.
The split-table booking form starts on the nearest timeBooking Engine
Creating a split-table booking from the live floor plan no longer starts on an empty time field: the form pre-selects the available time closest to now. You can still change it — it is just one less thing to fill in.
The floor plan's booking popup takes a note and add-onsBooking Engine
Creating a booking on a free table straight from the floor plan's future view now offers the same extras as the main New booking form: an internal note for your team, and the space's add-ons — with the same one-off price adjustment for owners and admins.
The walk-in form takes a company, a source and a noteBooking Engine
Seating a walk-in from the live floor plan can now record the same details as the main booking form: an optional company link, how the guests reached you, and an internal note for your team.
Faster guest picking when seating from the floor planBooking Engine
The seating forms now search your whole guest book as you type — same search as the New booking form — and once a guest is picked the list folds away into a one-line card with a Change button. The forms are also more compact, so everything fits without scrolling.
Jump from a booking to its guest and its floor planBooking Engine
On a booking's page, the guest's name now opens their guest profile, and the space and table now open the floor plan on that room at the booking's own date and time — the same shortcut the company line already had.
No more stray scrollbar at the bottom of the windowCore
A horizontal scrollbar used to appear across the bottom of the window on every page, unrelated to the table's own. It is gone.
The draft invoice keeps the quoted add-on priceBooking Engine
Preparing the draft invoice used to re-read the current catalog price for each add-on, so a price changed after the booking was taken could silently change what the guest owed. The invoice now always uses the price the add-on was sold at.
The No-show button on the floor plan shows its labelBooking Engine
Marking a booking as a no-show from a table's popup used to show a technical code instead of the button's label in some cases. It now reads No-show in every language.
Choose how long past bookings stay editableCore
Restaurant settings → General information gains an editable history window: off, one to forty-eight hours after the booking ends, until the end of the booking day, or no limit at all. Inside the window your team can correct a past booking — covers, time, guest details — including bookings already marked completed or no-show. Cancelled and refused bookings stay read-only, and outside the window a past booking can still have its status updated.
A companies directory next to your guest bookBooking Engine
A new Companies section in the sidebar lists the companies your restaurant works with. Create, edit and archive companies with their tax ID, billing address and contact details, and open a company to see every booking linked to it. The same company record is used when a POS invoice is billed to a company.
Link a booking to a companyBooking Engine
When creating or editing a booking — from the bookings list or the floor plan — your team can now pick an optional company on top of the guest. The company shows on the booking detail and on the company's page; the guest profile itself stays independent of the company.
Merge duplicate companiesBooking Engine
If the same company was created twice, pick the one to keep and merge the duplicate into it. Its bookings and invoices move over, the duplicate is archived, and issued invoices keep the name they were printed with.
Create a multi-table booking from the live floor planBooking Engine
Shift-click physical tables on the Service floor plan, or use Select tables on touch devices, then open one split-table booking with those tables already selected. The booking form checks them again for the date and time you choose.
Your reception team can cancel bookings and fix guest detailsCore
Team members with the Staff role can now cancel a booking, refuse a booking request, and correct a guest's name, email or phone — the everyday work of whoever answers the phone. Cancelling and refusing still ask for a reason and are recorded in the event log with the team member's name. Merging duplicate guests stays with owners and admins.
Choose multiple tables directly on the floor planBooking Engine
When your team creates a booking across several tables, Choose tables opens the saved room plan in its own dialog, keeping the New booking form at a stable size. Free, selected and unavailable tables are easy to distinguish, selected seat numbers stay readable, and the plan can be fitted or zoomed.
Floor plans fit neatly in the table pickerBooking Engine
Table selection now shows the drawn room, tables and shapes without the unused editor canvas or automatic scrollbars. Guests can zoom, reset the fitted view, and move around an enlarged plan.
Table selection is easier to read on desktopBooking Engine
On computers, Free, Yours and Taken now sit beside the floor plan with the live seat-selection progress. Table seat numbers are larger and clearer, while phones keep the compact layout below the plan.
Free tables no longer show as unavailableBooking Engine
When creating a booking across several tables, tables that require a minimum number of guests were left out of the table list and reported as unavailable, even on a day with no bookings. Every genuinely free table of the room is now offered.
Floor-plan bookings keep every selected tableBooking Engine
When a chosen date and time makes one selected table unavailable, the booking form now keeps the full selection visible and explains which selection must change instead of showing one table less.
Rooms stay in the same order while bookingBooking Engine
A room no longer moves to the bottom of the list when a larger party needs to select several tables there.
One party payment appears on every sister bookingBooking Engine
For a booking across several tables, every sister booking now shows the same whole-party prepayment and add-ons. The payment is still stored only once, while each table keeps its own booking and POS service details.
Guests can pick their tables on the floor planBooking Engine
Turn on "Table selection" in Booking engine settings and guests booking online see your floor plan and tap the free tables they want — a big party can combine tables that seat everyone, including in spaces that require an online deposit. Needs a drawn floor plan.
One deposit secures every selected tableBooking Engine
When a large party combines tables in a space that requires prepayment, the guest now completes one secure payment for the whole party. Every selected table is held, confirmed, released or recovered together.
What's new stays in front of the appCore
The What's new window now stays above the search bar and app controls, and fits fully within the screen when opened.
Guest merge search finds every guestCore
Searching in the merge window now covers the restaurant's complete active guest directory, including guests beyond the first result page.
Adding add-ons to a booking now tells you what went wrongBooking Engine
Attaching add-ons sometimes failed with a bare "Couldn't add the add-ons". The message now names the reason — the add-on is no longer available for this booking, the quantity is outside what it allows, its price or tax rate is missing, or the booking is closed — and when the catalog has moved since the dialog opened, the list refreshes and drops the picks that no longer exist so your next try can go through.
Table selection now opens reliablyBooking Engine
Choosing a time now opens the floor plan even when the space requires prepayment. Rapidly changing the number of guests no longer makes the room list close and reopen with an older result.
Platform administration is now protected by a dedicated capability.Website
The platform area is available only to explicitly granted operators and remains separate from restaurant membership.
The contact page now uses a key-free static map.Website
The page no longer loads a third-party map runtime in the browser.
Add add-ons while creating a bookingBooking Engine
The New booking dialog now shows your bookable add-ons — a cake, a menu, a bottle — with prices from your catalog. Pick quantities while taking a phone booking and they are saved with the booking, exactly like when a guest books online.
Add or cancel add-ons on the booking pageBooking Engine
Every booking's page now has an "Add add-ons" button, so a guest calling back to add a cake takes seconds — no detour through the POS. An add-on that hasn't reached the POS yet can also be cancelled right there, with a confirmation.
Booking add-ons no longer need the POSBooking Engine
The add-ons section on the booking page now appears for restaurants using only the booking engine. The POS-specific buttons stay hidden until you use the POS.
Send late add-ons to the POS in one clickBooking Engine
If the draft invoice was already prepared and you add more add-ons afterwards, a new "Sync to POS" button pushes just the new ones — nothing is ever duplicated.
Choose which tables fill firstCore
On the Tables page, drag the tables of each space into the order you want online bookings to fill them — your best tables first. Party size still comes first: a small group keeps going to a table that fits, and the order decides only between tables that suit the group equally well.
Seat one party across several tablesCore
When no single table is big enough, tick "Split across several tables" in the New booking dialog and pick the exact tables — a party of 20 goes on two tables of 10 in one go. The bookings list and the booking page show the whole party together, with every table it sits on.
Guests can finish an interrupted paymentBooking Engine
When a booking payment does not go through, the guest now receives an email 15 minutes later with a link straight back to the payment step. Their table, date and extras are already filled in — they only have to pay.
Word the payment reminder yourselfBooking Engine
The reminder arrives as a ready-made template you can rewrite like any other guest email. Its send time is fixed, because the link stops working once the table is released.
See each table's fill order at a glanceCore
The tables list now shows a Fill order column, so you can check the order without opening the dialog — and sort by it to see exactly how the booking engine will fill the room.
Split-table parties share their notes and emailsCore
Open any table of a split-table party and you see the whole party’s internal notes and email history, and a note added from any table is visible on all of them. The "Change table" action now names the table it moves.
Moving a split-table party warns about busy tables right awayCore
When you pick a new time for a party seated across several tables, the booking editor immediately tells you whether every table of the party is free at that time — and names the busy one if not — instead of failing when you save.
Search shortcodes, and drag them where they belongBooking Engine
The shortcode list in the email template editor now folds into collapsible groups with a search box, so a shortcode takes one search instead of a long scroll. Drag one into the message to drop it exactly where you point, or keep clicking to insert it at the cursor.
Booking engine opens on a menu, with health on its own pageBooking Engine
Booking engine now opens on cards for Settings, Booking health and Booking add-ons, like every other section. The readiness checklist has moved off the top of the settings form onto its own Booking health page, so the settings you came for are visible straight away.
Last-minute bookings no longer blocked for your teamCore
The minimum lead time protects you from last-second online bookings — it was also stopping your own team from adding a 7pm booking at 6:30pm. Staff bookings made from the back office now skip that rule; online guests still see it.
Editing a split-table booking moves the whole partyCore
Changing the date, time or guest count on a party seated across several tables now updates every table together, and the guest receives a single update email. The party keeps its tables; guests are re-split across them automatically.
Starter guest emails now fire on the right eventBooking Engine
The reminder and cancellation emails a new restaurant starts with were both set to send on confirmation. They now send on their own event.
Change an add-on's settings after creating itBooking Engine
Booking add-ons could only be renamed once created — minimum and maximum quantity, the default quantity, how the quantity applies, the group and whether guests see the add-on were fixed at creation. The add-on row's Edit action now opens all of it in one dialog, and refuses impossible bounds before saving.