-
Notifications
You must be signed in to change notification settings - Fork 36
Expand file tree
/
Copy pathcontext-project.html
More file actions
124 lines (115 loc) · 62.8 KB
/
context-project.html
File metadata and controls
124 lines (115 loc) · 62.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="generator" content="Created with Nullstack - https://nullstack.app" />
<title>Context Project - Nullstack</title>
<meta property="og:image" content="https://nullstack.app/image-1200x630.png">
<meta property="og:description" content="The project object is a proxy in the Nullstack Context available in both client and server and gives you information about the app manifest and some metatags">
<meta name="description" content="The project object is a proxy in the Nullstack Context available in both client and server and gives you information about the app manifest and some metatags">
<meta property="og:title" content="Context Project - Nullstack">
<meta property="og:type" content="website">
<meta property="og:site_name" content="Nullstack">
<meta property="og:url" content="https://nullstack.app/context-project">
<link rel="canonical" href="https://nullstack.app/context-project">
<meta property="og:locale" content="en-US">
<link rel="shortcut icon" href="/favicon-96x96.png" type="image/png">
<link rel="icon" href="/favicon-96x96.png" type="image/png">
<link rel="manifest" href="/manifest.webmanifest" integrity="">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="application-name" content="Nullstack">
<meta name="apple-mobile-web-app-title" content="Nullstack">
<meta name="msapplication-starturl" content="/">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="/client.css?fingerprint=23ad2dd940244ab04e281282c05613bd73043c4f" integrity="" crossorigin="anonymous">
<link rel="apple-touch-icon" sizes="180x180" href="/icon-180x180.png">
<meta name="msapplication-TileColor" content="#2d3748">
<meta name="nullstack" content="%7B%22page%22%3A%7B%22image%22%3A%22%2Fimage-1200x630.png%22%2C%22status%22%3A200%2C%22locale%22%3A%22en-US%22%2C%22title%22%3A%22Context%20Project%20-%20Nullstack%22%2C%22description%22%3A%22The%20project%20object%20is%20a%20proxy%20in%20the%20Nullstack%20Context%20available%20in%20both%20client%20and%20server%20and%20gives%20you%20information%20about%20the%20app%20manifest%20and%20some%20metatags%22%7D%2C%22environment%22%3A%7B%22client%22%3Afalse%2C%22server%22%3Atrue%2C%22development%22%3Afalse%2C%22production%22%3Atrue%2C%22mode%22%3A%22ssg%22%2C%22key%22%3A%2223ad2dd940244ab04e281282c05613bd73043c4f%22%2C%22name%22%3A%22%22%7D%2C%22settings%22%3A%7B%7D%2C%22worker%22%3A%7B%22enabled%22%3Atrue%2C%22fetching%22%3Afalse%2C%22preload%22%3A%5B%22%2Fapplication-startup%22%2C%22%2Fcontext-data%22%2C%22%2Fcontext-environment%22%2C%22%2Fcontext-instances%22%2C%22%2Fcontext-page%22%2C%22%2Fcontext-project%22%2C%22%2Fcontext-secrets%22%2C%22%2Fcontext-settings%22%2C%22%2Fcontext%22%2C%22%2Ffrequently-asked-questions%22%2C%22%2Ffull-stack-lifecycle%22%2C%22%2Fgetting-started%22%2C%22%2Fhow-to-customize-webpack%22%2C%22%2Fhow-to-deploy-a-nullstack-application%22%2C%22%2Fjsx-elements%22%2C%22%2Fnullstack-logo%22%2C%22%2Fpersistent-components%22%2C%22%2Fproxy%22%2C%22%2Frefs%22%2C%22%2Froutes-and-params%22%2C%22%2Fscript-runner%22%2C%22%2Fserver-functions%22%2C%22%2Fserver-request-and-response%22%2C%22%2Fserver-side-rendering%22%2C%22%2Fservice-worker%22%2C%22%2Fsingle-page-applications%22%2C%22%2Fstateful-components%22%2C%22%2Fstateless-components%22%2C%22%2Fstatic-site-generation%22%2C%22%2Fstyles%22%2C%22%2Ftranspilation-and-security%22%2C%22%2Ftwo-way-bindings%22%2C%22%2Ftypescript%22%2C%22%2Fwhat-is-nullstack%22%2C%22%2Fillustrations%2Fnulla-dps.webp%22%2C%22%2Fillustrations%2Fnulla-fullbody.png%22%2C%22%2Fillustrations%2Fnulla-glue.webp%22%2C%22%2Fillustrations%2Fnulla-healer.webp%22%2C%22%2Fillustrations%2Fnulla-hero.webp%22%2C%22%2Fillustrations%2Fnulla-map.webp%22%2C%22%2Fillustrations%2Fnulla-scrolls.webp%22%2C%22%2Fillustrations%2Fnulla-tanker.webp%22%2C%22%2Fillustrations%2Fnulla-tools.webp%22%2C%22%2Farrow.webp%22%2C%22%2Fstars.webp%22%2C%22%2Ffooter.webp%22%2C%22%2Fcontributors%22%2C%22%2Froboto-v20-latin-300.woff2%22%2C%22%2Froboto-v20-latin-500.woff2%22%2C%22%2Fcrete-round-v9-latin-regular.woff2%22%5D%2C%22staleWhileRevalidate%22%3A%5B%5D%2C%22cacheFirst%22%3A%5B%5D%2C%22headers%22%3A%7B%7D%2C%22api%22%3A%22%22%2C%22cdn%22%3A%22%22%2C%22protocol%22%3A%22https%22%2C%22queues%22%3A%7B%7D%2C%22online%22%3Atrue%2C%22responsive%22%3Atrue%7D%2C%22params%22%3A%7B%22slug%22%3A%22context-project%22%7D%2C%22project%22%3A%7B%22domain%22%3A%22nullstack.app%22%2C%22name%22%3A%22Nullstack%22%2C%22color%22%3A%22%23d22365%22%2C%22viewport%22%3A%22width%3Ddevice-width%2C%20initial-scale%3D1%2C%20shrink-to-fit%3Dno%22%2C%22type%22%3A%22website%22%2C%22display%22%3A%22standalone%22%2C%22orientation%22%3A%22portrait%22%2C%22scope%22%3A%22%2F%22%2C%22root%22%3A%22%2F%22%2C%22sitemap%22%3Atrue%2C%22favicon%22%3A%22%2Ffavicon-96x96.png%22%2C%22disallow%22%3A%5B%5D%2C%22icons%22%3A%7B%2272%22%3A%22%2Ficon-72x72.png%22%2C%2296%22%3A%22%2Ficon-96x96.png%22%2C%22128%22%3A%22%2Ficon-128x128.png%22%2C%22144%22%3A%22%2Ficon-144x144.png%22%2C%22152%22%3A%22%2Ficon-152x152.png%22%2C%22180%22%3A%22%2Ficon-180x180.png%22%2C%22192%22%3A%22%2Ficon-192x192.png%22%2C%22384%22%3A%22%2Ficon-384x384.png%22%2C%22512%22%3A%22%2Ficon-512x512.png%22%7D%2C%22backgroundColor%22%3A%22%232d3748%22%7D%2C%22instances%22%3A%7B%22application%22%3A%7B%22persistent%22%3Afalse%7D%2C%22Header%2F0-0-0-0%22%3A%7B%22expanded%22%3Afalse%2C%22persistent%22%3Afalse%2C%22locale%22%3A%22en-US%22%2C%22i18n%22%3A%7B%22home%22%3A%7B%22title%22%3A%22Nullstack%22%2C%22href%22%3A%22%2F%22%7D%2C%22links%22%3A%5B%7B%22title%22%3A%22What%20is%20Nullstack%3F%22%2C%22href%22%3A%22%2Fwhat-is-nullstack%22%7D%2C%7B%22title%22%3A%22Documentation%22%2C%22href%22%3A%22%2Fgetting-started%22%7D%2C%7B%22title%22%3A%22Examples%22%2C%22href%22%3A%22%2Fexamples%22%7D%2C%7B%22title%22%3A%22Contributors%22%2C%22href%22%3A%22%2Fcontributors%22%7D%2C%7B%22title%22%3A%22F.A.Q%22%2C%22href%22%3A%22%2Ffrequently-asked-questions%22%7D%2C%7B%22title%22%3A%22Waifu%22%2C%22href%22%3A%22%2Fwaifu%22%7D%5D%2C%22menu%22%3A%7B%22title%22%3A%22Toggle%20Menu%22%7D%2C%22action%22%3A%7B%22title%22%3A%22Get%20Started%22%2C%22href%22%3A%22%2Fgetting-started%22%7D%2C%22search%22%3A%7B%22title%22%3A%22Search%20%5Bctrl%20%2B%20k%5D%22%7D%2C%22language%22%3A%7B%22title%22%3A%22Portugu%C3%AAs%22%2C%22href%22%3A%22%2Fpt-br%22%7D%2C%22mode%22%3A%7B%22dark%22%3A%22Night%20Mode%22%2C%22light%22%3A%22Day%20Mode%22%7D%7D%7D%2C%22Article%2F0-0-0-18%2Fcontext-project%22%3A%7B%22title%22%3A%22Context%20Project%22%2C%22html%22%3A%22%3Cul%3E%5Cn%3Cli%3EType%3A%20%3Ccode%3Eobject%3C%5C%5C%2Fcode%3E%3C%5C%5C%2Fli%3E%5Cn%3Cli%3EOrigin%3A%20%3Ca%20href%3D%5C%22%2Fcontext%23----nullstack-context%5C%22%3ENullstack%20Context%3C%5C%5C%2Fa%3E%3C%5C%5C%2Fli%3E%5Cn%3Cli%3EAvailability%3A%20server%2Fclient%3C%5C%5C%2Fli%3E%5Cn%3Cli%3E%3Cstrong%3Ereadwrite%3C%5C%5C%2Fstrong%3E%20in%20the%20%3Cstrong%3Eserver%3C%5C%5C%2Fstrong%3E%20context%3C%5C%5C%2Fli%3E%5Cn%3Cli%3E%3Cstrong%3Ereadonly%3C%5C%5C%2Fstrong%3E%20in%20the%20%3Cstrong%3Eclient%3C%5C%5C%2Fstrong%3E%20context%3C%5C%5C%2Fli%3E%5Cn%3C%5C%5C%2Ful%3E%5Cn%3Cp%3EIt%20gives%20you%20information%20about%20the%20app%20manifest%20and%20some%20metatags.%3C%5C%5C%2Fp%3E%5Cn%3Cp%3E%3Ccode%3Eproject%3C%5C%5C%2Fcode%3E%20keys%20will%20be%20used%20to%20generate%20metatags%20during%20server-side%20rendering%20and%20must%20be%20assigned%20before%20%3Ca%20href%3D%5C%22%2Ffull-stack-lifecycle%5C%22%3E%3Ccode%3Einitiate%3C%5C%5C%2Fcode%3E%3C%5C%5C%2Fa%3E%20is%20resolved.%3C%5C%5C%2Fp%3E%5Cn%3Cp%3E%3Ccode%3Eproject%3C%5C%5C%2Fcode%3E%20keys%20will%20be%20used%20to%20generate%20the%20app%20%3Cstrong%3Emanifest%3C%5C%5C%2Fstrong%3E.%3C%5C%5C%2Fp%3E%5Cn%3Cp%3EThe%20%3Ccode%3Edisallow%3C%5C%5C%2Fcode%3E%20key%20will%20be%20used%20to%20generate%20the%20%3Cstrong%3Erobots.txt%3C%5C%5C%2Fstrong%3E.%3C%5C%5C%2Fp%3E%5Cn%3Cp%3EThe%20following%20keys%20are%20available%20in%20the%20object%20and%20supported%20as%20environment%20variables%20as%20follows%3A%3C%5C%5C%2Fp%3E%5Cn%3Cul%3E%5Cn%3Cli%3E%3Cstrong%3Edomain%3C%5C%5C%2Fstrong%3E%3A%20%3Ccode%3Estring%3C%5C%5C%2Fcode%3E%20(%3Ccode%3ENULLSTACK_PROJECT_DOMAIN%3C%5C%5C%2Fcode%3E)%3C%5C%5C%2Fli%3E%5Cn%3Cli%3E%3Cstrong%3Ename%3C%5C%5C%2Fstrong%3E%3A%20%3Ccode%3Estring%3C%5C%5C%2Fcode%3E%20(%3Ccode%3ENULLSTACK_PROJECT_NAME%3C%5C%5C%2Fcode%3E)%3C%5C%5C%2Fli%3E%5Cn%3Cli%3E%3Cstrong%3EshortName%3C%5C%5C%2Fstrong%3E%3A%20%3Ccode%3Estring%3C%5C%5C%2Fcode%3E%20(%3Ccode%3ENULLSTACK_PROJECT_SHORT_NAME%3C%5C%5C%2Fcode%3E)%3C%5C%5C%2Fli%3E%5Cn%3Cli%3E%3Cstrong%3Ecolor%3C%5C%5C%2Fstrong%3E%3A%20%3Ccode%3Estring%3C%5C%5C%2Fcode%3E%20(%3Ccode%3ENULLSTACK_PROJECT_COLOR%3C%5C%5C%2Fcode%3E)%3C%5C%5C%2Fli%3E%5Cn%3Cli%3E%3Cstrong%3EbackgroundColor%3C%5C%5C%2Fstrong%3E%3A%20%3Ccode%3Estring%3C%5C%5C%2Fcode%3E%3C%5C%5C%2Fli%3E%5Cn%3Cli%3E%3Cstrong%3Etype%3C%5C%5C%2Fstrong%3E%3A%20%3Ccode%3Estring%3C%5C%5C%2Fcode%3E%3C%5C%5C%2Fli%3E%5Cn%3Cli%3E%3Cstrong%3Edisplay%3C%5C%5C%2Fstrong%3E%3A%20%3Ccode%3Estring%3C%5C%5C%2Fcode%3E%3C%5C%5C%2Fli%3E%5Cn%3Cli%3E%3Cstrong%3Eorientation%3C%5C%5C%2Fstrong%3E%3A%20%3Ccode%3Estring%3C%5C%5C%2Fcode%3E%3C%5C%5C%2Fli%3E%5Cn%3Cli%3E%3Cstrong%3Escope%3C%5C%5C%2Fstrong%3E%3A%20%3Ccode%3Estring%3C%5C%5C%2Fcode%3E%3C%5C%5C%2Fli%3E%5Cn%3Cli%3E%3Cstrong%3Eroot%3C%5C%5C%2Fstrong%3E%3A%20%3Ccode%3Estring%3C%5C%5C%2Fcode%3E%3C%5C%5C%2Fli%3E%5Cn%3Cli%3E%3Cstrong%3Eicons%3C%5C%5C%2Fstrong%3E%3A%20%3Ccode%3Eobject%3C%5C%5C%2Fcode%3E%3C%5C%5C%2Fli%3E%5Cn%3Cli%3E%3Cstrong%3Efavicon%3C%5C%5C%2Fstrong%3E%3A%20%3Ccode%3Estring%3C%5C%5C%2Fcode%3E%20(relative%20or%20absolute%20url)%3C%5C%5C%2Fli%3E%5Cn%3Cli%3E%3Cstrong%3Edisallow%3C%5C%5C%2Fstrong%3E%3A%20%3Ccode%3Estring%20array%3C%5C%5C%2Fcode%3E%20(relative%20paths)%3C%5C%5C%2Fli%3E%5Cn%3Cli%3E%3Cstrong%3Esitemap%3C%5C%5C%2Fstrong%3E%3A%20%3Ccode%3Eboolean%3C%5C%5C%2Fcode%3E%20or%20%3Ccode%3Estring%3C%5C%5C%2Fcode%3E%20(relative%20or%20absolute%20url)%3C%5C%5C%2Fli%3E%5Cn%3Cli%3E%3Cstrong%3Ecdn%3C%5C%5C%2Fstrong%3E%3A%20%3Ccode%3Estring%3C%5C%5C%2Fcode%3E%20(%3Ccode%3ENULLSTACK_PROJECT_CDN%3C%5C%5C%2Fcode%3E)%3C%5C%5C%2Fli%3E%5Cn%3Cli%3E%3Cstrong%3Eprotocol%3C%5C%5C%2Fstrong%3E%3A%20%3Ccode%3Estring%3C%5C%5C%2Fcode%3E%20(%3Ccode%3ENULLSTACK_PROJECT_PROTOCOL%3C%5C%5C%2Fcode%3E)%3C%5C%5C%2Fli%3E%5Cn%3C%5C%5C%2Ful%3E%5Cn%3Cp%3EBesides%20%3Ccode%3Edomain%3C%5C%5C%2Fcode%3E%2C%20%3Ccode%3Ename%3C%5C%5C%2Fcode%3E%20and%20%3Ccode%3Ecolor%3C%5C%5C%2Fcode%3E%20all%20other%20keys%20have%20sensible%20defaults%20generated%20based%20on%20the%20application%20scope.%3C%5C%5C%2Fp%3E%5Cn%3Cp%3EIf%20you%20do%20not%20declare%20the%20%3Ccode%3Eicons%3C%5C%5C%2Fcode%3E%20key%2C%20Nullstack%20will%20scan%20any%20icons%20with%20the%20name%20following%20the%20pattern%20%26quot%3Bicon-%5BWIDTH%5Dx%5BHEIGHT%5D.png%26quot%3B%20in%20your%20%3Cstrong%3Epublic%3C%5C%5C%2Fstrong%3E%20folder.%3C%5C%5C%2Fp%3E%5Cn%3Cp%3EThe%20%3Ccode%3Ehead%3C%5C%5C%2Fcode%3E%20meta%20tag%20%3Ccode%3Eapple-touch-icon%3C%5C%5C%2Fcode%3E%20will%20be%20set%20to%20your%20%3Ccode%3Eicon-180x180.png%3C%5C%5C%2Fcode%3E%20file.%3C%5C%5C%2Fp%3E%5Cn%3Cp%3EIf%20the%20%3Ccode%3Esitemap%3C%5C%5C%2Fcode%3E%20key%20is%20set%20to%20true%20your%20%3Cstrong%3Erobots.txt%3C%5C%5C%2Fstrong%3E%20file%20will%20point%20the%20sitemap%20to%20%3Ccode%3Ehttps%3A%2F%2F%24%7Bproject.domain%7D%2Fsitemap.xml%3C%5C%5C%2Fcode%3E.%3C%5C%5C%2Fp%3E%5Cn%3Cp%3EThe%20%3Ccode%3Ecdn%3C%5C%5C%2Fcode%3E%20key%20will%20prefix%20your%20asset%20bundles%20and%20will%20be%20available%20in%20the%20context%20so%20you%20can%20manually%20prefix%20other%20assets.%3C%5C%5C%2Fp%3E%5Cn%3Cp%3EThe%20%3Ccode%3Eprotocol%3C%5C%5C%2Fcode%3E%20key%20is%20%26quot%3Bhttp%26quot%3B%20in%20development%20mode%20and%20%26quot%3Bhttps%26quot%3B%20in%20production%20mode%20by%20default.%3C%5C%5C%2Fp%3E%5Cn%3Cpre%3E%3Ccode%20class%3D%5C%22language-jsx%5C%22%3E%3Cspan%20class%3D%5C%22token%20comment%5C%22%3E%2F%2F%20server.js%3C%5C%5C%2Fspan%3E%5Cn%3Cspan%20class%3D%5C%22token%20keyword%5C%22%3Eimport%3C%5C%5C%2Fspan%3E%20Nullstack%20%3Cspan%20class%3D%5C%22token%20keyword%5C%22%3Efrom%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20string%5C%22%3E'nullstack'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%3Cspan%20class%3D%5C%22token%20keyword%5C%22%3Eimport%3C%5C%5C%2Fspan%3E%20Application%20%3Cspan%20class%3D%5C%22token%20keyword%5C%22%3Efrom%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20string%5C%22%3E'.%2Fsrc%2FApplication'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%5Cn%3Cspan%20class%3D%5C%22token%20keyword%5C%22%3Econst%3C%5C%5C%2Fspan%3E%20context%20%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3D%3C%5C%5C%2Fspan%3E%20Nullstack%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E.%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20function%5C%22%3Estart%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E(%3C%5C%5C%2Fspan%3EApplication%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E)%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%5Cncontext%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E.%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20function-variable%20function%5C%22%3Estart%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3D%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20keyword%5C%22%3Efunction%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E(%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E)%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%7B%3C%5C%5C%2Fspan%3E%5Cn%20%20%3Cspan%20class%3D%5C%22token%20keyword%5C%22%3Econst%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%7B%3C%5C%5C%2Fspan%3E%20project%20%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%7D%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3D%3C%5C%5C%2Fspan%3E%20context%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%20%20project%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E.%3C%5C%5C%2Fspan%3Ename%20%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3D%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20string%5C%22%3E'Nullstack'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%20%20project%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E.%3C%5C%5C%2Fspan%3EshortName%20%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3D%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20string%5C%22%3E'Nullstack'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%20%20project%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E.%3C%5C%5C%2Fspan%3Edomain%20%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3D%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20string%5C%22%3E'nullstack.app'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%20%20project%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E.%3C%5C%5C%2Fspan%3Ecolor%20%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3D%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20string%5C%22%3E'%23d22365'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%20%20project%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E.%3C%5C%5C%2Fspan%3EbackgroundColor%20%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3D%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20string%5C%22%3E'%23d22365'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%20%20project%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E.%3C%5C%5C%2Fspan%3Etype%20%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3D%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20string%5C%22%3E'website'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%20%20project%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E.%3C%5C%5C%2Fspan%3Edisplay%20%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3D%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20string%5C%22%3E'standalone'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%20%20project%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E.%3C%5C%5C%2Fspan%3Eorientation%20%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3D%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20string%5C%22%3E'portrait'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%20%20project%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E.%3C%5C%5C%2Fspan%3Escope%20%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3D%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20string%5C%22%3E'%2F'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%20%20project%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E.%3C%5C%5C%2Fspan%3Eroot%20%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3D%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20string%5C%22%3E'%2F'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%20%20project%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E.%3C%5C%5C%2Fspan%3Eicons%20%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3D%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%7B%3C%5C%5C%2Fspan%3E%5Cn%20%20%20%20%3Cspan%20class%3D%5C%22token%20string-property%20property%5C%22%3E'72'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3A%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20string%5C%22%3E'%2Ficon-72x72.png'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%2C%3C%5C%5C%2Fspan%3E%5Cn%20%20%20%20%3Cspan%20class%3D%5C%22token%20string-property%20property%5C%22%3E'128'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3A%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20string%5C%22%3E'%2Ficon-128x128.png'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%2C%3C%5C%5C%2Fspan%3E%5Cn%20%20%20%20%3Cspan%20class%3D%5C%22token%20string-property%20property%5C%22%3E'512'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3A%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20string%5C%22%3E'%2Ficon-512x512.png'%3C%5C%5C%2Fspan%3E%5Cn%20%20%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%7D%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%20%20project%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E.%3C%5C%5C%2Fspan%3Efavicon%20%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3D%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20string%5C%22%3E'%2Ffavicon.png'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%20%20project%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E.%3C%5C%5C%2Fspan%3Edisallow%20%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3D%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%5B%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20string%5C%22%3E'%2Fadmin'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%5D%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%20%20project%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E.%3C%5C%5C%2Fspan%3Esitemap%20%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3D%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20boolean%5C%22%3Etrue%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%20%20project%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E.%3C%5C%5C%2Fspan%3Ecdn%20%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3D%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20string%5C%22%3E'cdn.nullstack.app'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%20%20project%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E.%3C%5C%5C%2Fspan%3Eprotocol%20%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3D%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20string%5C%22%3E'https'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%7D%3C%5C%5C%2Fspan%3E%5Cn%5Cn%3Cspan%20class%3D%5C%22token%20keyword%5C%22%3Eexport%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20keyword%5C%22%3Edefault%3C%5C%5C%2Fspan%3E%20context%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%3C%5C%5C%2Fcode%3E%3C%5C%5C%2Fpre%3E%5Cn%3Cblockquote%3E%5Cn%3Cp%3EMore%20about%20the%20%3Ccode%3Econtext.start%3C%5C%5C%2Fcode%3E%20at%20%3Ca%20href%3D%5C%22%2Fapplication-startup%5C%22%3Eapplication%20startup%3C%5C%5C%2Fa%3E%3C%5C%5C%2Fp%3E%5Cn%3C%5C%5C%2Fblockquote%3E%5Cn%3Cpre%3E%3Ccode%20class%3D%5C%22language-jsx%5C%22%3E%3Cspan%20class%3D%5C%22token%20comment%5C%22%3E%2F%2F%20src%2FApplication.njs%3C%5C%5C%2Fspan%3E%5Cn%3Cspan%20class%3D%5C%22token%20keyword%5C%22%3Eimport%3C%5C%5C%2Fspan%3E%20Nullstack%20%3Cspan%20class%3D%5C%22token%20keyword%5C%22%3Efrom%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20string%5C%22%3E'nullstack'%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%5Cn%3Cspan%20class%3D%5C%22token%20keyword%5C%22%3Eclass%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20class-name%5C%22%3EApplication%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20keyword%5C%22%3Eextends%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20class-name%5C%22%3ENullstack%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%7B%3C%5C%5C%2Fspan%3E%5Cn%5Cn%20%20%3Cspan%20class%3D%5C%22token%20function%5C%22%3Eprepare%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E(%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20parameter%5C%22%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%7B%3C%5C%5C%2Fspan%3Eproject%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%2C%3C%5C%5C%2Fspan%3E%20page%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%7D%3C%5C%5C%2Fspan%3E%3C%5C%5C%2Fspan%3E%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E)%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%7B%3C%5C%5C%2Fspan%3E%5Cn%20%20%20%20page%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E.%3C%5C%5C%2Fspan%3Etitle%20%3Cspan%20class%3D%5C%22token%20operator%5C%22%3E%3D%3C%5C%5C%2Fspan%3E%20project%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E.%3C%5C%5C%2Fspan%3Ename%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%20%20%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%7D%3C%5C%5C%2Fspan%3E%5Cn%5Cn%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%7D%3C%5C%5C%2Fspan%3E%5Cn%5Cn%3Cspan%20class%3D%5C%22token%20keyword%5C%22%3Eexport%3C%5C%5C%2Fspan%3E%20%3Cspan%20class%3D%5C%22token%20keyword%5C%22%3Edefault%3C%5C%5C%2Fspan%3E%20Application%3Cspan%20class%3D%5C%22token%20punctuation%5C%22%3E%3B%3C%5C%5C%2Fspan%3E%5Cn%3C%5C%5C%2Fcode%3E%3C%5C%5C%2Fpre%3E%5Cn%3Cblockquote%3E%5Cn%3Cp%3E%F0%9F%92%A1%20You%20can%20override%20the%20automatically%20generated%20%3Cstrong%3Emanifest.json%3C%5C%5C%2Fstrong%3E%20and%20%3Cstrong%3Erobots.txt%3C%5C%5C%2Fstrong%3E%20by%20serving%20your%20own%20file%20from%20the%20%3Cstrong%3Epublic%3C%5C%5C%2Fstrong%3E%20folder%3C%5C%5C%2Fp%3E%5Cn%3C%5C%5C%2Fblockquote%3E%5Cn%22%2C%22persistent%22%3Atrue%2C%22locale%22%3A%22en-US%22%2C%22i18n%22%3A%7B%22lead%22%3A%22Have%20any%20questions%20or%20suggestions%3F%22%2C%22cta%22%3A%22Join%20our%20Discord%22%2C%22next%22%3A%22Next%20Step%22%2C%22learn%22%3A%22Learn%20more%20about%22%7D%2C%22description%22%3A%22The%20project%20object%20is%20a%20proxy%20in%20the%20Nullstack%20Context%20available%20in%20both%20client%20and%20server%20and%20gives%20you%20information%20about%20the%20app%20manifest%20and%20some%20metatags%22%2C%22topics%22%3A%5B%7B%22title%22%3A%22About%20Nullstack%22%2C%22links%22%3A%5B%7B%22title%22%3A%22What%20is%20Nullstack%3F%22%2C%22href%22%3A%22%2Fwhat-is-nullstack%22%7D%2C%7B%22title%22%3A%22Getting%20started%22%2C%22href%22%3A%22%2Fgetting-started%22%7D%5D%7D%2C%7B%22title%22%3A%22Core%20Features%22%2C%22links%22%3A%5B%7B%22title%22%3A%22Stateless%20Components%22%2C%22href%22%3A%22%2Fstateless-components%22%7D%2C%7B%22title%22%3A%22Stateful%20components%22%2C%22href%22%3A%22%2Fstateful-components%22%7D%2C%7B%22title%22%3A%22Full%20stack%20lifecycle%22%2C%22href%22%3A%22%2Ffull-stack-lifecycle%22%7D%2C%7B%22title%22%3A%22Server%20functions%22%2C%22href%22%3A%22%2Fserver-functions%22%7D%2C%7B%22title%22%3A%22Context%22%2C%22href%22%3A%22%2Fcontext%22%7D%2C%7B%22title%22%3A%22Two-way%20bindings%22%2C%22href%22%3A%22%2Ftwo-way-bindings%22%7D%2C%7B%22title%22%3A%22JSX%20elements%22%2C%22href%22%3A%22%2Fjsx-elements%22%7D%2C%7B%22title%22%3A%22Refs%22%2C%22href%22%3A%22%2Frefs%22%7D%2C%7B%22title%22%3A%22Styles%22%2C%22href%22%3A%22%2Fstyles%22%7D%2C%7B%22title%22%3A%22Persistent%20Components%22%2C%22href%22%3A%22%2Fpersistent-components%22%7D%5D%7D%2C%7B%22title%22%3A%22Context%20Keys%22%2C%22links%22%3A%5B%7B%22title%22%3A%22Routes%20and%20params%22%2C%22href%22%3A%22%2Froutes-and-params%22%7D%2C%7B%22title%22%3A%22Context%20data%22%2C%22href%22%3A%22%2Fcontext-data%22%7D%2C%7B%22title%22%3A%22Context%20instances%22%2C%22href%22%3A%22%2Fcontext-instances%22%7D%2C%7B%22title%22%3A%22Context%20environment%22%2C%22href%22%3A%22%2Fcontext-environment%22%7D%2C%7B%22title%22%3A%22Context%20page%22%2C%22href%22%3A%22%2Fcontext-page%22%7D%2C%7B%22title%22%3A%22Context%20project%22%2C%22href%22%3A%22%2Fcontext-project%22%7D%2C%7B%22title%22%3A%22Context%20settings%22%2C%22href%22%3A%22%2Fcontext-settings%22%7D%2C%7B%22title%22%3A%22Context%20secrets%22%2C%22href%22%3A%22%2Fcontext-secrets%22%7D%2C%7B%22title%22%3A%22Server%20request%20and%20response%22%2C%22href%22%3A%22%2Fserver-request-and-response%22%7D%2C%7B%22title%22%3A%22Service%20Worker%22%2C%22href%22%3A%22%2Fservice-worker%22%7D%5D%7D%2C%7B%22title%22%3A%22Advanced%20concepts%22%2C%22links%22%3A%5B%7B%22title%22%3A%22Proxy%22%2C%22href%22%3A%22%2Fproxy%22%7D%2C%7B%22title%22%3A%22Application%20Startup%22%2C%22href%22%3A%22%2Fapplication-startup%22%7D%2C%7B%22title%22%3A%22Script%20runner%22%2C%22href%22%3A%22%2Fscript-runner%22%7D%2C%7B%22title%22%3A%22How%20to%20customize%20Webpack%22%2C%22href%22%3A%22%2Fhow-to-customize-webpack%22%7D%2C%7B%22title%22%3A%22Transpilation%20and%20Security%22%2C%22href%22%3A%22%2Ftranspilation-and-security%22%7D%2C%7B%22title%22%3A%22TypeScript%22%2C%22href%22%3A%22%2Ftypescript%22%7D%5D%7D%2C%7B%22title%22%3A%22Build%20Modes%22%2C%22links%22%3A%5B%7B%22title%22%3A%22Server-side%20rendering%22%2C%22href%22%3A%22%2Fserver-side-rendering%22%7D%2C%7B%22title%22%3A%22Static%20site%20generation%22%2C%22href%22%3A%22%2Fstatic-site-generation%22%7D%2C%7B%22title%22%3A%22Single%20page%20applications%22%2C%22href%22%3A%22%2Fsingle-page-applications%22%7D%5D%7D%2C%7B%22title%22%3A%22Other%22%2C%22links%22%3A%5B%7B%22title%22%3A%22Nullstack%20Logo%22%2C%22href%22%3A%22%2Fnullstack-logo%22%7D%2C%7B%22title%22%3A%22How%20to%20deploy%22%2C%22href%22%3A%22%2Fhow-to-deploy-a-nullstack-application%22%7D%5D%7D%5D%7D%2C%22GoogleAnalytics%2F0-0-0-19%22%3A%7B%22persistent%22%3Afalse%7D%2C%22Loader%2F0-0-0-21%22%3A%7B%22persistent%22%3Afalse%7D%2C%22Footer%2F0-0-0-22%22%3A%7B%22persistent%22%3Afalse%2C%22locale%22%3A%22en-US%22%2C%22i18n%22%3A%7B%22links%22%3A%5B%7B%22title%22%3A%22YouTube%22%2C%22href%22%3A%22https%3A%2F%2Fwww.youtube.com%2Fchannel%2FUCUNPaxoppH3lu6JTrUX78Ww%22%7D%2C%7B%22title%22%3A%22Twitter%22%2C%22href%22%3A%22https%3A%2F%2Ftwitter.com%2Fnullstackapp%22%7D%2C%7B%22title%22%3A%22GitHub%22%2C%22href%22%3A%22https%3A%2F%2Fgithub.com%2Fnullstack%22%7D%5D%2C%22star%22%3A%7B%22story%22%3A%22Want%20to%20show%20your%20love%20and%20help%20us%20spread%20the%20word%3F%22%2C%22action%22%3A%22Leave%20a%20star%20on%20GitHub%22%7D%7D%7D%7D%2C%22context%22%3A%7B%22mode%22%3A%22light%22%2C%22oppositeMode%22%3A%22dark%22%7D%7D">
<link rel="preconnect" href="https://www.googletagmanager.com" id="0-0-0-19-0-0"/><link rel="preload" href="/roboto-v20-latin-300.woff2" as="font" type="font/woff2" crossorigin id="0-0-0-20-0-0"/><link rel="preload" href="/roboto-v20-latin-500.woff2" as="font" type="font/woff2" crossorigin id="0-0-0-20-0-1"/><link rel="preload" href="/crete-round-v9-latin-regular.woff2" as="font" type="font/woff2" crossorigin id="0-0-0-20-0-2"/>
<script src="/client.js?fingerprint=23ad2dd940244ab04e281282c05613bd73043c4f" integrity="" defer crossorigin="anonymous"></script>
</head>
<body data-theme="light" class="light">
<div id="application"><div class="dark:bg-gray-900 dark:text-white"><div class="h-20"><header class="fixed w-full bg-white dark:bg-gray-900 shadow top-0 left-0 z-20 md:h-20 flex items-center"><div class="max-w-screen-xl mx-auto px-4 flex justify-between items-center flex-wrap py-4 w-full"><div class="w-full sm:w-auto justify-between sm:justify-self-start sm:px-0 items-center flex"><a title="Nullstack" href="/"><svg xmlns="http://www.w3.org/2000/svg" height="30" viewBox="0 0 511.5039 113.7368"><title> Nullstack </title><path d="M13.2736,39.964H28.7009v9.8922a20.3919,20.3919,0,0,1,7.743-8.479,21.2792,21.2792,0,0,1,11.2172-3.0031q7.36,0,11.3349,4.1218t3.9745,11.6588a48.9655,48.9655,0,0,1-1.06,8.8913l-8.3025,42.8665H36.3556L44.187,65.7546a31.2306,31.2306,0,0,0,.5888-5.5939q0-7.6542-6.3593-7.6547a10.7348,10.7348,0,0,0-8.4791,4.3278q-3.5922,4.328-5.0639,12.0415l-7.1248,37.0372H.4961Z" transform="translate(-0.4961)" fill="#2d3748"></path><path d="M81.4691,107.62q-7.2426,0-11.2466-4.1807t-4.004-11.8943a46.3965,46.3965,0,0,1,1.001-8.6557L75.64,39.964H92.7746L85.0609,80.24a29.8175,29.8175,0,0,0-.5888,5.5938q0,7.6551,6.4771,7.6548A10.3547,10.3547,0,0,0,99.2811,89.19q3.4446-4.2978,4.9756-12.0709L111.44,39.964h17.1348l-12.7775,65.9485H100.37V96.138a18.7565,18.7565,0,0,1-7.4781,8.3908A21.4849,21.4849,0,0,1,81.4691,107.62Z" transform="translate(-0.4961)" fill="#2d3748"></path><path d="M150.2958,113.7368q-11.4821,0-16.7815-3.3563t-5.2995-10.5989a43.049,43.049,0,0,1,1.1188-8.3613l11.9532-56.6451H123.2687l2.532-13.2486h35.2118L146.2918,92.4213q-.1767.825-.3238,1.7371a10.5763,10.5763,0,0,0-.1473,1.6781q0,4.6521,8.2436,4.6517h16.3694l-2.65,13.2486Z" transform="translate(-0.4961)" fill="#d22365"></path><path d="M181.897,92.21q-11.4822,0-16.7816-3.3563T159.816,78.255a43.0455,43.0455,0,0,1,1.1187-8.3613l11.9532-56.6451H154.87L157.4018,0h35.2118L177.8929,70.8947q-.1765.8248-.3238,1.737a10.5766,10.5766,0,0,0-.1472,1.6782q0,4.6519,8.2435,4.6517h16.3694l-2.65,13.2486Z" transform="translate(-0.4961)" fill="#d22365"></path><path d="M228.3106,107.62a72.47,72.47,0,0,1-23.6119-4.1218l3.003-15.0739q10.5988,6.7717,21.6688,6.7715,6.4176,0,10.0983-2.2965a7.1387,7.1387,0,0,0,3.68-6.3593,4.4873,4.4873,0,0,0-1.8253-3.8273q-2.3556-1.884-9.5979-3.9452l-5.1817-1.4132q-13.8969-3.8271-13.8963-16.9582a18.9819,18.9819,0,0,1,8.0375-16.0455q8.0374-5.976,22.4637-5.9766a60.6829,60.6829,0,0,1,10.1573.8538,63.0434,63.0434,0,0,1,10.5105,2.797L260.8727,56.981a33.7,33.7,0,0,0-19.3724-6.3q-5.9478,0-9.3623,2.09a6.2659,6.2659,0,0,0-3.4152,5.5056,5.102,5.102,0,0,0,2.2375,4.2984q2.4731,1.7082,9.6568,3.7685l4.3573,1.2365q7.4775,2.12,10.9816,6.271t3.5035,10.805q0,10.7172-8.2436,16.84T228.3106,107.62Z" transform="translate(-0.4961)" fill="#2d3748"></path><path d="M297.9546,106.2069q-11.3055,0-16.6932-3.3857t-5.3878-10.57a47.7847,47.7847,0,0,1,1.06-8.3613l5.9472-30.6778H265.9813l2.532-13.2486h16.8993l3.5918-18.7247h17.2527L302.6063,39.964h22.5521l-2.532,13.2486h-22.552l-6.1827,31.6788A20.2915,20.2915,0,0,0,293.48,88.13a3.9534,3.9534,0,0,0,1.9431,3.68q1.9433,1.1482,6.2416,1.1482h13.2486l-2.532,13.2486Z" transform="translate(-0.4961)" fill="#2d3748"></path><path d="M338.2138,107.62q-9.4224,0-14.6029-5.1228-5.1828-5.1228-5.1816-14.25,0-12.2469,9.3034-18.99t26.2617-6.7421h11.3643l.4711-2.8852a3.6427,3.6427,0,0,1,.1177-.7066v-1.001A5.6271,5.6271,0,0,0,362.974,52.8q-2.9748-1.7666-8.5086-1.7665a41.5275,41.5275,0,0,0-10.8933,1.59,85.9338,85.9338,0,0,0-13.3074,5.0639l2.7675-14.7206a74.3941,74.3941,0,0,1,24.6129-4.5929q12.07,0,18.6363,4.6518,6.5643,4.652,6.5655,13.72a36.323,36.323,0,0,1-.4711,5.5939q-.4716,3.003-1.1188,5.9471l-7.2425,37.626H358.47v-7.36A26.3115,26.3115,0,0,1,338.2138,107.62Zm7.1837-11.8354q6.476,0,11.2466-5.6822t6.3-15.3978h-6.6537q-19.9029,0-19.9023,12.13a8.3352,8.3352,0,0,0,9.009,8.95Z" transform="translate(-0.4961)" fill="#2d3748"></path><path d="M415.1828,107.62q-13.72,0-21.1683-7.4192t-7.4486-21.4333a42.63,42.63,0,0,1,5.005-20.8444,36.7663,36.7663,0,0,1,13.9257-14.338,40.3978,40.3978,0,0,1,20.7562-5.2111A39.0215,39.0215,0,0,1,445.8607,43.32l-3.1208,15.78a22.7112,22.7112,0,0,0-16.075-6.7126,21.2393,21.2393,0,0,0-11.8059,3.2974A22.52,22.52,0,0,0,406.88,64.783a29.416,29.416,0,0,0-2.8853,13.278q0,8.0083,3.4741,11.7765T417.95,93.606q8.8324,0,19.3724-6.1238l-3.2974,16.2516A45.998,45.998,0,0,1,415.1828,107.62Z" transform="translate(-0.4961)" fill="#2d3748"></path><path d="M458.1224,14.2911H475.375l-8.95,46.0463L490.2134,39.964H512L482.2643,64.5769l18.43,41.3356H482.382L469.31,75.058l-6.83,5.6527-4.8284,25.2018H440.3987Z" transform="translate(-0.4961)" fill="#2d3748"></path></svg></a><div class="flex gap-4"><div id="docsearch"></div><div class="flex items-center sm:hidden"><button title="Toggle Menu"><!----><svg width="25" height="25" viewBox="0 0 482 482"><path d="M92.5 150H386.5" stroke="currentColor" stroke-width="42" stroke-linecap="round" stroke-linejoin="round"></path><path d="M92.5 241H386.5" stroke="currentColor" stroke-width="42" stroke-linecap="round" stroke-linejoin="round"></path><path d="M92.5 332H386.5" stroke="currentColor" stroke-width="42" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div></div></div><nav class="flex items-center flex-wrap sm:px-0 mt-2 sm:mt-0 hidden sm:flex"><a href="/what-is-nullstack" class="w-full sm:w-auto border-b sm:border-0 border-gray-100 dark:border-gray-800 p-2 font-lg hover:text-pink-600 items-center flex font-light relative">What is Nullstack?<!----></a><a href="/getting-started" class="w-full sm:w-auto border-b sm:border-0 border-gray-100 dark:border-gray-800 p-2 font-lg hover:text-pink-600 items-center flex font-light relative">Documentation<!----></a><a href="/examples" class="w-full sm:w-auto border-b sm:border-0 border-gray-100 dark:border-gray-800 p-2 font-lg hover:text-pink-600 items-center flex font-light relative">Examples<!----></a><a href="/contributors" class="w-full sm:w-auto border-b sm:border-0 border-gray-100 dark:border-gray-800 p-2 font-lg hover:text-pink-600 items-center flex font-light relative">Contributors<!----></a><a href="/frequently-asked-questions" class="w-full sm:w-auto border-b sm:border-0 border-gray-100 dark:border-gray-800 p-2 font-lg hover:text-pink-600 items-center flex font-light relative">F.A.Q<!----></a><a href="/waifu" class="w-full sm:w-auto border-b sm:border-0 border-gray-100 dark:border-gray-800 p-2 font-lg hover:text-pink-600 items-center flex font-light relative">Waifu<!----></a><a href="/pt-br" class="w-full sm:w-auto border-b sm:border-0 border-gray-100 dark:border-gray-800 p-2 font-lg hover:text-pink-600 items-center flex font-light relative sm:hidden">Português<!----></a></nav><div class="flex w-full sm:w-auto mt-4 sm:mt-0 sm:space-x-2 items-center hidden sm:flex"><a href="/pt-br" title="Português" class="hidden sm:flex text-pink-600 h-10 w-10 items-center justify-center"><!---->🇧🇷</a><a href="https://discord.gg/eDZfKz264v" title="Discord" target="_blank" rel="noopener" class="text-gray-700 hover:text-pink-600 dark:text-pink-600 dark:hover:text-white flex h-10 w-10 items-center justify-center"><svg width="40" height="40" viewBox="0 0 482 482"><path d="M350.027 75H127.973C109.248 75 94 90.228 94 109.088V332.847C94 351.718 109.248 366.934 127.973 366.934H315.895L307.116 336.32L328.322 356.017L348.373 374.548L384 406V109.088C384 90.228 368.752 75 350.027 75ZM286.068 291.145C286.068 291.145 280.098 284.029 275.137 277.738C296.841 271.618 305.134 258.042 305.134 258.042C298.337 262.51 291.88 265.656 286.08 267.805C277.799 271.278 269.835 273.598 262.053 274.921C246.148 277.897 231.557 277.071 219.13 274.752C209.683 272.93 201.561 270.283 194.775 267.636C190.969 266.142 186.823 264.321 182.677 262.013C182.178 261.685 181.68 261.515 181.181 261.187C180.853 261.017 180.683 260.859 180.513 260.689C177.534 259.037 175.868 257.872 175.868 257.872C175.868 257.872 183.821 271.109 204.868 277.399C199.895 283.689 193.767 291.134 193.767 291.134C157.143 289.98 143.221 265.972 143.221 265.972C143.221 212.686 167.089 169.491 167.089 169.491C190.957 151.615 213.659 152.113 213.659 152.113L215.313 154.104C185.486 162.714 171.734 175.781 171.734 175.781C171.734 175.781 175.381 173.79 181.51 170.984C199.238 163.2 213.33 161.051 219.13 160.553C220.127 160.383 220.954 160.225 221.951 160.225C232.056 158.901 243.497 158.573 255.426 159.897C271.172 161.718 288.073 166.357 305.304 175.781C305.304 175.781 292.208 163.37 264.035 154.76L266.357 152.113C266.357 152.113 289.059 151.615 312.927 169.491C312.927 169.491 336.796 212.686 336.796 265.972C336.773 265.984 322.681 289.991 286.068 291.145ZM209.003 213.851C199.555 213.851 192.102 222.121 192.102 232.224C192.102 242.316 199.725 250.597 209.003 250.597C218.451 250.597 225.905 242.327 225.905 232.224C226.075 222.132 218.451 213.851 209.003 213.851ZM269.495 213.851C260.048 213.851 252.594 222.121 252.594 232.224C252.594 242.316 260.218 250.597 269.495 250.597C278.943 250.597 286.397 242.327 286.397 232.224C286.397 222.132 278.932 213.851 269.495 213.851Z" fill="currentColor"></path></svg></a><div class="pt-1"><a class="github-button inline-block" href="https://github.com/nullstack/nullstack" data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large" data-show-count="true" aria-label="Star nullstack/nullstack on GitHub">Star</a><script async defer src="https://buttons.github.io/buttons.js"></script></div></div></div></header></div><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><section class="max-w-screen-xl mx-auto px-4 flex flex-wrap sm:flex-nowrap py-12 sm:py-24"><button class="transition delay-300 fixed bottom-10 right-10 bg-pink-600 text-white shadow-xl rounded-full py-2 px-4 z-50 md:hidden ring-0 transform"><svg width="20" height="20" viewBox="0 0 482 482"><path d="M316.552 203H163.552C149 203 138 212 149 228C160 244 190.5 278 218.052 298C234.5 309.94 250.552 306.304 260.552 298C279.218 282.5 319.352 246.8 330.552 228C341.752 209.2 325.885 203.5 316.552 203Z" fill="currentColor"></path></svg></button><aside class="w-full md:w-3/12 fixed top-0 left-0 md:relative z-40 md:z-auto bg-white dark:bg-gray-900 h-screen md:h-auto p-4 overflow-y-auto md:p-0 md:pr-4 transform pb-24 sm:pb-0 transition sm:transition-none delay-500 delay-0 translate-y-full md:translate-y-0"><div class="mb-3"><h5> <!--#-->About Nullstack<!--#--> </h5><nav><a href="/what-is-nullstack" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">What is Nullstack?</a><a href="/getting-started" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Getting started</a></nav></div><div class="mb-3"><h5> <!--#-->Core Features<!--#--> </h5><nav><a href="/stateless-components" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Stateless Components</a><a href="/stateful-components" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Stateful components</a><a href="/full-stack-lifecycle" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Full stack lifecycle</a><a href="/server-functions" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Server functions</a><a href="/context" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Context</a><a href="/two-way-bindings" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Two-way bindings</a><a href="/jsx-elements" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">JSX elements</a><a href="/refs" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Refs</a><a href="/styles" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Styles</a><a href="/persistent-components" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Persistent Components</a></nav></div><div class="mb-3"><h5> <!--#-->Context Keys<!--#--> </h5><nav><a href="/routes-and-params" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Routes and params</a><a href="/context-data" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Context data</a><a href="/context-instances" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Context instances</a><a href="/context-environment" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Context environment</a><a href="/context-page" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Context page</a><a href="/context-project" class="text-pink-500 dark:text-pink-500 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Context project</a><a href="/context-settings" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Context settings</a><a href="/context-secrets" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Context secrets</a><a href="/server-request-and-response" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Server request and response</a><a href="/service-worker" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Service Worker</a></nav></div><div class="mb-3"><h5> <!--#-->Advanced concepts<!--#--> </h5><nav><a href="/proxy" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Proxy</a><a href="/application-startup" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Application Startup</a><a href="/script-runner" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Script runner</a><a href="/how-to-customize-webpack" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">How to customize Webpack</a><a href="/transpilation-and-security" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Transpilation and Security</a><a href="/typescript" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">TypeScript</a></nav></div><div class="mb-3"><h5> <!--#-->Build Modes<!--#--> </h5><nav><a href="/server-side-rendering" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Server-side rendering</a><a href="/static-site-generation" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Static site generation</a><a href="/single-page-applications" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Single page applications</a></nav></div><div class="mb-3"><h5> <!--#-->Other<!--#--> </h5><nav><a href="/nullstack-logo" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">Nullstack Logo</a><a href="/how-to-deploy-a-nullstack-application" class="text-gray-500 dark:text-gray-300 hover:text-pink-600 dark:hover:text-pink-400 block w-full">How to deploy</a></nav></div></aside><article class="w-full md:w-9/12 pb-24"><h1 class="text-pink-600 text-4xl font-light block mb-8"> <!--#-->Context Project<!--#--> </h1><div class="prose dark:prose-dark max-w-none"><ul>
<li>Type: <code>object</code></li>
<li>Origin: <a href="/context#----nullstack-context">Nullstack Context</a></li>
<li>Availability: server/client</li>
<li><strong>readwrite</strong> in the <strong>server</strong> context</li>
<li><strong>readonly</strong> in the <strong>client</strong> context</li>
</ul>
<p>It gives you information about the app manifest and some metatags.</p>
<p><code>project</code> keys will be used to generate metatags during server-side rendering and must be assigned before <a href="/full-stack-lifecycle"><code>initiate</code></a> is resolved.</p>
<p><code>project</code> keys will be used to generate the app <strong>manifest</strong>.</p>
<p>The <code>disallow</code> key will be used to generate the <strong>robots.txt</strong>.</p>
<p>The following keys are available in the object and supported as environment variables as follows:</p>
<ul>
<li><strong>domain</strong>: <code>string</code> (<code>NULLSTACK_PROJECT_DOMAIN</code>)</li>
<li><strong>name</strong>: <code>string</code> (<code>NULLSTACK_PROJECT_NAME</code>)</li>
<li><strong>shortName</strong>: <code>string</code> (<code>NULLSTACK_PROJECT_SHORT_NAME</code>)</li>
<li><strong>color</strong>: <code>string</code> (<code>NULLSTACK_PROJECT_COLOR</code>)</li>
<li><strong>backgroundColor</strong>: <code>string</code></li>
<li><strong>type</strong>: <code>string</code></li>
<li><strong>display</strong>: <code>string</code></li>
<li><strong>orientation</strong>: <code>string</code></li>
<li><strong>scope</strong>: <code>string</code></li>
<li><strong>root</strong>: <code>string</code></li>
<li><strong>icons</strong>: <code>object</code></li>
<li><strong>favicon</strong>: <code>string</code> (relative or absolute url)</li>
<li><strong>disallow</strong>: <code>string array</code> (relative paths)</li>
<li><strong>sitemap</strong>: <code>boolean</code> or <code>string</code> (relative or absolute url)</li>
<li><strong>cdn</strong>: <code>string</code> (<code>NULLSTACK_PROJECT_CDN</code>)</li>
<li><strong>protocol</strong>: <code>string</code> (<code>NULLSTACK_PROJECT_PROTOCOL</code>)</li>
</ul>
<p>Besides <code>domain</code>, <code>name</code> and <code>color</code> all other keys have sensible defaults generated based on the application scope.</p>
<p>If you do not declare the <code>icons</code> key, Nullstack will scan any icons with the name following the pattern "icon-[WIDTH]x[HEIGHT].png" in your <strong>public</strong> folder.</p>
<p>The <code>head</code> meta tag <code>apple-touch-icon</code> will be set to your <code>icon-180x180.png</code> file.</p>
<p>If the <code>sitemap</code> key is set to true your <strong>robots.txt</strong> file will point the sitemap to <code>https://${project.domain}/sitemap.xml</code>.</p>
<p>The <code>cdn</code> key will prefix your asset bundles and will be available in the context so you can manually prefix other assets.</p>
<p>The <code>protocol</code> key is "http" in development mode and "https" in production mode by default.</p>
<pre><code class="language-jsx"><span class="token comment">// server.js</span>
<span class="token keyword">import</span> Nullstack <span class="token keyword">from</span> <span class="token string">'nullstack'</span><span class="token punctuation">;</span>
<span class="token keyword">import</span> Application <span class="token keyword">from</span> <span class="token string">'./src/Application'</span><span class="token punctuation">;</span>
<span class="token keyword">const</span> context <span class="token operator">=</span> Nullstack<span class="token punctuation">.</span><span class="token function">start</span><span class="token punctuation">(</span>Application<span class="token punctuation">)</span><span class="token punctuation">;</span>
context<span class="token punctuation">.</span><span class="token function-variable function">start</span> <span class="token operator">=</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">const</span> <span class="token punctuation">{</span> project <span class="token punctuation">}</span> <span class="token operator">=</span> context<span class="token punctuation">;</span>
project<span class="token punctuation">.</span>name <span class="token operator">=</span> <span class="token string">'Nullstack'</span><span class="token punctuation">;</span>
project<span class="token punctuation">.</span>shortName <span class="token operator">=</span> <span class="token string">'Nullstack'</span><span class="token punctuation">;</span>
project<span class="token punctuation">.</span>domain <span class="token operator">=</span> <span class="token string">'nullstack.app'</span><span class="token punctuation">;</span>
project<span class="token punctuation">.</span>color <span class="token operator">=</span> <span class="token string">'#d22365'</span><span class="token punctuation">;</span>
project<span class="token punctuation">.</span>backgroundColor <span class="token operator">=</span> <span class="token string">'#d22365'</span><span class="token punctuation">;</span>
project<span class="token punctuation">.</span>type <span class="token operator">=</span> <span class="token string">'website'</span><span class="token punctuation">;</span>
project<span class="token punctuation">.</span>display <span class="token operator">=</span> <span class="token string">'standalone'</span><span class="token punctuation">;</span>
project<span class="token punctuation">.</span>orientation <span class="token operator">=</span> <span class="token string">'portrait'</span><span class="token punctuation">;</span>
project<span class="token punctuation">.</span>scope <span class="token operator">=</span> <span class="token string">'/'</span><span class="token punctuation">;</span>
project<span class="token punctuation">.</span>root <span class="token operator">=</span> <span class="token string">'/'</span><span class="token punctuation">;</span>
project<span class="token punctuation">.</span>icons <span class="token operator">=</span> <span class="token punctuation">{</span>
<span class="token string-property property">'72'</span><span class="token operator">:</span> <span class="token string">'/icon-72x72.png'</span><span class="token punctuation">,</span>
<span class="token string-property property">'128'</span><span class="token operator">:</span> <span class="token string">'/icon-128x128.png'</span><span class="token punctuation">,</span>
<span class="token string-property property">'512'</span><span class="token operator">:</span> <span class="token string">'/icon-512x512.png'</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span>
project<span class="token punctuation">.</span>favicon <span class="token operator">=</span> <span class="token string">'/favicon.png'</span><span class="token punctuation">;</span>
project<span class="token punctuation">.</span>disallow <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">'/admin'</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
project<span class="token punctuation">.</span>sitemap <span class="token operator">=</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
project<span class="token punctuation">.</span>cdn <span class="token operator">=</span> <span class="token string">'cdn.nullstack.app'</span><span class="token punctuation">;</span>
project<span class="token punctuation">.</span>protocol <span class="token operator">=</span> <span class="token string">'https'</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">export</span> <span class="token keyword">default</span> context<span class="token punctuation">;</span>
</code></pre>
<blockquote>
<p>More about the <code>context.start</code> at <a href="/application-startup">application startup</a></p>
</blockquote>
<pre><code class="language-jsx"><span class="token comment">// src/Application.njs</span>
<span class="token keyword">import</span> Nullstack <span class="token keyword">from</span> <span class="token string">'nullstack'</span><span class="token punctuation">;</span>
<span class="token keyword">class</span> <span class="token class-name">Application</span> <span class="token keyword">extends</span> <span class="token class-name">Nullstack</span> <span class="token punctuation">{</span>
<span class="token function">prepare</span><span class="token punctuation">(</span><span class="token parameter"><span class="token punctuation">{</span>project<span class="token punctuation">,</span> page<span class="token punctuation">}</span></span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
page<span class="token punctuation">.</span>title <span class="token operator">=</span> project<span class="token punctuation">.</span>name<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">export</span> <span class="token keyword">default</span> Application<span class="token punctuation">;</span>
</code></pre>
<blockquote>
<p>💡 You can override the automatically generated <strong>manifest.json</strong> and <strong>robots.txt</strong> by serving your own file from the <strong>public</strong> folder</p>
</blockquote>
</div><div class="prose dark:prose-dark max-w-none my-12 border border-pink-600 p-6"><h2> <a href="#next-step"> <!--#-->Next Step<!--#--> </a> </h2><span class="my-2 block">➡️ <!--#-->Learn more about<!--#--> <a href="/context-settings" class="text-white hover:text-pink-600">Context Keys<!--#-->: <!--#-->Context settings</a></span><span>❓ <!--#-->Have any questions or suggestions?<!--#--> <a href="https://discord.gg/eDZfKz264v" target="_blank">Join our Discord</a></span></div></article></section><!----><!----><!----><footer class="flex flex-wrap w-full justify-center relative"><div class="w-full relative flex justify-center h-80 bg-70 hover:bg-100 bg-bottom bg-no-repeat" style="background-image: url(/stars.webp); transition: background-size 3s;"><img src="/footer.webp" alt="Nulla-Chan" class="absolute bottom-0"/></div><div class="bg-gray-800 w-full py-4 flex-wrap"><nav class="w-full flex items-center justify-center space-x-1"><a href="https://twitter.com/nullstackapp" title="Twitter" target="_blank" rel="noopener" class="text-pink-600 hover:text-white h-12 w-12 flex items-center justify-center"><svg width="45" height="45" viewBox="0 0 482 482"><path d="M359.651 159.865C353.651 161.521 348.897 161.259 348.897 161.259L349.1 160.126C354.694 155.653 368.811 141.885 370.666 135.436C371.478 132.648 370.521 131.689 370.521 131.602L352.491 139.27L337.418 146.096C327.012 135.029 311.243 128 293.619 128C262.284 128 236.862 150.25 236.862 177.7C236.862 182.725 237.616 191.875 239.181 196.464C239.181 197.917 239.239 195.012 239.181 196.464C219.006 195.912 193.121 187.605 170.076 175.899C124.624 152.835 121.784 136.859 121.784 136.859C114.653 144.47 110.971 169.625 118.189 189.319C122.827 201.954 138.741 213.283 138.741 213.283C138.741 213.283 131.61 213.428 124.161 210.901C116.711 208.374 113.87 205.876 113.87 205.876C109.435 216.71 118.334 236.085 133.726 249.94C142.683 258.045 159.061 263.128 159.061 263.128L133.494 263.854C132.045 288.777 185.642 303.562 185.642 303.562C169.931 315.674 151.727 323.023 132.19 323.023C122.073 323.023 112.276 321.513 103 318.724C128.798 340.045 161.96 354.743 198.019 352.855C293.677 347.83 347.679 265.423 350.259 184.497L350.375 184.671C350.375 184.671 354.868 182.435 364.434 172.82C374 163.205 379.971 151.993 379.971 151.993C379.971 151.993 365.651 158.209 359.651 159.865Z" fill="currentColor"></path></svg></a><a href="https://github.com/nullstack/nullstack" title="Github" target="_blank" rel="noopener" class="text-pink-600 hover:text-white h-12 w-12 flex items-center justify-center"><svg width="45" height="45" viewBox="0 0 482 482"><path fill-rule="evenodd" clip-rule="evenodd" d="M241.5 80C150.104 80 76 153.919 76 245.087C76 318.021 123.411 379.912 189.183 401.727C197.46 403.257 200.502 398.145 200.502 393.772C200.502 389.835 200.337 376.823 200.283 363.045C154.214 373.023 144.513 343.581 144.513 343.581C136.977 324.5 126.152 319.416 126.152 319.416C111.133 309.164 127.275 309.383 127.275 309.383C143.883 310.558 152.652 326.386 152.652 326.386C167.424 351.618 191.376 344.319 200.803 340.109C202.283 329.448 206.586 322.149 211.299 318.021C174.549 313.839 135.908 299.678 135.908 236.448C135.908 218.433 142.375 203.699 152.954 192.135C151.227 187.98 145.582 171.196 154.543 148.451C154.543 148.451 168.438 144.023 200.063 165.373C213.273 161.71 227.414 159.878 241.5 159.823C255.559 159.878 269.727 161.71 282.964 165.373C314.562 144.023 328.429 148.451 328.429 148.451C337.446 171.196 331.773 187.98 330.046 192.135C340.652 203.699 347.065 218.433 347.065 236.448C347.065 299.842 308.341 313.812 271.509 317.912C277.456 323.024 282.745 333.084 282.745 348.475C282.745 370.563 282.553 388.332 282.553 393.772C282.553 398.173 285.54 403.312 293.926 401.699C359.644 379.857 407 317.994 407 245.087C407 153.919 332.896 80 241.5 80Z" fill="currentColor"></path><path d="M138.676 317.01C138.319 317.83 137.004 318.076 135.826 317.502C134.62 316.955 133.962 315.834 134.346 315.014C134.702 314.167 135.99 313.948 137.196 314.495C138.402 315.069 139.087 316.19 138.676 317.01Z" fill="currentColor"></path><path d="M145.39 324.473C144.595 325.211 143.061 324.856 142.019 323.708C140.923 322.559 140.731 321.029 141.526 320.29C142.348 319.552 143.828 319.908 144.924 321.056C145.993 322.204 146.212 323.735 145.39 324.473Z" fill="currentColor"></path><path d="M151.912 333.986C150.898 334.697 149.227 334.04 148.213 332.564C147.199 331.088 147.199 329.339 148.24 328.628C149.254 327.917 150.898 328.546 151.94 330.022C152.954 331.498 152.954 333.275 151.912 333.986Z" fill="currentColor"></path><path d="M160.846 343.171C159.942 344.183 157.996 343.909 156.599 342.542C155.146 341.203 154.762 339.317 155.667 338.333C156.599 337.321 158.517 337.622 159.942 338.961C161.367 340.274 161.806 342.187 160.846 343.171Z" fill="currentColor"></path><path d="M173.179 348.502C172.768 349.787 170.904 350.388 169.041 349.841C167.177 349.267 165.944 347.764 166.328 346.452C166.711 345.139 168.575 344.538 170.466 345.112C172.357 345.686 173.563 347.19 173.179 348.502Z" fill="currentColor"></path><path d="M186.717 349.486C186.772 350.853 185.182 351.973 183.209 352.001C181.236 352.055 179.619 350.935 179.619 349.595C179.619 348.228 181.181 347.107 183.154 347.08C185.1 347.053 186.717 348.146 186.717 349.486Z" fill="currentColor"></path><path d="M199.323 347.354C199.57 348.693 198.2 350.033 196.227 350.416C194.308 350.771 192.527 349.951 192.28 348.639C192.034 347.272 193.431 345.905 195.35 345.55C197.323 345.194 199.077 346.014 199.323 347.354Z" fill="currentColor"></path></svg></a><a href="https://discord.gg/eDZfKz264v" title="Discord" target="_blank" rel="noopener" class="text-pink-600 hover:text-white h-12 w-12 flex items-center justify-center"><svg width="45" height="45" viewBox="0 0 482 482"><path d="M350.027 75H127.973C109.248 75 94 90.228 94 109.088V332.847C94 351.718 109.248 366.934 127.973 366.934H315.895L307.116 336.32L328.322 356.017L348.373 374.548L384 406V109.088C384 90.228 368.752 75 350.027 75ZM286.068 291.145C286.068 291.145 280.098 284.029 275.137 277.738C296.841 271.618 305.134 258.042 305.134 258.042C298.337 262.51 291.88 265.656 286.08 267.805C277.799 271.278 269.835 273.598 262.053 274.921C246.148 277.897 231.557 277.071 219.13 274.752C209.683 272.93 201.561 270.283 194.775 267.636C190.969 266.142 186.823 264.321 182.677 262.013C182.178 261.685 181.68 261.515 181.181 261.187C180.853 261.017 180.683 260.859 180.513 260.689C177.534 259.037 175.868 257.872 175.868 257.872C175.868 257.872 183.821 271.109 204.868 277.399C199.895 283.689 193.767 291.134 193.767 291.134C157.143 289.98 143.221 265.972 143.221 265.972C143.221 212.686 167.089 169.491 167.089 169.491C190.957 151.615 213.659 152.113 213.659 152.113L215.313 154.104C185.486 162.714 171.734 175.781 171.734 175.781C171.734 175.781 175.381 173.79 181.51 170.984C199.238 163.2 213.33 161.051 219.13 160.553C220.127 160.383 220.954 160.225 221.951 160.225C232.056 158.901 243.497 158.573 255.426 159.897C271.172 161.718 288.073 166.357 305.304 175.781C305.304 175.781 292.208 163.37 264.035 154.76L266.357 152.113C266.357 152.113 289.059 151.615 312.927 169.491C312.927 169.491 336.796 212.686 336.796 265.972C336.773 265.984 322.681 289.991 286.068 291.145ZM209.003 213.851C199.555 213.851 192.102 222.121 192.102 232.224C192.102 242.316 199.725 250.597 209.003 250.597C218.451 250.597 225.905 242.327 225.905 232.224C226.075 222.132 218.451 213.851 209.003 213.851ZM269.495 213.851C260.048 213.851 252.594 222.121 252.594 232.224C252.594 242.316 260.218 250.597 269.495 250.597C278.943 250.597 286.397 242.327 286.397 232.224C286.397 222.132 278.932 213.851 269.495 213.851Z" fill="currentColor"></path></svg></a><a href="https://www.youtube.com/nullstack" title="Youtube" target="_blank" rel="noopener" class="text-pink-600 hover:text-white h-12 w-12 flex items-center justify-center"><svg width="45" height="45" viewBox="0 0 482 482"><path fill-rule="evenodd" clip-rule="evenodd" d="M242.949 353.27C272.252 353.27 360.16 350.815 360.16 350.815C382.859 350.815 401.432 332.243 401.432 309.544C401.432 309.544 403.886 257.94 403.886 240.641C403.886 223.342 401.432 171.738 401.432 171.738C401.432 149.027 382.847 130.455 360.148 130.455C360.148 130.455 272.24 128 242.937 128C213.634 128 125.726 130.455 125.726 130.455C103.016 130.455 84.4429 149.027 84.4546 171.726C84.4546 171.726 82 223.377 82 240.629C82 257.881 84.4546 309.532 84.4546 309.532C84.4546 332.243 103.039 350.815 125.738 350.815C125.738 350.815 213.646 353.27 242.949 353.27ZM212.116 190.299V290.971L293.443 240.629L212.116 190.299Z" fill="currentColor"></path></svg></a><a href="https://www.linkedin.com/company/nullstack-app" title="LinkedIn" target="_blank" rel="noopener" class="text-pink-600 hover:text-white h-12 w-12 flex items-center justify-center"><svg width="27" height="27" viewBox="0 0 24 24"><path fill="currentColor" d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"></path></svg></a></nav><nav class="w-full flex flex-wrap items-center justify-center space-x-1"><p class="text-center mt-3 w-full text-gray-400 px-6">Want to show your love and help us spread the word?</p><a href="https://github.com/nullstack/nullstack/stargazers" class="text-white flex flex-wrap text-xl text-center" target="_blank" rel="noopener"><span class="block w-full">Leave a star on GitHub</span></a></nav></div></footer></div></div>
</body>
</html>