This project:
- is a pre-rendered Angular site template using Angular Universal
- uses Sanity.io as the project's headless CMS
- creates a Netlify Function to grab data from Sanity.io
- sets up Angular components and a service to use and display the Sanity data
With this project you can also:
- set up CI/CD to Netlify's Edge
- build out the site as soon as there is new data entered into Sanity.io
I explain that all in [this blog post](coming soon!).
To skip all this you could also just click this button:
Sanity.io Backend
- in
/backend
runsanity start
- head to
http://localhost:3333/
Angular + Netlify Parts
- click the 'Use this template' or clone locally with 'git clone https://github.com/tzmanics/serverless-angular-stripe`
- install with
npm i
- install the Netlify CLI globally
npm i netlify-cli -g
- run
netlify init
to connect to your Netlify account &ntl open
to go to the project dashboard - add your Sanity.io env vars via Site Settings/Build & Deploy/Environment/'Edit variables'
SANITY_DATASET
SANITY_PROJECT_ID
SANITY_TOKEN
- run
netlify dev
to start a local instance connecting to your functions and env vars that can be seen athttp://localhost:8888/
Sanity.io Backend
- in
/backend
runsanity deploy
to initially deploy and deploy changes to your Sanity.io instance
Angular + Netlify Parts
- install the Netlify CLI
npm i netlify-cli -g
- run
netlify init
to setup the project on Netlify & deploy it! (the /netlify.toml file has the information Netlify needs to deploy your app) - hooking the project up to Netlify will automatically set up CI/CD so every commit push will deploy the site as well as give deployment preview
- run
netlify open
to open the project dashboard, under the 'Functions' tab you can find the endpoint for your function as well as see all the logs.
- this project has a skeleton for a starter Commerce application that can be used as an app shell that can pre-rendered and then hydrated with Netlify Function.
- there are also files added to implement Angular Universal so even though we are only using the pre-render functionalities of AU you are set up to take advantage of the whole SSR technology
- the only other additional file is the Netlify configuration file which tells Netlify how and what to deploy to the CDN :)
Run ng serve
for a dev server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.
Run ng generate component component-name
to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module
.
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory. Use the --prod
flag for a production build.
Run ng test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via Protractor.
To get more help on the Angular CLI use ng help
or go check out the Angular CLI Overview and Command Reference page.