LogoLogo
Studio
4.4
4.4
  • Harper Docs
  • Getting Started
  • Developers
    • Applications
      • Caching
      • Defining Schemas
      • Defining Roles
      • Debugging Applications
      • Define Fastify Routes
      • Web Applications
      • Example Projects
    • Components
      • Managing
      • Reference
      • Built-In Components
    • REST
    • Operations API
      • Quick Start Examples
      • Databases and Tables
      • NoSQL Operations
      • Bulk Operations
      • Users and Roles
      • Clustering
        • Clustering with NATS
      • Custom Functions
      • Components
      • Registration
      • Jobs
      • Logs
      • Utilities
      • Token Authentication
      • SQL Operations
      • Advanced JSON SQL Examples
    • Real-Time
    • Replication/Clustering
      • Sharding
      • Legacy NATS Clustering
        • Requirements and Definitions
        • Creating A Cluster User
        • Naming A Node
        • Enabling Clustering
        • Establishing Routes
        • Subscription Overview
        • Managing Subscriptions
        • Things Worth Knowing
        • Certificate Management
    • Security
      • JWT Authentication
      • Basic Authentication
      • mTLS Authentication
      • Configuration
      • Users & Roles
      • Certificate Management
    • SQL Guide
      • SQL Features Matrix
      • SQL Date Functions
      • SQL Reserved Word
      • SQL Functions
      • SQL JSON Search
      • SQL Geospatial Functions
    • Miscellaneous
      • Google Data Studio
      • SDKs
      • Query Optimization
  • Administration
    • Best Practices and Recommendations
    • Logging
      • Standard Logging
      • Audit Logging
      • Transaction Logging
    • Clone Node
    • Compact
    • Jobs
    • Harper Studio
      • Create an Account
      • Log In & Password Reset
      • Organizations
      • Instances
      • Manage Databases / Browse Data
      • Manage Clustering
      • Manage Instance Users
      • Manage Instance Roles
      • Manage Applications
      • Instance Metrics
      • Instance Configuration
      • Enable Mixed Content
  • Deployments
    • Configuration File
    • Harper CLI
    • Install Harper
      • On Linux
    • Upgrade a Harper Instance
    • Harper Cloud
      • IOPS Impact on Performance
      • Instance Size Hardware Specs
      • Alarms
      • Verizon 5G Wavelength
  • Technical Details
    • Reference
      • Analytics
      • Architecture
      • Content Types
      • Data Types
      • Dynamic Schema
      • GraphQL
      • Harper Headers
      • Harper Limits
      • Globals
      • Resource Class
      • Transactions
      • Storage Algorithm
    • Release Notes
      • Harper Tucker (Version 4)
        • 4.4.24
        • 4.4.23
        • 4.4.22
        • 4.4.21
        • 4.4.20
        • 4.4.19
        • 4.4.18
        • 4.4.17
        • 4.4.16
        • 4.4.15
        • 4.4.14
        • 4.4.13
        • 4.4.12
        • 4.4.11
        • 4.4.10
        • 4.4.9
        • 4.4.8
        • 4.4.7
        • 4.4.6
        • 4.4.5
        • 4.4.4
        • 4.4.3
        • 4.4.2
        • 4.4.1
        • 4.4.0
        • 4.3.38
        • 4.3.37
        • 4.3.36
        • 4.3.35
        • 4.3.34
        • 4.3.33
        • 4.3.32
        • 4.3.31
        • 4.3.30
        • 4.3.29
        • 4.3.28
        • 4.3.27
        • 4.3.26
        • 4.3.25
        • 4.3.24
        • 4.3.23
        • 4.3.22
        • 4.3.21
        • 4.3.20
        • 4.3.19
        • 4.3.18
        • 4.3.17
        • 4.3.16
        • 4.3.15
        • 4.3.14
        • 4.3.13
        • 4.3.12
        • 4.3.11
        • 4.3.10
        • 4.3.9
        • 4.3.8
        • 4.3.7
        • 4.3.6
        • 4.3.5
        • 4.3.4
        • 4.3.3
        • 4.3.2
        • 4.3.1
        • 4.3.0
        • 4.2.8
        • 4.2.7
        • 4.2.6
        • 4.2.5
        • 4.2.4
        • 4.2.3
        • 4.2.2
        • 4.2.1
        • 4.2.0
        • 4.1.2
        • 4.1.1
        • 4.1.0
        • 4.0.7
        • 4.0.6
        • 4.0.5
        • 4.0.4
        • 4.0.3
        • 4.0.2
        • 4.0.1
        • 4.0.0
        • Tucker
      • HarperDB Monkey (Version 3)
        • 3.3.0
        • 3.2.1
        • 3.2.0
        • 3.1.5
        • 3.1.4
        • 3.1.3
        • 3.1.2
        • 3.1.1
        • 3.1.0
        • 3.0.0
      • HarperDB Penny (Version 2)
        • 2.3.1
        • 2.3.0
        • 2.2.3
        • 2.2.2
        • 2.2.0
        • 2.1.1
      • HarperDB Alby (Version 1)
        • 1.3.1
        • 1.3.0
        • 1.2.0
        • 1.1.0
  • More Help
    • Support
    • Slack
    • Contact Us
Powered by GitBook
On this page
  • Web Application Frameworks
  • Cookie Support
  • Browser Caching Negotiation
  • Built-in Cross-Origin Resource Sharing (CORS)
  • More Resources
  1. Developers
  2. Applications

Web Applications

PreviousDefine Fastify RoutesNextExample Projects

Last updated 2 months ago

Harper is an efficient, capable, and robust platform for developing web applications, with numerous capabilities designed specifically for optimized web application delivery. In addition, there are a number of tools and frameworks that can be used with Harper to create web applications with standard best-practice design and development patterns. Running these frameworks on Harper can unlock tremendous scalability and performance benefits by leveraging Harper's built-in multi-threading, caching, and distributed design.

Harper's unique ability to run JavaScript code directly on the server side, combined with its built-in database for data storage, querying, and caching allows you to create full-featured web applications with a single platform. This eliminates the overhead of legacy solutions that require separate application servers, databases, and caching layers, and their requisite communication overhead and latency, while allowing the full stack to deployed to distributed locations with full local response handling, providing an incredibly low latency web experience.

Web Application Frameworks

With built-in caching mechanisms, and an easy-to-use JavaScript API for interacting with data, creating full-featured applications using popular frameworks is a simple and straightforward process.

Get started today with one of our examples:

Cookie Support

Harper includes support for authenticated sessions using cookies. This allows you to create secure, authenticated web applications using best-practice security patterns, allowing users to login and maintain a session without any credential storage on the client side that can be compromised. A login endpoint can be defined by exporting a resource and calling the login method on the request object. For example, this could be a login endpoint in your resources.js file:

export class Login extends Resource {
	async post(data) {
		const { username, password } = data;
		await request.login(username, password);
		return { message: 'Logged in!' };
	}
}

This endpoint can be called from the client side using a standard fetch request, a cookie will be returned, and the session will be maintained by Harper. This allows web applications to directly interact with Harper and database resources, without needing to go through extra layers of authentication handling.

Browser Caching Negotiation

Built-in Cross-Origin Resource Sharing (CORS)

More Resources

Make sure to check out our developer videos too:

Browsers support caching negotiation with revalidation, which allows requests for locally cached data to be sent to servers with a tag or timestamp. Harper REST functionality can fully interact with these headers, and return 304 Not Modified response based on prior Etag sent in headers. It is highly recommended that you utilize the for accessing tables, as it facilitates this downstream browser caching. Timestamps are recorded with all records and are then returned . Utilizing this browser caching can greatly reduce the load on your server and improve the performance of your web application by being able to instantly use locally cached data after revalidation from the server.

Harper includes built-in support for Cross-Origin Resource Sharing (CORS), which allows you to define which domains are allowed to access your Harper instance. This is a critical security feature for web applications, as it prevents unauthorized access to your data from other domains, while allowing cross-domain access from known hosts. You can define the allowed domains in your , and Harper will automatically handle the CORS headers for you.

Next.js
React SSR
Vue SSR
Svelte SSR
Solid SSR
Next.js on Harper | Step-by-Step Guide for Next Level Next.js Performance
Server-side Rendering (SSR) with Multi-Tier Cache Demo
REST interface
as the ETag in the response
Harper configuration file