[{"data":1,"prerenderedAt":1789},["ShallowReactive",2],{"guides-count":3,"industry-industries_en-tourism-transport":4,"industry-slugs-tourism":186,"services-list-services_en":189,"work-list-work_en-all-any-all":755},7,{"id":5,"title":6,"accent":7,"body":8,"description":134,"extension":135,"facts":136,"faq":149,"icon":165,"key":166,"meta":167,"navigation":168,"order":169,"path":170,"seo":171,"seoDescription":172,"seoTitle":6,"services":173,"stem":177,"summary":178,"work":179,"__hash__":185},"industries_en/industries/tourism-transport.md","Software for tourism and passenger transport","cyan",{"type":9,"value":10,"toc":126},"minimark",[11,16,20,23,27,80,84,93,106,119,123],[12,13,15],"h2",{"id":14},"why-is-software-for-ferries-and-boat-tours-different","Why is software for ferries and boat tours different?",[17,18,19],"p",{},"Selling a ticket for a boat or a ferry sounds simple, until you add different lines and stops, seasonal timetables, daily capacity, stops closed for bad weather, international passengers and a share of sales coming through resellers and online platforms. Then there's the dock: queues right before departure, patchy coverage and a ticket that has to end up printed in the passenger's hand.",[17,21,22],{},"We've built software for this industry for several operators, so these rules are already part of how we design, not something to discover halfway through the project.",[12,24,26],{"id":25},"what-we-build-for-tourism-and-transport","What we build for tourism and transport",[28,29,30,38,44,50,56,62,68,74],"ul",{},[31,32,33,37],"li",{},[34,35,36],"strong",{},"Online ticketing"," with payments, PDF tickets with barcode or QR, cancellations and refunds, emails and SMS in the customer's language",[31,39,40,43],{},[34,41,42],{},"Office back-offices",": lines, stops, fares, timetable templates that generate the daily trips, closures by date, capacity and passenger manifests",[31,45,46,49],{},[34,47,48],{},"Point-of-sale apps on the docks"," on phones or tablets with a Bluetooth thermal printer, that work offline too",[31,51,52,55],{},[34,53,54],{},"Boarding validation"," by scanning QR codes",[31,57,58,61],{},[34,59,60],{},"Passenger apps",": timetables, tickets, notifications for delays and cancellations, live vehicle location",[31,63,64,67],{},[34,65,66],{},"Geolocated audio guides"," that start on their own when the vehicle enters an area, in several languages and available offline",[31,69,70,73],{},[34,71,72],{},"On-board staff apps",": passengers expected at each stop, who's on board and who's missing, messages to passengers",[31,75,76,79],{},[34,77,78],{},"Cycle tourism apps"," with 2D and 3D maps, elevation profiles and audio points of interest",[12,81,83],{"id":82},"some-projects-in-the-industry","Some projects in the industry",[17,85,86,87,92],{},"For a tourist boat operator we built the ",[88,89,91],"a",{"href":90},"/work/boat-ticketing","online ticketing platform",": direct sales in 4 languages, resellers through GetYourGuide and day-to-day operations on one platform the office team runs on its own.",[17,94,95,96,100,101,105],{},"For a ferry operator we built a ",[88,97,99],{"href":98},"/work/ferry-audio-guide","whole ecosystem"," - online shop, back-office, a passenger app with a GPS audio guide in 5 languages and staff apps - and the ",[88,102,104],{"href":103},"/work/ferry-pos-printer","point-of-sale app for the docks"," with thermal printing, which keeps selling without coverage.",[17,107,108,109,113,114,118],{},"For organised bus trips to concerts and events, a ",[88,110,112],{"href":111},"/work/event-bus-travel","passenger and crew app"," with live bus tracking and QR boarding, in use since 2023. And for a cycle tourism business, a ",[88,115,117],{"href":116},"/work/cycling-routes-app","routes app"," with a 3D flyover and audio stories along the way.",[12,120,122],{"id":121},"how-we-work-with-operators","How we work with operators",[17,124,125],{},"It starts with a free 30-minute call, ideally off-season: that's when there's time to design and test before the peaks. We scope a first fixed-price milestone on the problem that weighs most, put it in production and grow it season after season. You always talk directly to the senior engineers building the software.",{"title":127,"searchDepth":128,"depth":128,"links":129},"",2,[130,131,132,133],{"id":14,"depth":128,"text":15},{"id":25,"depth":128,"text":26},{"id":82,"depth":128,"text":83},{"id":121,"depth":128,"text":122},"Online ticketing, point-of-sale apps for the docks, passenger and staff apps, audio guides and live tracking for boat operators, ferries, tourist buses and cycle tourism.","md",[137,140,143,146],{"label":138,"value":139},"Projects in the industry","Boats, ferries, event buses, cycle tourism",{"label":141,"value":142},"Languages","Up to 5 per project",{"label":144,"value":145},"Also works","Offline, on the docks and at sea",{"label":147,"value":148},"In use since","2023",[150,153,156,159,162],{"q":151,"a":152},"Do you also handle sales from resellers and online platforms?","Yes. For a boat operator we integrated GetYourGuide through its API - availability, bookings, purchases and cancellations - into the same platform as direct sales. The same approach works for agencies, tour operators and other channels with an API.",{"q":154,"a":155},"What happens when there's no coverage on the docks or at sea?","The apps we build for this industry take it for granted. The dock point of sale stores every sale locally and syncs as soon as the network is back; the audio guide downloads tracks in advance and keeps working at sea; the bus app downloads the route for offline use.",{"q":157,"a":158},"Can we update timetables, fares and closures without a developer?","It's one of the requirements we start from. Lines, stops, fares, seasonal timetables, weather closures and audio guide content are managed from the back-office, and the apps update without going through the app stores.",{"q":160,"a":161},"Do you work with small or seasonal operators too?","Yes. We work in fixed-price milestones, so you can start with the core problem - online sales, for example - and add a point of sale, staff apps or an audio guide in the following seasons.",{"q":163,"a":164},"Are the apps multilingual?","Yes, tourism passengers are international. Our projects handle 4 to 5 languages, with emails, SMS and content translated into the customer's language.","material-symbols:directions-boat-outline","tourism",{},true,1,"/industries/tourism-transport",{"title":6,"description":134},null,[174,175,176],"custom-apps","web-apps","integrations","industries/tourism-transport","Online ticketing, point-of-sale apps, passenger and staff apps and geolocated audio guides for boats, ferries, tourist buses and cycle tourism.",[180,181,182,183,184],"boat-ticketing","ferry-audio-guide","ferry-pos-printer","event-bus-travel","cycling-routes-app","eOMq33C3Z9cLctbnxm9uOIDRN7Y-Nc4EF90VQqdkSVY",{"en":187,"it":188},"tourism-transport","turismo-e-trasporti",[190,353,498,624],{"id":191,"title":192,"accent":7,"body":193,"description":312,"extension":135,"facts":313,"faq":326,"icon":342,"key":174,"meta":343,"navigation":168,"order":169,"path":344,"seo":345,"seoDescription":172,"seoTitle":346,"stem":347,"summary":348,"work":349,"__hash__":352},"services_en/services/custom-app-development.md","Custom app and web app development",{"type":9,"value":194,"toc":303},[195,199,202,206,232,248,252,255,269,272,276,279,282,286,289,293,296,300],[12,196,198],{"id":197},"what-is-a-custom-app","What is a custom app?",[17,200,201],{},"A custom app is software built around the way your business works, not the other way round. It makes sense when off-the-shelf products force you into spreadsheets, double data entry or processes bent to fit the tool. We design and build the whole thing: the app your customers or staff use, the back-office you run it from, and the integrations with the systems you already have.",[12,203,205],{"id":204},"what-we-build","What we build",[28,207,208,214,220,226],{},[31,209,210,213],{},[34,211,212],{},"iOS and Android apps",", built in Flutter with one codebase for both platforms",[31,215,216,219],{},[34,217,218],{},"Web apps and platforms"," that run in the browser, for customers, resellers or internal staff",[31,221,222,225],{},[34,223,224],{},"Back-offices and dashboards"," to manage content, orders, users and data without calling a developer",[31,227,228,231],{},[34,229,230],{},"Recurring features"," we already know how to do well: user accounts, online payments, push notifications, QR codes, maps and GPS, offline mode with sync, printing to Bluetooth printers",[17,233,234,235,238,239,242,243,247],{},"A few real examples: a ",[88,236,237],{"href":111},"passenger and crew app for bus trips to events"," with live bus tracking and QR boarding, a ",[88,240,241],{"href":98},"geolocated audio guide for a ferry operator"," that keeps working at sea without coverage, an ",[88,244,246],{"href":245},"/work/coworking-access-app","app that works as the door key of a coworking space",", in use since 2021.",[12,249,251],{"id":250},"custom-app-or-off-the-shelf-software-which-is-better","Custom app or off-the-shelf software: which is better?",[17,253,254],{},"Ready-made software is the better deal when your process is standard and the product covers almost all of it. A custom app is worth it when:",[28,256,257,260,263,266],{},[31,258,259],{},"your process is your competitive edge and you don't want to bend it to a generic tool",[31,261,262],{},"you need to connect several systems (online sales, point of sale, inventory, CRM) that don't talk to each other today",[31,264,265],{},"you pay subscriptions for features you don't use, and miss exactly the ones you need",[31,267,268],{},"you want a branded experience for your customers or passengers, not a third-party platform's",[17,270,271],{},"In the free call we tell you honestly whether building makes sense or something already exists that fits.",[12,273,275],{"id":274},"how-we-work","How we work",[17,277,278],{},"It starts with a free 30-minute call. On day one we set goals, priorities and a fixed-price milestone plan. Within the first week you get a clickable prototype with your real data, to try with the people who'll use it. In the next two weeks we build the final version: tested, monitored and published on your servers or ones we pick together. Then fine-tuning, performance and handover of the code with documentation - or we stay on by your side.",[17,280,281],{},"You always talk directly to the senior engineers building your project: no account managers, no hand-offs to junior developers.",[12,283,285],{"id":284},"interface-design","Interface design",[17,287,288],{},"Design is part of the project, not an extra. We design clear, accessible interfaces for the people who will actually use them: a passenger with a phone on the dock, an operator at the desk with a queue in front, an administrator updating content at the end of the day.",[12,290,292],{"id":291},"technology","Technology",[17,294,295],{},"We pick mature technology that another team can maintain without depending on us: Flutter and Dart for mobile apps; Nuxt and Vue or .NET and Blazor for web apps and back-offices; ASP.NET Core, SQL Server, Supabase and Firebase for backends, data and notifications; Stripe for payments.",[12,297,299],{"id":298},"after-launch","After launch",[17,301,302],{},"An app in production needs looking after. We handle updates for new iOS and Android versions, monitoring, performance and new features. Several apps we've built have been in use and maintained for years.",{"title":127,"searchDepth":128,"depth":128,"links":304},[305,306,307,308,309,310,311],{"id":197,"depth":128,"text":198},{"id":204,"depth":128,"text":205},{"id":250,"depth":128,"text":251},{"id":274,"depth":128,"text":275},{"id":284,"depth":128,"text":285},{"id":291,"depth":128,"text":292},{"id":298,"depth":128,"text":299},"iOS and Android apps, web apps and back-offices designed around your processes, at a fixed price per milestone, with a first live version in a few weeks.",[314,317,320,323],{"label":315,"value":316},"First live version","3 weeks on average",{"label":318,"value":319},"Price","Fixed, per milestone",{"label":321,"value":322},"Platforms","iOS, Android and web",{"label":324,"value":325},"At handover","Tested, documented code",[327,330,333,336,339],{"q":328,"a":329},"How much does a custom app cost?","It depends on how many features you need, how many platforms (iOS, Android, web) and which systems have to be connected. That's why we don't bill by the hour - after the free call we scope a first milestone at a fixed price, so you know the cost before we start and there are no surprises at the end of the month.",{"q":331,"a":332},"How long until the app is live?","In the first week you get a clickable prototype with your real data. The first final version goes live in three weeks on average. Larger projects are split into further milestones, each with its own date and price.",{"q":334,"a":335},"Native app or web app?","If you need phone features such as GPS, Bluetooth, push notifications or working without a connection, an iOS and Android app is the right choice - we build it in Flutter, with one codebase for both. If the browser is enough, a web app costs less and works on every device right away. Often you need both, on the same platform.",{"q":337,"a":338},"Do we own the code at the end?","At the end of the project you can take over the code, tested and documented, and grow it with your own team. Or we can stay on for new features and maintenance. You decide.",{"q":340,"a":341},"Do you only work with companies in Italy?","No. Our registered office is in Sarzana, Italy, but the team works fully remote with companies in Italy and abroad, through shared Slack or Teams channels. When it helps, we come to your office.","material-symbols:deployed-code-outline",{},"/services/custom-app-development",{"title":192,"description":312},"Custom app development for businesses","services/custom-app-development","From first version to launch - iOS and Android apps, web apps and back-offices with user accounts, payments, dashboards and your data behind them.",[183,181,184,350,351],"coworking-access-app","local-delivery-platform","xP98l9Dd-TRId7v9ntXYib0uKThsPLDDLuNHangvTfE",{"id":354,"title":355,"accent":356,"body":357,"description":466,"extension":135,"facts":467,"faq":476,"icon":489,"key":176,"meta":490,"navigation":168,"order":128,"path":491,"seo":492,"seoDescription":172,"seoTitle":493,"stem":494,"summary":495,"work":496,"__hash__":497},"services_en/services/software-integrations.md","Software integrations between business systems, banks and services","lav",{"type":9,"value":358,"toc":459},[359,363,366,370,408,412,427,437,444,446,449,452,456],[12,360,362],{"id":361},"what-is-a-software-integration-for","What is a software integration for?",[17,364,365],{},"Many businesses already have good tools - online banking, a business system, a shared spreadsheet, a sales platform - but spend hours copying data from one to the other. Every manual step is lost time and a chance for errors. An integration makes the data move on its own, at the right moment, in the right format.",[12,367,369],{"id":368},"which-systems-can-be-connected","Which systems can be connected?",[28,371,372,378,384,390,396,402],{},[31,373,374,377],{},[34,375,376],{},"Banks",": business account transactions and documents that reach your system without downloading them by hand",[31,379,380,383],{},[34,381,382],{},"Business systems and custom software",", including ones built years ago by someone else",[31,385,386,389],{},[34,387,388],{},"Online payments",": Stripe, with separate accounts per business line, subscriptions, renewals and refunds handled through webhooks",[31,391,392,395],{},[34,393,394],{},"Sales platforms and resellers",": availability, bookings and cancellations synced both ways",[31,397,398,401],{},[34,399,400],{},"Google Workspace",": documents saved and organised in Google Drive, data and reports always up to date in Google Sheets",[31,403,404,407],{},[34,405,406],{},"Apps and devices in the field"," that work offline and sync with the central platform as soon as the connection is back",[12,409,411],{"id":410},"a-few-real-examples","A few real examples",[17,413,414,415,418,419,422,423,426],{},"For one client we connected their ",[34,416,417],{},"Qonto business account to their custom business system",", with documents synced to ",[34,420,421],{},"Google Drive"," and data to ",[34,424,425],{},"Google Sheets",": banking information lands where it's needed without anyone exporting and re-entering it.",[17,428,429,430,432,433,436],{},"For a tourist boat operator we integrated the ",[88,431,91],{"href":90}," with ",[34,434,435],{},"GetYourGuide"," through its API: resellers' availability, bookings, purchases and cancellations end up on the same platform as direct sales, with payments handled by Stripe.",[17,438,439,440,443],{},"For a ferry operator, the ",[88,441,442],{"href":103},"point-of-sale app on the docks"," stores every sale locally and syncs it with the back-office as soon as there's coverage: dock sales, online sales and B2B bookings all end up in the same place.",[12,445,275],{"id":274},[17,447,448],{},"It starts with a free 30-minute call where you tell us which systems you use and where time gets lost. Then we map the data flows - what goes where, when, and who owns it - and scope a first milestone at a fixed price. We build the integration, test it with real data and put it in production with monitoring, so you know right away if something's wrong.",[17,450,451],{},"You always talk directly to the senior engineers building it.",[12,453,455],{"id":454},"reliability-first","Reliability first",[17,457,458],{},"An integration that works 95% of the time is a problem, because the other 5% is found out late. That's why we design every connection with error handling, automatic retries and readable logs, and document how it works, so your team or another supplier can maintain it.",{"title":127,"searchDepth":128,"depth":128,"links":460},[461,462,463,464,465],{"id":361,"depth":128,"text":362},{"id":368,"depth":128,"text":369},{"id":410,"depth":128,"text":411},{"id":274,"depth":128,"text":275},{"id":454,"depth":128,"text":455},"We connect your software to banks, business systems, CRMs, payments and Google Workspace, so data moves between them on its own - no copy-paste, no double entry.",[468,471,474,475],{"label":469,"value":470},"Real examples","Qonto, Stripe, GetYourGuide, Google Drive and Sheets",{"label":472,"value":473},"Approach","Official APIs, webhooks and syncs",{"label":318,"value":319},{"label":324,"value":325},[477,480,483,486],{"q":478,"a":479},"Can you connect our system even if it's old or custom-built?","Almost always. If the system exposes an API we use it directly; if it doesn't, we work with exports, the database or shared files, or build a small service in between that acts as a bridge. In the call we tell you which route is the most reliable in your case.",{"q":481,"a":482},"What happens when one of the connected systems is down?","A serious integration has to plan for it. We design syncs so operations aren't lost - they're stored and retried when the system is back - and so errors are visible, not silent.",{"q":484,"a":485},"Are banking and customer data safe?","We use the providers' official APIs, credentials with only the permissions needed and encrypted connections. Access keys stay on your servers or on services we choose together, never in the code.",{"q":487,"a":488},"Do we have to replace the software we already use?","No, the goal is the opposite - getting the tools your team already knows to talk to each other, instead of replacing them.","material-symbols:api",{},"/services/software-integrations",{"title":355,"description":466},"Software integrations and APIs for businesses","services/software-integrations","We connect new software to the ERP, CRM, bank, payment systems and Google Workspace you already use, built to high security and reliability standards.",[180,182,181,351],"19qA6WvGqswaRs9cl0SDQKOycygx3tzU2mCvS_RMi-M",{"id":499,"title":500,"accent":501,"body":502,"description":588,"extension":135,"facts":589,"faq":599,"icon":612,"key":613,"meta":614,"navigation":168,"order":615,"path":616,"seo":617,"seoDescription":172,"seoTitle":618,"stem":619,"summary":620,"work":621,"__hash__":623},"services_en/services/ai-automation.md","AI and automation for businesses","pink",{"type":9,"value":503,"toc":581},[504,508,511,515,547,551,558,561,569,571,574,576,578],[12,505,507],{"id":506},"what-can-ai-do-for-a-business","What can AI do for a business?",[17,509,510],{},"There's a lot of talk about artificial intelligence, but for a business only one thing counts: saving time on a specific job without introducing errors. We build AI into your software where it brings a measurable benefit, and tell you honestly when a problem is better solved with traditional automation.",[12,512,514],{"id":513},"what-we-can-build","What we can build",[28,516,517,523,529,535,541],{},[31,518,519,522],{},[34,520,521],{},"Assistants that answer from your content",": for customers, guests or staff, drawing on your website, documents, manuals and procedures, in the language of whoever is writing",[31,524,525,528],{},[34,526,527],{},"Smart document search",": finding a contract clause, the right procedure or an answer in an archive of PDFs by asking a question, not guessing keywords",[31,530,531,534],{},[34,532,533],{},"Data extraction from documents",": reading invoices, orders, forms or emails and turning them into structured data in your business system",[31,536,537,540],{},[34,538,539],{},"Automation of repetitive work",": sorting requests, drafting replies, classifying and routing documents, with a person checking where needed",[31,542,543,546],{},[34,544,545],{},"Integration with your systems",": the AI reads and writes where you already work, instead of living in another app",[12,548,550],{"id":549},"kweendee-our-ai-concierge","Kweendee: our AI concierge",[17,552,553,557],{},[88,554,556],{"href":555},"/work/kweendee","Kweendee"," is our own product: an AI concierge for hotels and B&Bs that answers guests in over 50 languages, day and night, using only the property's own information.",[17,559,560],{},"The hotel keeps its information where it already is - website pages, Notion, Google Docs, PDFs and Word files - and Kweendee reads it, splits it into chunks and indexes it in a vector database on every sync. For each question it retrieves the relevant chunks and the model answers from those. Every conversation is logged, so staff see what guests ask and what's missing from the knowledge base.",[17,562,563,564,568],{},"It's the same architecture - called RAG, ",[565,566,567],"em",{},"retrieval-augmented generation"," - that we use for assistants and search over company documents, adapted to your content and your systems.",[12,570,275],{"id":274},[17,572,573],{},"It starts with a free 30-minute call. Together we pick a concrete, measurable use case and turn it into a fixed-price pilot: real data, real users, a result you can evaluate. If it works, we extend it; if it doesn't deliver the expected benefit, you know before investing too much.",[17,575,451],{},[12,577,292],{"id":291},[17,579,580],{},"We work with the leading language models through their APIs, vector databases such as pgvector on Supabase, LangChain to orchestrate retrieval and generation, and background job queues to index content without slowing the application down. We choose models and providers case by case, based on answer quality, cost and data requirements.",{"title":127,"searchDepth":128,"depth":128,"links":582},[583,584,585,586,587],{"id":506,"depth":128,"text":507},{"id":513,"depth":128,"text":514},{"id":549,"depth":128,"text":550},{"id":274,"depth":128,"text":275},{"id":291,"depth":128,"text":292},"Assistants that answer from your own documents, smart search across company data and automation of repetitive work, built into the software you already use.",[590,593,595,598],{"label":591,"value":592},"Our AI product","Kweendee, an AI concierge for hotels",{"label":472,"value":594},"Answers grounded in your data (RAG)",{"label":596,"value":597},"Starting point","A focused pilot project",{"label":318,"value":319},[600,603,606,609],{"q":601,"a":602},"Can the AI give wrong answers?","Yes, and it's the first problem to design for. That's why the assistant answers only from your content, says when it doesn't know something instead of making it up, and conversations are logged, so you see what people ask and where information is missing. Where a mistake is costly, a person has the final say.",{"q":604,"a":605},"Where does our data go?","We choose model providers, configuration and where the data is hosted together, based on GDPR constraints and your company's policies. We use providers' APIs under business terms and the data stays in your systems.",{"q":607,"a":608},"Do we need to replace the software we use?","No. AI works best inside the tools your team already uses - your business system, website, shared documents - rather than in yet another app to open.",{"q":610,"a":611},"Where should we start?","With a specific, measurable problem - the same questions arriving every day, documents searched by hand, data copied over. A focused pilot shows within a few weeks whether AI really saves time, before you extend it.","material-symbols:neurology-outline","ai",{},3,"/services/ai-automation",{"title":500,"description":588},"Custom AI and automation for businesses","services/ai-automation","Practical AI in your software - assistants, document search and automation of repetitive work.",[622],"kweendee","btex8besNbdENnrpPsCqJ5c0xtqRMiYebvS8kGj02kE",{"id":625,"title":626,"accent":627,"body":628,"description":722,"extension":135,"facts":723,"faq":732,"icon":745,"key":175,"meta":746,"navigation":168,"order":747,"path":748,"seo":749,"seoDescription":172,"seoTitle":750,"stem":751,"summary":752,"work":753,"__hash__":754},"services_en/services/custom-web-applications.md","Custom web applications and business software","yellow",{"type":9,"value":629,"toc":715},[630,634,637,639,676,678,685,697,703,705,708,710,712],[12,631,633],{"id":632},"when-do-you-need-custom-business-software","When do you need custom business software?",[17,635,636],{},"When daily work runs through spreadsheets, emails and programs that don't talk to each other, the problem isn't your staff: it's the tool. A custom web app puts the data and operations you need in one place, with your industry's rules already built in, and your team uses it from the browser, at the office or at home.",[12,638,205],{"id":204},[28,640,641,646,652,658,664,670],{},[31,642,643,645],{},[34,644,224],{}," to manage orders, customers, products, content and settings",[31,647,648,651],{},[34,649,650],{},"Customer and reseller portals",", with private access and data kept separate for each",[31,653,654,657],{},[34,655,656],{},"Online sales platforms"," with payments, subscriptions, PDF documents and automatic emails",[31,659,660,663],{},[34,661,662],{},"Roles and permissions",", so everyone sees and edits only what's theirs",[31,665,666,669],{},[34,667,668],{},"Reports and exports"," to PDF and Excel, for the office and the accountant",[31,671,672,675],{},[34,673,674],{},"Integrations"," with your bank, payments, Google Workspace and the systems you already use",[12,677,411],{"id":410},[17,679,680,681,684],{},"For a tourist boat operator we built a ",[88,682,683],{"href":90},"ticketing platform"," with a back-office where the office team sets up lines, stops, fares and seasonal timetables on its own, handles weather closures, cancellations and refunds, and checks order reports and exports - without calling a developer.",[17,686,687,691,692,696],{},[88,688,690],{"href":689},"/work/iiziguest","iiziguest",", our own product, is a subscription web app: a guide editor for hosts, automatic translations, maps with Google Places, subscriptions and renewals with Stripe, and an admin area. ",[88,693,695],{"href":694},"/work/iizimenu","iizimenu",", also ours, is the QR code digital menu for restaurants: a menu editor, six languages, allergens and plans with Stripe.",[17,698,439,699,702],{},[88,700,701],{"href":98},"online shop and back-office"," manage lines, timetables, closures, orders, translations and audio guide content, and feed the passenger and staff apps with the same data.",[12,704,275],{"id":274},[17,706,707],{},"It starts with a free 30-minute call. On day one we set goals, priorities and a fixed-price milestone plan. Within the first week you get a clickable prototype with your real data, to try with the people who'll use it. Then we build the final version, tested, monitored and published on your servers or ones we pick together.",[17,709,451],{},[12,711,292],{"id":291},[17,713,714],{},"Nuxt and Vue or .NET with Blazor for the interfaces; ASP.NET Core, SQL Server, Supabase or Firebase for backend and data; Stripe for payments. Mature, widely used technology that another team can maintain without depending on us.",{"title":127,"searchDepth":128,"depth":128,"links":716},[717,718,719,720,721],{"id":632,"depth":128,"text":633},{"id":204,"depth":128,"text":205},{"id":410,"depth":128,"text":411},{"id":274,"depth":128,"text":275},{"id":291,"depth":128,"text":292},"Web platforms, back-offices and business software built around your processes, which your team uses from the browser and runs on its own, without calling a developer.",[724,727,730,731],{"label":725,"value":726},"Used from","The browser, on any device",{"label":728,"value":729},"Includes","Roles, permissions, reports and exports",{"label":318,"value":319},{"label":324,"value":325},[733,736,739,742],{"q":734,"a":735},"Custom business software or an off-the-shelf one?","If your process is standard, an off-the-shelf product costs less and that's fine. Custom makes sense when you bend your work to fit the tool instead of the other way round, when you juggle several tools that don't talk to each other, or when you pay for features you don't use and miss the ones you need. In the call we'll tell you honestly.",{"q":737,"a":738},"Can we start with a few features and add more later?","That's how we work. The first milestone covers the core of the process and goes live in a few weeks; further features come in separate milestones, each with its own date and price, as your team uses it.",{"q":740,"a":741},"Where is it hosted?","On your servers or a cloud service we choose together. Either way the software is monitored and documented, and you can take it over whenever you want.",{"q":743,"a":744},"Will our team need training?","We design the interfaces with the people who'll use them, starting from a clickable prototype with your real data in the first week. If they understand the prototype, there's little training left to do.","material-symbols:dashboard-customize-outline",{},4,"/services/custom-web-applications",{"title":626,"description":722},"Custom web apps and business software","services/custom-web-applications","Web platforms, back-offices and business software built around your processes, used from the browser and run by your own team.",[180,690,695,181,351],"ACP6u9A2Wsj_YrlBMN9LdMBWKQlfoBqwFjFDqFzqHT0",[756,848,975,1066,1149,1280,1379,1510,1596,1680],{"id":757,"title":758,"body":759,"client":821,"cover":823,"description":825,"extension":135,"featured":168,"industry":826,"media":827,"meta":828,"navigation":168,"order":829,"outcome":830,"ownProduct":831,"path":90,"productStatus":172,"results":832,"screenshots":833,"seo":834,"seoDescription":172,"seoTitle":172,"services":835,"stack":839,"stem":845,"url":172,"year":846,"__hash__":847},"work_en/work/boat-ticketing.md","Online ticketing for a tourist boat operator",{"type":9,"value":760,"toc":816},[761,765,768,772,809,813],[12,762,764],{"id":763},"the-challenge","The challenge",[17,766,767],{},"Selling tickets for a boat service is harder than it looks: several lines and stops, seasonal timetables, a fixed daily capacity, stops that close for bad weather, international passengers and a share of sales coming through resellers. All of it had to live in one system that the office staff could run on their own.",[12,769,771],{"id":770},"what-we-built","What we built",[28,773,774,780,786,792,798,804],{},[31,775,776,779],{},[34,777,778],{},"Online purchase in 4 languages"," with Stripe checkout, separate Stripe accounts per line, and a PDF ticket with barcode sent by email",[31,781,782,785],{},[34,783,784],{},"Network configuration"," in the back-office: lines, stops, routes and fares, timetable templates and rules that generate the daily sailings automatically",[31,787,788,791],{},[34,789,790],{},"Operations tools",": stop closures by date, an orders calendar with capacity and allotments, boarding manifests",[31,793,794,797],{},[34,795,796],{},"Cancellations and refunds"," with reasons, emails and SMS translated into each customer's language and sent in the background",[31,799,800,803],{},[34,801,802],{},"GetYourGuide integration"," over API: availability, reservations, bookings and cancellations sync with the platform",[31,805,806,808],{},[34,807,662],{},", order reports and PDF exports for the office team",[12,810,812],{"id":811},"outcome","Outcome",[17,814,815],{},"Direct sales, reseller bookings and daily operations now run on a single platform. The office team configures new lines and seasons, handles weather closures and manages cancellations without asking a developer.",{"title":127,"searchDepth":128,"depth":128,"links":817},[818,819,820],{"id":763,"depth":128,"text":764},{"id":770,"depth":128,"text":771},{"id":811,"depth":128,"text":812},{"alias":822,"nda":168},"Tourist boat operator, Italy",{"accent":356,"icon":165,"scene":824},"route","One platform for direct online sales, resellers and day-to-day operations of a multi-line boat service.","Tourism & mobility","cover",{},0,"Sales, resellers and weather closures handled by the office team, without calling a developer.",false,[],[],{"title":758,"description":825},[836,837,838],"Full-stack product","Platform & API","Back-office",[840,841,842,843,844],".NET 8","Blazor WebAssembly","ASP.NET Core","SQL Server","Stripe","work/boat-ticketing",2026,"08s_N41gb3l9P-S970D3TkVBilh5iKITlkb-VH4qLkM",{"id":849,"title":850,"body":851,"client":954,"cover":956,"description":959,"extension":135,"featured":831,"industry":826,"media":827,"meta":960,"navigation":168,"order":169,"outcome":961,"ownProduct":831,"path":98,"productStatus":172,"results":962,"screenshots":963,"seo":964,"seoDescription":172,"seoTitle":965,"services":966,"stack":968,"stem":972,"url":172,"year":973,"__hash__":974},"work_en/work/ferry-audio-guide.md","Ticketing, staff apps and a geolocated audio guide for a ferry operator",{"type":9,"value":852,"toc":944},[853,855,858,860,863,868,871,903,907,914,918,921,925,939,941],[12,854,764],{"id":763},[17,856,857],{},"A ferry company serving several tourist lines wanted to sell more online, simplify work on the docks and give passengers a reason to keep the phone in hand during the trip: a guide that tells the story of the coast as the boat goes by, in the passenger's own language.",[12,859,771],{"id":770},[17,861,862],{},"Since 2023 we have designed and maintained the whole ecosystem: apps, web and back-office, all on the same platform.",[864,865,867],"h3",{"id":866},"geolocated-audio-guide","Geolocated audio guide",[17,869,870],{},"The heart of the passenger app (iOS and Android, built in Flutter).",[28,872,873,880,887,893,900],{},[31,874,875,876,879],{},"Every stop of the guide is a point on the map with its own ",[34,877,878],{},"trigger radius",": when the boat enters the area, the matching track starts",[31,881,882,883,886],{},"A live ",[34,884,885],{},"map with all points of interest"," and the passenger's position, plus a list of tracks grouped by line",[31,888,889,892],{},[34,890,891],{},"Offline download"," of tracks, so the guide keeps working at sea without coverage",[31,894,895,896,899],{},"Audio and text guide in ",[34,897,898],{},"5 languages"," (Italian, English, French, German, Spanish)",[31,901,902],{},"Tracks managed from the back-office: position, radius, playback order and translations for each line, without publishing a new app",[864,904,906],{"id":905},"passenger-app","Passenger app",[17,908,909,910,913],{},"Besides the guide: timetable search, ticket activation with QR code, and ",[34,911,912],{},"push notifications"," for timetable changes and cancellations.",[864,915,917],{"id":916},"online-shop-and-back-office","Online shop and back-office",[17,919,920],{},"Ticket sales with online payment and PDF tickets, plus a back-office to manage lines, timetables, closures, orders, translations and audio guide content.",[864,922,924],{"id":923},"staff-apps","Staff apps",[28,926,927,933],{},[31,928,929,932],{},[34,930,931],{},"Ticket validation",": an app that scans QR codes at boarding",[31,934,935,938],{},[34,936,937],{},"Sales and printing",": tickets sold on the dock with Bluetooth thermal printing, B2B orders, takings and expenses, synced with the central platform",[12,940,812],{"id":811},[17,942,943],{},"Online shop, docks and passengers now work on the same data. The audio guide turns the crossing into a guided tour, and the operator updates content and translations on their own, without going through the app stores.",{"title":127,"searchDepth":128,"depth":128,"links":945},[946,947,953],{"id":763,"depth":128,"text":764},{"id":770,"depth":128,"text":771,"children":948},[949,950,951,952],{"id":866,"depth":615,"text":867},{"id":905,"depth":615,"text":906},{"id":916,"depth":615,"text":917},{"id":923,"depth":615,"text":924},{"id":811,"depth":128,"text":812},{"alias":955,"nda":168},"Passenger ferry company, Italy",{"accent":7,"icon":957,"scene":958},"material-symbols:headphones-outline","audio","A connected ecosystem for passenger ferries - online shop, back-office, a passenger app with a GPS audio guide, and apps for staff on the docks.",{},"Online shop, docks and passengers on the same data; audio guide updated without the app stores.",[],[],{"title":850,"description":959},"Ferry ticketing & GPS audio guide app",[967,837,838],"Mobile apps",[969,970,841,842,843,971],"Flutter",".NET","Firebase","work/ferry-audio-guide",2023,"pwX9t3YFVoeF64V3Mw0Ns0p8BnrR2IYyp5T-dJMzumE",{"id":976,"title":977,"body":978,"client":1046,"cover":1047,"description":1050,"extension":135,"featured":831,"industry":826,"media":827,"meta":1051,"navigation":168,"order":128,"outcome":1052,"ownProduct":831,"path":103,"productStatus":172,"results":1053,"screenshots":1054,"seo":1055,"seoDescription":172,"seoTitle":1056,"services":1057,"stack":1058,"stem":1063,"url":172,"year":1064,"__hash__":1065},"work_en/work/ferry-pos-printer.md","Point-of-sale app with thermal printing for ferry ticket desks",{"type":9,"value":979,"toc":1041},[980,982,985,987,998,1036,1038],[12,981,764],{"id":763},[17,983,984],{},"Ticket desks on the docks sold tickets with standalone machines that knew nothing about online sales, B2B bookings or the day's takings. Coverage on the waterfront is unreliable, queues form right before departure, and every sale has to end with a printed ticket in the passenger's hand.",[12,986,771],{"id":770},[17,988,989,990,993,994,997],{},"An Android and iOS app that turns a phone or tablet paired with a ",[34,991,992],{},"Bluetooth thermal printer"," into a full ticket desk. It is part of the ",[88,995,996],{"href":98},"ferry ecosystem"," we built for the same operator.",[28,999,1000,1006,1012,1018,1024,1030],{},[31,1001,1002,1005],{},[34,1003,1004],{},"Fast sale and print",": ticket catalogue filtered by desk and route, favourite tickets, cash or card, departure time and QR code printed on the ticket",[31,1007,1008,1011],{},[34,1009,1010],{},"Offline first",": every sale is saved in a local SQLite database and synced with the back-office when the connection comes back, so the desk never stops",[31,1013,1014,1017],{},[34,1015,1016],{},"B2B and groups",": tickets for agencies, drivers and guides, plus retrieval of tour-operator group bookings to print their tickets on boarding",[31,1019,1020,1023],{},[34,1021,1022],{},"Audio guide codes"," printed on the ticket, to unlock the guide in the passenger app",[31,1025,1026,1029],{},[34,1027,1028],{},"Cash management",": takings and expenses, end-of-day closing, reports per desk and reprint of lost tickets",[31,1031,1032,1035],{},[34,1033,1034],{},"Control",": each device registered as a cash desk, admin area, print logs and automatic printer reconnection",[12,1037,812],{"id":811},[17,1039,1040],{},"Dock sales, online sales and B2B bookings now end up in the same place. Staff sell and print in seconds even without coverage, and the office sees the takings of every desk without collecting receipts by hand.",{"title":127,"searchDepth":128,"depth":128,"links":1042},[1043,1044,1045],{"id":763,"depth":128,"text":764},{"id":770,"depth":128,"text":771},{"id":811,"depth":128,"text":812},{"alias":955,"nda":168},{"accent":627,"icon":1048,"scene":1049},"material-symbols:print-outline","pos","A tablet and phone app for selling and printing tickets on the docks, that keeps working offline and syncs every sale with the central platform.",{},"Dock staff sell and print in seconds, even offline; the office sees takings without collecting receipts.",[],[],{"title":977,"description":1050},"Ferry ticket POS app with thermal printing",[967,837],[969,1059,1060,1061,1062],"Dart","SQLite","BLoC","Bluetooth printing","work/ferry-pos-printer",2024,"UENP5hlR5x7OL3BaYqSpf0dQ0NY_a_sOpj-Vt_YXvcU",{"id":1067,"title":1068,"body":1069,"client":1129,"cover":1131,"description":1134,"extension":135,"featured":831,"industry":1135,"media":827,"meta":1136,"navigation":168,"order":615,"outcome":1137,"ownProduct":831,"path":245,"productStatus":172,"results":1138,"screenshots":1139,"seo":1140,"seoDescription":172,"seoTitle":172,"services":1141,"stack":1143,"stem":1146,"url":172,"year":1147,"__hash__":1148},"work_en/work/coworking-access-app.md","Smart access app for a coworking space",{"type":9,"value":1070,"toc":1124},[1071,1073,1076,1078,1081,1119,1121],[12,1072,764],{"id":763},[17,1074,1075],{},"A coworking space needed to control who gets in and who uses the network, without badges to print, Wi-Fi passwords passed around or staff checking every entrance. Everything had to run from the phone members already carry.",[12,1077,771],{"id":770},[17,1079,1080],{},"An iOS and Android app, built in Flutter, that works as the member's digital pass.",[28,1082,1083,1089,1095,1101,1107,1113],{},[31,1084,1085,1088],{},[34,1086,1087],{},"Open the door with the phone",": members scan the QR code at the entrance and the door unlocks, only if their membership is active",[31,1090,1091,1094],{},[34,1092,1093],{},"One-tap Wi-Fi access",": the app authenticates the member on the space's network, with no shared passwords",[31,1096,1097,1100],{},[34,1098,1099],{},"Second device",": members can connect a laptop or tablet by scanning a QR code from the app, and disconnect it when they want",[31,1102,1103,1106],{},[34,1104,1105],{},"Device-bound accounts",": each account is tied to the member's phone. New registrations and phone changes are confirmed at the desk with a code shown in the app, so passes can't be shared",[31,1108,1109,1112],{},[34,1110,1111],{},"Membership status"," driving the experience: active, expired (with renewal screen), pending activation or new terms to accept",[31,1114,1115,1118],{},[34,1116,1117],{},"Bookings and news"," from the space, privacy and terms consent management, profile and account deletion",[12,1120,812],{"id":811},[17,1122,1123],{},"Entrance and network are handled by the app: the desk only steps in to activate new members, and access always follows the membership status. The app has been in use and maintained since 2021.",{"title":127,"searchDepth":128,"depth":128,"links":1125},[1126,1127,1128],{"id":763,"depth":128,"text":764},{"id":770,"depth":128,"text":771},{"id":811,"depth":128,"text":812},{"alias":1130,"nda":168},"Coworking space, Italy",{"accent":501,"icon":1132,"scene":1133},"material-symbols:door-open-outline","access","The members' app becomes the key to the space - it opens the door, connects to the Wi-Fi and manages membership, bookings and news.","Coworking",{},"Entrance and network run through the app: the desk only steps in for new members. In use since 2021.",[],[],{"title":1068,"description":1134},[1142],"Mobile app",[969,1059,1144,1145],"REST API","Firebase Crashlytics","work/coworking-access-app",2021,"WVaHGTCY1oRa01qezgheFIT6juxRCmTY0UHpgf-9_rs",{"id":1150,"title":1151,"body":1152,"client":1261,"cover":1263,"description":1266,"extension":135,"featured":168,"industry":1267,"media":827,"meta":1268,"navigation":168,"order":747,"outcome":1269,"ownProduct":831,"path":111,"productStatus":172,"results":1270,"screenshots":1271,"seo":1272,"seoDescription":172,"seoTitle":1273,"services":1274,"stack":1275,"stem":1278,"url":172,"year":973,"__hash__":1279},"work_en/work/event-bus-travel.md","Passenger and crew app for bus trips to concerts and events",{"type":9,"value":1153,"toc":1253},[1154,1156,1159,1161,1164,1168,1206,1210,1248,1250],[12,1155,764],{"id":763},[17,1157,1158],{},"Organised bus trips to concerts mean passengers picked up at different stops, a coach that has to reach the venue, and a return trip late at night. Passengers want to know where their bus is; the escorts on board need to know who has boarded, who is missing and how to reach everyone, often with poor coverage on the road.",[12,1160,771],{"id":770},[17,1162,1163],{},"A single iOS and Android app, built in Flutter, with two modes: one for passengers and one for the crew.",[864,1165,1167],{"id":1166},"for-passengers","For passengers",[28,1169,1170,1176,1182,1188,1194,1200],{},[31,1171,1172,1175],{},[34,1173,1174],{},"Events, artists and stops",": find the trip for your concert and the nearest departure point",[31,1177,1178,1181],{},[34,1179,1180],{},"QR ticket"," always at hand for boarding",[31,1183,1184,1187],{},[34,1185,1186],{},"Live bus position"," on the map, with expected arrival at your stop",[31,1189,1190,1193],{},[34,1191,1192],{},"Parking info at the venue",": where the coach waits after the show, with position and photo",[31,1195,1196,1199],{},[34,1197,1198],{},"Loyalty points and partner discounts",", redeemable from the app",[31,1201,1202,1205],{},[34,1203,1204],{},"Push notifications"," from the crew, OTP login and account management",[864,1207,1209],{"id":1208},"for-the-on-board-escorts","For the on-board escorts",[28,1211,1212,1218,1224,1230,1236,1242],{},[31,1213,1214,1217],{},[34,1215,1216],{},"Stop-by-stop trip"," for outbound and return, with the list of passengers expected at each stop",[31,1219,1220,1223],{},[34,1221,1222],{},"QR boarding",": scan the ticket and the passenger is marked as on board, with live counts of boarded and missing passengers",[31,1225,1226,1229],{},[34,1227,1228],{},"Background GPS tracking"," that shares the bus position with passengers, plus a \"break\" mode for rest stops",[31,1231,1232,1235],{},[34,1233,1234],{},"Coach parking"," at the venue saved with position and photo, and one tap to start the navigator",[31,1237,1238,1241],{},[34,1239,1240],{},"Messages to passengers"," from ready-made templates, sent as push notifications",[31,1243,1244,1247],{},[34,1245,1246],{},"Offline route download"," and an end-of-trip report",[12,1249,812],{"id":811},[17,1251,1252],{},"Passengers and crew finally share the same picture of the trip: who is on board, where the bus is, where it will be waiting after the show. The app has been in use since 2023.",{"title":127,"searchDepth":128,"depth":128,"links":1254},[1255,1256,1260],{"id":763,"depth":128,"text":764},{"id":770,"depth":128,"text":771,"children":1257},[1258,1259],{"id":1166,"depth":615,"text":1167},{"id":1208,"depth":615,"text":1209},{"id":811,"depth":128,"text":812},{"alias":1262,"nda":168},"Bus travel operator for concerts and events, Italy",{"accent":7,"icon":1264,"scene":1265},"material-symbols:directions-bus-outline","bus","One app for both sides of the trip - passengers follow their bus live and board with a QR code, on-board escorts run every stop from their phone.","Travel & events",{},"Passengers and crew see in real time who's on board and where the bus is waiting. In use since 2023.",[],[],{"title":1151,"description":1266},"Event bus travel app: live tracking, QR boarding",[1142],[969,1059,1060,1276,1277],"Firebase Cloud Messaging","OpenStreetMap","work/event-bus-travel","xwAyZukd0IMAwrLWOeTCoYyWM3AToJrYTfUsD7WUryg",{"id":1281,"title":1282,"body":1283,"client":1360,"cover":1362,"description":1365,"extension":135,"featured":168,"industry":1366,"media":827,"meta":1367,"navigation":168,"order":1368,"outcome":1369,"ownProduct":831,"path":116,"productStatus":172,"results":1370,"screenshots":1371,"seo":1372,"seoDescription":172,"seoTitle":1373,"services":1374,"stack":1375,"stem":1377,"url":172,"year":846,"__hash__":1378},"work_en/work/cycling-routes-app.md","Cycling routes app with 3D maps and audio points of interest",{"type":9,"value":1284,"toc":1355},[1285,1287,1290,1292,1295,1350,1352],[12,1286,764],{"id":763},[17,1288,1289],{},"A cycle tourism company wanted to bring its routes to riders' phones: not just a GPX file to download, but an app to choose the right ride, understand how hard it is before setting off, and discover what is worth seeing along the way.",[12,1291,771],{"id":770},[17,1293,1294],{},"An iOS and Android app built in Flutter, designed from scratch with a BLoC architecture.",[28,1296,1297,1303,1312,1322,1328,1337,1343],{},[31,1298,1299,1302],{},[34,1300,1301],{},"Route catalogue"," with photo, distance, duration, difficulty, climbing and descent, plus difficulty filters and search by province",[31,1304,1305,1308,1309],{},[34,1306,1307],{},"Route detail"," with description and ",[34,1310,1311],{},"elevation profile",[31,1313,1314,1317,1318,1321],{},[34,1315,1316],{},"2D and 3D maps"," on Mapbox with custom styles, and a ",[34,1319,1320],{},"3D flyover"," that circles the route before you set off",[31,1323,1324,1327],{},[34,1325,1326],{},"Audio points of interest",": tap a point on the map and listen to its story",[31,1329,1330,1333,1334],{},[34,1331,1332],{},"Ride mode",": the map follows your GPS position along the track, and every ride ends up in your ",[34,1335,1336],{},"route history",[31,1338,1339,1342],{},[34,1340,1341],{},"Accounts"," with email confirmation, activation code, password recovery and account deletion",[31,1344,1345,1346,1349],{},"Consent and location permission management, ",[34,1347,1348],{},"4 languages"," (Italian, English, French, Spanish) and a dark theme built for outdoor use",[12,1351,812],{"id":811},[17,1353,1354],{},"Riders find the right route, preview it in 3D and ride it with the map in their pocket, while the company publishes routes and points of interest from its own platform without releasing new app versions.",{"title":127,"searchDepth":128,"depth":128,"links":1356},[1357,1358,1359],{"id":763,"depth":128,"text":764},{"id":770,"depth":128,"text":771},{"id":811,"depth":128,"text":812},{"alias":1361,"nda":168},"Cycle tourism company, Italy",{"accent":627,"icon":1363,"scene":1364},"material-symbols:directions-bike","elevation","An app to discover cycling routes, preview them in 3D and ride them with GPS, with audio stories at every point of interest.","Outdoor & cycle tourism",{},5,"New routes and points of interest go live from the platform, without an app update.",[],[],{"title":1282,"description":1365},"Cycling routes app with 3D maps & audio guide",[1142],[969,1059,1061,1376,1144],"Mapbox","work/cycling-routes-app","AXdNYvueu1cSKLm6PZ2QMgCyLQedtUUd_0p_9vl7OM0",{"id":1380,"title":1381,"body":1382,"client":1487,"cover":1489,"description":1492,"extension":135,"featured":831,"industry":1493,"media":827,"meta":1494,"navigation":168,"order":1495,"outcome":1496,"ownProduct":831,"path":1497,"productStatus":172,"results":1498,"screenshots":1499,"seo":1500,"seoDescription":1501,"seoTitle":1502,"services":1503,"stack":1504,"stem":1507,"url":172,"year":1508,"__hash__":1509},"work_en/work/local-delivery-platform.md","Local delivery platform, with an admin dashboard and a driver app",{"type":9,"value":1383,"toc":1482},[1384,1386,1389,1392,1394,1397,1402,1416,1421,1441,1446,1477,1479],[12,1385,764],{"id":763},[17,1387,1388],{},"A business that sells online delivers orders locally with its own drivers. Orders already came in through its platform, but everything that happened next - deciding who delivers what, getting addresses to the drivers, knowing where each delivery stands and keeping the customer informed - was handled by hand.",[17,1390,1391],{},"It needed a tool that started from the orders the business already received, without changing its sales platform, and gave the admins real-time control of deliveries.",[12,1393,771],{"id":770},[17,1395,1396],{},"Three connected parts: the integration with the client's platform, a dashboard for the admins and an app for the drivers.",[17,1398,1399],{},[34,1400,1401],{},"Integration and automations",[28,1403,1404,1410],{},[31,1405,1406,1409],{},[34,1407,1408],{},"Orders arrive on their own",": we connect to the client's service, and orders to deliver enter the system with no re-keying",[31,1411,1412,1415],{},[34,1413,1414],{},"Customer notifications",": automatic messages at every change in the delivery status",[17,1417,1418],{},[34,1419,1420],{},"Admin dashboard",[28,1422,1423,1429,1435],{},[31,1424,1425,1428],{},[34,1426,1427],{},"Assign orders to drivers",", and reassign them when needed",[31,1430,1431,1434],{},[34,1432,1433],{},"Live driver positions"," on the map, together with the status of each delivery",[31,1436,1437,1440],{},[34,1438,1439],{},"History and reports"," of deliveries by day and by driver",[17,1442,1443],{},[34,1444,1445],{},"Driver app (iOS and Android, built with Flutter)",[28,1447,1448,1454,1459,1465,1471],{},[31,1449,1450,1453],{},[34,1451,1452],{},"List of assigned orders",", with addresses and delivery details",[31,1455,1456,1458],{},[34,1457,1204],{}," when a new order comes in",[31,1460,1461,1464],{},[34,1462,1463],{},"One-tap navigation"," to the address",[31,1466,1467,1470],{},[34,1468,1469],{},"Delivery status"," updated by the driver and seen at once in the dashboard",[31,1472,1473,1476],{},[34,1474,1475],{},"Proof of delivery"," with a photo or signature",[12,1478,812],{"id":811},[17,1480,1481],{},"Orders, drivers and deliveries are managed from one place: admins see in real time who is delivering what and where, drivers have everything they need on their phone, and customers know when their order will arrive. The platform has been in use since 2025.",{"title":127,"searchDepth":128,"depth":128,"links":1483},[1484,1485,1486],{"id":763,"depth":128,"text":764},{"id":770,"depth":128,"text":771},{"id":811,"depth":128,"text":812},{"alias":1488,"nda":168},"E-commerce with local delivery, Italy",{"accent":356,"icon":1490,"scene":1491},"material-symbols:local-shipping-outline","delivery","E-commerce orders flow straight into a dashboard where they are assigned to drivers, who deliver with a dedicated app. Everything updates in real time.","E-commerce & local delivery",{},5.5,"Orders, drivers and deliveries in one place, updated in real time. In use since 2025.","/work/local-delivery-platform",[],[],{"title":1381,"description":1492},"Local delivery management for an e-commerce business - integration with existing orders, a real-time admin dashboard and an iOS and Android app for drivers.","Local delivery software and driver app",[967,837,838],[969,1059,1505,1506,1144],"Nuxt","Vue","work/local-delivery-platform",2025,"jCDpZ_PXqVi-zXpQjOvwzVhHmr6ZrYZML9ivl3gg6z0",{"id":1511,"title":1512,"body":1513,"client":1567,"cover":1569,"description":1571,"extension":135,"featured":831,"industry":1572,"media":1573,"meta":1574,"navigation":168,"order":1575,"outcome":1576,"ownProduct":168,"path":555,"productStatus":1577,"results":1578,"screenshots":1579,"seo":1583,"seoDescription":172,"seoTitle":172,"services":1584,"stack":1586,"stem":1594,"url":172,"year":846,"__hash__":1595},"work_en/work/kweendee.md","Kweendee - an AI concierge for hotels and B&Bs",{"type":9,"value":1514,"toc":1562},[1515,1517,1520,1522,1525,1557,1559],[12,1516,764],{"id":763},[17,1518,1519],{},"Hotel and B&B guests ask the same things at any hour and in any language: is breakfast still on, when is check-out, where to park, where to eat tonight. At night the reception is small or closed, and during the day these questions take time away from the guests who really need a person.",[12,1521,771],{"id":770},[17,1523,1524],{},"Kweendee, our own product: an AI concierge that answers guests using only the property's own information.",[28,1526,1527,1533,1539,1545,1551],{},[31,1528,1529,1532],{},[34,1530,1531],{},"Dashboard for the property",": create a concierge, give it a name and the colours of the hotel, and keep everything in one place behind a login",[31,1534,1535,1538],{},[34,1536,1537],{},"A knowledge base from what the hotel already has",": Kweendee learns from the pages of the hotel's website, Notion, Google Docs, PDFs and Word files. It reads the content, splits it into chunks and indexes it in a vector database, in the background, every time a source is synced",[31,1540,1541,1544],{},[34,1542,1543],{},"Answers grounded in the hotel's content",": each question retrieves the relevant chunks and the model answers from those, in the guest's language, with the conversation history as context",[31,1546,1547,1550],{},[34,1548,1549],{},"Chat widget for any website",": one script tag adds the concierge to the hotel's site, with a standalone page for links and QR codes",[31,1552,1553,1556],{},[34,1554,1555],{},"Conversation logs",": every session is saved before the answer is generated, so staff can read what guests asked and spot what's missing from the knowledge base",[12,1558,812],{"id":811},[17,1560,1561],{},"The hotel keeps its information where it already is (website, Notion, documents) and the concierge stays in sync with it. Guests get an answer straight away, at two in the morning too, and the reception handles only what needs a person. Kweendee is getting ready for launch, with the waitlist open to hotels and B&Bs.",{"title":127,"searchDepth":128,"depth":128,"links":1563},[1564,1565,1566],{"id":763,"depth":128,"text":764},{"id":770,"depth":128,"text":771},{"id":811,"depth":128,"text":812},{"name":556,"alias":1568,"nda":831},"Hospitality SaaS, Italy",{"accent":627,"icon":1570},"material-symbols:room-service-outline","A concierge that answers guests in over 50 languages, day and night, trained on each property's own information.","Hospitality","screenshots",{},6,"Guests get an answer straight away, even at 2 a.m.; reception handles only what needs a person.","Waitlist open",[],[1580],{"src":1581,"alt":1582},"/img/work/kweendee/01.webp","Kweendee landing page: the hero and a guest chat with the concierge at 2 am",{"title":1512,"description":1571},[836,1585,837],"AI & RAG",[1505,1506,1587,1588,1589,1590,1591,1592,1593],"Supabase","pgvector","LangChain","OpenAI","Notion API","Inngest","Tailwind CSS","work/kweendee","zy_6vy-aXXxZ61Hf9D0_nT7L-3YIQRPKhcDSFBPG2oA",{"id":1597,"title":1598,"body":1599,"client":1659,"cover":1660,"description":1662,"extension":135,"featured":831,"industry":1572,"media":1573,"meta":1663,"navigation":168,"order":3,"outcome":1664,"ownProduct":168,"path":689,"productStatus":1665,"results":1666,"screenshots":1667,"seo":1671,"seoDescription":172,"seoTitle":172,"services":1672,"stack":1673,"stem":1677,"url":1678,"year":846,"__hash__":1679},"work_en/work/iiziguest.md","iiziguest - the digital guest guide for B&Bs",{"type":9,"value":1600,"toc":1654},[1601,1603,1606,1608,1611,1649,1651],[12,1602,764],{"id":763},[17,1604,1605],{},"B&B hosts answer the same questions over and over: the Wi-Fi password, how to check in, where to park, where to eat. Often by message, often at 11 pm. Paper guides go out of date and guests don't read them, and nobody wants to download an app for a three-night stay.",[12,1607,771],{"id":770},[17,1609,1610],{},"iiziguest, our own product: a digital guide for each property, which guests open from a QR code in the room or a link sent before arrival. No app, no login.",[28,1612,1613,1619,1625,1631,1637,1643],{},[31,1614,1615,1618],{},[34,1616,1617],{},"Guide editor for the host",": sections with icons and colour themes, check-in steps with photos, house rules, Wi-Fi with one-tap copy, and a live mobile preview. Ready-made templates get a guide online in about ten minutes",[31,1620,1621,1624],{},[34,1622,1623],{},"Local tips on a map",": the host searches for places with Google Places and adds them with photos, distance and reviews. Guests see them on a map and open directions in one tap",[31,1626,1627,1630],{},[34,1628,1629],{},"Automatic translations",": the host turns on a language with one click and the whole guide, places included, is translated. Guests read it in their own language",[31,1632,1633,1636],{},[34,1634,1635],{},"QR code and link",": a printable QR for the room and a short link for the booking message",[31,1638,1639,1642],{},[34,1640,1641],{},"Subscriptions with Stripe",": a yearly plan per property, all features included. Hosts with more than one B&B add properties when they need them, and billing adjusts proportionally. Checkout, renewals, cancellations and downgrades are handled through Stripe webhooks",[31,1644,1645,1648],{},[34,1646,1647],{},"Accounts and back-office",": Firebase authentication and storage, branded emails for password resets, and a superadmin area to manage the shared place templates",[12,1650,812],{"id":811},[17,1652,1653],{},"iiziguest is live and sold as a subscription. The host updates the guide once and every guest sees the change, guests find answers on their own, and the late-evening messages drop.",{"title":127,"searchDepth":128,"depth":128,"links":1655},[1656,1657,1658],{"id":763,"depth":128,"text":764},{"id":770,"depth":128,"text":771},{"id":811,"depth":128,"text":812},{"name":690,"alias":1568,"nda":831},{"accent":501,"icon":1661},"material-symbols:menu-book-outline","Everything guests need to know in one tap - Wi-Fi, check-in, local tips and maps - from a QR code, with no app to download.",{},"Live and sold as a subscription: the host updates the guide once and late-evening guest messages drop.","Live · iiziguest.com",[],[1668],{"src":1669,"alt":1670},"/img/work/iiziguest/01.webp","iiziguest landing page: the hero and a phone showing a B&B guide with Wi-Fi, check-in, map and local tips",{"title":1598,"description":1662},[836,837,838],[1505,1506,971,844,1674,1675,1676,1593],"Google Maps & Places API","Google Translate API","Resend","work/iiziguest","https://www.iiziguest.com","xulNtlZ6j8iAWZyd3Lnvj_uaEpEHNA6ocvl5qqhZWzA",{"id":1681,"title":1682,"body":1683,"client":1761,"cover":1763,"description":1765,"extension":135,"featured":831,"industry":1766,"media":1573,"meta":1767,"navigation":168,"order":1768,"outcome":1769,"ownProduct":168,"path":694,"productStatus":1770,"results":1771,"screenshots":1772,"seo":1779,"seoDescription":172,"seoTitle":1780,"services":1781,"stack":1784,"stem":1786,"url":1787,"year":846,"__hash__":1788},"work_en/work/iizimenu.md","iizimenu - the QR code digital menu for restaurants",{"type":9,"value":1684,"toc":1756},[1685,1687,1690,1693,1695,1698,1741,1751,1753],[12,1686,764],{"id":763},[17,1688,1689],{},"Printed menus go out of date quickly. Changing a price, dropping a dish or updating the seasonal menu means correcting or reprinting every copy. When foreign customers arrive or someone asks about allergens, you need yet another version.",[17,1691,1692],{},"Many restaurants have no website, and no time or wish to build one just for the menu. And no customer sitting at a table wants to download an app to find out what to eat.",[12,1694,771],{"id":770},[17,1696,1697],{},"iizimenu, our own product: the restaurant fills in the menu online and shares it with a QR code or a link. Customers open it in their phone's browser, with no app and no login.",[28,1699,1700,1706,1712,1718,1723,1729,1735],{},[31,1701,1702,1705],{},[34,1703,1704],{},"Menu editor",": categories, dishes and prices, with drag-and-drop reordering and the option to switch off a sold-out dish without deleting it. Changes are online right away",[31,1707,1708,1711],{},[34,1709,1710],{},"Allergens for each dish",": picked from the 14 on the EU list and shown under the dish, in the customer's language",[31,1713,1714,1717],{},[34,1715,1716],{},"Six languages",": Italian, English, French, Spanish, German and Portuguese. The restaurant writes the translations in the editor and customers switch language with one tap",[31,1719,1720,1722],{},[34,1721,1635],{},": each menu has its own QR to download and print, which stays valid when the menu changes",[31,1724,1725,1728],{},[34,1726,1727],{},"Themes and logo",": nine themes, including one with a custom colour, and the restaurant's logo, with a preview while editing",[31,1730,1731,1734],{},[34,1732,1733],{},"Free and Pro plans with Stripe",": the free plan doesn't expire and needs no card. Pro is yearly and adds more restaurants and menus, the logo, every theme and every language. Activation, renewals, failed payments and cancellation run through Stripe webhooks",[31,1736,1737,1740],{},[34,1738,1739],{},"Accounts and data",": Firebase authentication and database, password reset emails with Resend, error monitoring with Sentry, and full deletion of an account and its data",[17,1742,1743,1744,1750],{},"We deliberately left out table ordering and dish photos: iizimenu does one thing, showing the right menu, always up to date. The ",[88,1745,1749],{"href":1746,"rel":1747},"https://www.iizimenu.com/menu/lKsg7ugcorP05sHahjV4uMt3be32/aZ22ekwkOQuJ9WV5W7Fk/NvfIN5XO5vb5aPCxSS0Z",[1748],"nofollow","sample menu"," shows what customers see: the restaurant and dishes are fictional.",[12,1752,812],{"id":811},[17,1754,1755],{},"iizimenu is live, with a free plan and a yearly Pro plan. The restaurant updates the menu once and every customer sees the correct version, with no copies to reprint for the tables.",{"title":127,"searchDepth":128,"depth":128,"links":1757},[1758,1759,1760],{"id":763,"depth":128,"text":764},{"id":770,"depth":128,"text":771},{"id":811,"depth":128,"text":812},{"name":695,"alias":1762,"nda":831},"Restaurant SaaS, Italy",{"accent":7,"icon":1764},"material-symbols:restaurant-menu","A restaurant's menu online in minutes, with dishes, prices and allergens in several languages. Customers open it from a QR code, with no app to download.","Restaurants",{},8,"Live with a free plan: the restaurant changes a price once and the menu is up to date on every table, with no reprinting.","Live · iizimenu.com",[],[1773,1776],{"src":1774,"alt":1775},"/img/work/iizimenu/01.webp","iizimenu landing page in Italian: the headline and a phone showing a sample trattoria menu",{"src":1777,"alt":1778},"/img/work/iizimenu/02.webp","The sample menu of a fictional trattoria on two phones, in Italian and English, with dishes, prices and allergens",{"title":1682,"description":1765},"iizimenu: QR code digital menu",[836,1782,1783],"Web app","Payments & subscriptions",[1505,1506,971,844,1676,1785,1593],"Sentry","work/iizimenu","https://www.iizimenu.com","7qUq9I4g3i3ZCRuDSUSi0o_XuL9ogCZeKAO8RQk1Eo8",1793383296905]