Sometimes you already have what you need, or you can build it yourself. Other times, someone out there has already created exactly what you’re looking for. So why not just use what’s openly available?
In our reporting solution, we use a Copilot agent that retrieves data and information from open sources — including nartverket.no, ngu.no, and geonorge.no. The combination of these datasets gives us a solid foundation for assembling a complete picture of the areas we’re analyzing, as well as generating a high‑quality report for our customers 🤑
To convert Markdown to HTML, we use the open‑source NuGet package Markdig. This is used in the solution to present text in a clean and readable format within our app.
To send SMS confirmations to our customers, we use the SMS gateway from LinkMobility.
We have created a solution containing both pro code and low code, AI, Microsoft APIs and third party tools.
Code App for collection Dream Project request
Power Automate that uses Dataverse, OneFlow, AI Builder, Outlook and Link Mobility actions
Model-driven app as an backoffice app to follow up project. Perfect low code app for managing dream project requests.
OneFlow Portal for managing contracts
A go through of the solution
The Code App is vibe coded using TypeScript and React and used for collecting Dream Project requests. This creates a Dataverse record that triggers a power automate flow that creates a contract in OneFlow. Pure pro code as far as the eye can see 👀
Further, we created a Power Automate flow that gets triggered when a new Dream Project is created and this automates our contract process by using OneFlows actions for creating the contract and adding the customer to the contract. LINK Mobility and Outlook action are used to send an SMS and email to the customer responsible for quick follow up and contract validation before sending it. This is a perfect combination of pro code and low code.
The flow looks like this.
The AI Prompt looks in the Power Automate looks like this and this is sendt til the AI Prompt.
The “Run a prompt” action sends the data to the prompt below and gets the outline for the contract details back. And, we are using this in the contract generation.
We used Template Groups in OneFlow to populate documents from power automate.
The fields are created in the OneFlow portal. These must be created and added to the template before they are available in the power automate flow.
The fields are added to the Template in OneFlow like this.
After sending the contract out from the OneFlow portal the customer gets and email that they can sign.
The contracts looks like this after been generated by the Power Automate flow. The description is generated using AI Prompts feeded with data from the dream project request from Dataverse.
The LINK Mobility
We are using the LINK Mobility Action in Power Automate that lets us send SMS with ease using a source number, platform id and partner id and a phone number to send the SMS to. This works like charm.
The SMS that is sent looks like this:
Business value: The tools helps as stich our solution together and improve the value for our customers by providing faster contract creation and automation, and notification by SMS for quick follow up by customer success manager.
Claims:
Stairway to Heaven
In our contract generation flow we are using three Microsoft APIs for solving our business need
Dataverse API
AI Prompt API
Outlook API
Thieving bastards
Using OneFlow and LINK mobility as payable third party solutions to improve our business process by using existing tools in the marked that is developed by marked experts and that keeps being updated and improved.
OneFlow
Using OneFlow for contract generation and posted on LinkedIn
LINK Mobility
Using LINK Mobility for notification to customer success mangers and more SMS notification in an upcoming sprint. And posted on LinkedIn
Power User Love
By combining the power of pro code for more customizable look, feel and usability for collecting data and using low code apps for backoffice project follow up with a more fix look and feel with drag and drop.
Code App using TypeScript and React for more control over the user interface and interactivity:
Using Model-driven app as a backoffice with more “strict” look and field, but perfect for following up and adding data.
TL;DR: We stole everything. Seventeen AI providers, Bootstrap 5, Font Awesome, fifty open-source libraries, three cloud platforms. Zero reinvented wheels. Maximum strategic theft.
We don’t rebuild the wheel. We steal the best wheels already invented, bolt them onto our Soviet production machine, and get back to building features that matter.
Seventeen AI providers powering our Minecraft bots. OpenAI, Claude, Gemini, Groq, Mistral, DeepSeek. Why pick one when you can leverage them all? The entire PrismarineJS suite handling pathfinding, combat, and 3D rendering. Fifteen specialized libraries doing the heavy lifting.
The CCCP Factory Portal? Bootstrap 5 for the responsive grid, components, and utilities. Font Awesome 6 giving us 10,000+ icons out of the box. React, Vite, TypeScript, Tailwind. Cloudflare for hosting, AWS for storage, Docker for containers. Power Platform, Dataverse, Microsoft Graph holding it together.
Eighty-plus dependencies. Why write custom CSS for modals when Bootstrap solved it? Why draw icons when Font Awesome ships production-ready SVGs? Why build authentication when Prismarine handles it?
The result: faster development, smaller bundles, and a UI that works everywhere. We focus energy on the business problem—automated resource management, real-time dashboards, intelligent harvesting agents—not on rebuilding grid systems or protocol handlers.
This is smart engineering. Use what exists. Steal relentlessly. The Thieving Bastards badge is ours.
As you already knows, yesterday we released an article to demonstrate the ability interact with 3d printers, such as reading the temperature on turn on/off the light. In nice to have, but very limited functionality for out project. It was a challenge to grab camera stream and run the printing job using Local API….
After some nightly research, we found the solution. There is a addon for the Home Assistant which will allow us to perform any action with the 3d printer locally.
To make it work in tight deadlines, we decided to run the Home Assistant app on our laptop, using Hyper-V, and expose port securely via the Cloudflare tunnels which is also providing HTTPS certificates.
We are claiming the following badges:
#Nasty hackers,
#Thieving Bastards: we are using Cloudflare, Open source Home Assistant and Bambu lab HA integration addon.
Categories:
#Low code – for the integrations with Bambu lab local printer API without single line of the code
#Governance & Best Practices – following best practices of exposing only secured services to the public internet
In true Minecraft fashion, we didn’t just farm everything ourself, just to prove we could. Instead, we used the blocks the community and Mojang has already crafted and leveraged them into something new.
Our world itself runs on the official Minecraft Java server, straight from Mojang. It gives us a stable overworld to spawn into, giving us a stable server that actually works, and we can ACTUALLY load into.
Inside that world lives our hardest-working mob: a bot powered by Mineflayer. Instead of writing a Minecraft client ourselves, we leaned on this open-source framework to give our NPC the tools and knowledge to function in our solution. Even our most experienced miner is no match to the minecraft knowledge of the MINDFLAYER (cool name)
As true Slytherins we of course have to steal, and steal we did!
ngrok We used third party ngrok to expose our local endpoint our local development server to the Internet!
SASS + REACT = <3 Clever clogs utilize existing frameworks for simplifying styling: Sass – CSS with superpowers in combination with React makes a perfect match.
Link Mobility It’s good to know that your message has been delivered. Therefore you get a confirmation when your message has been delivered to the Howler!
Stairway to HELL
In our solution we combine these three Cloud APIs to make our solution floooow through the cloud!
We already have access to MR (aka. Magic Reality) components in Canvas Apps. Implementation is straight forward, but as expected they come with a limited set of features. The components are based on Babylon.js, and make for a quick and easy way to place and view a 3D model in an augmented reality context.
For our solution, we wanted the user to also be able to interact with the virtual objects in front of them, which is not OOB features, so by expressing our power user love, we decided to explore the possibilities around custom XR enabled PCF components.
Being ACDC craftsmen, knowing the potential issues of going too far down the wrong path, we decided to do some proof of concepts, creating custom PCF components with third party XR libraries, acting like proper thieving bastards on the way.
First off, we had a look at AR.js, which is built on ARToolkit, a relatively old library. This library could provide us with wide device support, which really didn’t have that much value, considering the component would be running inside the Power Apps mobile app. We would also be forced to use either image target or marker tracking, with no modern AR spatial tracking.
Looking closer at the OOB components, we tried to find a way to leverage the OOB Babylon.js logic, hopefully being able to hook into the React Native part of the implementation, which would give great benefits in terms of access to device specific XR features (ARCore for Android and ARKit for iOS). We did, however, decide to leave this path, and focus elsewhere.
In our solution, users will be gathering ingredients using object detection in a Canvas App. The AI model used for this has been trained on objects around the conference venue, and so we wanted to enhance the connection between the app and the real world. Already having access to the users geo location through the geolocation web API inside the Canvas App and any PCF components, we decided to these data to place the active users on a 3D representation of the venue, expressing our power user love by merging 3D graphics with the OOB Canvas App elements.
We were able to find a simple volume model of the buildings on the map service Kommunekart 3D, but these data seem to be provided by Norkart, which is not freely available.
Like the thieving bastards we are, we decided to scrape the 3D model off of the site, by fetching all the resources that looked like binary 3D data. We found the data was in B3DM format and we found the buildings in one of these. We used Blender to clean up the model, by removing surrounding buildings and exporting it to glTF 3D file format, for use in a WebGL 3D context.
The representation of the 3D model, we decided to do with Three.js, which let us create an HTML canvas element inside the PCF component and using its WebGL context to render out the model in 3D. The canvas is continuously rendered using requestAnimationFrame under the hood, making it efficient in a browser context. The glTF model was loaded using a data URI, as a workaround for the web resource file format restrictions.
The coordinates from the user’s mobile device comes in as geographical coordinates, with longitude, latitude and altitude. The next step was to map these values relative to a known coordinate in the building, which we chose to be the main entrance. By using the main entrance geographical coordinates, we could then convert that to cartesian coordinates, with X, Y and Z, do the same to the realtime coordinates from the user, and subtract the origin, to get the offset in meters. The conversion from geographic to geocentric coordinates were done like so:
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
export type CartesianCoordinates = { x: number; y: number; z: number };
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
export type GeographicCoordinates = { lat: number; lon: number; alt: number };
// Conversion factor from degrees to radians
const DEG_TO_RAD = Math.PI / 180;
// Constants for WGS84 Ellipsoid
const WGS84_A = 6378137.0; // Semi-major axis in meters
const WGS84_E2 = 0.00669437999014; // Square of eccentricity
// Function to convert geographic coordinates (lat, lon, alt) to ECEF (x, y, z)
export function geographicToECEF(coords: GeographicCoordinates): { x: number; y: number; z: number } {
// Convert degrees to radians
const latRad = coords.lat * DEG_TO_RAD;
const lonRad = coords.lon * DEG_TO_RAD;
// Calculate the radius of curvature in the prime vertical
const N = WGS84_A / Math.sqrt(1 - WGS84_E2 * Math.sin(latRad) * Math.sin(latRad));
// ECEF coordinates
const x = (N + coords.alt) * Math.cos(latRad) * Math.cos(lonRad);
const y = (N + coords.alt) * Math.cos(latRad) * Math.sin(lonRad);
const z = (N * (1 - WGS84_E2) + coords.alt) * Math.sin(latRad);
return { x, y, z };
}
This gave us fairly good precision, but not without the expected inaccuracy caused by being indoors.
In our solution the current position is then represented by an icon moving around the 3D model based on the current GPS data from the device.
To connect this representation to realtime data from all the currently active users, we decided to set up an Azure SignalR Service, with an accompanying Azure Storage and Azure Function App for the backend, bringing it all to the cloud, almost like a stairway to heaven. With this setup, we could use the @microsoft/azure package inside the PCF component, receiving connection, disconnection and location update message broadcast from all other users, showing where they are right now.
In our app we have made use of the great opensource libraries of ready-made opportunities through the PowerApps Component Framework (PCF) Gallery. Inspired by the playful spirit of Fred and George Weasley from Harry Potter, these components add a touch of magic to the app: “Shaking Text” and “Confetti.”
Navigating all the lectures at Hogwarts can be tricky, but fear not! We’ve got a Time-Turner feature, just like Hermione’s, to ensure you never miss a single lesson. With this magical tool, you’ll be able to attend every class and ace your studies! 🕰️✨
Fred and George Weasley are known for their pranks and infectious energy. The “Shaking Text” component adds a dynamic, eye-catching effect to text, while the “Confetti” component brings a celebratory vibe, both reflecting the twins’ lively personalities. Power Apps
The Confetti component and the Shaking text component is published by Clavin Fernandes. They are built using TypeScript and React, and the Confetti component utilizes an NPM package. The developer on the team reviewed the source code and checked dependencies before importing the components into our solution. This thorough review ensures that all dependencies are compatible and up-to-date, preventing potential conflicts and integration issues. By doing this, the developer helps maintain the stability and reliability of the solution, ensuring a smooth and error-free deployment.
The PCF components are built using TypeScript and React, allowing for custom functionality and appearance in Power Apps. They integrate seamlessly and are reusable across different applications, enhancing the user experience. By leveraging these technologies, developers can create highly interactive and visually appealing components that meet specific business needs.
In the spirit of Hogwarts, where collaboration and resourcefulness reign supreme, we embarked on a quest to claim the coveted ‘Thieving Bastards’ badge. This badge celebrates the clever use of third-party solutions to enhance our magical creations. Just as the greatest wizards rely on ancient spells and enchanted artifacts, we too must harness the power of existing tools and APIs to weave our digital enchantments.
To bring our Hogwarts-inspired intranet to life, I delved into the vast realm of third-party APIs, selecting the most potent tools to aid students in their daily adventures.
The Entur API: The Floo Network of Transportation Much like the Floo Network enables swift travel across the wizarding world, the Entur API provides real-time transportation data. By integrating this powerful API, students can easily plan their journeys to Diagon Alley with minimal hassle.
Weather API: The Divination Crystal Ball Professor Trelawney may have her crystal ball, but we prefer data-driven forecasting. With the weather API, students can prepare for their daily adventures, be it sunny strolls around the castle grounds or braving the rain on their way to Herbology class.
Harry Potter Database: The Restricted Section of Knowledge No Hogwarts intranet would be complete without a comprehensive spellbook. By utilizing a Harry Potter-themed database, students can look up spells, potion recipes, and magical creatures with ease, ensuring they are always equipped for any magical challenge.
OneFlow API Handling magical agreements and contracts has never been easier with the Oneflow API. Much like the enchanted scrolls used at Hogwarts, this API allows for the seamless management of digital contracts, ensuring that all agreements—from Hogsmeade permission slips to Quidditch team sign-ups—are securely handled and stored.
Mining for Gold: Claiming the ‘Dataminer’ Badge Beyond integrating third-party solutions, we have also used these APIs to extract valuable insights and present them in an engaging way. By combining transportation schedules, weather forecasts, and magical data, our intranet transforms raw information into actionable intelligence. Students can now see the best routes to Diagon Alley considering the weather conditions or discover spell recommendations based on current atmospheric factors. This fusion of external data with our own enriches the user experience and adds real business value to our solution.