Spotlight

Case Study Microsoft

How Microsoft scaled global content delivery

Find out how Microsoft used Gcore to strengthen delivery across regions.

case study ProSieben GNTM app TOPSHOT

How ProSieben scaled GNTM's app TOPSHOT

Explore how ProSieben brought real-time AI portraits to GNTM's audience.

case study Higgsfield

How Higgsfield scaled AI video generation

See how Gcore helped Higgsfield scale with GPUs and Managed Kubernetes.

case study Fawkes Games

How Fawkes Games stopped DDoS attacks

See how Gcore protected gaming servers from massive DDoS threats without disrupting gameplay.

We're hiring

Help build the next chapter of the web

We're not just filling seats. We're building a team that will write the next chapter of the internet.

FastEdge

Run application logic where requests happen

Keep access checks, routing, and personalization close to your users. Run that logic at the edge without provisioning servers or sending every decision back to origin.

  • No credit card needed
  • Generous FREE tier

Set up FastEdge with AI:

https://docs.gcore.com/fastedge
Gcore FastEdge illustration showing a central globe connected to servers, code, and browser windows.
POWERING TEAMS AT
Gcore Microsoft
Unable to determine image content.
The Canva logo features its name in a script font with a blue-to-purple gradient.
Gcore Wargaming
Blue ARD 1 logo with the number one stylized inside a circular arrow.
Unable to determine image content.

Build, ship, and respond from the edge

Deploy edge logic without provisioning servers, managing regions, or rebuilding your backend for every new request-time decision.

BUILD

01

Start with code or a template

Write request-time logic in JavaScript or Rust, or
use a FastEdge template for routing, access, personalization, and more.

SHIP

02

Deploy edge functions

Push your FastEdge application through the Portal, API, CLI, or Terraform, then
run it closer to users on Gcore’s edge network.

RESPOND

03

Serve the right response

Run decisions at the edge, use nearby data for fast reads, and send traffic back to origin only when it is needed.

No servers to provision
No regions to manage
Portal, API, CLI, and Terraform deployment
Edge Storage when logic needs data

Built for edge logic. Without the server work.

Move routing, access, personalization, and transformation logic closer to users
while keeping server setup and runtime operations out of your way.

JS / Rust SDK
Gcore Fastedge Build edge functions in familiar ways

Build in familiar ways

Create FastEdge apps with documented JavaScript and Rust SDK paths, then deploy them as WebAssembly applications at the edge.

JavaScriptRustWebAssembly
Portal · API · CLI
Gcore Fastedge Deploy serverless functions without provisioning

Deploy without provisioning

Push apps through the Customer Portal, API, CLI, or Terraform and bring edge logic online without managing servers, regions, or infrastructure.

Customer PortalAPICLITerraform
Wasm sandbox
Gcore Fastedge Run edge functions in an isolated WebAssembly sandbox

Run in an isolated sandbox

Keep edge applications isolated inside a WebAssembly sandbox designed for controlled request execution.

App isolationControlled execution
Usage-based
Gcore Fastedge Scale edge computing with real traffic

Scale with real traffic

Handle changing demand without pre-provisioning capacity or paying for idle infrastructure your application is not using.

No idle capacityAuto scale
Edge Storage
Gcore Fastedge Connect what edge computing logic needs

Connect what logic needs

Use Secrets Manager for sensitive values and Edge Storage for fast reads from rules, flags, entitlements, or policy data.

Secrets ManagerFast reads

Keep data where
decisions happen

Add Edge Storage when your edge logic
 needs fast reads from rules, flags, entitlements, allowlists, blocklists, or policy data.
 Keep the right data close to the request, and
send traffic back to origin only when needed.

  • Built for read-heavy edge data
  • Global write replication, typically within seconds
  • Good fit for flags, rules, entitlements, and allowlists
Gcore FastEdge – keep data at the edge where functions and decisions happen

CDN delivers. FastEdge handles the logic.

Fast delivery is only the start. Access checks, routing, personalization, and response changes still go back
to origin unless they run at the edge. FastEdge puts that logic closer to your users.

Gcore Fastedge Adapt experiences in real time with edge functions
Personalization
Adapt experiences in real time

Change content, language, currency, experiments, or feature flags based on request context and nearby data.

Feature flagsA/B testsLocalization
Gcore Fastedge Check access before origin with edge authentication
Access Control
Check access before origin

Validate tokens, signed parameters, IPs, keys, and entitlement data before protected content is served.

JWT validationIP listsEntitlements
Gcore Fastedge Edge Functions for Request Routing
Traffic Routing
Send requests the right way

Apply geo rules, release windows, failover logic, or smart-origin selection closer to the user.

Geo routingCanary releasesFailover
Gcore Fastedge Change responses at the edge with serverless functions
Response Logic
Change responses at the edge

Modify headers, rewrite URLs, transform content, or shape frontend responses before they reach the user.

Header & URL rewritesHTML transformContent shaping
Gcore Fastedge Run lightweight apps closer with edge computing
Edge Applications
Run lightweight apps closer

Serve frontend responses, small APIs, generated files, or dynamic content directly from the edge.

Edge APIsFrontend responsesGenerated files
Gcore Fastedge Reduce backend work with edge functions
Origin Offload
Reduce backend work

Move repeat checks, lightweight API logic, and high-frequency policy reads to the edge so origin handles only what it needs to.

Lightweight APIsRepeat checksPolicy reads

More of your edge stack. Less patchwork.

Bring delivery, compute, data, and security closer together on Gcore's edge platform.
Keep your request path growing without turning every new layer into another vendor project.

DELIVERY LAYER
210+

Edge Points of Presence

Delivering content closer to users around the world.

COMPUTE LAYER
<1ms 

EDGE COMPUTE COLD START

Run WebAssembly logic at the edge without noticeable startup delay.

DATA LAYER
sec

GLOBAL DATA REPLICATION

Distribute flags, rules, and entitlements across the edge.

SECURITY LAYER
1config

UNIFIED SECURITY CONTEXT

Apply consistent security context to every platform request.

Connect logic to CDN delivery
Route by location, health, or context
Read edge data before origin

See the logic in action

Five FastEdge functions running on real Gcore edge servers. Pick a demo to see what it does and how it's written.

Streaming transform

Rewrite HTML at the edge before it reaches the browser

Modify any HTML element — headings, links, attributes, or inner content — directly in the response stream, without touching your origin server.

RuntimeWebAssembly
Filemain.rs
main.rs<1ms
use fastedge::{body::Body, http::{header, Error, Method, Request, Response, StatusCode}};
use regex::Regex;

#[fastedge::http]
fn main(req: Request<Body>) -> Result<Response<Body>, Error> {
    // ... allow GET/HEAD, read ?addr= &from= &to=, parse the URL
    let rsp = match request(&u) { /* ... */ };

    let (parts, body) = rsp.into_parts();
    let body = if let Some(mime) = parts.headers.get(header::CONTENT_TYPE) {
        // ... check the type is text/html or text/plain
        let org = String::from_utf8(body.to_vec()).unwrap();
        let new_body = transform(org, from.to_string(), to.to_string(), /* ... */);
        Body::from(new_body)
        // ... other types pass through unchanged
    };

    // send response as is
    Ok(Response::from_parts(parts, body))
}

fn transform(org: String, from: String, to: String, url: String, add_base: bool) -> String {
    match Regex::new(from.as_str()) {
        Err(e) => { /* ... */ }
        Ok(re) => {
            // ... add <base href> when ?base is set
            re.replace_all(body.as_str(), to).to_string()
        }
    }
}
Edge-native storage

Accept uploads at the edge and forward to object storage

Handle file uploads at the closest PoP and stream them to storage without sending the upload through your backend.

RuntimeWebAssembly
Filemain.rs
main.rs~4ms
use std::time::Duration;
use fastedge::{body::Body, http::{header, Error, Method, Request, Response, StatusCode}};
use rusty_s3::{Bucket, Credentials, S3Action, UrlStyle};
use std::{collections::HashMap, env};
use url::Url;

#[fastedge::http]
fn main(req: Request<Body>) -> Result<Response<Body>, Error> {
    // ... allow POST/PUT, read ?name= and Content-Type
    let content = req.into_body();
    // ... reject files over MAX_FILE_SIZE
    let (signed_url, host) = match prepare_s3(fname) { /* ... */ };
    // ... build a PUT request to the signed URL
    let rsp = match fastedge::send_request(req) { /* ... */ };
    // ... on 200, return the file URL instead of the S3 reply
    Ok(Response::from_parts(parts, body))
}

fn prepare_s3(fname: &str) -> anyhow::Result<(Url, String)> {
    /* read S3 access params from env */
    let access_key = env::var("ACCESS_KEY")?;
    let secret_key = env::var("SECRET_KEY")?;
    // ... read REGION, BASE_HOSTNAME, BUCKET and build the bucket URL
    let bucket = Bucket::new(parsed_url, UrlStyle::Path, bucket, region)?;

    let creds = Credentials::new(access_key, secret_key);
    let action = bucket.put_object(Some(&creds), fname);
    let signed_url = action.sign(Duration::from_secs(60 * 60));

    Ok((signed_url, host))
}
AI inference

Run an image model at the edge

Send an image and get back labels with confidence scores. The model is already loaded in the FastEdge runtime, and the app calls it by name.

RuntimeWebAssembly
Filelib.rs
lib.rs~1ms
use fastedge::wasi_nn::wasi::nn::{graph, tensor};
// ... other imports and ImageNet labels

#[fastedge::http]
fn main(req: Request<Body>) -> Result<Response<Body>, Error> {
    // ... accept POST/PUT up to 2 MB, read ?model= (default mobilenet-v2)
    let output = inference(&model_name, req.body())?;
    // ... match scores to labels, keep those above 1%, return JSON
}

fn inference(model_name: &str, image: &[u8]) -> Result<TensorData> {
    // the model is already loaded in the FastEdge runtime
    let context = graph::load_by_name(model_name)?.init_execution_context()?;
    // ... resize the image to 224×224 and turn it into a tensor
    let output = context.compute(vec![("0".into(), tensor)])?;
    Ok(output[0].1.data())
}
Serverless generation

Generate PDF documents on demand, without a server

Render PDFs from a template and request data directly at the edge. No backend, no lambda, no queue — just a function that returns a file.

RuntimeWebAssembly
Fileindex.js
index.js~8ms
import { jsPDF } from "jspdf";
import qs from "qs";

function createInvoice(company = "NA", customer = "NA", /* ... */) {
  const doc = new jsPDF({
    orientation: "p",
    format: "a4",
  });
  // ... header, customer block, line items, total
  return doc.output("arraybuffer");
}

async function eventHandler(event) {
  const queryString = event.request.url.split("?")[1] ?? "";
  const params = qs.parse(queryString);
  const pdfDocument = createInvoice(
    params.company,
    params.customer,
    // ... invoice-id, date, product fields
  );

  return new Response(pdfDocument, { status: 202 });
}

addEventListener("fetch", (event) => {
  event.respondWith(eventHandler(event));
});

Free to build. Usage-based to scale.

Start with a free edge app, then scale based on the compute and edge data your application actually uses.

PRO PLAN
5€/month

plus usage-based overages

  • 3M FastEdge calls included
  • 5s runtime duration per call
  • 200 MB memory per call
  • 10M Edge Storage read requests
  • 10 MB included write size
  • Usage-based pricing beyond included limits

Need custom limits or migration support?

Plan high-volume workloads, custom usage, and advanced architecture needs.

Talk to an expert

Built for real traffic. 
Ready for edge logic.

Because traffic still has to reach the right place even when demand spikes.

Telecommunications and digital services
“TM’s key advantage lies in bringing content delivery, network infrastructure and edge capabilities together within one integrated ecosystem. This enables us to deliver highly customisable CDN solutions tailored to different content, audience and performance requirements.”
Professional headshot of a woman in a grey hijab and dark blue blazer smiling.

Khairul Liza Ibrahim

Executive Vice President, TM Global

60x
Viewership growth
4 ms
Response time
Read case study →
Read the case study

Start building where requests happen

Keep dynamic experiences fast, reduce backend pressure, and give every request a shorter path to the right response.

No credit card needed · Start in 2 minutes

What to know
before you build

Edge compute works best when every layer has a clear job.

Build Choices
FastEdge fits lightweight request logic, such as access checks, routing, personalization, and response changes. Long-running jobs and transactional databases belong in services built for that work.
CDN rules are best for simple, repeatable configuration. FastEdge is for logic that needs more control, like request inspection, response changes, or conditional decisions.
Use Edge Storage when a decision reads the same small state often, such as flags, rules, and allowlists. Keep your own database when that data should stay there, and call it only when needed.
Pair a transformation with CDN caching, and later requests can reuse the stored result. Image variants are a clear fit: create the response once, then let the CDN serve that cached copy.
Product Boundaries
Yes. Check a JWT, signed URL, custom token, or entitlement before protected cached content is served. This fits when a standard CDN setting cannot express that rule.
FastEdge takes lightweight, high-frequency checks off the backend, including access, routing, redirects, and small transformations. The rest of the application stays where it already runs.
The CDN still delivers and caches your content, and WAAP still protects your apps and APIs. FastEdge adds the custom decision when a ready-made rule cannot express it.
Start with one application, path, or region, and take the token and request logic with that flow. The rest of the stack can stay where it is until you are ready to move more.