Services
Company
Blog
Contact
Open Source

Latest Updates

Company and industry news, featured projects, open source code, tech tips, and more.

Flavors of Blazor

Michael Argentini Avatar
Michael ArgentiniFriday, June 27, 2025

Blazor is a powerful framework from Microsoft used for building interactive web UIs with C# instead of JavaScript. A key feature of Blazor is its flexibility in how applications are hosted and run. The choice of hosting model—Server, WebAssembly, Interactive Auto, or Hybrid—depends entirely on the specific needs of the application, such as scale/performance requirements, offline capabilities, and access to native device features.

But which flavor of Blazor should you use? Well, that depends...

Blazor Server

The Blazor Server hosting model is the easiest to set up and use. It runs your application on the server, and when a user interacts with the application, UI events are sent to the server over a real-time (SignalR) connection. The server processes these events, calculates the necessary UI changes, and sends only those small changes back to the client to update the display. This results in a very thin client and a fast initial load time, as almost no application code is downloaded to the browser.

Best reasons to use this hosting model:

  • internal business applications or other scenarios where a constant, low-latency connection to the server is guaranteed
  • applications that need direct access to server-side resources, databases, or protected services that shouldn't be exposed to the client
  • applications that don't have enterprise-scale traffic needs, or where the cost of hosting those resources is not prohibitive (e.g. regional instances for best performance)
  • when the development cycle "inner loop" must be as fast and efficient as possible

Blazor WebAssembly (WASM)

In contrast, Blazor WebAssembly runs your entire application directly in the web browser using a WebAssembly-based .NET runtime. The application's C# code, its dependencies, and the .NET runtime itself, are all downloaded to the client. Once downloaded, the application executes entirely on the user's machine, enabling full offline functionality and leveraging the client's processing power for a rich, near-native user experience.

Best reasons to use this hosting model:

  • for public-facing websites, progressive web apps (PWAs), and applications that require complex, desktop-like interactivity without constant server communication
  • when a larger initial download size and longer first load time are not a concern
  • when hosting cost is a concern; WebAssembly apps can be hosted on inexpensive file-based hosting platforms, like Amazon S3
  • if your web application needs to support large amounts of traffic or will service an international audience
  • when development cycle "inner loop" iteration time is not a concern

Blazor Interactive Auto

The Blazor interactive auto mode allows you to use both server and WebAssembly components in a single project, giving you precise control over how your app behaves.

Best reasons to use this hosting model:

  • applications that are ideal for server hosting but also have some user experiences that need higher performance or support larger audiences
  • when the complexity of configuring a WebAssembly project is not a concern
  • when development cycle "inner loop" iteration time is not a concern

Blazor Hybrid

Blazor Hybrid is a bit different. It's not used for building web applications. It's allows web developers to use their skills to build mobile apps that run on devices at close to native speed. Microsoft Maui is the core platform, which is native and cross-platform. It normally uses XAML for coding user interfaces. When using Blazor Hybrid, however, you can also use Blazor web components alongside XAML or in place of it.

This model provides the best of both worlds: the ability to build a rich, cross-platform UI with web technologies while having full access to the native capabilities of the device, such as the file system, sensors, and notifications.

Blazor Hybrid is the perfect solution for developers looking to create desktop and mobile applications that can share UI components and logic with an existing Blazor web application, or for new mobile app projects.

Want to know more?

There's usually more to the story so if you have questions or comments about this post let us know!

Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!

When Microservices Make Sense

Michael Argentini Avatar
RJ NaderFriday, June 20, 2025

Many organizations are eager to adopt microservices, sometimes before they even know if they need them. Knowing when they fit a need makes all the difference, and sometimes, not using them is the smarter move.

There are some cases where a microservice architecture is your best bet:

1. When you need to combine incompatible technologies

If your project has to support multiple technologies that don’t naturally work together, microservices are a natural fit. Take my experience with the Whitelist Sync Web project:

Originally, this project ran on a 100% .NET backend with a Vue frontend. Later, I migrated to a Node backend with a React frontend. However, I still needed to support SignalR—Microsoft’s real-time communication technology—because client applications in the field were dependent on it. The challenge? SignalR server-side hosting is only supported in C#. Node cannot host a SignalR hub.

Removing SignalR from the project wasn’t an option (unless I was willing to rewrite and redeploy all the client apps—which was out of scope). The solution was to create a separate SignalR microservice: a C# project dedicated to SignalR, communicating with the Node backend through JWT auth and REST endpoints. A reverse proxy routed /hubs/ requests to the SignalR service, while all other traffic hit the React app. The entire setup was managed using Docker Compose.

2. When extending legacy projects

Microservices can be helpful for extending existing applications. If you want to add new functionality using a different tech stack—or isolate new features for a big team—they let you do this without rewriting your monolith.

3. High availability and fault tolerance

Splitting your app into smaller, independently hosted pieces means a failure in one service won’t crash the entire application. Of course, you can build robust error handling into a monolith, but microservices can make fault isolation easier.

4. Better load balancing

Cloud providers offer load balancing for monoliths, but microservices can provide more granular scaling. Just keep in mind, if you don’t have heavy load or growth requirements, this might not be worth the extra complexity and cost.

5. Technology flexibility

Microservices let you mix and match tech: imagine a Node backend, a React frontend, and a Python microservice for AI features. Each part of your app can use the best tool for the job.

The downsides of microservices

While microservices have their place, they also come with significant downsides:

1. High cost

Running multiple services means more infrastructure, more devops, and more cloud spend. If your application has low demand, this cost is often unjustified. Starting new projects with a single stack keeps things cheaper and simpler.

2. Operational overhead

Multiple services means more to manage: logging, monitoring, orchestration (hello, Kubernetes), and maintenance. All of this adds to the operational burden.

3. Vendor lock-in

Using cloud-specific services like Azure Functions ties your app to one provider. Migrating later is possible, but few businesses want to refactor dozens of microservices just to escape rising costs.

4. Deployment complexity

Deploying a monolith is straightforward. Microservices require complex CI/CD pipelines and orchestration. Tools like Fynydd fdeploy can help, but they add yet another layer of infrastructure.

5. Development complexity

With more moving parts, it’s harder to add features, fix bugs, and onboard new team members.

6. Authentication challenges

Microservices make authentication harder. Instead of just handling user auth, you now need to manage service-to-service authentication, which can be complicated and error-prone.

When not to use microservices

Given all these costs, it’s clear: Start simple. For most projects, especially those with low load or a single technology stack, a monolith is the best starting point. Design your application with modularity and future growth in mind, so you can break it into microservices if you ever need to. But don’t jump into microservices unless you’re solving real problems that require them.

Further reading: You Don’t Need Microservices (itnext.io)

Want to know more?

There's usually more to the story so if you have questions or comments about this post let us know!

Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!

Fynydd Celebrates 15th Anniversary

Michael Argentini Avatar
Michael ArgentiniWednesday, June 11, 2025

Fynydd was founded 15 years ago in June of 2010 as an onshore web and software development company. The tech industry has changed quite a bit over that time (I'm looking at you, AI), but all along we've been helping organizations thrive with web and native software development services that support their marketing, products, and operations.

Tech Memory Lane

In the beginning we were challenged with navigating a web dominated by Internet Explorer. Google Chrome had only been available for a couple years at that time (and only had about a 9% market share), and each browser had a different (and in many ways incompatible) rendering engine. Building websites that behaved properly across them all resulted in a lot of wasted time. And that was just desktop web browsers.

In that same year Apple only had a single phone: the iPhone 3GS with iOS 4. And Samsung introduced a new device, the Galaxy S. Android had only been available for a couple years at that point, and Google released the 6th version (Froyo) with Adobe Flash support! Egads.

Left to right: Apple iOS 4 and Google Android Froyo Left to right: Apple iOS 4 and Google Android Froyo

Early Clients

We got off to a running start! One of our notable clients back then was US Bank, who partnered with us to analyze how they could revamp their internal knowledge management architecture to better handle acquisition data, and also create a better support system for bank branch employees. This lead to a two phase engagement that culminated in two printed books outlining the state of their technology and our recommendation for moving forward.

US Bank Report Samples

We built marketing websites, sales tools, and online stores for other early clients like EP Henry (hardscaping), Philadelphia Scientific (battery management), and VWR International (life sciences). Some of our earliest clients remain with us today.

The Future

As I wrote in the introduction, the industry has changed quite a bit since 2010 and we love it! There's so much to learn and explore, of course, including generative AI, machine learning (ML), and large language models (LLM), and how they can provide new opportunities for organizations to grow and adapt.

So if you need web and app development help, we'd love for you to be in the next chapter of our story!

Want to know more?

There's usually more to the story so if you have questions or comments about this post let us know!

Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!

Have A Chat With Your Data

Michael Argentini Avatar
Michael ArgentiniThursday, June 5, 2025

Tools like Google NotebookLM and custom generative AI services are fundamentally changing how users interact with information. We're seeing a transition from static reports and interfaces to dynamic chat-based tools that give users exactly what they need, and even things they didn't know they needed.

If you're not familiar with NotebookLM, it's a tool that allows you to provide your own documents (like PDF, text files, audio), and then chat with the data. You can even listen to an AI-generated podcast that explains all the information. For example, I had loaded a project with PDF documents containing the rule book, technical rules, and officials briefing information for USA Swimming, and was then able to get answers to questions like "how is a breaststroke turn judged?"

It was kinda magical.

We've been working with clients on permutations of this scenario for some time. For example, we partnered with a client in the life sciences space to build a chat-based tool that connects various third party API services with disparate information, providing account managers with a single source for helping their customers recommend products and services to ensure better health outcomes.

This is no small feat when the goal is a best-of-breed user experience (UX) like ChatGPT. It can involve multiple service providers like Microsoft Azure and Amazon Web Services, as well as various tools like cloud-based large language models (LLM), vector search, speech services, cloud storage, charting tools, location services, AI telemetry, and more. But when it's done right, the result is amazing. You can ask questions that span disciplines and contexts and see results you may not have ever seen before.

Most organizations can really benefit from exploring how generative AI can positively impact their offerings and give them a competitive advantage. Like we always say, it's not about the organizations that use AI, it's about the ones that don't.

Want to know more?

There's usually more to the story so if you have questions or comments about this post let us know!

Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!

Improve SSD Performance And Reliability

Michael Argentini Avatar
Michael ArgentiniWednesday, May 28, 2025

Modern computers, laptops, and mobile devices use solid state drive (SSD) storage, which is power efficient and fast! Since SSDs have no moving parts they're also more durable than hard disk technology in mobile scenarios.

But SSD storage does have limitations. Two primary concerns are:

  • Data can only be written a finite number of times
  • Data is not reliably stored for long periods of time when powered off

How SSDs Work

Essentially, data is written to SSD storage as static charges in individual cells. These cells would normally hold a charge for a very long time, but the act of charging the cell is destructive. It takes a high voltage to weaken the cell barrier before the cell can be charged. And every time a cell is written the barrier is permanently weakened. Eventually the cell will not be able to reliably store a charge.

SSDs manage this problem in a few ways. One tactic is wear leveling, which means that data isn't generally written to the same cell. The drive writes to new cells as often as possible. This levels out the wear across all cells. Another strategy they use is to keep a bank of extra (hidden) cells available. When the SSD sees that a cell is sufficiently "bad", one of the "backup" cells will take its place. All of this happens in the background.

The Problem

As cells lose their ability to hold a charge, the first symptom is a slowdown in reads. The SSD will try to read a cell, which sometimes returns a bad value (according to an ECC check), so it has to read it again, likely at a different voltage. Eventually the cell returns the correct value. But these repeated read attempts noticeably slow overall drive performance.

For computers and SSD drives that stay powered off for extended periods, you'll see advice that recommends turning on the device every so often. But all that really does is give the SSD a chance to mark bad cells, provided the device tells it to read or write to that bad cell in the first place. Some high end SSDs will perform periodic cell rewrites to refresh the data on their own, but consumer SSDs don't typically do this. To be clear: powering up an SSD does not recharge the cells or truly address these issues.

The Solution

New SSDs can reliably store data for several years without power. But after actively using an SSD for months or years, it makes sense to begin periodically refreshing the cells. This not only ensures more reliable storage over time, it can also noticeably speed up SSD performance.

I ran some tests on my local workstation to verify these claims. I used a 2 year old MacBook Pro with an SSD boot drive that has remained more than half empty, ensuring lots of new cells were available for writes. It has had several OS upgrades and a couple format/rebuilds.

That Mac booted to login in 16.6 seconds. After refreshing the SSD with the same data, it booted to login in 14 seconds, which is over 15% faster. This indicates that overall performance should also improve, at least with regard to storage transfers anyway. So even on a relatively current machine there was a noticeable speed increase. As a software developer, the biggest benefit for me was the improved reliability.

So, if you want to refresh an SSD, following are some quick guides to help you through the process.

Refresh a Windows SSD

The easiest way to refresh your SSD on Windows is to use SpinRite (https://www.grc.com/sr/spinrite.htm). This is a time-tested, rock solid utility for hard disk maintenance and recovery, which can also handle SSD storage. Run this tool on level 3 to refresh all the cells and map out any bad cells. It will also work wonders on your hard disks.

Note: you need a computer with an Intel chip. SpinRite will not run on Arm.

Another way to do this without additional software is to make a system image of your drive using the poorly named "Backup and Restore (Windows 7)" control panel. This clones your entire drive (even the recovery partition) to a USB flash drive or other external media. You can then boot into recovery mode and restore the entire drive from that system image. You'll end up with the same PC with all your files intact. And you will have a backup of your drive for future use.

Choose the poorly named Backup and Restore (Windows 7) option.
Use the "Create a system image" option in the left column.
When your image is created, use the "Restart now" option under "Advanced startup", and when the computer restarts, choose the advanced option and recover from a system image.

Both of these methods will return your SSD to like-new performance, and ensure longer data retention.

Refresh a Mac SSD

Unlike with Windows, there are no great utilities like SpinRite for modern Apple Silicon Macs. But fear not! There is a way to refresh SSD cells using the built-in Time Machine feature. And it's pretty easy to use. You will be backing up your Mac, then erasing it, reinstalling macOS, and then restoring the backup.

Connect an external storage device to your Mac and configure it in Time Machine as your backup device. Then run a backup.

Time Machine

Note: some applications, like Docker, do not allow Time Machine to back up their data by default. In the case of Docker there is an option to enable this.

Once you have a complete backup, restart your Mac into recovery mode. On modern Apple Silicon Macs you just shut down the computer. Then turn it back on by pressing the power button until the Mac tells you it is loading startup options.

Use Disk Utility to erase the SSD, and then choose to reinstall macOS.

The recovery menu provides access to Disk Utility and macOS reinstallation.

After the OS is installed it will restart and run Migration Assistant.

Migration Assistant

Choose to transfer files from Time Machine, and follow the instructions. It will show you all Time Machine backups for connected drives. Choose the latest backup entry for your backup drive, and let Migration Assistant do its thing. You will be left with a refreshed SSD with all your files intact.

Refresh Schedule

The research in this area is nascent, so the optimal frequency for refreshing your SSD cells really depends on how well it is performing, how many writes have been made, and how full it is on average. On my server data drive I rarely write new files. But the data is very important. So I'm planning on refreshing the cells yearly just to be safe.

So how often should you run this process? If your SSD is new or averages under 50% usage, and is under 10 years old, I would do this yearly through that period. As your SSD ages (or if you have a mostly full SSD) it may be better to run it more frequently.

Want to know more?

There's usually more to the story so if you have questions or comments about this post let us know!

Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!

Resourcing To Expertise: Taming Digital Marketing Chaos

Michael Argentini Avatar
Michael ArgentiniMonday, May 19, 2025

We've helped digital marketing and SEO agencies implement their strategies for years. Even when they have software development staff we've been able to augment their team and provide real value. The key takeaway is that when timelines and budgets are tight, and your development staff is booked, reduce risk and scale up quickly with a software development partner. Here are a few reasons why this makes sense.

Resourcing

It can be hard to resource digital marketing projects on short notice. And bringing in contractors can add significant risk; from lack of expertise to limited availability and single point of failure scenarios.

Using an experienced development partner is a better choice when time, quality, and/or risk aversion are paramount. You will have a self-managing team at your disposal. They will provide redundancy, coordinate with your project and account managers, and provide additional resources when needed.

Fresh Perspective

Software development in a single vertical tends to restrict professional growth. And though teams tend to coalesce and work better together over time, their shared experience is likewise limited. It's like being a movie reviewer of science fiction who is then asked to review a documentary on the Renaissance.

When you periodically leverage a software development partner you add a diversity of experience across industries that helps you deliver better services to your clients. It also helps your team learn and grow.

Expertise

When it comes to providing digital marketing services, specialization is a key asset when generalization is your model. Agencies typically offer a full-service product, and as such may even have their own software developers. This means that they have to provide the expertise for two unique businesses.

Focus typically yields better quality. That's why it can be a huge benefit to engage with a software development partner, especially on your most important projects. They provide specialized services that improve the quality of your digital tactics, as well as reduce time to market. And they're typically more experienced in working with a wide range of development platforms and services.

Want to know more?

There's usually more to the story so if you have questions or comments about this post let us know!

Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!

Coursabi Renewal: Deciphera

Michael Argentini Avatar
Michael ArgentiniTuesday, May 13, 2025
In the past three decades, tremendous progress has been made in the fight against cancer, but there is still so much more work to be done. At Deciphera, we remain steadfast in our mission to improve the lives of people living with cancer - and that passion for making a difference extends to the patient groups and communities in which we live and work. In the past three decades, tremendous progress has been made in the fight against cancer, but there is still so much more work to be done. At Deciphera, we remain steadfast in our mission to improve the lives of people living with cancer - and that passion for making a difference extends to the patient groups and communities in which we live and work.

During the COVID pandemic, Fynydd partnered with Blue Sequoyah Technologies (https://bluesequoyah.com) to build Coursabi: a cutting edge learning platform (https://coursabi.com). It's an all-in-one learning solution with features like native and SCORM course support, video conferencing, audio and video libraries, forms, reports, events, and more, all presented as a concise learning journey.

We found particular success in the pharmaceutical and healthcare space, and are proud to see these clients renewing each year as they find success in keeping their teams trained, compliant, and most of all, happy.

One of our early subscribers, Deciphera (https://deciphera.com), has been at the cutting edge of cancer research for decades. They do great work, and we're proud to say that they have renewed their Coursabi subscription for 2025!

Want to know more?

There's usually more to the story so if you have questions or comments about this post let us know!

Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!

Website Builder Service Or Custom Website?

Michael Argentini Avatar
Michael ArgentiniFriday, May 9, 2025

There is a world full of "build your own website" services that allow just about anyone to stand up a new website in a few hours. Even organizations can leverage the simplicity offered by these services to set up an online store, community, and more. Here are a few examples of why people typically choose these services.

  • Quick setup and time to market
  • Reasonable up-front pricing
  • Design templates
  • Integrated services, like shopping carts and email
  • Managed hosting

Sounds great! But as with everything in life, there are tradeoffs.

  • Quick setup and time to market means giving up control over things like your domain name, web app design, email provider, and more
  • Reasonable up-front pricing usually means a tiered pricing model with add-on pricing for essential features like a custom domain name, additional bandwidth, and increased storage
  • Design templates mean your web app will largely look like a lot of other web apps that use the service, and may not match your vision, and custom designs can require service-specific web development
  • Integrated services also means no choice over the provider of the service, which could be missing features you need
  • Managed hosting means scaling (growing) is significantly more expensive, network bandwidth caps can apply, and true customer and data ownership are dubious

Regardless, these services can be a great way for individuals and small organizations to bootstrap their web presence, and in many cases, you can happily continue to use the service for years.

But there are also long-term lock-in issues that can be more serious, potentially impeding your growth, for example:

  • You may contractually own your data, but extracting it to migrate to another platform is usually not practical or possible at all; they don't want you to leave
  • When the service changes (features, pricing, etc.) or if the service is purchased by another entity, you usually have no choice other than rolling with it, for better or worse
  • If the service shuts down, you're going to struggle to replace everything they offered to your visitors in a relatively short period of time
  • Most successful businesses will outgrow these services anyway, so you could be missing out on long-term savings

Custom Websites

If the tradeoffs are too much to swallow, fear not! You can also go with a custom web app tailored specifically to your needs and budget. It can match your vision without compromises and scaling can be managed more easily as your business or traffic grow.

So how do you get started? With a builder service you first have to find one with the price and features you need, and then create an account and dig into their control panel to start configuring your website. Whereas for a custom website the first step is to find a web development partner you can rely on for advice and technical expertise, like Fynydd. Your partner can help gather your ideas, come up with a plan, and build your web app, all within your budget and timeline. They're usually experts in both new web app projects and migrations from other platforms and services. Most importantly, they fill the knowledge gap left by the "build your own website" service.

A web development partner will choose technologies that have a proven security track record. One way we do this is by consulting the CVE database; a publicly funded global resource for tracking common vulnerabilities and exposures. For example, a CVE search quickly reveals that WordPress has historically been a security nightmare.

Your development partner will help you with a design that matches your vision, a hosting service that meets your needs and budget, a security review, a backup plan and disaster recovery strategy, and more. When the time comes to grow your platform, they can help with that too. And throughout the journey you maintain full control over your brand, your website, your data, and your customers.

Want to know more?

There's usually more to the story so if you have questions or comments about this post let us know!

Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!

Supercharge Offshore Development

Michael Argentini Avatar
Michael ArgentiniWednesday, April 30, 2025

When it comes to offshore software development teams, managing quality and risk creates value. But you also need experienced leadership and oversight for long-term success. Simply adding offshore bodies to a project rarely works, and has diminishing returns.

Here are some process tips for mitigating risk and getting the most value from an offshore team.

  • Also leverage an onshore development partner for leadership and critical systems design. They can create and direct strategy, ensure developers follow patterns, address compliance and security concerns, and perform code reviews to ensure quality. They can also write better code faster, which best suits critical systems development. This is what we do at Fynydd and it works.
  • If possible, your offshore team should mirror your operating hours. Otherwise communications, troubleshooting, and overall progress will lag. It can be beneficial to have expanded availability for handling off-hour requests, but that means the offshore team needs decision-making authority. Otherwise someone in the organization will also need to be available during those hours.
  • Try to get dedicated resources for the long term. When there are offshore staff changes, require that they fully train the replacement(s) before additional staff are brought in. It takes time! New developers, even when they are superstars, need to learn a platform's ins-and-outs before they can meaningfully contribute.
  • Be explicit about who is running the project, give them the appropriate decision-making authority, and enforce a workflow that puts them between ideas and action. Ideally this would be a lead developer from your onshore partner.
  • If the offshore team has novice developers or otherwise low-performers, make sure they are in a learning role and not expected to work on key infrastructure.
  • Perform code reviews. Bad or inefficient code should not be tolerated and is a learning experience that can make your offshore team better.
  • Rely on your lead development partner to facilitate communication. If you find it difficult to communicate with your offshore team, your lead development partner has experience in picking up the nuance, including technical jargon that's hard to understand in any language.

Avoiding The Big Problems

Some of the issues you'll encounter can be avoided by engaging with an onshore development partner. Here are some tips for keeping the app or service quality high and the risk low.

  • A proper architecture and coding patterns are critical to long-term success. Without a good evolving architecture and consistent coding patterns maintenance is difficult, code readability suffers, and security vulnerabilities are harder to avoid.
  • Compliance is a bear, even with experienced developers. This can range from ensuring organization brand standards, to complying with regional legal requirements (like GDPR), and avoiding copyright violations. There needs to be a focus on these concerns which yields appropriate strategies and resolutions on a consistent basis.
  • Bad code quality is a risk. It's not just about performance and user experience. Bad code could leak information or have vulnerabilities. It could allow bad actors to misuse your app or service. Worse yet, it could facilitate the abuse of your customers.
  • A focus on security is not optional. Properly securing an app or service requires a development team that not only has a security focus, but also the experience and awareness required to implement and maintain a solid security posture. The team members have to be vetted resources with no geopolitical encumbrances and a level of trust commensurate with the app or service in question. For example, bank or government clients may require background checks.
  • Maintaining intellectual capital is crucial. You invested time and money into building a knowledge base as well as an app or service. You need to ensure that the knowledge gained building your app or service will not vanish into the ether.

Want to know more?

There's usually more to the story so if you have questions or comments about this post let us know!

Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!

We Recently Converted a Website Into a Native Mobile App

Michael Argentini Avatar
Michael ArgentiniTuesday, April 22, 2025

Planning out a long-term strategy for your web project can really pay off. We were recently reminded of that when we were asked to create a mobile app (iOS and Android) for a web-based platform we designed and built several years ago. The platform is Coursabi, a learning platform that ensures growth at each milestone for everyone on your team. You can check it out at https://coursabi.com.

Desktop view of the Coursabi dashboard. Desktop view of the Coursabi dashboard.

When we created the technical strategy we knew that a mobile app was a likely roadmap item. So we chose ASP.NET Blazor as the core platform technology. It allowed us to build a web app that felt like a single page app (SPA). And it gave us several hosting models: server, WASM (WebAssembly), and hybrid mobile. The most intriguing aspect of the Blazor Hybrid model is that unlike hybrid apps of the past, there is no web server running on the mobile device. Instead, all the C# code is compiled to native .NET code, and the web view (an embedded web browser) is only used to render the user interface. So the app runs as a native mobile app!

Various mobile (phone) views. Various mobile (phone) views.

We knew that some features of the platform would have to be altered, since the mobile app has no web server. For example, Coursabi supports the SCORM format for external learning content. And due to security restrictions, they needed a host with a trusted root certificate. So moving that out of the platform and handling the routing changes were both necessary, but totally doable.

Another benefit of a mobile app version of the platform is that in many ways it also simplifies the security model, since the app is only running on the local device, whereas a hosted app needs to manage user state, among other concerns.

Tablet view is a hybrid of desktop and mobile. Tablet view is a hybrid of desktop and mobile.

If you have an ASP.NET-based web application, you can still leverage Blazor Hybrid to turn it into a mobile app. It just needs to first be migrated into a Blazor app. I'd also recommend reviewing your web app for opportunities to make it as mobile-friendly as possible. You don't want your mobile app to look or feel like a website. But those changes not only get you a great mobile app, they also improve how your app looks and feels in a mobile web browser. So you get twice the value.

Want to know more?

There's usually more to the story so if you have questions or comments about this post let us know!

Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!

© 2025, Fynydd LLC / King of Prussia, Pennsylvania; United States / +1 855-439-6933

By using this website you accept our privacy policy. Choose the browser data you consent to allow:

Only Required
Accept and Close