Tisane is the official website for the AGH IT Future Day event. It is built with modern web technologies to provide a fast, responsive, and visually appealing experience.
To run the Tisane website in production, you can use Docker Compose. Make sure to set up your .env file with the necessary environment variables (see .env.example for reference).
-
Clone the repository:
git clone --depth 1 https://github.com/dkomeza/tisane.git cd tisane -
Create a
.envfile based on the provided.env.exampleand fill in the required values. -
Start the application using Docker Compose:
docker compose -f docker-compose.prod.yml up -d
This will start the Tisane application along with its dependencies (PostgreSQL and MinIO). The website will be accessible at http://localhost:3000.
- Framework: Next.js 16 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS v4
- UI Components: Radix UI, Lucide React
- Animations: GSAP, tw-animate-css
- Database: PostgreSQL with Prisma ORM
- Modern Landing Page: A high-performance, responsive landing page for the event.
- Component-Based Architecture: Modular design using React Server Components.
- Interactive Animations: Smooth transitions and effects using GSAP.
- Dark/Light Mode: Built-in theme support.
We are building a bespoke CMS to manage the site's content. This will allow for:
- Dynamic Page Building: A block-based editor for creating custom layouts.
- Role-Based Access Control: Secure admin dashboard for editors and admins.
- Media Management: Centralized library for images and assets.
- Theming Engine: No-code customization of site colors and fonts.
See roadmap.md for the detailed development plan.
- Node.js (v18 or later recommended)
- npm, yarn, pnpm, or bun
-
Clone the repository:
git clone https://github.com/dkomeza/tisane.git cd tisane -
Install dependencies:
npm install
Start the development server:
npm run devOpen http://localhost:3000 with your browser to see the result.
To create a production build:
npm run build
npm startapp/: Next.js App Router pages and layouts.app/sections/: Modular components for the landing page sections.components/: Reusable UI components (buttons, inputs, etc.).scripts/: Utility scripts for project maintenance and setup.public/: Static assets.
To add a new CMS component, use the provided Handlebars template located at templates/CMSComponent.hbs. This template ensures that all necessary parts of the component (client, admin, preview) are created consistently.
npm run generateThis command will prompt you for the component name, category and generate the required files in the appropriate directories. It will also update the component registry automatically.