• Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
Itssongoku

Itssongoku

NoteByPGC

Public
Like
NoteByPGC
Home
Code
4
backend
3
frontend
4
shared
1
README.md
Branches
1
Pull requests
Remixes
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
Code
/
README.md
Code
/
README.md
Search
5/27/2025
Viewing readonly version of main branch: v54
View latest version
README.md

3D Note Sharing Platform

A beautiful note-sharing website with 3D graphics and smooth UI animations. Users must sign in with Google to create notes, but anyone can view shared notes with the proper links.

Features

  • πŸ” Google Authentication: Secure sign-in with Google OAuth
  • πŸ“ Note Creation: Authenticated users can create beautiful notes
  • πŸ‘€ Public Viewing: Anyone can view notes if they have the link
  • πŸ”’ Password Protection: Optional password protection for private notes
  • πŸ“Š Dashboard: Personal dashboard to manage your notes
  • 🎨 3D Graphics: Smooth 3D animations and visual effects
  • πŸ“± Responsive Design: Works on all devices
  • ✨ Smooth UI: Beautiful animations and transitions
  • πŸ”— Unique Links: Each note gets its own shareable URL

How It Works

  1. Sign In: Users sign in with their Google account to create notes
  2. Create Notes: Authenticated users can create notes with optional password protection
  3. Share Notes: Each note gets a unique URL that can be shared with anyone
  4. View Notes: Anyone with the link can view public notes
  5. Dashboard: Users can manage all their created notes from a personal dashboard

User Flow

For Authenticated Users:

  • Sign in with Google
  • Access personal dashboard
  • Create new notes (public or password-protected)
  • View and manage all created notes
  • Copy shareable links for any note

For Anonymous Visitors:

  • Can view shared notes if they have the direct link
  • Can enter passwords for protected notes
  • Cannot create new notes (must sign in first)

Project Structure

β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ index.ts           # Main Hono server
β”‚   β”œβ”€β”€ database/
β”‚   β”‚   β”œβ”€β”€ migrations.ts  # Database schema
β”‚   β”‚   └── queries.ts     # Database operations
β”‚   └── routes/
β”‚       β”œβ”€β”€ auth.ts        # Google OAuth authentication
β”‚       └── notes.ts       # Note API endpoints
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ index.html         # Main HTML template
β”‚   β”œβ”€β”€ index.tsx          # React app entry point
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ App.tsx        # Main app component
β”‚   β”‚   └── Scene3D.tsx    # 3D graphics component
β”‚   └── style.css          # Custom styles
└── shared/
    └── types.ts           # Shared TypeScript types

API Endpoints

Authentication

  • POST /api/auth/google - Google OAuth sign-in
  • POST /api/auth/verify - Verify authentication token

Notes

  • POST /api/notes - Create a new note (authenticated users only)
  • GET /api/notes/my-notes - Get user's notes (authenticated users only)
  • GET /api/notes/:id - Get a note (public access)
  • POST /api/notes/:id/verify - Verify password for protected note (public access)

Tech Stack

  • Backend: Hono + SQLite
  • Frontend: React + Three.js for 3D graphics
  • Authentication: Google OAuth 2.0
  • Styling: TailwindCSS + custom CSS
  • Database: SQLite for note and user storage

Setup Requirements

To use Google authentication, you'll need to:

  1. Create a Google Cloud Project
  2. Enable the Google Sign-In API
  3. Get your Google Client ID
  4. Replace YOUR_GOOGLE_CLIENT_ID in the frontend code

Security Features

  • OAuth Authentication: Secure Google sign-in
  • Token-based Sessions: JWT-like tokens for session management
  • Password Hashing: SHA-256 hashing for note passwords
  • Access Control: Only authenticated users can create notes
  • Unique URLs: Cryptographically secure note IDs
FeaturesVersion controlCode intelligenceCLIMCP
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Open Source Pledge
Terms of usePrivacy policyAbuse contact
Β© 2025 Val Town, Inc.