Features
Templates
Showcase
Townie
AI
Blog
Docs
Pricing
Log in
Sign up
jxnblk
OpenTownie
Remix of stevekrouse/OpenTownie
Unlisted
Like
Remix
Close sidebar
OpenTownie
Home
Code
7
backend
4
frontend
6
prompts
2
.vtignore
README.md
TODOs.md
H
index.ts
Branches
10
Pull requests
1
Remixes
2
History
Environment variables
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Merge
jxnblk/main
into
stevekrouse/main
README.md
+3
-3
stevekrouse/main
jxnblk/main
TODOs.md
+27
-4
backend/index.ts
+5
-1
backend/routes/projects-loader.ts
+1
-1
frontend/components/App.tsx
+44
-80
frontend/components/Home.tsx
+94
-112
frontend/components/MessageTimer.tsx
+2
-6
frontend/components/Preview.tsx
+27
-59
frontend/hooks/useChatLogic.ts
+4
-1
H
index.ts
+20
-5
.vtignore
+6
-0
backend/routes/project.ts
+25
-0
backend/routes/user.ts
+19
-0
frontend/components/BranchSelect.tsx
+80
-0
frontend/components/ChatRoute.tsx
+198
-0
frontend/components/DebugStyles.tsx
+74
-0
frontend/components/Header.tsx
+105
-0
frontend/components/InputBox.tsx
+251
-0
frontend/components/LayoutRoute.tsx
+15
-0
frontend/components/Loading.tsx
+10
-0
frontend/components/LoginRoute.tsx
+67
-0
frontend/components/Messages.tsx
+238
-0
frontend/components/NewProjectRoute.tsx
+90
-0
frontend/components/NotFoundRoute.tsx
+7
-0
frontend/components/PreviewFrame.tsx
+134
-0
frontend/components/ProjectsRoute.tsx
+96
-0
frontend/components/RequireAuthRoute.tsx
+24
-0
frontend/components/icons.tsx
+178
-0
frontend/favicon.http.tsx
+18
-0
frontend/hooks/useAuth.tsx
+54
-0
frontend/hooks/useBranches.tsx
+30
-0
frontend/hooks/useCreateBranch.tsx
+40
-0
frontend/hooks/useCreateProject.tsx
+52
-0
frontend/hooks/useLoadingFavicon.ts
+15
-0
frontend/hooks/useProject.tsx
+46
-0
frontend/hooks/useProjects.tsx
+45
-0
frontend/hooks/useScrollToBottom.tsx
+45
-0
frontend/hooks/useUsageStats.ts
+70
-0
frontend/styles.css
+780
-0
frontend/utils/images.ts
+38
-0
frontend/components/ApiKeyWarning.tsx
+0
-17
frontend/components/BranchControl.tsx
+0
-233
frontend/components/Chat.tsx
+0
-206
frontend/components/ChatHeader.tsx
+0
-56
frontend/components/ChatInput.tsx
+0
-170
frontend/components/ChatMessages.tsx
+0
-37
frontend/components/CreateBranch.tsx
+0
-121
frontend/components/CreateProject.tsx
+0
-182
frontend/components/DirectoryTree.tsx
+0
-348
frontend/components/ErrorDisplay.tsx
+0
-16
frontend/components/ImageUpload.tsx
+0
-163
frontend/components/LoadingSpinner.tsx
+0
-8
frontend/components/Login.tsx
+0
-132
frontend/components/MessageItem.tsx
+0
-66
frontend/components/MessagePart.tsx
+0
-344
frontend/components/ProjectFiles.tsx
+0
-39
frontend/components/Projects.tsx
+0
-166
frontend/hooks/useProjectFiles.ts
+0
-69
frontend/utils/api.ts
+0
-18
frontend/utils/costCalculator.ts
+0
-55
Features
Version control
Code intelligence
CLI
Use cases
Teams
AI agents
Slack
GTM
Explore
Docs
Showcase
Templates
Newest
Trending
API examples
NPM packages
Pricing
Newsletter
Blog
About
Careers
Brand
hi@val.town
Status
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Terms of use
Privacy policy
Abuse contact
© 2025 Val Town, Inc.