Technology 
Over the past year, we've transitioned to using Svelte as our
primary front-end framework, moving away from React.
This decision stems from Svelte's innovative approach to building web applications, which offers several advantages:
- Compile-Time Optimization: Unlike traditional frameworks that rely on a virtual DOM, Svelte compiles components into highly efficient imperative code during build time. This results in faster runtime performance and smaller bundle sizes which improves SEO.
- Intuitive Syntax: Svelte's syntax closely resembles standard HTML and CSS, eliminating the need for JSX. This alignment with traditional web development practices simplifies the learning curve and enhances developer productivity.
- Built-In Reactivity: Svelte offers a straightforward reactivity model without the need for external state management libraries. This built-in feature streamlines the development process and reduces complexity.
- Versatile Rendering Options: With support for Static Site Generation (SSG), Server-Side Rendering (SSR), isomorphic rendering, and Single Page Applications (SPA), Svelte provides flexibility to cater to various project requirements. Using SSG and/or SSR is key for SEO.
- Scoped Styling: Svelte allows for scoped CSS within components, reducing the likelihood of style conflicts and often eliminating the need for utility-first CSS frameworks like Tailwind.
SvelteKit is the official application framework for Svelte.
It provides the structure and tools needed to build
full-featured web applications with minimal setup. We mainly use SvelteKit for two types of applications:
- Static Site Generation (SSG): Content is built once and served quickly to users, making it ideal for marketing websites, documentation, or other content-heavy apps that benefit from fast load times and SEO.
- Single Page Applications (SPA): The entire application is rendered in the browser, which is well-suited to internal dashboards, data-driven tools, or other interfaces where SEO is not a concern.
- Simplifies development: Built-in routing, layouts, and API endpoints allow us to build and maintain projects efficiently.
- Improves performance: SvelteKit produces optimized JavaScript with very little overhead, so apps load and run quickly.
- Flexible rendering: We can choose the right rendering method (SSG, SSR, SPA, or a mix) based on the needs of the project.
- Good developer experience: SvelteKit has helpful error messages, fast reloads during development, and encourages simple, readable code.
- Reduces dependency on other tools: With built-in support for forms, data loading, and styling, we don't need as many third-party libraries.
We've been using React since 2018 and have built over 10 medium to large-scale
applications with it. It's a core part of our front-end development experience and continues to be a reliable option
for many types of projects. React is one of the most widely used JavaScript frameworks for building user interfaces. Developed and maintained by
Facebook (now Meta), it has a large, active community and a mature ecosystem. This means there are well-tested tools,
components, and libraries available, which helps streamline development and solve common problems efficiently.
We've used React in a range of setups:
- Webpack: Used in earlier projects to create highly customized builds.
- Vite: Used in newer projects to benefit from faster development and simpler configuration.
- Preact: Used in one project as a lightweight React alternative where performance and bundle size were key priorities.
Next.js is a popular web application framework built on top of React.
It provides
everything needed to create fast,
scalable full-stack web applications out of the box. We typically use Next.js when a project requires strong server-side rendering (SSR), dynamic content, or advanced caching strategies. Next.js is currently one of the most widely adopted front-end frameworks in the industry. It's backed by Vercel, and
its ecosystem is mature, well-documented, and actively maintained. That makes it a safe, long-term choice for
production applications. We find it especially effective for:
- Server-heavy applications: Ideal for SEO-focused websites or dashboards that require real-time data and server-rendered content.
- Smart caching and revalidation: Built-in support for incremental static regeneration and full control over cache headers.
- Full-stack capabilities: Easily integrates both client and server logic with API routes, authentication, and dynamic data fetching.
.NET has been a staple of our technology toolbox for over 10 years.
It's a mature, well-supported framework developed
by Microsoft, and we rely on it for building reliable, high-performance back-end systems. We primarily use .NET for two types of projects:
- REST APIs: We use .NET to build APIs of all sizes, from lightweight services to large-scale distributed systems.
- Automated tools and background services: Ideal for scheduled tasks, data processing, or integration with third-party systems.
PostgreSQL is our preferred relational database for most projects. It's a powerful, free, and open-source system
known for its reliability, flexibility, and standards compliance. We use it because it provides the full feature set of a modern SQL database, while also supporting many advanced
capabilities through extensions and companion tools.
- Extension support: PostgreSQL has a wide range of powerful extensions, such as trigram indexes for fast similarity-based text searches.
- Free and open source: There are no licensing costs or restrictions, which makes it ideal for both prototyping and scaled production systems.
- Runs anywhere: It works across all major operating systems and can be deployed to nearly any environment: cloud providers, containers, on-premise servers, or even directly inside the browser using tools like WASM.
- Mature and battle-tested: PostgreSQL has been in active development for over 25 years and is known for its stability and data integrity.
- Rich ecosystem: There are many companion tools available, such as pgEdge, which adds replication and distributed database features - all free and open source.
- Full SQL feature set: Being a standards-compliant SQL database, it supports ACID transactions, constraints, joins, indexing, and everything else expected from an enterprise-grade system.
Microsoft SQL Server has been a core part of our
technology stack for over 20 years. It's a mature, enterprise-grade
relational database system known for its performance, stability, and tight integration with the Microsoft ecosystem. We've successfully used it across a wide range of applications, particularly those built on .NET and deployed to
Microsoft infrastructure.
- Proven and reliable: SQL Server has a long track record in mission-critical environments and provides excellent tooling for database administration.
- Strong integration with .NET and Azure: Ideal for projects already using the Microsoft stack, with deep support across development tools, hosting, and authentication.
- Advanced features: Offers built-in support for features like full-text search, replication, partitioning, and fine-grained security.
- Excellent management tools: SQL Server Management Studio (SSMS) remains one of the most comprehensive database GUIs available.
After building several large-scale front-end applications using plain JavaScript, we made the switch to TypeScript - and
haven't looked back since. For any project where TypeScript is an option, we would always choose it over JavaScript. The benefits of type safety, better tooling, and earlier error detection are immediately felt on any project of
any size. It encourages more deliberate code, reduces runtime bugs, and makes it much easier to work in larger teams
or maintain codebases over time.
- More maintainable code: Type annotations provide clarity and reduce ambiguity, making it easier to understand and refactor code.
- Earlier error detection: Many bugs that would previously show up only at runtime can now be caught at compile time.
- Improved tooling: TypeScript unlocks a better developer experience in modern editors, including autocomplete, navigation, and inline documentation.
- Scales better for large projects: It becomes significantly easier to manage complexity across many modules and contributors.
- Rapid compiler improvements: The TypeScript compiler has seen major performance improvements and now handles much larger projects efficiently.
- Real-world confidence: Relying on type safety instead of trying to catch everything with unit tests results in fewer bugs and more predictable outcomes.
Google APIs provide a fast, efficient way to integrate powerful features
into our applications so we can focus on innovation rather than reinventing the wheel.
Many are free at low usage levels, making them ideal for small business or cost-conscious
projects. Below is a list of APIs we've used so far, but there are many more that we anticipate leveraging in the near
future.
- Google Identity: We use Google Identity for secure user authentication and to protect backend APIs. It provides a standardized, trusted way for users to sign in with their Google accounts, and it helps enforce access control for private resources.
- Google Drive: Google Drive gives users up to 15GB of free cloud storage. We use it to store and manage files such as documents, images, and other media in the cloud. We also use it as a dynamic content source for websites and web applications - allowing files stored in Drive to be pulled directly into apps, making content management simple and user-friendly, especially for non-technical users.
- Google Sheets: We often use Google Sheets as a lightweight database for low-scale applications. It's fast to set up, integrates easily with Drive, and allows for real-time collaboration and cloud-based storage without needing a traditional database.
- Google Translate: Google Translate supports over 100 languages. We use it to add translation features to apps, making content accessible to a broader audience without managing custom translation workflows.
HTML (HyperText Markup Language) is the standard
language used to structure web pages. It defines elements like headings, paragraphs, images, links, and forms, allowing
browsers to display content correctly. In our business, we utilize the latest HTML features, such as semantic elements (
article, section, nav), improved
accessibility attributes, and native APIs like the dialog element for modals. This ensures our applications are
modern,
efficient, and compatible with current web standards, offering a better user experience and streamlined development and
better SEO ranking.CSS (Cascading Style Sheets) is the language used to
control the layout, design, and responsiveness of web pages and web applications. It enables styling elements like
colors, fonts, spacing, and animations, ensuring a visually appealing and consistent user experience. We heavily utilize SASS, a powerful superset of CSS that introduces features like
variables, nested rules,
mixins, and functions. This allows us to write cleaner, more maintainable styles while improving efficiency.
To a lesser extent, we also use Tailwind CSS, a utility-first framework that
speeds up development by providing
pre-built classes for rapid styling without writing custom CSS from scratch. This combination gives us flexibility,
scalability, and a streamlined workflow for building modern, aesthetically refined applications
Ionos provides a range of hosting and infrastructure solutions designed for reliability, performance, and scalability. It offers high-performance web hosting, enhanced by Content
Delivery
Networks (CDNs) to ensure fast load times and optimized delivery across global locations. For more control and flexibility, Ionos provides Virtual Private Servers (VPS), allowing dedicated resources
without the cost of a full server. For businesses needing maximum performance and customization, full physical servers offer dedicated hardware for high-demand applications. Ionos offers a suite of cloud solutions designed for scalability, security, and resilience. These services provide
on-demand computing power, managed storage, e.t.c. While we haven't yet adopted Ionos' cloud offerings, they present
a potentially more cost-effective alternative to Azure.
Azure is Microsoft's cloud platform, offering a wide range of
services including computing, storage, networking,
and AI-powered solutions. It provides scalable infrastructure for building, deploying, and managing applications globally.
We have extensive experience working with Microsoft Azure, leveraging a wide range of services including:
- Azure SQL for managed relational databases.
- Blob Storage for handling large-scale file storage.
- Service Bus and Queues for reliable messaging and background task processing.
- Redis Cache for high-speed data caching.
- App Services for hosting web applications.
- Function Apps for serverless, event-driven processing.
- Log Analytics for storing, querying and analyzing logs.
- Azure Data Explorer for large scale data storage and fast analysis of large-scale data quickly.
- Application Insights for real time monitoring of application performance and error detection.
- Cosmos DB for globally distributed, low-latency NoSQL data storage.