TipiLAN-i mirror
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

4.5 KiB

Tipilan

Tipilan — a Next.js (App Router) website using TypeScript, Tailwind, Drizzle ORM and i18n (English & Estonian).

This repository contains the website front-end and database schema/migrations for the Tipilan project.

Tech stack

  • Next.js 15 (App Router)
  • React 19 + TypeScript
  • Tailwind CSS
  • Drizzle ORM (drizzle-kit) for database schema & migrations
  • next-intl for internationalization (English / Estonian)
  • pnpm as package manager

Requirements

  • Node.js >= 22.0.0 (see package.json engines)
  • pnpm (recommended; repo contains pnpm-lock.yaml)

Install pnpm if you don't have it:

npm install -g pnpm

Quick start

  1. Clone the repo
git clone <repo-url>
cd tipilan
  1. Install dependencies
pnpm install
  1. Run development server
pnpm dev

The app uses Next's turbopack in development (next dev --turbopack). Open http://localhost:3000 by default.

Available scripts

These scripts are defined in package.json and are the recommended entry points:

  • pnpm dev — start development server (uses turbopack)
  • pnpm build — production build
  • pnpm start — run production server after build
  • pnpm lint — run ESLint
  • pnpm drizzle:generate — generate Drizzle migration artifacts for SQLite
  • pnpm drizzle:push — push migrations to SQLite database
  • pnpm drizzle:studio — start Drizzle Studio

Run them with pnpm <script> (e.g. pnpm build).

Database & migrations (Drizzle)

This project uses drizzle-kit for schema generation and migrations. Migrations present in the migrations/ directory.

  • Generate/refresh schema files (SQLite):
pnpm drizzle:generate
  • Push migrations to the target SQLite DB:
pnpm drizzle:push
  • Open Drizzle Studio:
pnpm drizzle:studio

If you are using a different database in production, update drizzle.config.ts appropriately.

Internationalization

The app uses next-intl and has translations in the translations/ and src/data/rules/ folders for English and Estonian.

Project layout (highlight)

  • app/ — Next.js App Router pages and layouts
  • components/ — React components used across the app
  • db/ — Drizzle config and schema definitions
  • migrations/ — SQL migrations
  • src/lib/ — helper libraries and utils
  • translations/ — top-level translation JSON files

Explore the src tree for more feature-specific code (rules, timetable, sponsors, etc.).

Contributing

Small PRs with a clear description are welcome. When contributing:

  • Keep changes focused and add tests when appropriate.
  • Run pnpm lint and make sure the dev server runs locally.
  • If modifying schema, add or update migrations under migrations/ and test drizzle:push/drizzle:generate flows.

Troubleshooting & tips

  • If you see an engine/node version mismatch, ensure Node >= 22.0.0 is active.
  • If you need to reset the local SQLite DB used for development, remove the file your drizzle.config.ts points to and re-run migrations.

License

No license file is included in this repository. If you intend to publish or share, add a LICENSE file (e.g., MIT) and update this section.

Contact / Maintainers

See repository metadata or the meta/ folder for snapshots and notes. Open an issue or a PR with questions or fixes.


If you'd like, I can also:

  • add a short CONTRIBUTING.md with a checklist for PRs,
  • add a make / pnpm script to simplify local DB reset,
  • or tailor the README for end users vs developers (shorter/longer).

🎮 TIPILAN

TIPILAN is the official web platform for the TipiLAN LAN event — built using Next.js and powered by the lightning-fast Bun runtime.

This is a work in progress! Contributions welcome.


🚀 Features

  • Event information & schedule
  • Stream
  • Responsive dark-themed UI
  • Built with Next.js, styled with Tailwind (if applicable), powered by Bun

📦 Tech Stack


🛠 Setup Instructions

📖 See docs/SETUP.md for a full setup guide on:

  • Windows (native)
  • 🐧 Windows with WSL
  • 🐧 Linux (Ubuntu, Arch, Fedora, etc.)

🧪 Scripts

bun dev        # Run development server
bun run build  # Build for production
bun start      # Start production server

bun test       # Run tests (if configured)
bun run lint   # Run linter (if configured)