Built by us,
told by us.
Projects we have launched, research under way, and life inside the team.
We put vibecoding to the test on a real client project at AppX.
Tiago Pinto, Manuel OliveiraAI-assisted code editors promise to turn natural-language instructions into working software, yet how far they can carry a complete product under real conditions, and where they stop being useful, is rarely measured. This article reports a hands-on evaluation of vibe coding, the prompt-driven method popularised by Cursor, applied to the reconstruction of an existing mobile application at AppX. The exercise was deliberately visual and iterative: screenshots of the reference application were used as prompt material, the generated components were executed and observed, and the prompts were refined until interface and behaviour matched the intent. Development proceeded in phases, from a mock-data dashboard to authentication, secondary screens, backend integration and, finally, packaging with CapacitorJS for on-device testing. The results show genuine acceleration in prototyping, navigation, user-interface construction and basic API integration, provided the prompts are precise: vague instructions cost several iterations, layout consistency and code organisation degrade without supervision, and an experienced developer will find tasks that would be faster written by hand. The article closes with the conditions under which a software house can adopt the method without loss of quality: architectural decisions, security and compliance, code review, performance and production readiness remain human responsibilities, generated code is treated as the work of a junior pair, and prompts are versioned as first-class artefacts.
Read article →Building a generic knowledge base chatbot with open-source LLMs and Node.js.
João Lopes, Manuel OliveiraLarge language models can answer questions about material they were never trained on when combined with retrieval augmented generation, but building such a system entirely from open-source components, and knowing what it costs in latency and accuracy, calls for measurement rather than assumption. This article documents the design and evaluation of a server-side knowledge base chatbot built at AppX on Node.js, using Ollama to run the models locally, LangChain to orchestrate retrieval and prompting, and a MySQL message store that gives each user a persistent conversation. Text and PDF files are split, embedded and retrieved as the context for each answer; generating the embeddings once at server startup and caching them to a file reduced the answer time from 32.41 s to 4.92 s with Llama 3.1 and from 37.54 s to 5.99 s with Gemma 2, roughly a sixfold gain. The two models were then compared against three embedding models, mxbai-embed-large, snowflake-arctic-embed and nomic-embed-text, over a fixed set of seventeen questions with the retrieved context held constant. Gemma 2 reached the highest success rate, 91.18 % with both mxbai-embed-large and snowflake-arctic-embed, while Llama 3.1 answered consistently faster, and streaming was introduced to mask the remaining latency. The article closes with the trade-off this configuration imposes between answer quality and response time, and with the lines of work it leaves open.
Read article →