Professional Astro Application Development
- Before starting, make sure you have Node.js (>=16.x) and npm installed on your system. If you don’t have them yet, you can download them from the official Node.js website.
- Next, create an account on Square Cloud through the signup page. You can use your email to register quickly.
- Finally, ensure you have an active paid plan on your account. You can view and purchase a plan according to your needs here.
Astro Configuration
To create an Astro project, run the official initializer:Creating an Astro Project
Start the development server with:http://localhost:3000.
To create a simple page, add src/pages/index.astro with the following content:
src/components/ and import them into your pages.
Creating the Square Cloud Configuration File
Learn more about: how to create the configuration file for Square Cloud.
The
squarecloud.app file defines your application’s name, description, version, entry point, and other essential settings.Purchasing a Plan Before Uploading the Project
Before deploying your project to Square Cloud, ensure you have an active plan that meets your application’s resource needs. Astro sites are often static and very resource-efficient, so the Basic or Standard plan is sufficient for many projects. If your site uses server adapters, dynamic rendering, or heavy backend logic, consider the Pro plan.Unsure how much RAM and CPU an Astro site needs? Static Astro sites are lightweight and usually require minimal resources. If you use server-side rendering or adapters, resource needs will depend on your runtime; the Standard plan is a good starting point for most use cases.
Building Astro for Production
Build the production output before uploading:dist/ folder by default.
To serve a static Astro site on Square Cloud, make sure your server or configuration points to the dist/ folder. If you are using a Node server, set the START field accordingly.
Express library
To serve your static project on Square Cloud, ensure your server correctly delivers static files. To use Node.js with Express, a common setup is:server.js
Adjust
dist paths parameters to your project build folder. If it is in a folder inside build or dist, use it path instead.Serve library
Installing the Serve Library
To install theserve library, navigate to your project directory in the terminal and run the following command:
14.2.3 of the serve library. If you want to install the latest version, you can omit the @14.2.3.
Configuring the Startup Script
After installing theserve library, you need to configure your project's startup script to use serve. To do this, open your project's package.json file and add a new script called start:prod:
start:prod script, serve -s build -l 80 does the following:
serve: This is the command to start theserveserver.-s dist: The-soption serves thedistdirectory in single-page application mode. This means all not-found requests will be redirected toindex.html. Thedistdirectory is commonly created when you runnpm run build.-l 80: The-loption followed by80tellsserveto listen on port 80. Port 80 is the default port for HTTP traffic.
Adjust
dist parameter to your project build folder. If it is in a folder inside build or dist, use it path instead.Uploading the Project to Square Cloud
After preparing your project, you can upload it to Square Cloud using the dashboard or the CLI.- Upload via Dashboard
- Upload via CLI
Access the Square Cloud Dashboard and upload your project files.

Additional Resources
For more information about Astro, visit the official documentation here.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.

