High-Performance Fastify Application Development

  • Before starting, make sure you have Node.js and npm installed on your system. If you don’t have them yet, you can download them from the official Node.js website.
  • Next, you’ll need to create an account on Square Cloud, which can be done through the signup page. You can use your email to create an account.
  • Finally, you need to have an active paid plan on your account. You can view our plans and purchase one according to your needs here.

Fastify Configuration

To use Fastify, you need to install it on your system. Run the following command:
npm install fastify
This command installs the fastify package on your system, allowing you to use Fastify in your terminal.

Creating a Fastify Project

To create a new Fastify project, you can start by creating a new file and writing the following code:
app.js
// Importing the Fastify module
const fastify = require('fastify')({ logger: true });

// Defining a route handler for the '/' route
// This route handler sends 'Hello, World!' when accessed.
fastify.get('/', async (request, reply) => {
  return 'Hello World!';
});

// Making our Fastify application listen on port 80
fastify.listen({ port: 80 })
  .then((address) => {
    // This code block will be executed once the server is listening on port 80
    fastify.log.info(`Example app listening at ${address}`);
  })
  .catch((err) => {
    // This code block will be executed if there's an error trying to listen on port 80
    fastify.log.error(err);
    process.exit(1);
  });

Creating the Square Cloud Configuration File

Learn more about: how to create the configuration file for Square Cloud.

The squarecloud.app file is a configuration file that will be used to configure your application; it will be used to define the name, description, version, main file, among other things.

Configuring the START Field

In the Square Cloud configuration file, the START field is optional and only necessary if you are using a custom script to start the website or API. In the provided example, the START field is not necessary.

Purchasing a Plan Before Uploading the Project

Before uploading your project to Square Cloud, it is important to understand that you need to purchase a plan. The type of plan you choose will depend on the resources required by your application. You can view our plans here.
Wondering how much RAM and CPU your plan needs to host a Fastify application? Don’t worry, we’re here to help. Fastify is a web framework highly focused on providing the best developer experience with the least overhead and a powerful plugin architecture. It is easy to learn, highly flexible, and suitable for a wide range of applications, making it an excellent choice for web development. Fastify also has excellent production capabilities, making it a robust choice for building and deploying production-level applications. It is designed to be efficient, fast, and lightweight, ensuring that your applications run smoothly and reliably. Our Standard plan offers 4GB of RAM and 4vCPU, which should be sufficient for most Fastify applications. However, if you are working on a larger project or need more stability, we recommend considering our Pro plan. With additional resources, you can ensure smooth performance even under high demand. To purchase, simply click here.

Uploading the Project to Square Cloud

After preparing your project files, you can now upload them to Square Cloud and host your project.
Access the Square Cloud Dashboard and upload your project files.

Additional Resources

For more information about Fastify and its tools, visit the official Fastify documentation. There, you will find detailed guides, tutorials, and API documentation to help you make the most of Fastify.

Troubleshooting

Custom Domain

To use a custom domain (e.g., mysite.com) instead of the default URL https://mysite.squareweb.app/, you need the Standard plan or higher. The subdomain is defined by the SUBDOMAIN field in the configuration file. See: How to set up your custom domain.

Minimum RAM Requirements

Minimum: 512MB RAM for simple websites/APIs. For sites with frameworks (Next.JS, React, Vue, Angular, etc.), we always recommend at least 1GB RAM. For larger applications, use more RAM to avoid LACK_OF_RAM error and ensure performance.

Could not find this site.

Check if the subdomain/domain matches what's configured in the SUBDOMAIN field or in the custom domain settings. If you just uploaded the site, wait up to 60 seconds for Square to enable first access.

Site took too long to respond...

Check if you correctly configured port 80 and host 0.0.0.0 in the application. We recommend using Square's forced environment variables: PORT and HOST from the .env file.
If you continue facing technical difficulties, our specialized support team is available to assist you. Contact us and we'll be happy to help you resolve any issue.