サーバーは必要。簡単に言うと少なくとも以下のパーツが要る。
・フロント(HTML,CSS,Javascript)
・バック(PHP, Ruby等)
・データベース(MySQL等)
そして、どれもサーバーに配置する必要がある。
仕組みを超簡単に説明すると以下の流れ
・ブラウザからサーバーにアクセス
・サーバーのバックとデータベースがゴニョゴニョ処理してフロントのファイルを生成する
・サーバーが、作成したフロントのファイルをブラウザに返す
・ブラウザはフロントのファイルを読み込んで画面を表示する。また、処理に応じてバックエンドと通信する
異論はあるだろうが大雑把に説明するとこんな感じ。